Files
msd-core/commands/gsd/autonomous.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

1.8 KiB

name, description, argument-hint, effort, allowed-tools, requires
name description argument-hint effort allowed-tools requires
gsd:autonomous Run all remaining phases autonomously — discuss→plan→execute per phase [--from N] [--to N] [--only N] [--interactive] xhigh
Read
Write
Bash
Glob
Grep
AskUserQuestion
Agent
cleanup
phase
progress
Execute all remaining milestone phases autonomously. For each phase: discuss → plan → execute. Pauses only for user decisions (grey area acceptance, blockers, validation requests).

Uses ROADMAP.md phase discovery and Skill() flat invocations for each phase command. After all phases complete: milestone audit → complete → cleanup.

Creates/Updates:

  • .planning/STATE.md — updated after each phase
  • .planning/ROADMAP.md — progress updated after each phase
  • Phase artifacts — CONTEXT.md, PLANs, SUMMARYs per phase

After: Milestone is complete and cleaned up.

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

Optional flags: - `--from N` — start from phase N instead of the first incomplete phase. - `--to N` — stop after phase N completes (halt instead of advancing to next phase). - `--only N` — execute only phase N (single-phase mode). - `--interactive` — run discuss inline with questions (not auto-answered), then dispatch plan→execute as background agents. Keeps the main context lean while preserving user input on decisions.

Project context, phase list, and state are resolved inside the workflow using init commands (gsd-tools query init.milestone-op, gsd-tools query roadmap.analyze). No upfront context loading needed.

Execute end-to-end. Preserve all workflow gates (phase discovery, per-phase execution, blocker handling, progress display).