Skip to content

source-control:babysit-prs: 'source-control-babysit-resolve-thread' bare wrapper not on PATH (command not found), worker must fall back to raw GraphQL #484

Description

@kyle-sexton

lane=babysit

Category: operational

Context: The babysit-prs worker contract (and the review-discipline thread-resolution step) instructs workers to resolve review threads via a bare wrapper invocation:

source-control-babysit-resolve-thread melodic-software/claude-code-plugins#<pr> --allowed-owners <...> --resolve --include-human

Triggering example (PR #470, worker run 2026-07-19):

$ source-control-babysit-resolve-thread melodic-software/claude-code-plugins#470 --allowed-owners kyle-sexton,melodic-software --include-human
/usr/bin/bash: line 1: source-control-babysit-resolve-thread: command not found
(exit 127)

Observed: The bare command is not resolvable on PATH from the worker's Bash tool environment (Git Bash on Windows). Exit 127, command not found. This happens in both list-only and --resolve forms.

Expected: Either (a) the wrapper is on PATH / resolvable as a bare command exactly as the worker contract documents, or (b) the contract documents the concrete invocation path (e.g. an absolute scripts/... path or python/bash prefix, matching how fetch-all-pr-comments.sh and babysit-readiness-gate.sh are specified as absolute cache paths).

Impact / workaround: Non-blocking. Worker fell back to raw GraphQL (resolveReviewThread mutation via gh api graphql) after fetching threadIds and applying the author-conditional (bot-only opening-comment) manually. This works but loses the wrapper's built-in --allowed-owners guardrails and the JSON action receipt the contract tells workers to parse, so each worker re-implements the safety logic ad hoc.

Suggested fix location: babysit-prs worker contract / SKILL doc where the bare wrapper is referenced — align it with the absolute-path convention already used for the sibling scripts, or ship the wrapper onto PATH.

Metadata

Metadata

Assignees

Labels

priority: highSignificant impact, or blocks an imminent release; staff this cycle.status: readyTriaged, unblocked, and fully specified; eligible to pick up.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions