Files
msd-core/commands/gsd/execute-phase.md
Tom Boucher b866b95296 fix(#921,#922): orchestrators must not fork; plan-phase Agent gate is attempt-based (#926)
`context: fork` strips the `Agent` tool from a subagent's environment.
Spawning orchestrators (`/gsd-autonomous`, `/gsd-execute-phase`,
`/gsd-plan-phase`) depend on `Agent` to dispatch sub-agents; running
them forked silently disables the core capability they exist to provide
(#921). Remove `context: fork` from all three command frontmatter files.
`effort: xhigh` (introduced by #769) is preserved.

The `<runtime_compatibility>` Agent-availability guard added by #913 was
checking whether `Agent` was present *before* attempting the call. On
runtimes where the tool list is dynamically resolved this produced
false-negative aborts in sessions that have the tool (#922). Replace
the introspection-based pattern with an attempt-based gate: always
attempt the `Agent()` call; stop only if a real tool-unavailable error
is returned. This preserves #853's backgrounded-session close-off and
#913's intent of preventing inline role-collapse, while eliminating
false negatives.

Tests updated: enh-769-context-fork-effort.install.test.cjs asserts the
three orchestrators lack `context: fork` and that the converter still
passes the field through for non-orchestrator commands; plan-phase-drift-
guard.test.cjs adds four assertions for the attempt-based gate language;
workflow-size-budget unchanged (budgets not exceeded).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 08:42:25 -04:00

2.9 KiB

name, description, argument-hint, effort, allowed-tools, requires
name description argument-hint effort allowed-tools requires
gsd:execute-phase Execute all plans in a phase with wave-based parallelization <phase-number> [--wave N] [--gaps-only] [--interactive] [--tdd] xhigh
Read
Write
Edit
Glob
Grep
Bash
Agent
TodoWrite
AskUserQuestion
phase
verify-work
Execute all plans in a phase using wave-based parallel execution.

Orchestrator stays lean: discover plans, analyze dependencies, group into waves, spawn subagents, collect results. Each subagent loads the full execute-plan context and handles its own plan.

Optional wave filter:

  • --wave N executes only Wave N for pacing, quota management, or staged rollout
  • phase verification/completion still only happens when no incomplete plans remain after the selected wave finishes

Flag handling rule:

  • The optional flags documented below are available behaviors, not implied active behaviors
  • A flag is active only when its literal token appears in $ARGUMENTS
  • If a documented flag is absent from $ARGUMENTS, treat it as inactive

Context budget: ~15% orchestrator, 100% fresh per subagent.

<execution_context> @/.claude/gsd-core/workflows/execute-phase.md @/.claude/gsd-core/references/ui-brand.md </execution_context>

<runtime_note> Copilot (VS Code): Use vscode_askquestions wherever this workflow calls AskUserQuestion. They are equivalent — vscode_askquestions is the VS Code Copilot implementation of the same interactive question API. </runtime_note>

Phase: $ARGUMENTS

Available optional flags (documentation only — not automatically active):

  • --wave N — Execute only Wave N in the phase. Use when you want to pace execution or stay inside usage limits.
  • --gaps-only — Execute only gap closure plans (plans with gap_closure: true in frontmatter). Use after verify-work creates fix plans.
  • --interactive — Execute plans sequentially inline (no subagents) with user checkpoints between tasks. Lower token usage, pair-programming style. Best for small phases, bug fixes, and verification gaps.

Active flags must be derived from $ARGUMENTS:

  • --wave N is active only if the literal --wave token is present in $ARGUMENTS
  • --gaps-only is active only if the literal --gaps-only token is present in $ARGUMENTS
  • --interactive is active only if the literal --interactive token is present in $ARGUMENTS
  • If none of these tokens appear, run the standard full-phase execution flow with no flag-specific filtering
  • Do not infer that a flag is active just because it is documented in this prompt

Context files are resolved inside the workflow via gsd-tools query init.execute-phase and per-subagent <files_to_read> blocks.

Execute end-to-end. Preserve all workflow gates (wave execution, checkpoint handling, verification, state updates, routing).