Files
msd-core/commands/gsd/plan-phase.md
Tom Boucher 09ab16f9e5 fix(3683): normalize /gsd:<cmd> → /gsd-<cmd> in command, workflow, and reference bodies (#3685)
* fix(3683): normalize /gsd:<cmd> → /gsd-<cmd> in command, workflow, and reference bodies

Extends #3677's agent-body normalizer to all body text staged through
copyWithPathReplacement (commands, workflows, references). The initial
isCommand guard was structurally redundant — normalizeAgentBodyForRuntime
already self-gates on shouldNormalizeHyphenNamespaceInAgentBody(runtime),
so dropping it covers all hyphen-name runtimes (Claude / Qwen / Hermes)
without affecting colon-canonical runtimes (Gemini).

Addresses the user-visible symptom in #3683: workflows like
get-shit-done/workflows/discuss-phase.md (7 colon refs) leaked /gsd:<cmd>
markers to the model context, which the model echoed at the end of
/gsd-discuss-phase runs.

Source-prose drift caught by the new cross-reference invariant test:

  - commands/gsd/plan-phase.md: removed a slash-form mention of the
    deleted /gsd-research-phase command (#3042)
  - commands/gsd/profile-user.md: replaced a slash-form artifact
    reference with a backticked bare name (the referenced item is a
    skill config, not a user-callable slash command)

Tests:

  - tests/bug-3683-command-colon-namespace-leak.test.cjs — runtime-form
    regression for commands/gsd/*.md staging
  - tests/bug-3683-command-cross-reference-invariant.test.cjs — locks
    cross-reference coherence: every /gsd-X / /gsd:X reference in a
    command body must resolve to commands/gsd/X.md (so a future rename
    forces every cross-reference to update)
  - tests/bug-3683-workflow-colon-namespace-leak.test.cjs — runtime-form
    regression for workflows + references; negative test for gemini
    asserting the colon form is preserved

Fixes #3683

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(changeset): remove undefined cycle reference

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 00:13:59 -04:00

3.7 KiB

name, description, argument-hint, allowed-tools, requires
name description argument-hint allowed-tools requires
gsd:plan-phase Create detailed phase plan (PLAN.md) with verification loop [phase] [--auto] [--research] [--skip-research] [--research-phase <N>] [--view] [--gaps] [--skip-verify] [--prd <file>] [--ingest <path-or-glob>] [--ingest-format <auto|nygard|madr|narrative>] [--reviews] [--text] [--tdd] [--mvp]
Read
Write
Bash
Glob
Grep
Agent
AskUserQuestion
WebFetch
mcp__context7__*
discuss-phase
phase
review
update
Create executable phase prompts (PLAN.md files) for a roadmap phase with integrated research and verification.

Default flow: Research (if needed) → Plan → Verify → Done

Research-only mode (--research-phase <N>): Spawn gsd-phase-researcher for phase N, write RESEARCH.md, then exit before the planner runs. Useful for cross-phase research, doc review before committing to a planning approach, and correction-without-replanning loops where iterating on research alone is dramatically cheaper than re-spawning the planner. Replaces the deleted research-phase command (#3042).

Research-only modifiers:

  • No flag — when RESEARCH.md already exists, prompt the user to choose update / view / skip.
  • --research — force-refresh: re-spawn the researcher unconditionally, no prompt. Skips the existing-RESEARCH.md menu.
  • --view — view-only: print existing RESEARCH.md to stdout. Does not spawn the researcher. Cheapest mode for the correction-without-replanning loop. If no RESEARCH.md exists yet, errors with a hint to drop --view.

Orchestrator role: Parse arguments, validate phase, research domain (unless skipped), spawn gsd-planner, verify with gsd-plan-checker, iterate until pass or max iterations, present results.

<execution_context> @/.claude/get-shit-done/workflows/plan-phase.md @/.claude/get-shit-done/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. Do not skip questioning steps because AskUserQuestion appears unavailable; use vscode_askquestions instead. </runtime_note>

Phase number: $ARGUMENTS (optional — auto-detects next unplanned phase if omitted)

Flags:

  • --research — Force re-research even if RESEARCH.md exists
  • --skip-research — Skip research, go straight to planning
  • --gaps — Gap closure mode (reads VERIFICATION.md, skips research)
  • --skip-verify — Skip verification loop
  • --prd <file> — Use a PRD/acceptance criteria file instead of discuss-phase. Parses requirements into CONTEXT.md automatically. Skips discuss-phase entirely.
  • --ingest <path-or-glob> — Use one or more ADR files instead of discuss-phase. Parses locked decisions + scope fences into CONTEXT.md automatically. Skips discuss-phase entirely.
  • --ingest-format <auto|nygard|madr|narrative> — Optional ADR parser format override (auto default).
  • --reviews — Replan incorporating cross-AI review feedback from REVIEWS.md (produced by /gsd:review)
  • --text — Use plain-text numbered lists instead of TUI menus (required for /rc remote sessions)
  • --mvp — Vertical MVP mode. Planner organizes tasks as feature slices (UI→API→DB) instead of horizontal layers. On Phase 1 of a new project, also emits SKELETON.md (Walking Skeleton). Can be persisted on a phase via **Mode:** mvp in ROADMAP.md.

Normalize phase input in step 2 before any directory lookups.

Execute end-to-end. Preserve all workflow gates (validation, research, planning, verification loop, routing).