Repository navigation
Description
Summary
The PR-merged → continue-implementation chain already exists in workflows/squad-implement-worker.md, and it fires correctly — but the final hop drops the epic number, so the run ends in a silent noop and the user is left with no visible next step.
Observed on github/gh-aw#53498, where /squad implement dispatched #53513, its PR merged, and then nothing happened.
Evidence
PR github/gh-aw#53527 merged
→ squad-implement-worker run 32082398976 ✅ (merge trigger fired)
→ dispatched squad with {"command":"implement","issue_number":"53498"} ✅
→ squad run 32082667356 ✅ … emitted noop:
"No actionable /squad slash command was found in the trigger context.
This run has pull-request-number #53527 but no comment body, issue number,
or workflow_dispatch input was provided to parse a command from."
53498 appears nowhere in the squad run's agent log.
Root cause
workflows/squad.md only describes its dispatch inputs in prose (lines 135–142):
Read slash command from:
github.event.comment.body… orgithub.event.inputs.command(workflow_dispatch, default:cast).
- Manual issue target:
github.event.inputs.issue_number— issue number for/squad implementruns started from the Actions tab
Those are backtick-quoted expression names, not ${{ }} interpolations, so the values are never rendered into the prompt. The run-name on line 3 does interpolate (Squad — implement resolved correctly), which is why the dispatch looks healthy from the Actions tab while the agent sees nothing.
squad-implement-worker.md gets this right — it uses literal ${{ github.event.inputs.issue_number }} throughout its prompt body (lines 117, 150, 170–173).
Compounding this: noop is configured report-as-issue: false, so the failed continuation posts zero comments. The epic just goes quiet.
Proposed fixes
- Interpolate, don't describe (the actual bug) — in
squad.mdTrigger Context, emit real values, e.g.Command: ${{ github.event.inputs.command }}/Target issue: ${{ github.event.inputs.issue_number }}. - Always leave a visible next step — the continuation must comment on the epic on every run:
✅ #53513 merged → dispatching #53514 · 6 remaining, or⏸️ all remaining tasks blocked on …. Never a silent noop. - Guard against prose-only context — add a workflow-lint rule: if a prompt body references
github.event.inputs.X, it must interpolate it. This failure mode is invisible in CI and will recur. - (minor, separable)
squad-implement-worker.md'spull_request: types: [closed]fires on every PR in the repo; theif:guard skips them, but it produces a wall ofaction_requiredruns in the Actions tab. Worth scoping the trigger.
Acceptance criteria
- A merged
squad/implement-*PR results in the parent epic receiving a comment naming the next dispatched task, or an explicit blocked/complete status. - The dispatched
squadrun resolves the target issue number fromworkflow_dispatchinputs and does not emitnoopfor a well-formed continuation dispatch. - Lint fails on a workflow prompt that references
github.event.inputs.*without interpolating it.
Routing
Prompt architecture in workflows/ → Procedures 🧠. Lint rule (#3) → Booster ⚙️.
Activity
fix(workflows): interpolate dispatch inputs so merge continuation res…
fix(workflows): comment instead of silent noop on merge continuation
fix(workflows): interpolate dispatch inputs so merge continuation res…