All workflow, command, reference, template, and tool-output files that surfaced /gsd:<cmd> as a user-typed slash command have been updated to use /gsd-<cmd>, matching the Claude Code skill directory name. Closes #2697 Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -11,15 +11,15 @@ Read all files referenced by the invoking prompt's execution_context before star
|
||||
<step name="parse_arguments">
|
||||
Parse the command arguments:
|
||||
- All arguments become the phase description
|
||||
- Example: `/gsd:add-phase Add authentication` → description = "Add authentication"
|
||||
- Example: `/gsd:add-phase Fix critical performance issues` → description = "Fix critical performance issues"
|
||||
- Example: `/gsd-add-phase Add authentication` → description = "Add authentication"
|
||||
- Example: `/gsd-add-phase Fix critical performance issues` → description = "Fix critical performance issues"
|
||||
|
||||
If no arguments provided:
|
||||
|
||||
```
|
||||
ERROR: Phase description required
|
||||
Usage: /gsd:add-phase <description>
|
||||
Example: /gsd:add-phase Add authentication system
|
||||
Usage: /gsd-add-phase <description>
|
||||
Example: /gsd-add-phase Add authentication system
|
||||
```
|
||||
|
||||
Exit.
|
||||
@@ -36,7 +36,7 @@ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
||||
Check `roadmap_exists` from init JSON. If false:
|
||||
```
|
||||
ERROR: No roadmap found (.planning/ROADMAP.md)
|
||||
Run /gsd:new-project to initialize.
|
||||
Run /gsd-new-project to initialize.
|
||||
```
|
||||
Exit.
|
||||
</step>
|
||||
@@ -89,12 +89,12 @@ Roadmap updated: .planning/ROADMAP.md
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:plan-phase {N}`
|
||||
`/gsd-plan-phase {N}`
|
||||
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:add-phase <description>` — add another phase
|
||||
- `/gsd-add-phase <description>` — add another phase
|
||||
- Review roadmap
|
||||
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<purpose>
|
||||
Generate unit and E2E tests for a completed phase based on its SUMMARY.md, CONTEXT.md, and implementation. Classifies each changed file into TDD (unit), E2E (browser), or Skip categories, presents a test plan for user approval, then generates tests following RED-GREEN conventions.
|
||||
|
||||
Users currently hand-craft `/gsd:quick` prompts for test generation after each phase. This workflow standardizes the process with proper classification, quality gates, and gap reporting.
|
||||
Users currently hand-craft `/gsd-quick` prompts for test generation after each phase. This workflow standardizes the process with proper classification, quality gates, and gap reporting.
|
||||
</purpose>
|
||||
|
||||
<required_reading>
|
||||
@@ -15,15 +15,15 @@ Parse `$ARGUMENTS` for:
|
||||
- Phase number (integer, decimal, or letter-suffix) → store as `$PHASE_ARG`
|
||||
- Remaining text after phase number → store as `$EXTRA_INSTRUCTIONS` (optional)
|
||||
|
||||
Example: `/gsd:add-tests 12 focus on edge cases` → `$PHASE_ARG=12`, `$EXTRA_INSTRUCTIONS="focus on edge cases"`
|
||||
Example: `/gsd-add-tests 12 focus on edge cases` → `$PHASE_ARG=12`, `$EXTRA_INSTRUCTIONS="focus on edge cases"`
|
||||
|
||||
If no phase argument provided:
|
||||
|
||||
```
|
||||
ERROR: Phase number required
|
||||
Usage: /gsd:add-tests <phase> [additional instructions]
|
||||
Example: /gsd:add-tests 12
|
||||
Example: /gsd:add-tests 12 focus on edge cases in the pricing module
|
||||
Usage: /gsd-add-tests <phase> [additional instructions]
|
||||
Example: /gsd-add-tests 12
|
||||
Example: /gsd-add-tests 12 focus on edge cases in the pricing module
|
||||
```
|
||||
|
||||
Exit.
|
||||
@@ -54,7 +54,7 @@ Read the phase artifacts (in order of priority):
|
||||
If no SUMMARY.md exists:
|
||||
```
|
||||
ERROR: No SUMMARY.md found for phase ${PHASE_ARG}
|
||||
This command works on completed phases. Run /gsd:execute-phase first.
|
||||
This command works on completed phases. Run /gsd-execute-phase first.
|
||||
```
|
||||
Exit.
|
||||
|
||||
@@ -318,7 +318,7 @@ Present next steps:
|
||||
## ▶ Next Up — [${PROJECT_CODE}] ${PROJECT_TITLE}
|
||||
|
||||
{if bugs discovered:}
|
||||
**Fix discovered bugs:** `/gsd:quick fix the {N} test failures discovered in phase ${phase_number}`
|
||||
**Fix discovered bugs:** `/gsd-quick fix the {N} test failures discovered in phase ${phase_number}`
|
||||
|
||||
{if blocked tests:}
|
||||
**Resolve test blockers:** {description of what's needed}
|
||||
@@ -329,8 +329,8 @@ Present next steps:
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:add-tests {next_phase}` — test another phase
|
||||
- `/gsd:verify-work {phase_number}` — run UAT verification
|
||||
- `/gsd-add-tests {next_phase}` — test another phase
|
||||
- `/gsd-verify-work {phase_number}` — run UAT verification
|
||||
|
||||
---
|
||||
```
|
||||
|
||||
@@ -28,7 +28,7 @@ Note existing areas from the todos array for consistency in infer_area step.
|
||||
|
||||
<step name="extract_content">
|
||||
**With arguments:** Use as the title/focus.
|
||||
- `/gsd:add-todo Add auth token refresh` → title = "Add auth token refresh"
|
||||
- `/gsd-add-todo Add auth token refresh` → title = "Add auth token refresh"
|
||||
|
||||
**Without arguments:** Analyze recent conversation to extract:
|
||||
- The specific problem, idea, or task discussed
|
||||
@@ -143,7 +143,7 @@ Would you like to:
|
||||
|
||||
1. Continue with current work
|
||||
2. Add another todo
|
||||
3. View all todos (/gsd:check-todos)
|
||||
3. View all todos (/gsd-check-todos)
|
||||
```
|
||||
</step>
|
||||
|
||||
|
||||
@@ -43,11 +43,11 @@ AI_PHASE_ENABLED=$(gsd-sdk query config-get workflow.ai_integration_phase 2>/dev
|
||||
|
||||
**If `AI_PHASE_ENABLED` is `false`:**
|
||||
```
|
||||
AI phase is disabled in config. Enable via /gsd:settings.
|
||||
AI phase is disabled in config. Enable via /gsd-settings.
|
||||
```
|
||||
Exit workflow.
|
||||
|
||||
**If `planning_exists` is false:** Error — run `/gsd:new-project` first.
|
||||
**If `planning_exists` is false:** Error — run `/gsd-new-project` first.
|
||||
|
||||
## 2. Parse and Validate Phase
|
||||
|
||||
@@ -64,7 +64,7 @@ PHASE_INFO=$(gsd-sdk query roadmap.get-phase "${PHASE}")
|
||||
**If `has_context` is false:**
|
||||
```
|
||||
No CONTEXT.md found for Phase {N}.
|
||||
Recommended: run /gsd:discuss-phase {N} first to capture framework preferences.
|
||||
Recommended: run /gsd-discuss-phase {N} first to capture framework preferences.
|
||||
Continuing without user decisions — framework selector will ask all questions.
|
||||
```
|
||||
Continue (non-blocking).
|
||||
@@ -122,7 +122,7 @@ Goal: {phase_goal}
|
||||
|
||||
Parse selector output for: `primary_framework`, `system_type`, `model_provider`, `eval_concerns`, `alternative_framework`.
|
||||
|
||||
**If selector fails or returns empty:** Exit with error — "Framework selection failed. Re-run /gsd:ai-integration-phase {N} or answer the framework question in /gsd:discuss-phase {N} first."
|
||||
**If selector fails or returns empty:** Exit with error — "Framework selection failed. Re-run /gsd-ai-integration-phase {N} or answer the framework question in /gsd-discuss-phase {N} first."
|
||||
|
||||
## 6. Initialize AI-SPEC.md
|
||||
|
||||
@@ -266,7 +266,7 @@ git commit -m "docs({phase_slug}): generate AI-SPEC.md — {primary_framework} +
|
||||
◆ Output: {ai_spec_path}
|
||||
|
||||
Next step:
|
||||
/gsd:plan-phase {N} — planner will consume AI-SPEC.md
|
||||
/gsd-plan-phase {N} — planner will consume AI-SPEC.md
|
||||
```
|
||||
|
||||
</process>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<purpose>
|
||||
Analyze ROADMAP.md phases for dependency relationships before execution. Detect file overlap between phases, semantic API/data-flow dependencies, and suggest `Depends on` entries to prevent merge conflicts during parallel execution by `/gsd:manager`.
|
||||
Analyze ROADMAP.md phases for dependency relationships before execution. Detect file overlap between phases, semantic API/data-flow dependencies, and suggest `Depends on` entries to prevent merge conflicts during parallel execution by `/gsd-manager`.
|
||||
</purpose>
|
||||
|
||||
<process>
|
||||
|
||||
## 1. Load ROADMAP.md
|
||||
|
||||
Read `.planning/ROADMAP.md`. If it does not exist, error: "No ROADMAP.md found — run `/gsd:new-project` first."
|
||||
Read `.planning/ROADMAP.md`. If it does not exist, error: "No ROADMAP.md found — run `/gsd-new-project` first."
|
||||
|
||||
Extract all phases. For each phase capture:
|
||||
- Phase number and name
|
||||
@@ -91,6 +91,6 @@ When writing to ROADMAP.md:
|
||||
- Preserve all other phase content unchanged
|
||||
- Do not reorder phases
|
||||
|
||||
After applying: "ROADMAP.md updated. Run `/gsd:manager` to execute phases in the correct order."
|
||||
After applying: "ROADMAP.md updated. Run `/gsd-manager` to execute phases in the correct order."
|
||||
|
||||
</process>
|
||||
|
||||
@@ -158,7 +158,7 @@ Classify per phase:
|
||||
|
||||
Add to audit YAML: `nyquist: { compliant_phases, partial_phases, missing_phases, overall }`
|
||||
|
||||
Discovery only — never auto-calls `/gsd:validate-phase`.
|
||||
Discovery only — never auto-calls `/gsd-validate-phase`.
|
||||
|
||||
## 6. Aggregate into v{version}-MILESTONE-AUDIT.md
|
||||
|
||||
@@ -231,7 +231,7 @@ All requirements covered. Cross-phase integration verified. E2E flows complete.
|
||||
|
||||
/clear then:
|
||||
|
||||
/gsd:complete-milestone {version}
|
||||
/gsd-complete-milestone {version}
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
|
||||
@@ -264,9 +264,9 @@ All requirements covered. Cross-phase integration verified. E2E flows complete.
|
||||
|
||||
| Phase | VALIDATION.md | Compliant | Action |
|
||||
|-------|---------------|-----------|--------|
|
||||
| {phase} | exists/missing | true/false/partial | `/gsd:validate-phase {N}` |
|
||||
| {phase} | exists/missing | true/false/partial | `/gsd-validate-phase {N}` |
|
||||
|
||||
Phases needing validation: run `/gsd:validate-phase {N}` for each flagged phase.
|
||||
Phases needing validation: run `/gsd-validate-phase {N}` for each flagged phase.
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
|
||||
@@ -276,13 +276,13 @@ Phases needing validation: run `/gsd:validate-phase {N}` for each flagged phase.
|
||||
|
||||
/clear then:
|
||||
|
||||
/gsd:plan-milestone-gaps
|
||||
/gsd-plan-milestone-gaps
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
|
||||
**Also available:**
|
||||
- cat .planning/v{version}-MILESTONE-AUDIT.md — see full report
|
||||
- /gsd:complete-milestone {version} — proceed anyway (accept tech debt)
|
||||
- /gsd-complete-milestone {version} — proceed anyway (accept tech debt)
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
|
||||
@@ -312,13 +312,13 @@ All requirements met. No critical blockers. Accumulated tech debt needs review.
|
||||
|
||||
**A. Complete milestone** — accept debt, track in backlog
|
||||
|
||||
/gsd:complete-milestone {version}
|
||||
/gsd-complete-milestone {version}
|
||||
|
||||
**B. Plan cleanup phase** — address debt before completing
|
||||
|
||||
/clear then:
|
||||
|
||||
/gsd:plan-milestone-gaps
|
||||
/gsd-plan-milestone-gaps
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
</offer_next>
|
||||
|
||||
@@ -76,9 +76,9 @@ Present the audit report:
|
||||
|
||||
## Recommended Actions
|
||||
|
||||
1. **Close stale items:** `/gsd:verify-work {phase}` — mark stale tests as resolved
|
||||
1. **Close stale items:** `/gsd-verify-work {phase}` — mark stale tests as resolved
|
||||
2. **Run active tests:** Human UAT test plan below
|
||||
3. **When prerequisites met:** Retest blocked items with `/gsd:verify-work {phase}`
|
||||
3. **When prerequisites met:** Retest blocked items with `/gsd-verify-work {phase}`
|
||||
```
|
||||
</step>
|
||||
|
||||
|
||||
@@ -54,8 +54,8 @@ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
||||
|
||||
Parse JSON for: `milestone_version`, `milestone_name`, `phase_count`, `completed_phases`, `roadmap_exists`, `state_exists`, `commit_docs`.
|
||||
|
||||
**If `roadmap_exists` is false:** Error — "No ROADMAP.md found. Run `/gsd:new-milestone` first."
|
||||
**If `state_exists` is false:** Error — "No STATE.md found. Run `/gsd:new-milestone` first."
|
||||
**If `roadmap_exists` is false:** Error — "No ROADMAP.md found. Run `/gsd-new-milestone` first."
|
||||
**If `state_exists` is false:** Error — "No STATE.md found. Run `/gsd-new-milestone` first."
|
||||
|
||||
Display startup banner:
|
||||
|
||||
@@ -537,7 +537,7 @@ Read and execute: `$HOME/.claude/get-shit-done/references/autonomous-smart-discu
|
||||
Completed through phase ${TO_PHASE} as requested.
|
||||
Remaining phases were not executed.
|
||||
|
||||
Resume with: /gsd:autonomous --from ${next_incomplete_phase}
|
||||
Resume with: /gsd-autonomous --from ${next_incomplete_phase}
|
||||
```
|
||||
|
||||
Proceed directly to lifecycle step (which handles partial completion — skips audit/complete/cleanup since not all phases are done). Exit cleanly.
|
||||
@@ -589,7 +589,7 @@ If all phases complete, proceed to lifecycle step.
|
||||
Phase ${ONLY_PHASE}: ${PHASE_NAME} — Done
|
||||
Mode: Single phase (--only)
|
||||
|
||||
Lifecycle skipped — run /gsd:autonomous without --only
|
||||
Lifecycle skipped — run /gsd-autonomous without --only
|
||||
after all phases complete to trigger audit/complete/cleanup.
|
||||
```
|
||||
|
||||
@@ -647,7 +647,7 @@ Ask user via AskUserQuestion:
|
||||
|
||||
On **"Continue anyway"**: Display `Audit ⏭ Gaps accepted — proceeding to complete milestone` and proceed to 5b.
|
||||
|
||||
On **"Stop"**: Go to handle_blocker with "User stopped — audit gaps remain. Run /gsd:audit-milestone to review, then /gsd:complete-milestone when ready."
|
||||
On **"Stop"**: Go to handle_blocker with "User stopped — audit gaps remain. Run /gsd-audit-milestone to review, then /gsd-complete-milestone when ready."
|
||||
|
||||
**If `tech_debt`:**
|
||||
|
||||
@@ -662,7 +662,7 @@ Show the summary, then ask user via AskUserQuestion:
|
||||
|
||||
On **"Continue with tech debt"**: Display `Audit ⏭ Tech debt acknowledged — proceeding to complete milestone` and proceed to 5b.
|
||||
|
||||
On **"Stop"**: Go to handle_blocker with "User stopped — tech debt to address. Run /gsd:audit-milestone to review details."
|
||||
On **"Stop"**: Go to handle_blocker with "User stopped — tech debt to address. Run /gsd-audit-milestone to review details."
|
||||
|
||||
**5b. Complete Milestone**
|
||||
|
||||
@@ -732,7 +732,7 @@ When any phase operation fails or a blocker is detected, present 3 options via A
|
||||
Skipped: {list of skipped phases}
|
||||
Remaining: {list of remaining phases}
|
||||
|
||||
Resume with: /gsd:autonomous ${ONLY_PHASE ? "--only " + ONLY_PHASE : "--from " + next_phase}${TO_PHASE ? " --to " + TO_PHASE : ""}
|
||||
Resume with: /gsd-autonomous ${ONLY_PHASE ? "--only " + ONLY_PHASE : "--from " + next_phase}${TO_PHASE ? " --to " + TO_PHASE : ""}
|
||||
```
|
||||
|
||||
</step>
|
||||
|
||||
@@ -22,14 +22,14 @@ If `todo_count` is 0:
|
||||
```
|
||||
No pending todos.
|
||||
|
||||
Todos are captured during work sessions with /gsd:add-todo.
|
||||
Todos are captured during work sessions with /gsd-add-todo.
|
||||
|
||||
---
|
||||
|
||||
Would you like to:
|
||||
|
||||
1. Continue with current phase (/gsd:progress)
|
||||
2. Add a todo now (/gsd:add-todo)
|
||||
1. Continue with current phase (/gsd-progress)
|
||||
2. Add a todo now (/gsd-add-todo)
|
||||
```
|
||||
|
||||
Exit.
|
||||
@@ -37,8 +37,8 @@ Exit.
|
||||
|
||||
<step name="parse_filter">
|
||||
Check for area filter in arguments:
|
||||
- `/gsd:check-todos` → show all
|
||||
- `/gsd:check-todos api` → filter to area:api only
|
||||
- `/gsd-check-todos` → show all
|
||||
- `/gsd-check-todos api` → filter to area:api only
|
||||
</step>
|
||||
|
||||
<step name="list_todos">
|
||||
@@ -56,7 +56,7 @@ Pending Todos:
|
||||
---
|
||||
|
||||
Reply with a number to view details, or:
|
||||
- `/gsd:check-todos [area]` to filter by area
|
||||
- `/gsd-check-todos [area]` to filter by area
|
||||
- `q` to exit
|
||||
```
|
||||
|
||||
@@ -120,7 +120,7 @@ Use AskUserQuestion:
|
||||
- question: "What would you like to do with this todo?"
|
||||
- options:
|
||||
- "Work on it now" — move to done, start working
|
||||
- "Create a phase" — /gsd:add-phase with this scope
|
||||
- "Create a phase" — /gsd-add-phase with this scope
|
||||
- "Brainstorm approach" — think through before deciding
|
||||
- "Put it back" — return to list
|
||||
</step>
|
||||
@@ -136,7 +136,7 @@ Update STATE.md todo count. Present problem/solution context. Begin work or ask
|
||||
Note todo reference in phase planning notes. Keep in pending. Return to list or exit.
|
||||
|
||||
**Create a phase:**
|
||||
Display: `/gsd:add-phase [description from todo]`
|
||||
Display: `/gsd-add-phase [description from todo]`
|
||||
Keep in pending. User runs command in fresh context.
|
||||
|
||||
**Brainstorm approach:**
|
||||
|
||||
@@ -93,7 +93,7 @@ Verify that REVIEW.md exists:
|
||||
|
||||
```bash
|
||||
if [ ! -f "${REVIEW_PATH}" ]; then
|
||||
echo "Error: No REVIEW.md found for Phase ${PHASE_ARG}. Run /gsd:code-review ${PHASE_ARG} first."
|
||||
echo "Error: No REVIEW.md found for Phase ${PHASE_ARG}. Run /gsd-code-review ${PHASE_ARG} first."
|
||||
exit 1
|
||||
fi
|
||||
```
|
||||
@@ -221,7 +221,7 @@ Check if FIX_REPORT_PATH exists:
|
||||
Either way:
|
||||
```
|
||||
Some fix commits may already exist in git history — check git log for fix(${PADDED_PHASE}) commits.
|
||||
You can retry with /gsd:code-review-fix ${PHASE_ARG}.
|
||||
You can retry with /gsd-code-review-fix ${PHASE_ARG}.
|
||||
```
|
||||
|
||||
Exit workflow (skip auto loop).
|
||||
@@ -394,7 +394,7 @@ if [ ! -f "${FIX_REPORT_PATH}" ]; then
|
||||
echo "The fixer agent may have failed before completing."
|
||||
echo "Check git log for any fix(${PADDED_PHASE}) commits."
|
||||
echo ""
|
||||
echo "Retry: /gsd:code-review-fix ${PHASE_ARG}"
|
||||
echo "Retry: /gsd-code-review-fix ${PHASE_ARG}"
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════════════════"
|
||||
exit 1
|
||||
@@ -451,7 +451,7 @@ if [ "$FIX_STATUS" = "all_fixed" ]; then
|
||||
echo "Full report: ${FIX_REPORT_PATH}"
|
||||
echo ""
|
||||
echo "Next step:"
|
||||
echo " /gsd:verify-work — Verify phase completion"
|
||||
echo " /gsd-verify-work — Verify phase completion"
|
||||
echo ""
|
||||
fi
|
||||
```
|
||||
@@ -465,8 +465,8 @@ if [ "$FIX_STATUS" = "partial" ] || [ "$FIX_STATUS" = "none_fixed" ]; then
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo " cat ${FIX_REPORT_PATH} — View fix report"
|
||||
echo " /gsd:code-review ${PHASE_NUMBER} — Re-review code"
|
||||
echo " /gsd:verify-work — Verify phase completion"
|
||||
echo " /gsd-code-review ${PHASE_NUMBER} — Re-review code"
|
||||
echo " /gsd-verify-work — Verify phase completion"
|
||||
echo ""
|
||||
fi
|
||||
```
|
||||
|
||||
@@ -227,7 +227,7 @@ if [ ${#REVIEW_FILES[@]} -eq 0 ]; then
|
||||
else
|
||||
# Fail closed — no reliable diff base found. Do not use arbitrary HEAD~N.
|
||||
echo "Warning: No phase commits found for '${PADDED_PHASE}'. Cannot determine reliable diff scope."
|
||||
echo "Use --files flag to specify files explicitly: /gsd:code-review ${PHASE_ARG} --files=file1,file2,..."
|
||||
echo "Use --files flag to specify files explicitly: /gsd-code-review ${PHASE_ARG} --files=file1,file2,..."
|
||||
fi
|
||||
fi
|
||||
```
|
||||
@@ -372,7 +372,7 @@ If the Task() call fails (agent error, timeout, or exception):
|
||||
```
|
||||
Error: Code review agent failed: ${error_message}
|
||||
|
||||
No REVIEW.md created. You can retry with /gsd:code-review ${PHASE_ARG} or check agent logs.
|
||||
No REVIEW.md created. You can retry with /gsd-code-review ${PHASE_ARG} or check agent logs.
|
||||
```
|
||||
|
||||
Do NOT proceed to commit_review step. Do NOT create a partial or empty REVIEW.md. Exit workflow.
|
||||
@@ -405,7 +405,7 @@ if [ -f "${REVIEW_PATH}" ]; then
|
||||
fi
|
||||
else
|
||||
echo "Warning: Agent completed but REVIEW.md not found at ${REVIEW_PATH}. This may indicate an agent issue."
|
||||
echo "No REVIEW.md to commit. Please retry with /gsd:code-review ${PHASE_ARG}"
|
||||
echo "No REVIEW.md to commit. Please retry with /gsd-code-review ${PHASE_ARG}"
|
||||
fi
|
||||
```
|
||||
</step>
|
||||
@@ -469,7 +469,7 @@ If total findings > 0:
|
||||
Full report: ${REVIEW_PATH}
|
||||
|
||||
Next steps:
|
||||
/gsd:code-review-fix ${PHASE_NUMBER} — Auto-fix issues
|
||||
/gsd-code-review-fix ${PHASE_NUMBER} — Auto-fix issues
|
||||
cat ${REVIEW_PATH} — View full report
|
||||
```
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ Display the full audit report to the user.
|
||||
Then ask:
|
||||
```
|
||||
These items are open. Choose an action:
|
||||
[R] Resolve — stop and fix items, then re-run /gsd:complete-milestone
|
||||
[R] Resolve — stop and fix items, then re-run /gsd-complete-milestone
|
||||
[A] Acknowledge all — document as deferred and proceed with close
|
||||
[C] Cancel — exit without closing
|
||||
```
|
||||
@@ -124,7 +124,7 @@ Requirements: {N}/{M} v1 requirements checked off
|
||||
|
||||
MUST present 3 options:
|
||||
1. **Proceed anyway** — mark milestone complete with known gaps
|
||||
2. **Run audit first** — `/gsd:audit-milestone` to assess gap severity
|
||||
2. **Run audit first** — `/gsd-audit-milestone` to assess gap severity
|
||||
3. **Abort** — return to development
|
||||
|
||||
If user selects "Proceed anyway": note incomplete requirements in MILESTONES.md under `### Known Gaps` with REQ-IDs and descriptions.
|
||||
@@ -441,7 +441,7 @@ mv .planning/phases/{phase-dir} .planning/milestones/v[X.Y]-phases/
|
||||
```
|
||||
Verify: `✅ Phase directories archived to .planning/milestones/v[X.Y]-phases/`
|
||||
|
||||
If "Skip": Phase directories remain in `.planning/phases/` as raw execution history. Use `/gsd:cleanup` later to archive retroactively.
|
||||
If "Skip": Phase directories remain in `.planning/phases/` as raw execution history. Use `/gsd-cleanup` later to archive retroactively.
|
||||
|
||||
After archival, the AI still handles:
|
||||
- Reorganizing ROADMAP.md with milestone grouping (requires judgment) — overwrite in place after extracting Backlog section
|
||||
@@ -786,7 +786,7 @@ Tag: v[X.Y]
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:new-milestone`
|
||||
`/gsd-new-milestone`
|
||||
|
||||
---
|
||||
```
|
||||
@@ -842,6 +842,6 @@ Milestone completion is successful when:
|
||||
- [ ] Known gaps recorded in MILESTONES.md if user proceeded with incomplete requirements
|
||||
- [ ] RETROSPECTIVE.md updated with milestone section
|
||||
- [ ] Cross-milestone trends updated
|
||||
- [ ] User knows next step (/gsd:new-milestone)
|
||||
- [ ] User knows next step (/gsd-new-milestone)
|
||||
|
||||
</success_criteria>
|
||||
|
||||
@@ -220,7 +220,7 @@ Agents only diagnose—plan-phase --gaps handles fixes (no fix application).
|
||||
|
||||
**Agent times out:**
|
||||
- Check DEBUG-{slug}.md for partial progress
|
||||
- Can resume with /gsd:debug
|
||||
- Can resume with /gsd-debug
|
||||
|
||||
**All agents fail:**
|
||||
- Something systemic (permissions, git, etc.)
|
||||
|
||||
@@ -4,7 +4,7 @@ Produces DISCOVERY.md (for Level 2-3) that informs PLAN.md creation.
|
||||
|
||||
Called from plan-phase.md's mandatory_discovery step with a depth parameter.
|
||||
|
||||
NOTE: For comprehensive ecosystem research ("how do experts build this"), use /gsd:research-phase instead, which produces RESEARCH.md.
|
||||
NOTE: For comprehensive ecosystem research ("how do experts build this"), use /gsd-research-phase instead, which produces RESEARCH.md.
|
||||
</purpose>
|
||||
|
||||
<depth_levels>
|
||||
@@ -254,8 +254,8 @@ Confidence: [level]
|
||||
|
||||
What's next?
|
||||
|
||||
1. Discuss phase context (/gsd:discuss-phase [current-phase])
|
||||
2. Create phase plan (/gsd:plan-phase [current-phase])
|
||||
1. Discuss phase context (/gsd-discuss-phase [current-phase])
|
||||
2. Create phase plan (/gsd-plan-phase [current-phase])
|
||||
3. Refine discovery (dig deeper)
|
||||
4. Review discovery
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ Parse JSON for: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phas
|
||||
```
|
||||
Phase [X] not found in roadmap.
|
||||
|
||||
Use /gsd:progress to see available phases.
|
||||
Use /gsd-progress to see available phases.
|
||||
```
|
||||
Exit workflow.
|
||||
|
||||
@@ -599,13 +599,13 @@ Created: .planning/phases/${PADDED_PHASE}-${SLUG}/${PADDED_PHASE}-CONTEXT.md
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:plan-phase ${PHASE}`
|
||||
`/gsd-plan-phase ${PHASE}`
|
||||
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:plan-phase ${PHASE} --skip-research` — plan without research
|
||||
- `/gsd:ui-phase ${PHASE}` — generate UI design contract (if frontend work)
|
||||
- `/gsd-plan-phase ${PHASE} --skip-research` — plan without research
|
||||
- `/gsd-ui-phase ${PHASE}` — generate UI design contract (if frontend work)
|
||||
- Review/edit CONTEXT.md before continuing
|
||||
|
||||
---
|
||||
|
||||
@@ -5,7 +5,7 @@ Power user mode for discuss-phase. Generates ALL questions upfront into a JSON s
|
||||
</purpose>
|
||||
|
||||
<trigger>
|
||||
This workflow executes when `--power` flag is present in ARGUMENTS to `/gsd:discuss-phase`.
|
||||
This workflow executes when `--power` flag is present in ARGUMENTS to `/gsd-discuss-phase`.
|
||||
|
||||
The caller (discuss-phase.md) has already:
|
||||
- Validated the phase exists
|
||||
@@ -265,7 +265,7 @@ Process all answered questions from the JSON file and generate CONTEXT.md.
|
||||
```
|
||||
Warning: Only {answered}/{total} questions answered ({pct}%).
|
||||
CONTEXT.md generated with available decisions. Unanswered questions listed as deferred.
|
||||
Consider running /gsd:discuss-phase {N} again to refine before planning.
|
||||
Consider running /gsd-discuss-phase {N} again to refine before planning.
|
||||
```
|
||||
|
||||
7. Print completion message:
|
||||
@@ -275,7 +275,7 @@ CONTEXT.md written: {phase_dir}/{padded_phase}-CONTEXT.md
|
||||
Decisions captured: {answered}
|
||||
Deferred: {remaining}
|
||||
|
||||
Next step: /gsd:plan-phase {N}
|
||||
Next step: /gsd-plan-phase {N}
|
||||
```
|
||||
</step>
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ Phase: "API documentation" → Structure/navigation, Code examples depth,
|
||||
|
||||
<process>
|
||||
|
||||
**Express path available:** If you already have a PRD or acceptance criteria document, use `/gsd:plan-phase {phase} --prd path/to/prd.md` to skip this discussion and go straight to planning.
|
||||
**Express path available:** If you already have a PRD or acceptance criteria document, use `/gsd-plan-phase {phase} --prd path/to/prd.md` to skip this discussion and go straight to planning.
|
||||
|
||||
<step name="initialize" priority="first">
|
||||
Phase number from argument (required).
|
||||
@@ -121,7 +121,7 @@ Parse JSON for: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phas
|
||||
**If `phase_found` is false:**
|
||||
```
|
||||
Phase [X] not found in roadmap.
|
||||
Use /gsd:progress ${GSD_WS} to see available phases.
|
||||
Use /gsd-progress ${GSD_WS} to see available phases.
|
||||
```
|
||||
Exit workflow.
|
||||
|
||||
@@ -172,7 +172,7 @@ Write these answers inline before continuing. If a blocking anti-pattern cannot
|
||||
</step>
|
||||
|
||||
<step name="check_spec">
|
||||
Check if a SPEC.md (from `/gsd:spec-phase`) exists for this phase. SPEC.md locks requirements before implementation decisions.
|
||||
Check if a SPEC.md (from `/gsd-spec-phase`) exists for this phase. SPEC.md locks requirements before implementation decisions.
|
||||
|
||||
```bash
|
||||
ls ${phase_dir}/*-SPEC.md 2>/dev/null | grep -v AI-SPEC | head -1 || true
|
||||
@@ -187,7 +187,7 @@ ls ${phase_dir}/*-SPEC.md 2>/dev/null | grep -v AI-SPEC | head -1 || true
|
||||
|
||||
**If no SPEC.md is found:** Continue with `spec_loaded = false`.
|
||||
|
||||
**Note:** SPEC.md files named `AI-SPEC.md` (from `/gsd:ai-integration-phase`) are excluded — different purpose.
|
||||
**Note:** SPEC.md files named `AI-SPEC.md` (from `/gsd-ai-integration-phase`) are excluded — different purpose.
|
||||
</step>
|
||||
|
||||
<step name="check_existing">
|
||||
@@ -252,7 +252,7 @@ RAW_SKETCHES=$(ls .planning/sketches/MANIFEST.md 2>/dev/null)
|
||||
|
||||
If findings skills exist, read SKILL.md and reference files; extract validated patterns, landmines, constraints, design decisions. Add them to `<prior_decisions>`.
|
||||
|
||||
If raw spikes/sketches exist but no findings skill, note: `⚠ Unpackaged spikes/sketches detected — run /gsd:spike-wrap-up or /gsd:sketch-wrap-up to make findings available.`
|
||||
If raw spikes/sketches exist but no findings skill, note: `⚠ Unpackaged spikes/sketches detected — run /gsd-spike-wrap-up or /gsd-sketch-wrap-up to make findings available.`
|
||||
|
||||
Build internal `<prior_decisions>` with sections for Project-Level (from PROJECT.md / REQUIREMENTS.md), From Prior Phases (per-phase decisions), and From Spike/Sketch Findings (validated patterns, landmines, design decisions).
|
||||
|
||||
@@ -418,11 +418,11 @@ Created: .planning/phases/${PADDED_PHASE}-${SLUG}/${PADDED_PHASE}-CONTEXT.md
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:plan-phase ${PHASE} ${GSD_WS}`
|
||||
`/gsd-plan-phase ${PHASE} ${GSD_WS}`
|
||||
|
||||
---
|
||||
|
||||
**Also available:** `--chain` for auto plan+execute after; `/gsd:plan-phase ${PHASE} --skip-research ${GSD_WS}` to plan without research; `/gsd:ui-phase ${PHASE} ${GSD_WS}` for UI design contracts; review/edit CONTEXT.md before continuing.
|
||||
**Also available:** `--chain` for auto plan+execute after; `/gsd-plan-phase ${PHASE} --skip-research ${GSD_WS}` to plan without research; `/gsd-ui-phase ${PHASE} ${GSD_WS}` for UI design contracts; review/edit CONTEXT.md before continuing.
|
||||
```
|
||||
</step>
|
||||
|
||||
|
||||
@@ -75,22 +75,22 @@
|
||||
|
||||
/clear then:
|
||||
|
||||
Next: /gsd:discuss-phase ${NEXT_PHASE} ${WAS_CHAIN ? "--chain" : "--auto"} ${GSD_WS}
|
||||
Next: /gsd-discuss-phase ${NEXT_PHASE} ${WAS_CHAIN ? "--chain" : "--auto"} ${GSD_WS}
|
||||
```
|
||||
- **PLANNING COMPLETE** → Planning done, execution didn't complete:
|
||||
```
|
||||
Auto-advance partial: Planning complete, execution did not finish.
|
||||
Continue: /gsd:execute-phase ${PHASE} ${GSD_WS}
|
||||
Continue: /gsd-execute-phase ${PHASE} ${GSD_WS}
|
||||
```
|
||||
- **PLANNING INCONCLUSIVE / CHECKPOINT** → Stop chain:
|
||||
```
|
||||
Auto-advance stopped: Planning needs input.
|
||||
Continue: /gsd:plan-phase ${PHASE} ${GSD_WS}
|
||||
Continue: /gsd-plan-phase ${PHASE} ${GSD_WS}
|
||||
```
|
||||
- **GAPS FOUND** → Stop chain:
|
||||
```
|
||||
Auto-advance stopped: Gaps found during execution.
|
||||
Continue: /gsd:plan-phase ${PHASE} --gaps ${GSD_WS}
|
||||
Continue: /gsd-plan-phase ${PHASE} --gaps ${GSD_WS}
|
||||
```
|
||||
|
||||
7. **If none of `--auto`, `--chain`, nor config enabled:** route to
|
||||
|
||||
@@ -17,7 +17,7 @@ Claude App cannot forward TUI menu selections back to the host.
|
||||
## Activation
|
||||
|
||||
- Per-session: pass `--text` flag to any command (e.g.,
|
||||
`/gsd:discuss-phase --text`)
|
||||
`/gsd-discuss-phase --text`)
|
||||
- Per-project: `gsd-sdk query config-set workflow.text_mode true`
|
||||
|
||||
Text mode applies to ALL workflows in the session, not just discuss-phase.
|
||||
|
||||
@@ -39,35 +39,35 @@ Evaluate `$ARGUMENTS` against these routing rules. Apply the **first matching**
|
||||
|
||||
| If the text describes... | Route to | Why |
|
||||
|--------------------------|----------|-----|
|
||||
| Starting a new project, "set up", "initialize" | `/gsd:new-project` | Needs full project initialization |
|
||||
| Mapping or analyzing an existing codebase | `/gsd:map-codebase` | Codebase discovery |
|
||||
| A bug, error, crash, failure, or something broken | `/gsd:debug` | Needs systematic investigation |
|
||||
| Spiking, "test if", "will this work", "experiment", "prove this out", validate feasibility | `/gsd:spike` | Throwaway experiment to validate feasibility |
|
||||
| Sketching, "mockup", "what would this look like", "prototype the UI", "design this", explore visual direction | `/gsd:sketch` | Throwaway HTML mockups to explore design |
|
||||
| Wrapping up spikes, "package the spikes", "consolidate spike findings" | `/gsd:spike-wrap-up` | Package spike findings into reusable skill |
|
||||
| Wrapping up sketches, "package the designs", "consolidate sketch findings" | `/gsd:sketch-wrap-up` | Package sketch findings into reusable skill |
|
||||
| Exploring, researching, comparing, or "how does X work" | `/gsd:research-phase` | Domain research before planning |
|
||||
| Discussing vision, "how should X look", brainstorming | `/gsd:discuss-phase` | Needs context gathering |
|
||||
| A complex task: refactoring, migration, multi-file architecture, system redesign | `/gsd:add-phase` | Needs a full phase with plan/build cycle |
|
||||
| Planning a specific phase or "plan phase N" | `/gsd:plan-phase` | Direct planning request |
|
||||
| Executing a phase or "build phase N", "run phase N" | `/gsd:execute-phase` | Direct execution request |
|
||||
| Running all remaining phases automatically | `/gsd:autonomous` | Full autonomous execution |
|
||||
| A review or quality concern about existing work | `/gsd:verify-work` | Needs verification |
|
||||
| Checking progress, status, "where am I" | `/gsd:progress` | Status check |
|
||||
| Resuming work, "pick up where I left off" | `/gsd:resume-work` | Session restoration |
|
||||
| A note, idea, or "remember to..." | `/gsd:add-todo` | Capture for later |
|
||||
| Adding tests, "write tests", "test coverage" | `/gsd:add-tests` | Test generation |
|
||||
| Completing a milestone, shipping, releasing | `/gsd:complete-milestone` | Milestone lifecycle |
|
||||
| A specific, actionable, small task (add feature, fix typo, update config) | `/gsd:quick` | Self-contained, single executor |
|
||||
| Starting a new project, "set up", "initialize" | `/gsd-new-project` | Needs full project initialization |
|
||||
| Mapping or analyzing an existing codebase | `/gsd-map-codebase` | Codebase discovery |
|
||||
| A bug, error, crash, failure, or something broken | `/gsd-debug` | Needs systematic investigation |
|
||||
| Spiking, "test if", "will this work", "experiment", "prove this out", validate feasibility | `/gsd-spike` | Throwaway experiment to validate feasibility |
|
||||
| Sketching, "mockup", "what would this look like", "prototype the UI", "design this", explore visual direction | `/gsd-sketch` | Throwaway HTML mockups to explore design |
|
||||
| Wrapping up spikes, "package the spikes", "consolidate spike findings" | `/gsd-spike-wrap-up` | Package spike findings into reusable skill |
|
||||
| Wrapping up sketches, "package the designs", "consolidate sketch findings" | `/gsd-sketch-wrap-up` | Package sketch findings into reusable skill |
|
||||
| Exploring, researching, comparing, or "how does X work" | `/gsd-research-phase` | Domain research before planning |
|
||||
| Discussing vision, "how should X look", brainstorming | `/gsd-discuss-phase` | Needs context gathering |
|
||||
| A complex task: refactoring, migration, multi-file architecture, system redesign | `/gsd-add-phase` | Needs a full phase with plan/build cycle |
|
||||
| Planning a specific phase or "plan phase N" | `/gsd-plan-phase` | Direct planning request |
|
||||
| Executing a phase or "build phase N", "run phase N" | `/gsd-execute-phase` | Direct execution request |
|
||||
| Running all remaining phases automatically | `/gsd-autonomous` | Full autonomous execution |
|
||||
| A review or quality concern about existing work | `/gsd-verify-work` | Needs verification |
|
||||
| Checking progress, status, "where am I" | `/gsd-progress` | Status check |
|
||||
| Resuming work, "pick up where I left off" | `/gsd-resume-work` | Session restoration |
|
||||
| A note, idea, or "remember to..." | `/gsd-add-todo` | Capture for later |
|
||||
| Adding tests, "write tests", "test coverage" | `/gsd-add-tests` | Test generation |
|
||||
| Completing a milestone, shipping, releasing | `/gsd-complete-milestone` | Milestone lifecycle |
|
||||
| A specific, actionable, small task (add feature, fix typo, update config) | `/gsd-quick` | Self-contained, single executor |
|
||||
|
||||
**Requires `.planning/` directory:** All routes except `/gsd:new-project`, `/gsd:map-codebase`, `/gsd:spike`, `/gsd:sketch`, `/gsd:help`, and `/gsd:join-discord`. If the project doesn't exist and the route requires it, suggest `/gsd:new-project` first.
|
||||
**Requires `.planning/` directory:** All routes except `/gsd-new-project`, `/gsd-map-codebase`, `/gsd-spike`, `/gsd-sketch`, `/gsd-help`, and `/gsd-join-discord`. If the project doesn't exist and the route requires it, suggest `/gsd-new-project` first.
|
||||
|
||||
**Ambiguity handling:** If the text could reasonably match multiple routes, ask the user via AskUserQuestion with the top 2-3 options. For example:
|
||||
|
||||
```
|
||||
"Refactor the authentication system" could be:
|
||||
1. /gsd:add-phase — Full planning cycle (recommended for multi-file refactors)
|
||||
2. /gsd:quick — Quick execution (if scope is small and clear)
|
||||
1. /gsd-add-phase — Full planning cycle (recommended for multi-file refactors)
|
||||
2. /gsd-quick — Quick execution (if scope is small and clear)
|
||||
|
||||
Which approach fits better?
|
||||
```
|
||||
|
||||
@@ -988,8 +988,8 @@ Failed claims:
|
||||
|
||||
Display note:
|
||||
```
|
||||
To fix failures automatically: /gsd:docs-update (runs generation + fix loop)
|
||||
To regenerate all docs from scratch: /gsd:docs-update --force
|
||||
To fix failures automatically: /gsd-docs-update (runs generation + fix loop)
|
||||
To regenerate all docs from scratch: /gsd-docs-update --force
|
||||
```
|
||||
|
||||
Clean up temp files: remove `.planning/tmp/verify-*.json` files.
|
||||
@@ -1024,7 +1024,7 @@ This would expose credentials if committed.
|
||||
Action required:
|
||||
1. Review the flagged lines above
|
||||
2. Remove any real secrets from the doc files
|
||||
3. Re-run /gsd:docs-update to regenerate clean docs
|
||||
3. Re-run /gsd-docs-update to regenerate clean docs
|
||||
```
|
||||
|
||||
Then confirm with AskUserQuestion:
|
||||
@@ -1126,7 +1126,7 @@ All generated files committed.
|
||||
Remind the user they can fact-check generated docs:
|
||||
|
||||
```
|
||||
Run `/gsd:docs-update --verify-only` to fact-check generated docs against the codebase.
|
||||
Run `/gsd-docs-update --verify-only` to fact-check generated docs against the codebase.
|
||||
```
|
||||
|
||||
End workflow.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<purpose>
|
||||
Retroactive audit of an implemented AI phase's evaluation coverage. Standalone command that works on any GSD-managed AI phase. Produces a scored EVAL-REVIEW.md with gap analysis and remediation plan.
|
||||
|
||||
Use after /gsd:execute-phase to verify that the evaluation strategy from AI-SPEC.md was actually implemented. Mirrors the pattern of /gsd:ui-review and /gsd:validate-phase.
|
||||
Use after /gsd-execute-phase to verify that the evaluation strategy from AI-SPEC.md was actually implemented. Mirrors the pattern of /gsd-ui-review and /gsd-validate-phase.
|
||||
</purpose>
|
||||
|
||||
<required_reading>
|
||||
@@ -40,7 +40,7 @@ EVAL_REVIEW_FILE=$(ls "${PHASE_DIR}"/*-EVAL-REVIEW.md 2>/dev/null | head -1)
|
||||
|
||||
**State A** — AI-SPEC.md + SUMMARY.md exist: Full audit against spec
|
||||
**State B** — SUMMARY.md exists, no AI-SPEC.md: Audit against general best practices
|
||||
**State C** — No SUMMARY.md: Exit — "Phase {N} not executed. Run /gsd:execute-phase {N} first."
|
||||
**State C** — No SUMMARY.md: Exit — "Phase {N} not executed. Run /gsd-execute-phase {N} first."
|
||||
|
||||
|
||||
**Text mode (`workflow.text_mode: true` in config or `--text` flag):** Set `TEXT_MODE=true` if `--text` is present in `$ARGUMENTS` OR `text_mode` from init JSON is `true`. When TEXT_MODE is active, replace every `AskUserQuestion` call with a plain-text numbered list and ask the user to type their choice number. This is required for non-Claude runtimes (OpenAI Codex, Gemini CLI, etc.) where `AskUserQuestion` is not available.
|
||||
@@ -58,7 +58,7 @@ If "Re-audit": continue.
|
||||
```
|
||||
No AI-SPEC.md found for Phase {N}.
|
||||
Audit will evaluate against general AI eval best practices rather than a phase-specific plan.
|
||||
Consider running /gsd:ai-integration-phase {N} before implementation next time.
|
||||
Consider running /gsd-ai-integration-phase {N} before implementation next time.
|
||||
```
|
||||
Continue (non-blocking).
|
||||
|
||||
@@ -124,10 +124,10 @@ Read the written EVAL-REVIEW.md. Extract:
|
||||
◆ Output: {eval_review_path}
|
||||
|
||||
{If PRODUCTION READY:}
|
||||
Next step: /gsd:plan-phase (next phase) or deploy
|
||||
Next step: /gsd-plan-phase (next phase) or deploy
|
||||
|
||||
{If NEEDS WORK:}
|
||||
Address critical gaps in EVAL-REVIEW.md, then re-run /gsd:eval-review {N}
|
||||
Address critical gaps in EVAL-REVIEW.md, then re-run /gsd-eval-review {N}
|
||||
|
||||
{If SIGNIFICANT GAPS or NOT IMPLEMENTED:}
|
||||
Review AI-SPEC.md evaluation plan. Critical eval dimensions are not implemented.
|
||||
|
||||
@@ -344,7 +344,7 @@ between a large tool_result and the next assistant turn (seen on Claude Code
|
||||
+ Opus 4.7 at ~200K+ cache_read). To keep the stream warm, emit short
|
||||
assistant-text heartbeats — **no tool call, just a literal line** — at every
|
||||
wave and plan boundary. Each heartbeat MUST start with `[checkpoint]` so
|
||||
tooling and `/gsd:manager`'s background-completion handler can grep partial
|
||||
tooling and `/gsd-manager`'s background-completion handler can grep partial
|
||||
transcripts. `{P}/{Q}` is the phase-wide completed/total plans counter and
|
||||
increases monotonically across waves. `{status}` is `complete` (success),
|
||||
`failed` (executor error), or `checkpoint` (human-gate returned).
|
||||
@@ -1017,13 +1017,13 @@ If `SECURITY_CFG` is `true` AND `SECURITY_FILE` is empty (no SECURITY.md yet):
|
||||
Include in the next-steps routing output:
|
||||
```
|
||||
⚠ Security enforcement enabled — run before advancing:
|
||||
/gsd:secure-phase {PHASE} ${GSD_WS}
|
||||
/gsd-secure-phase {PHASE} ${GSD_WS}
|
||||
```
|
||||
|
||||
If `SECURITY_CFG` is `true` AND SECURITY.md exists: check frontmatter `threats_open`. If > 0:
|
||||
```
|
||||
⚠ Security gate: {threats_open} threats open
|
||||
/gsd:secure-phase {PHASE} — resolve before advancing
|
||||
/gsd-secure-phase {PHASE} — resolve before advancing
|
||||
```
|
||||
</step>
|
||||
|
||||
@@ -1093,8 +1093,8 @@ Apply the same "incomplete" filtering rules as earlier:
|
||||
|
||||
Selected wave finished successfully. This phase still has incomplete plans, so phase-level verification and completion were intentionally skipped.
|
||||
|
||||
/gsd:execute-phase {phase} ${GSD_WS} # Continue remaining waves
|
||||
/gsd:execute-phase {phase} --wave {next} ${GSD_WS} # Run the next wave explicitly
|
||||
/gsd-execute-phase {phase} ${GSD_WS} # Continue remaining waves
|
||||
/gsd-execute-phase {phase} --wave {next} ${GSD_WS} # Run the next wave explicitly
|
||||
```
|
||||
|
||||
**If no incomplete plans remain after the selected wave finishes:**
|
||||
@@ -1127,7 +1127,7 @@ REVIEW_STATUS=$(sed -n '/^---$/,/^---$/p' "$REVIEW_FILE" | grep "^status:" | hea
|
||||
If REVIEW_STATUS is not "clean" and not "skipped" and not empty, display:
|
||||
```
|
||||
Code review found issues. Consider running:
|
||||
/gsd:code-review-fix ${PHASE_NUMBER}
|
||||
/gsd-code-review-fix ${PHASE_NUMBER}
|
||||
```
|
||||
|
||||
**Error handling:** If the Skill invocation fails or throws, catch the error, display "Code review encountered an error (non-blocking): {error}" and proceed to next step. Review failures must never block execution.
|
||||
@@ -1379,7 +1379,7 @@ grep "^status:" "$PHASE_DIR"/*-VERIFICATION.md | cut -d: -f2 | tr -d ' '
|
||||
|--------|--------|
|
||||
| `passed` | → update_roadmap |
|
||||
| `human_needed` | Present items for human testing, get approval or feedback |
|
||||
| `gaps_found` | Present gap summary, offer `/gsd:plan-phase {phase} --gaps ${GSD_WS}` |
|
||||
| `gaps_found` | Present gap summary, offer `/gsd-plan-phase {phase} --gaps ${GSD_WS}` |
|
||||
|
||||
**If human_needed:**
|
||||
|
||||
@@ -1434,12 +1434,12 @@ All automated checks passed. {N} items need human testing:
|
||||
|
||||
{From VERIFICATION.md human_verification section}
|
||||
|
||||
Items saved to `{phase_num}-HUMAN-UAT.md` — they will appear in `/gsd:progress` and `/gsd:audit-uat`.
|
||||
Items saved to `{phase_num}-HUMAN-UAT.md` — they will appear in `/gsd-progress` and `/gsd-audit-uat`.
|
||||
|
||||
"approved" → continue | Report issues → gap closure
|
||||
```
|
||||
|
||||
**If user says "approved":** Proceed to `update_roadmap`. The HUMAN-UAT.md file persists with `status: partial` and will surface in future progress checks until the user runs `/gsd:verify-work` on it.
|
||||
**If user says "approved":** Proceed to `update_roadmap`. The HUMAN-UAT.md file persists with `status: partial` and will surface in future progress checks until the user runs `/gsd-verify-work` on it.
|
||||
|
||||
**If user reports issues:** Proceed to gap closure as currently implemented.
|
||||
|
||||
@@ -1458,13 +1458,13 @@ Items saved to `{phase_num}-HUMAN-UAT.md` — they will appear in `/gsd:progress
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:plan-phase {X} --gaps ${GSD_WS}`
|
||||
`/gsd-plan-phase {X} --gaps ${GSD_WS}`
|
||||
|
||||
Also: `cat {phase_dir}/{phase_num}-VERIFICATION.md` — full report
|
||||
Also: `/gsd:verify-work {X} ${GSD_WS}` — manual testing first
|
||||
Also: `/gsd-verify-work {X} ${GSD_WS}` — manual testing first
|
||||
```
|
||||
|
||||
Gap closure cycle: `/gsd:plan-phase {X} --gaps ${GSD_WS}` reads VERIFICATION.md → creates gap plans with `gap_closure: true` → user runs `/gsd:execute-phase {X} --gaps-only ${GSD_WS}` → verifier re-runs.
|
||||
Gap closure cycle: `/gsd-plan-phase {X} --gaps ${GSD_WS}` reads VERIFICATION.md → creates gap plans with `gap_closure: true` → user runs `/gsd-execute-phase {X} --gaps-only ${GSD_WS}` → verifier re-runs.
|
||||
</step>
|
||||
|
||||
<step name="update_roadmap">
|
||||
@@ -1490,7 +1490,7 @@ Extract from result: `next_phase`, `next_phase_name`, `is_last_phase`, `warnings
|
||||
|
||||
{list each warning}
|
||||
|
||||
These items are tracked and will appear in `/gsd:progress` and `/gsd:audit-uat`.
|
||||
These items are tracked and will appear in `/gsd-progress` and `/gsd-audit-uat`.
|
||||
```
|
||||
|
||||
```bash
|
||||
@@ -1577,7 +1577,7 @@ gsd-sdk query commit "docs(phase-{X}): evolve PROJECT.md after phase completion"
|
||||
|
||||
<step name="offer_next">
|
||||
|
||||
**Exception:** If `gaps_found`, the `verify_phase_goal` step already presents the gap-closure path (`/gsd:plan-phase {X} --gaps`). No additional routing needed — skip auto-advance.
|
||||
**Exception:** If `gaps_found`, the `verify_phase_goal` step already presents the gap-closure path (`/gsd-plan-phase {X} --gaps`). No additional routing needed — skip auto-advance.
|
||||
|
||||
**No-transition check (spawned by auto-advance chain):**
|
||||
|
||||
@@ -1640,10 +1640,10 @@ If CONTEXT.md does **not** exist for the next phase, present:
|
||||
```
|
||||
## ✓ Phase {X}: {Name} Complete
|
||||
|
||||
/gsd:progress ${GSD_WS} — see updated roadmap
|
||||
/gsd:discuss-phase {next} ${GSD_WS} — start here: discuss next phase before planning ← recommended
|
||||
/gsd:plan-phase {next} ${GSD_WS} — plan next phase (skip discuss)
|
||||
/gsd:execute-phase {next} ${GSD_WS} — execute next phase (skip discuss and plan)
|
||||
/gsd-progress ${GSD_WS} — see updated roadmap
|
||||
/gsd-discuss-phase {next} ${GSD_WS} — start here: discuss next phase before planning ← recommended
|
||||
/gsd-plan-phase {next} ${GSD_WS} — plan next phase (skip discuss)
|
||||
/gsd-execute-phase {next} ${GSD_WS} — execute next phase (skip discuss and plan)
|
||||
```
|
||||
|
||||
If CONTEXT.md **exists** for the next phase, present:
|
||||
@@ -1651,10 +1651,10 @@ If CONTEXT.md **exists** for the next phase, present:
|
||||
```
|
||||
## ✓ Phase {X}: {Name} Complete
|
||||
|
||||
/gsd:progress ${GSD_WS} — see updated roadmap
|
||||
/gsd:plan-phase {next} ${GSD_WS} — start here: plan next phase (CONTEXT.md already present) ← recommended
|
||||
/gsd:discuss-phase {next} ${GSD_WS} — re-discuss next phase
|
||||
/gsd:execute-phase {next} ${GSD_WS} — execute next phase (skip planning)
|
||||
/gsd-progress ${GSD_WS} — see updated roadmap
|
||||
/gsd-plan-phase {next} ${GSD_WS} — start here: plan next phase (CONTEXT.md already present) ← recommended
|
||||
/gsd-discuss-phase {next} ${GSD_WS} — re-discuss next phase
|
||||
/gsd-execute-phase {next} ${GSD_WS} — execute next phase (skip planning)
|
||||
```
|
||||
|
||||
Only suggest the commands listed above. Do not invent or hallucinate command names.
|
||||
@@ -1681,7 +1681,7 @@ For 1M+ context models, consider:
|
||||
</failure_handling>
|
||||
|
||||
<resumption>
|
||||
Re-run `/gsd:execute-phase {phase}` → discover_plans finds completed SUMMARYs → skips them → resumes from first incomplete plan → continues wave execution.
|
||||
Re-run `/gsd-execute-phase {phase}` → discover_plans finds completed SUMMARYs → skips them → resumes from first incomplete plan → continues wave execution.
|
||||
|
||||
STATE.md tracks: last completed plan, current wave, pending checkpoints.
|
||||
</resumption>
|
||||
|
||||
@@ -34,7 +34,7 @@ New migrations:
|
||||
New route modules:
|
||||
- {path}
|
||||
|
||||
Run /gsd:map-codebase --paths {affected_paths} to refresh planning context.
|
||||
Run /gsd-map-codebase --paths {affected_paths} to refresh planning context.
|
||||
```
|
||||
|
||||
Then continue to `verify_phase_goal`. Do NOT block. Do NOT spawn anything.
|
||||
|
||||
@@ -472,9 +472,9 @@ If `USER_SETUP_CREATED=true`: display `⚠️ USER SETUP REQUIRED` with path + e
|
||||
|
||||
| Condition | Route | Action |
|
||||
|-----------|-------|--------|
|
||||
| summaries < plans | **A: More plans** | Find next PLAN without SUMMARY. Yolo: auto-continue. Interactive: show next plan, suggest `/gsd:execute-phase {phase}` + `/gsd:verify-work`. STOP here. |
|
||||
| summaries = plans, current < highest phase | **B: Phase done** | Show completion, suggest `/gsd:plan-phase {Z+1}` + `/gsd:verify-work {Z}` + `/gsd:discuss-phase {Z+1}` |
|
||||
| summaries = plans, current = highest phase | **C: Milestone done** | Show banner, suggest `/gsd:complete-milestone` + `/gsd:verify-work` + `/gsd:add-phase` |
|
||||
| summaries < plans | **A: More plans** | Find next PLAN without SUMMARY. Yolo: auto-continue. Interactive: show next plan, suggest `/gsd-execute-phase {phase}` + `/gsd-verify-work`. STOP here. |
|
||||
| summaries = plans, current < highest phase | **B: Phase done** | Show completion, suggest `/gsd-plan-phase {Z+1}` + `/gsd-verify-work {Z}` + `/gsd-discuss-phase {Z+1}` |
|
||||
| summaries = plans, current = highest phase | **C: Milestone done** | Show banner, suggest `/gsd-complete-milestone` + `/gsd-verify-work` + `/gsd-add-phase` |
|
||||
|
||||
All routes: `/clear` first for fresh context.
|
||||
</step>
|
||||
|
||||
@@ -82,8 +82,8 @@ When the conversation reaches natural conclusions or the developer signals readi
|
||||
| Research question | `.planning/research/questions.md` (append) | Open questions that need deeper investigation |
|
||||
| Requirement | `REQUIREMENTS.md` (append) | Clear requirements that emerged from discussion |
|
||||
| New phase | `ROADMAP.md` (append) | Scope large enough to warrant its own phase |
|
||||
| Spike | `/gsd:spike` (invoke) | Feasibility uncertainty surfaced — "will this API work?", "can we do X?" |
|
||||
| Sketch | `/gsd:sketch` (invoke) | Design direction unclear — "what should this look like?", "how should this feel?" |
|
||||
| Spike | `/gsd-spike` (invoke) | Feasibility uncertainty surfaced — "will this API work?", "can we do X?" |
|
||||
| Sketch | `/gsd-sketch` (invoke) | Design direction unclear — "what should this look like?", "how should this feel?" |
|
||||
|
||||
Present suggestions:
|
||||
```
|
||||
@@ -109,7 +109,7 @@ For each selected output, write the file:
|
||||
- **Seeds:** Create `.planning/seeds/{slug}.md` with frontmatter (title, trigger_condition, planted_date)
|
||||
- **Research questions:** Append to `.planning/research/questions.md`
|
||||
- **Requirements:** Append to `.planning/REQUIREMENTS.md` with next available REQ ID
|
||||
- **Phases:** Use existing `/gsd:add-phase` command via SlashCommand
|
||||
- **Phases:** Use existing `/gsd-add-phase` command via SlashCommand
|
||||
|
||||
Commit if `commit_docs` is enabled:
|
||||
```bash
|
||||
@@ -125,7 +125,7 @@ gsd-sdk query commit "docs: capture exploration — {topic_slug}" {file_list}
|
||||
**Outputs:** {count} artifact(s) created
|
||||
{list of created files}
|
||||
|
||||
Continue exploring with `/gsd:explore` or start working with `/gsd:next`.
|
||||
Continue exploring with `/gsd-explore` or start working with `/gsd-next`.
|
||||
```
|
||||
|
||||
</process>
|
||||
|
||||
@@ -211,8 +211,8 @@ Missing artifacts: {list or "none"}
|
||||
|
||||
Next steps:
|
||||
- Review extracted learnings for accuracy
|
||||
- /gsd:progress — see overall project state
|
||||
- /gsd:execute-phase {next} — continue to next phase
|
||||
- /gsd-progress — see overall project state
|
||||
- /gsd-execute-phase {next} — continue to next phase
|
||||
|
||||
---------------------------------------------------------------
|
||||
```
|
||||
|
||||
@@ -5,7 +5,7 @@ no research, no plan checking. Just: understand → do → commit → log.
|
||||
For tasks like: fix a typo, update a config value, add a missing import, rename a
|
||||
variable, commit uncommitted work, add a .gitignore entry, bump a version number.
|
||||
|
||||
Use /gsd:quick for anything that needs multi-step planning or research.
|
||||
Use /gsd-quick for anything that needs multi-step planning or research.
|
||||
</purpose>
|
||||
|
||||
<process>
|
||||
@@ -34,8 +34,8 @@ If the task seems non-trivial (multi-file refactor, new feature, needs research)
|
||||
say:
|
||||
|
||||
```
|
||||
This looks like it needs planning. Use /gsd:quick instead:
|
||||
/gsd:quick "{task description}"
|
||||
This looks like it needs planning. Use /gsd-quick instead:
|
||||
/gsd-quick "{task description}"
|
||||
```
|
||||
|
||||
And stop.
|
||||
@@ -93,8 +93,8 @@ No next-step suggestions. No workflow routing. Just done.
|
||||
- NEVER spawn a Task/subagent — this runs inline
|
||||
- NEVER create PLAN.md or SUMMARY.md files
|
||||
- NEVER run research or plan-checking
|
||||
- If the task takes more than 3 file edits, STOP and redirect to /gsd:quick
|
||||
- If you're unsure how to implement it, STOP and redirect to /gsd:quick
|
||||
- If the task takes more than 3 file edits, STOP and redirect to /gsd-quick
|
||||
- If you're unsure how to implement it, STOP and redirect to /gsd-quick
|
||||
</guardrails>
|
||||
|
||||
<success_criteria>
|
||||
|
||||
@@ -207,11 +207,11 @@ Based on the evidence above, the most likely explanation is:
|
||||
|
||||
1. {Specific, actionable remediation step}
|
||||
2. {Another step if applicable}
|
||||
3. {Recovery command if applicable — e.g., `/gsd:resume-work`, `/gsd:execute-phase N`}
|
||||
3. {Recovery command if applicable — e.g., `/gsd-resume-work`, `/gsd-execute-phase N`}
|
||||
|
||||
---
|
||||
|
||||
*Report generated by `/gsd:forensics`. All paths redacted for portability.*
|
||||
*Report generated by `/gsd-forensics`. All paths redacted for portability.*
|
||||
```
|
||||
|
||||
**Redaction rules:**
|
||||
|
||||
@@ -66,10 +66,10 @@ Errors: N | Warnings: N | Info: N
|
||||
## Errors
|
||||
|
||||
- [E001] config.json: JSON parse error at line 5
|
||||
Fix: Run /gsd:health --repair to reset to defaults
|
||||
Fix: Run /gsd-health --repair to reset to defaults
|
||||
|
||||
- [E002] PROJECT.md not found
|
||||
Fix: Run /gsd:new-project to create
|
||||
Fix: Run /gsd-new-project to create
|
||||
```
|
||||
|
||||
**If warnings exist:**
|
||||
@@ -94,7 +94,7 @@ Errors: N | Warnings: N | Info: N
|
||||
**Footer (if repairable issues exist and --repair was NOT used):**
|
||||
```
|
||||
---
|
||||
N issues can be auto-repaired. Run: /gsd:health --repair
|
||||
N issues can be auto-repaired. Run: /gsd-health --repair
|
||||
```
|
||||
</step>
|
||||
|
||||
@@ -104,7 +104,7 @@ N issues can be auto-repaired. Run: /gsd:health --repair
|
||||
Ask user if they want to run repairs:
|
||||
|
||||
```
|
||||
Would you like to run /gsd:health --repair to fix N issues automatically?
|
||||
Would you like to run /gsd-health --repair to fix N issues automatically?
|
||||
```
|
||||
|
||||
If yes, re-run with --repair flag and display results.
|
||||
|
||||
@@ -9,9 +9,9 @@ Display the complete GSD command reference. Output ONLY the reference content. D
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. `/gsd:new-project` - Initialize project (includes research, requirements, roadmap)
|
||||
2. `/gsd:plan-phase 1` - Create detailed plan for first phase
|
||||
3. `/gsd:execute-phase 1` - Execute the phase
|
||||
1. `/gsd-new-project` - Initialize project (includes research, requirements, roadmap)
|
||||
2. `/gsd-plan-phase 1` - Create detailed plan for first phase
|
||||
3. `/gsd-execute-phase 1` - Execute the phase
|
||||
|
||||
## Staying Updated
|
||||
|
||||
@@ -24,12 +24,12 @@ npx get-shit-done-cc@latest
|
||||
## Core Workflow
|
||||
|
||||
```
|
||||
/gsd:new-project → /gsd:plan-phase → /gsd:execute-phase → repeat
|
||||
/gsd-new-project → /gsd-plan-phase → /gsd-execute-phase → repeat
|
||||
```
|
||||
|
||||
### Project Initialization
|
||||
|
||||
**`/gsd:new-project`**
|
||||
**`/gsd-new-project`**
|
||||
Initialize new project through unified flow.
|
||||
|
||||
One command takes you from idea to ready-for-planning:
|
||||
@@ -46,21 +46,21 @@ Creates all `.planning/` artifacts:
|
||||
- `ROADMAP.md` — phases mapped to requirements
|
||||
- `STATE.md` — project memory
|
||||
|
||||
Usage: `/gsd:new-project`
|
||||
Usage: `/gsd-new-project`
|
||||
|
||||
**`/gsd:map-codebase`**
|
||||
**`/gsd-map-codebase`**
|
||||
Map an existing codebase for brownfield projects.
|
||||
|
||||
- Analyzes codebase with parallel Explore agents
|
||||
- Creates `.planning/codebase/` with 7 focused documents
|
||||
- Covers stack, architecture, structure, conventions, testing, integrations, concerns
|
||||
- Use before `/gsd:new-project` on existing codebases
|
||||
- Use before `/gsd-new-project` on existing codebases
|
||||
|
||||
Usage: `/gsd:map-codebase`
|
||||
Usage: `/gsd-map-codebase`
|
||||
|
||||
### Phase Planning
|
||||
|
||||
**`/gsd:discuss-phase <number>`**
|
||||
**`/gsd-discuss-phase <number>`**
|
||||
Help articulate your vision for a phase before planning.
|
||||
|
||||
- Captures how you imagine this phase working
|
||||
@@ -68,11 +68,11 @@ Help articulate your vision for a phase before planning.
|
||||
- Use when you have ideas about how something should look/feel
|
||||
- Optional `--batch` asks 2-5 related questions at a time instead of one-by-one
|
||||
|
||||
Usage: `/gsd:discuss-phase 2`
|
||||
Usage: `/gsd:discuss-phase 2 --batch`
|
||||
Usage: `/gsd:discuss-phase 2 --batch=3`
|
||||
Usage: `/gsd-discuss-phase 2`
|
||||
Usage: `/gsd-discuss-phase 2 --batch`
|
||||
Usage: `/gsd-discuss-phase 2 --batch=3`
|
||||
|
||||
**`/gsd:research-phase <number>`**
|
||||
**`/gsd-research-phase <number>`**
|
||||
Comprehensive ecosystem research for niche/complex domains.
|
||||
|
||||
- Discovers standard stack, architecture patterns, pitfalls
|
||||
@@ -80,18 +80,18 @@ Comprehensive ecosystem research for niche/complex domains.
|
||||
- Use for 3D, games, audio, shaders, ML, and other specialized domains
|
||||
- Goes beyond "which library" to ecosystem knowledge
|
||||
|
||||
Usage: `/gsd:research-phase 3`
|
||||
Usage: `/gsd-research-phase 3`
|
||||
|
||||
**`/gsd:list-phase-assumptions <number>`**
|
||||
**`/gsd-list-phase-assumptions <number>`**
|
||||
See what Claude is planning to do before it starts.
|
||||
|
||||
- Shows Claude's intended approach for a phase
|
||||
- Lets you course-correct if Claude misunderstood your vision
|
||||
- No files created - conversational output only
|
||||
|
||||
Usage: `/gsd:list-phase-assumptions 3`
|
||||
Usage: `/gsd-list-phase-assumptions 3`
|
||||
|
||||
**`/gsd:plan-phase <number>`**
|
||||
**`/gsd-plan-phase <number>`**
|
||||
Create detailed execution plan for a specific phase.
|
||||
|
||||
- Generates `.planning/phases/XX-phase-name/XX-YY-PLAN.md`
|
||||
@@ -99,14 +99,14 @@ Create detailed execution plan for a specific phase.
|
||||
- Includes verification criteria and success measures
|
||||
- Multiple plans per phase supported (XX-01, XX-02, etc.)
|
||||
|
||||
Usage: `/gsd:plan-phase 1`
|
||||
Usage: `/gsd-plan-phase 1`
|
||||
Result: Creates `.planning/phases/01-foundation/01-01-PLAN.md`
|
||||
|
||||
**PRD Express Path:** Pass `--prd path/to/requirements.md` to skip discuss-phase entirely. Your PRD becomes locked decisions in CONTEXT.md. Useful when you already have clear acceptance criteria.
|
||||
|
||||
### Execution
|
||||
|
||||
**`/gsd:execute-phase <phase-number>`**
|
||||
**`/gsd-execute-phase <phase-number>`**
|
||||
Execute all plans in a phase, or run a specific wave.
|
||||
|
||||
- Groups plans by wave (from frontmatter), executes waves sequentially
|
||||
@@ -115,12 +115,12 @@ Execute all plans in a phase, or run a specific wave.
|
||||
- Verifies phase goal after all plans complete
|
||||
- Updates REQUIREMENTS.md, ROADMAP.md, STATE.md
|
||||
|
||||
Usage: `/gsd:execute-phase 5`
|
||||
Usage: `/gsd:execute-phase 5 --wave 2`
|
||||
Usage: `/gsd-execute-phase 5`
|
||||
Usage: `/gsd-execute-phase 5 --wave 2`
|
||||
|
||||
### Smart Router
|
||||
|
||||
**`/gsd:do <description>`**
|
||||
**`/gsd-do <description>`**
|
||||
Route freeform text to the right GSD command automatically.
|
||||
|
||||
- Analyzes natural language input to find the best matching GSD command
|
||||
@@ -128,13 +128,13 @@ Route freeform text to the right GSD command automatically.
|
||||
- Resolves ambiguity by asking you to pick between top matches
|
||||
- Use when you know what you want but don't know which `/gsd-*` command to run
|
||||
|
||||
Usage: `/gsd:do fix the login button`
|
||||
Usage: `/gsd:do refactor the auth system`
|
||||
Usage: `/gsd:do I want to start a new milestone`
|
||||
Usage: `/gsd-do fix the login button`
|
||||
Usage: `/gsd-do refactor the auth system`
|
||||
Usage: `/gsd-do I want to start a new milestone`
|
||||
|
||||
### Quick Mode
|
||||
|
||||
**`/gsd:quick [--full] [--validate] [--discuss] [--research]`**
|
||||
**`/gsd-quick [--full] [--validate] [--discuss] [--research]`**
|
||||
Execute small, ad-hoc tasks with GSD guarantees but skip optional agents.
|
||||
|
||||
Quick mode uses the same system with a shorter path:
|
||||
@@ -150,48 +150,48 @@ Flags enable additional quality steps:
|
||||
|
||||
Granular flags are composable: `--discuss --research --validate` gives the same as `--full`.
|
||||
|
||||
Usage: `/gsd:quick`
|
||||
Usage: `/gsd:quick --full`
|
||||
Usage: `/gsd:quick --research --validate`
|
||||
Usage: `/gsd-quick`
|
||||
Usage: `/gsd-quick --full`
|
||||
Usage: `/gsd-quick --research --validate`
|
||||
Result: Creates `.planning/quick/NNN-slug/PLAN.md`, `.planning/quick/NNN-slug/SUMMARY.md`
|
||||
|
||||
---
|
||||
|
||||
**`/gsd:fast [description]`**
|
||||
**`/gsd-fast [description]`**
|
||||
Execute a trivial task inline — no subagents, no planning files, no overhead.
|
||||
|
||||
For tasks too small to justify planning: typo fixes, config changes, forgotten commits, simple additions. Runs in the current context, makes the change, commits, and logs to STATE.md.
|
||||
|
||||
- No PLAN.md or SUMMARY.md created
|
||||
- No subagent spawned (runs inline)
|
||||
- ≤ 3 file edits — redirects to `/gsd:quick` if task is non-trivial
|
||||
- ≤ 3 file edits — redirects to `/gsd-quick` if task is non-trivial
|
||||
- Atomic commit with conventional message
|
||||
|
||||
Usage: `/gsd:fast "fix the typo in README"`
|
||||
Usage: `/gsd:fast "add .env to gitignore"`
|
||||
Usage: `/gsd-fast "fix the typo in README"`
|
||||
Usage: `/gsd-fast "add .env to gitignore"`
|
||||
|
||||
### Roadmap Management
|
||||
|
||||
**`/gsd:add-phase <description>`**
|
||||
**`/gsd-add-phase <description>`**
|
||||
Add new phase to end of current milestone.
|
||||
|
||||
- Appends to ROADMAP.md
|
||||
- Uses next sequential number
|
||||
- Updates phase directory structure
|
||||
|
||||
Usage: `/gsd:add-phase "Add admin dashboard"`
|
||||
Usage: `/gsd-add-phase "Add admin dashboard"`
|
||||
|
||||
**`/gsd:insert-phase <after> <description>`**
|
||||
**`/gsd-insert-phase <after> <description>`**
|
||||
Insert urgent work as decimal phase between existing phases.
|
||||
|
||||
- Creates intermediate phase (e.g., 7.1 between 7 and 8)
|
||||
- Useful for discovered work that must happen mid-milestone
|
||||
- Maintains phase ordering
|
||||
|
||||
Usage: `/gsd:insert-phase 7 "Fix critical auth bug"`
|
||||
Usage: `/gsd-insert-phase 7 "Fix critical auth bug"`
|
||||
Result: Creates Phase 7.1
|
||||
|
||||
**`/gsd:remove-phase <number>`**
|
||||
**`/gsd-remove-phase <number>`**
|
||||
Remove a future phase and renumber subsequent phases.
|
||||
|
||||
- Deletes phase directory and all references
|
||||
@@ -199,12 +199,12 @@ Remove a future phase and renumber subsequent phases.
|
||||
- Only works on future (unstarted) phases
|
||||
- Git commit preserves historical record
|
||||
|
||||
Usage: `/gsd:remove-phase 17`
|
||||
Usage: `/gsd-remove-phase 17`
|
||||
Result: Phase 17 deleted, phases 18-20 become 17-19
|
||||
|
||||
### Milestone Management
|
||||
|
||||
**`/gsd:new-milestone <name>`**
|
||||
**`/gsd-new-milestone <name>`**
|
||||
Start a new milestone through unified flow.
|
||||
|
||||
- Deep questioning to understand what you're building next
|
||||
@@ -213,12 +213,12 @@ Start a new milestone through unified flow.
|
||||
- Roadmap creation with phase breakdown
|
||||
- Optional `--reset-phase-numbers` flag restarts numbering at Phase 1 and archives old phase dirs first for safety
|
||||
|
||||
Mirrors `/gsd:new-project` flow for brownfield projects (existing PROJECT.md).
|
||||
Mirrors `/gsd-new-project` flow for brownfield projects (existing PROJECT.md).
|
||||
|
||||
Usage: `/gsd:new-milestone "v2.0 Features"`
|
||||
Usage: `/gsd:new-milestone --reset-phase-numbers "v2.0 Features"`
|
||||
Usage: `/gsd-new-milestone "v2.0 Features"`
|
||||
Usage: `/gsd-new-milestone --reset-phase-numbers "v2.0 Features"`
|
||||
|
||||
**`/gsd:complete-milestone <version>`**
|
||||
**`/gsd-complete-milestone <version>`**
|
||||
Archive completed milestone and prepare for next version.
|
||||
|
||||
- Creates MILESTONES.md entry with stats
|
||||
@@ -226,11 +226,11 @@ Archive completed milestone and prepare for next version.
|
||||
- Creates git tag for the release
|
||||
- Prepares workspace for next version
|
||||
|
||||
Usage: `/gsd:complete-milestone 1.0.0`
|
||||
Usage: `/gsd-complete-milestone 1.0.0`
|
||||
|
||||
### Progress Tracking
|
||||
|
||||
**`/gsd:progress`**
|
||||
**`/gsd-progress`**
|
||||
Check project status and intelligently route to next action.
|
||||
|
||||
- Shows visual progress bar and completion percentage
|
||||
@@ -240,58 +240,58 @@ Check project status and intelligently route to next action.
|
||||
- Offers to execute next plan or create it if missing
|
||||
- Detects 100% milestone completion
|
||||
|
||||
Usage: `/gsd:progress`
|
||||
Usage: `/gsd-progress`
|
||||
|
||||
### Session Management
|
||||
|
||||
**`/gsd:resume-work`**
|
||||
**`/gsd-resume-work`**
|
||||
Resume work from previous session with full context restoration.
|
||||
|
||||
- Reads STATE.md for project context
|
||||
- Shows current position and recent progress
|
||||
- Offers next actions based on project state
|
||||
|
||||
Usage: `/gsd:resume-work`
|
||||
Usage: `/gsd-resume-work`
|
||||
|
||||
**`/gsd:pause-work`**
|
||||
**`/gsd-pause-work`**
|
||||
Create context handoff when pausing work mid-phase.
|
||||
|
||||
- Creates .continue-here file with current state
|
||||
- Updates STATE.md session continuity section
|
||||
- Captures in-progress work context
|
||||
|
||||
Usage: `/gsd:pause-work`
|
||||
Usage: `/gsd-pause-work`
|
||||
|
||||
### Debugging
|
||||
|
||||
**`/gsd:debug [issue description]`**
|
||||
**`/gsd-debug [issue description]`**
|
||||
Systematic debugging with persistent state across context resets.
|
||||
|
||||
- Gathers symptoms through adaptive questioning
|
||||
- Creates `.planning/debug/[slug].md` to track investigation
|
||||
- Investigates using scientific method (evidence → hypothesis → test)
|
||||
- Survives `/clear` — run `/gsd:debug` with no args to resume
|
||||
- Survives `/clear` — run `/gsd-debug` with no args to resume
|
||||
- Archives resolved issues to `.planning/debug/resolved/`
|
||||
|
||||
Usage: `/gsd:debug "login button doesn't work"`
|
||||
Usage: `/gsd:debug` (resume active session)
|
||||
Usage: `/gsd-debug "login button doesn't work"`
|
||||
Usage: `/gsd-debug` (resume active session)
|
||||
|
||||
### Spiking & Sketching
|
||||
|
||||
**`/gsd:spike [idea] [--quick]`**
|
||||
**`/gsd-spike [idea] [--quick]`**
|
||||
Rapidly spike an idea with throwaway experiments to validate feasibility.
|
||||
|
||||
- Decomposes idea into 2-5 focused experiments (risk-ordered)
|
||||
- Each spike answers one specific Given/When/Then question
|
||||
- Builds minimum code, runs it, captures verdict (VALIDATED/INVALIDATED/PARTIAL)
|
||||
- Saves to `.planning/spikes/` with MANIFEST.md tracking
|
||||
- Does not require `/gsd:new-project` — works in any repo
|
||||
- Does not require `/gsd-new-project` — works in any repo
|
||||
- `--quick` skips decomposition, builds immediately
|
||||
|
||||
Usage: `/gsd:spike "can we stream LLM output over WebSockets?"`
|
||||
Usage: `/gsd:spike --quick "test if pdfjs extracts tables"`
|
||||
Usage: `/gsd-spike "can we stream LLM output over WebSockets?"`
|
||||
Usage: `/gsd-spike --quick "test if pdfjs extracts tables"`
|
||||
|
||||
**`/gsd:sketch [idea] [--quick]`**
|
||||
**`/gsd-sketch [idea] [--quick]`**
|
||||
Rapidly sketch UI/design ideas using throwaway HTML mockups with multi-variant exploration.
|
||||
|
||||
- Conversational mood/direction intake before building
|
||||
@@ -299,13 +299,13 @@ Rapidly sketch UI/design ideas using throwaway HTML mockups with multi-variant e
|
||||
- User compares variants, cherry-picks elements, iterates
|
||||
- Shared CSS theme system compounds across sketches
|
||||
- Saves to `.planning/sketches/` with MANIFEST.md tracking
|
||||
- Does not require `/gsd:new-project` — works in any repo
|
||||
- Does not require `/gsd-new-project` — works in any repo
|
||||
- `--quick` skips mood intake, jumps to building
|
||||
|
||||
Usage: `/gsd:sketch "dashboard layout for the admin panel"`
|
||||
Usage: `/gsd:sketch --quick "form card grouping"`
|
||||
Usage: `/gsd-sketch "dashboard layout for the admin panel"`
|
||||
Usage: `/gsd-sketch --quick "form card grouping"`
|
||||
|
||||
**`/gsd:spike-wrap-up`**
|
||||
**`/gsd-spike-wrap-up`**
|
||||
Package spike findings into a persistent project skill.
|
||||
|
||||
- Curates each spike one-at-a-time (include/exclude/partial/UAT)
|
||||
@@ -314,9 +314,9 @@ Package spike findings into a persistent project skill.
|
||||
- Writes summary to `.planning/spikes/WRAP-UP-SUMMARY.md`
|
||||
- Adds auto-load routing line to project CLAUDE.md
|
||||
|
||||
Usage: `/gsd:spike-wrap-up`
|
||||
Usage: `/gsd-spike-wrap-up`
|
||||
|
||||
**`/gsd:sketch-wrap-up`**
|
||||
**`/gsd-sketch-wrap-up`**
|
||||
Package sketch design findings into a persistent project skill.
|
||||
|
||||
- Curates each sketch one-at-a-time (include/exclude/partial/revisit)
|
||||
@@ -325,11 +325,11 @@ Package sketch design findings into a persistent project skill.
|
||||
- Writes summary to `.planning/sketches/WRAP-UP-SUMMARY.md`
|
||||
- Adds auto-load routing line to project CLAUDE.md
|
||||
|
||||
Usage: `/gsd:sketch-wrap-up`
|
||||
Usage: `/gsd-sketch-wrap-up`
|
||||
|
||||
### Quick Notes
|
||||
|
||||
**`/gsd:note <text>`**
|
||||
**`/gsd-note <text>`**
|
||||
Zero-friction idea capture — one command, instant save, no questions.
|
||||
|
||||
- Saves timestamped note to `.planning/notes/` (or `~/.claude/notes/` globally)
|
||||
@@ -337,14 +337,14 @@ Zero-friction idea capture — one command, instant save, no questions.
|
||||
- Promote converts a note into a structured todo
|
||||
- Works without a project (falls back to global scope)
|
||||
|
||||
Usage: `/gsd:note refactor the hook system`
|
||||
Usage: `/gsd:note list`
|
||||
Usage: `/gsd:note promote 3`
|
||||
Usage: `/gsd:note --global cross-project idea`
|
||||
Usage: `/gsd-note refactor the hook system`
|
||||
Usage: `/gsd-note list`
|
||||
Usage: `/gsd-note promote 3`
|
||||
Usage: `/gsd-note --global cross-project idea`
|
||||
|
||||
### Todo Management
|
||||
|
||||
**`/gsd:add-todo [description]`**
|
||||
**`/gsd-add-todo [description]`**
|
||||
Capture idea or task as todo from current conversation.
|
||||
|
||||
- Extracts context from conversation (or uses provided description)
|
||||
@@ -353,24 +353,24 @@ Capture idea or task as todo from current conversation.
|
||||
- Checks for duplicates before creating
|
||||
- Updates STATE.md todo count
|
||||
|
||||
Usage: `/gsd:add-todo` (infers from conversation)
|
||||
Usage: `/gsd:add-todo Add auth token refresh`
|
||||
Usage: `/gsd-add-todo` (infers from conversation)
|
||||
Usage: `/gsd-add-todo Add auth token refresh`
|
||||
|
||||
**`/gsd:check-todos [area]`**
|
||||
**`/gsd-check-todos [area]`**
|
||||
List pending todos and select one to work on.
|
||||
|
||||
- Lists all pending todos with title, area, age
|
||||
- Optional area filter (e.g., `/gsd:check-todos api`)
|
||||
- Optional area filter (e.g., `/gsd-check-todos api`)
|
||||
- Loads full context for selected todo
|
||||
- Routes to appropriate action (work now, add to phase, brainstorm)
|
||||
- Moves todo to done/ when work begins
|
||||
|
||||
Usage: `/gsd:check-todos`
|
||||
Usage: `/gsd:check-todos api`
|
||||
Usage: `/gsd-check-todos`
|
||||
Usage: `/gsd-check-todos api`
|
||||
|
||||
### User Acceptance Testing
|
||||
|
||||
**`/gsd:verify-work [phase]`**
|
||||
**`/gsd-verify-work [phase]`**
|
||||
Validate built features through conversational UAT.
|
||||
|
||||
- Extracts testable deliverables from SUMMARY.md files
|
||||
@@ -378,11 +378,11 @@ Validate built features through conversational UAT.
|
||||
- Automatically diagnoses failures and creates fix plans
|
||||
- Ready for re-execution if issues found
|
||||
|
||||
Usage: `/gsd:verify-work 3`
|
||||
Usage: `/gsd-verify-work 3`
|
||||
|
||||
### Ship Work
|
||||
|
||||
**`/gsd:ship [phase]`**
|
||||
**`/gsd-ship [phase]`**
|
||||
Create a PR from completed phase work with an auto-generated body.
|
||||
|
||||
- Pushes branch to remote
|
||||
@@ -392,57 +392,57 @@ Create a PR from completed phase work with an auto-generated body.
|
||||
|
||||
Prerequisites: Phase verified, `gh` CLI installed and authenticated.
|
||||
|
||||
Usage: `/gsd:ship 4` or `/gsd:ship 4 --draft`
|
||||
Usage: `/gsd-ship 4` or `/gsd-ship 4 --draft`
|
||||
|
||||
---
|
||||
|
||||
**`/gsd:review --phase N [--gemini] [--claude] [--codex] [--coderabbit] [--opencode] [--qwen] [--cursor] [--all]`**
|
||||
**`/gsd-review --phase N [--gemini] [--claude] [--codex] [--coderabbit] [--opencode] [--qwen] [--cursor] [--all]`**
|
||||
Cross-AI peer review — invoke external AI CLIs to independently review phase plans.
|
||||
|
||||
- Detects available CLIs (gemini, claude, codex, coderabbit)
|
||||
- Each CLI reviews plans independently with the same structured prompt
|
||||
- CodeRabbit reviews the current git diff (not a prompt) — may take up to 5 minutes
|
||||
- Produces REVIEWS.md with per-reviewer feedback and consensus summary
|
||||
- Feed reviews back into planning: `/gsd:plan-phase N --reviews`
|
||||
- Feed reviews back into planning: `/gsd-plan-phase N --reviews`
|
||||
|
||||
Usage: `/gsd:review --phase 3 --all`
|
||||
Usage: `/gsd-review --phase 3 --all`
|
||||
|
||||
---
|
||||
|
||||
**`/gsd:pr-branch [target]`**
|
||||
**`/gsd-pr-branch [target]`**
|
||||
Create a clean branch for pull requests by filtering out .planning/ commits.
|
||||
|
||||
- Classifies commits: code-only (include), planning-only (exclude), mixed (include sans .planning/)
|
||||
- Cherry-picks code commits onto a clean branch
|
||||
- Reviewers see only code changes, no GSD artifacts
|
||||
|
||||
Usage: `/gsd:pr-branch` or `/gsd:pr-branch main`
|
||||
Usage: `/gsd-pr-branch` or `/gsd-pr-branch main`
|
||||
|
||||
---
|
||||
|
||||
**`/gsd:plant-seed [idea]`**
|
||||
**`/gsd-plant-seed [idea]`**
|
||||
Capture a forward-looking idea with trigger conditions for automatic surfacing.
|
||||
|
||||
- Seeds preserve WHY, WHEN to surface, and breadcrumbs to related code
|
||||
- Auto-surfaces during `/gsd:new-milestone` when trigger conditions match
|
||||
- Auto-surfaces during `/gsd-new-milestone` when trigger conditions match
|
||||
- Better than deferred items — triggers are checked, not forgotten
|
||||
|
||||
Usage: `/gsd:plant-seed "add real-time notifications when we build the events system"`
|
||||
Usage: `/gsd-plant-seed "add real-time notifications when we build the events system"`
|
||||
|
||||
---
|
||||
|
||||
**`/gsd:audit-uat`**
|
||||
**`/gsd-audit-uat`**
|
||||
Cross-phase audit of all outstanding UAT and verification items.
|
||||
- Scans every phase for pending, skipped, blocked, and human_needed items
|
||||
- Cross-references against codebase to detect stale documentation
|
||||
- Produces prioritized human test plan grouped by testability
|
||||
- Use before starting a new milestone to clear verification debt
|
||||
|
||||
Usage: `/gsd:audit-uat`
|
||||
Usage: `/gsd-audit-uat`
|
||||
|
||||
### Milestone Auditing
|
||||
|
||||
**`/gsd:audit-milestone [version]`**
|
||||
**`/gsd-audit-milestone [version]`**
|
||||
Audit milestone completion against original intent.
|
||||
|
||||
- Reads all phase VERIFICATION.md files
|
||||
@@ -450,30 +450,30 @@ Audit milestone completion against original intent.
|
||||
- Spawns integration checker for cross-phase wiring
|
||||
- Creates MILESTONE-AUDIT.md with gaps and tech debt
|
||||
|
||||
Usage: `/gsd:audit-milestone`
|
||||
Usage: `/gsd-audit-milestone`
|
||||
|
||||
**`/gsd:plan-milestone-gaps`**
|
||||
**`/gsd-plan-milestone-gaps`**
|
||||
Create phases to close gaps identified by audit.
|
||||
|
||||
- Reads MILESTONE-AUDIT.md and groups gaps into phases
|
||||
- Prioritizes by requirement priority (must/should/nice)
|
||||
- Adds gap closure phases to ROADMAP.md
|
||||
- Ready for `/gsd:plan-phase` on new phases
|
||||
- Ready for `/gsd-plan-phase` on new phases
|
||||
|
||||
Usage: `/gsd:plan-milestone-gaps`
|
||||
Usage: `/gsd-plan-milestone-gaps`
|
||||
|
||||
### Configuration
|
||||
|
||||
**`/gsd:settings`**
|
||||
**`/gsd-settings`**
|
||||
Configure workflow toggles and model profile interactively.
|
||||
|
||||
- Toggle researcher, plan checker, verifier agents
|
||||
- Select model profile (quality/balanced/budget/inherit)
|
||||
- Updates `.planning/config.json`
|
||||
|
||||
Usage: `/gsd:settings`
|
||||
Usage: `/gsd-settings`
|
||||
|
||||
**`/gsd:set-profile <profile>`**
|
||||
**`/gsd-set-profile <profile>`**
|
||||
Quick switch model profile for GSD agents.
|
||||
|
||||
- `quality` — Opus everywhere except verification
|
||||
@@ -481,11 +481,11 @@ Quick switch model profile for GSD agents.
|
||||
- `budget` — Sonnet for writing, Haiku for research/verification
|
||||
- `inherit` — Use current session model for all agents (OpenCode `/model`)
|
||||
|
||||
Usage: `/gsd:set-profile budget`
|
||||
Usage: `/gsd-set-profile budget`
|
||||
|
||||
### Utility Commands
|
||||
|
||||
**`/gsd:cleanup`**
|
||||
**`/gsd-cleanup`**
|
||||
Archive accumulated phase directories from completed milestones.
|
||||
|
||||
- Identifies phases from completed milestones still in `.planning/phases/`
|
||||
@@ -493,12 +493,12 @@ Archive accumulated phase directories from completed milestones.
|
||||
- Moves phase dirs to `.planning/milestones/v{X.Y}-phases/`
|
||||
- Use after multiple milestones to reduce `.planning/phases/` clutter
|
||||
|
||||
Usage: `/gsd:cleanup`
|
||||
Usage: `/gsd-cleanup`
|
||||
|
||||
**`/gsd:help`**
|
||||
**`/gsd-help`**
|
||||
Show this command reference.
|
||||
|
||||
**`/gsd:update`**
|
||||
**`/gsd-update`**
|
||||
Update GSD to latest version with changelog preview.
|
||||
|
||||
- Shows installed vs latest version comparison
|
||||
@@ -507,15 +507,15 @@ Update GSD to latest version with changelog preview.
|
||||
- Confirms before running install
|
||||
- Better than raw `npx get-shit-done-cc`
|
||||
|
||||
Usage: `/gsd:update`
|
||||
Usage: `/gsd-update`
|
||||
|
||||
**`/gsd:join-discord`**
|
||||
**`/gsd-join-discord`**
|
||||
Join the GSD Discord community.
|
||||
|
||||
- Get help, share what you're building, stay updated
|
||||
- Connect with other GSD users
|
||||
|
||||
Usage: `/gsd:join-discord`
|
||||
Usage: `/gsd-join-discord`
|
||||
|
||||
## Files & Structure
|
||||
|
||||
@@ -529,10 +529,10 @@ Usage: `/gsd:join-discord`
|
||||
├── todos/ # Captured ideas and tasks
|
||||
│ ├── pending/ # Todos waiting to be worked on
|
||||
│ └── done/ # Completed todos
|
||||
├── spikes/ # Spike experiments (/gsd:spike)
|
||||
├── spikes/ # Spike experiments (/gsd-spike)
|
||||
│ ├── MANIFEST.md # Spike inventory and verdicts
|
||||
│ └── NNN-name/ # Individual spike directories
|
||||
├── sketches/ # Design sketches (/gsd:sketch)
|
||||
├── sketches/ # Design sketches (/gsd-sketch)
|
||||
│ ├── MANIFEST.md # Sketch inventory and winners
|
||||
│ ├── themes/ # Shared CSS theme files
|
||||
│ └── NNN-name/ # Individual sketch directories (HTML + README)
|
||||
@@ -541,7 +541,7 @@ Usage: `/gsd:join-discord`
|
||||
├── milestones/
|
||||
│ ├── v1.0-ROADMAP.md # Archived roadmap snapshot
|
||||
│ ├── v1.0-REQUIREMENTS.md # Archived requirements
|
||||
│ └── v1.0-phases/ # Archived phase dirs (via /gsd:cleanup or --archive-phases)
|
||||
│ └── v1.0-phases/ # Archived phase dirs (via /gsd-cleanup or --archive-phases)
|
||||
│ ├── 01-foundation/
|
||||
│ └── 02-core-features/
|
||||
├── codebase/ # Codebase map (brownfield projects)
|
||||
@@ -563,7 +563,7 @@ Usage: `/gsd:join-discord`
|
||||
|
||||
## Workflow Modes
|
||||
|
||||
Set during `/gsd:new-project`:
|
||||
Set during `/gsd-new-project`:
|
||||
|
||||
**Interactive Mode**
|
||||
|
||||
@@ -611,51 +611,51 @@ Example config:
|
||||
**Starting a new project:**
|
||||
|
||||
```
|
||||
/gsd:new-project # Unified flow: questioning → research → requirements → roadmap
|
||||
/gsd-new-project # Unified flow: questioning → research → requirements → roadmap
|
||||
/clear
|
||||
/gsd:plan-phase 1 # Create plans for first phase
|
||||
/gsd-plan-phase 1 # Create plans for first phase
|
||||
/clear
|
||||
/gsd:execute-phase 1 # Execute all plans in phase
|
||||
/gsd-execute-phase 1 # Execute all plans in phase
|
||||
```
|
||||
|
||||
**Resuming work after a break:**
|
||||
|
||||
```
|
||||
/gsd:progress # See where you left off and continue
|
||||
/gsd-progress # See where you left off and continue
|
||||
```
|
||||
|
||||
**Adding urgent mid-milestone work:**
|
||||
|
||||
```
|
||||
/gsd:insert-phase 5 "Critical security fix"
|
||||
/gsd:plan-phase 5.1
|
||||
/gsd:execute-phase 5.1
|
||||
/gsd-insert-phase 5 "Critical security fix"
|
||||
/gsd-plan-phase 5.1
|
||||
/gsd-execute-phase 5.1
|
||||
```
|
||||
|
||||
**Completing a milestone:**
|
||||
|
||||
```
|
||||
/gsd:complete-milestone 1.0.0
|
||||
/gsd-complete-milestone 1.0.0
|
||||
/clear
|
||||
/gsd:new-milestone # Start next milestone (questioning → research → requirements → roadmap)
|
||||
/gsd-new-milestone # Start next milestone (questioning → research → requirements → roadmap)
|
||||
```
|
||||
|
||||
**Capturing ideas during work:**
|
||||
|
||||
```
|
||||
/gsd:add-todo # Capture from conversation context
|
||||
/gsd:add-todo Fix modal z-index # Capture with explicit description
|
||||
/gsd:check-todos # Review and work on todos
|
||||
/gsd:check-todos api # Filter by area
|
||||
/gsd-add-todo # Capture from conversation context
|
||||
/gsd-add-todo Fix modal z-index # Capture with explicit description
|
||||
/gsd-check-todos # Review and work on todos
|
||||
/gsd-check-todos api # Filter by area
|
||||
```
|
||||
|
||||
**Debugging an issue:**
|
||||
|
||||
```
|
||||
/gsd:debug "form submission fails silently" # Start debug session
|
||||
/gsd-debug "form submission fails silently" # Start debug session
|
||||
# ... investigation happens, context fills up ...
|
||||
/clear
|
||||
/gsd:debug # Resume from where you left off
|
||||
/gsd-debug # Resume from where you left off
|
||||
```
|
||||
|
||||
## Getting Help
|
||||
@@ -663,5 +663,5 @@ Example config:
|
||||
- Read `.planning/PROJECT.md` for project vision
|
||||
- Read `.planning/STATE.md` for current context
|
||||
- Check `.planning/ROADMAP.md` for phase status
|
||||
- Run `/gsd:progress` to check where you're up to
|
||||
- Run `/gsd-progress` to check where you're up to
|
||||
</reference>
|
||||
|
||||
@@ -32,7 +32,7 @@ Parse `$ARGUMENTS` to determine the execution mode:
|
||||
- If neither flag is found: display usage and exit:
|
||||
|
||||
```
|
||||
Usage: /gsd:import --from <path>
|
||||
Usage: /gsd-import --from <path>
|
||||
|
||||
--from <path> Import an external plan file into GSD format
|
||||
```
|
||||
|
||||
@@ -370,10 +370,10 @@ Next steps:
|
||||
<offer_next>
|
||||
After triage:
|
||||
|
||||
- /gsd:review — Run cross-AI peer review on a specific phase plan
|
||||
- /gsd:ship — Create a PR from completed work
|
||||
- /gsd:progress — See overall project state
|
||||
- /gsd:inbox --label — Re-run with auto-labeling enabled
|
||||
- /gsd-review — Run cross-AI peer review on a specific phase plan
|
||||
- /gsd-ship — Create a PR from completed work
|
||||
- /gsd-progress — See overall project state
|
||||
- /gsd-inbox --label — Re-run with auto-labeling enabled
|
||||
</offer_next>
|
||||
|
||||
<success_criteria>
|
||||
|
||||
@@ -122,7 +122,7 @@ De-duplicate the union (a file matched by multiple patterns is one doc).
|
||||
```
|
||||
GSD > Discovered {N} docs, which exceeds the v1 cap of 50.
|
||||
Use --manifest to narrow the set to ≤ 50 files, or run
|
||||
/gsd:ingest-docs again with a narrower <path>.
|
||||
/gsd-ingest-docs again with a narrower <path>.
|
||||
```
|
||||
|
||||
Exit without proceeding.
|
||||
@@ -309,7 +309,7 @@ Show:
|
||||
- Docs ingested (count + type breakdown)
|
||||
- Decisions locked, requirements created, constraints captured
|
||||
- Conflict report path (`.planning/INGEST-CONFLICTS.md`)
|
||||
- Next step: `/gsd:plan-phase 1` (new mode) or `/gsd:plan-phase N` (merge, pointing at the first newly-added phase)
|
||||
- Next step: `/gsd-plan-phase 1` (new mode) or `/gsd-plan-phase N` (merge, pointing at the first newly-added phase)
|
||||
|
||||
</step>
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ Parse the command arguments:
|
||||
- First argument: integer phase number to insert after
|
||||
- Remaining arguments: phase description
|
||||
|
||||
Example: `/gsd:insert-phase 72 Fix critical auth bug`
|
||||
Example: `/gsd-insert-phase 72 Fix critical auth bug`
|
||||
-> after = 72
|
||||
-> description = "Fix critical auth bug"
|
||||
|
||||
@@ -21,8 +21,8 @@ If arguments missing:
|
||||
|
||||
```
|
||||
ERROR: Both phase number and description required
|
||||
Usage: /gsd:insert-phase <after> <description>
|
||||
Example: /gsd:insert-phase 72 Fix critical auth bug
|
||||
Usage: /gsd-insert-phase <after> <description>
|
||||
Example: /gsd-insert-phase 72 Fix critical auth bug
|
||||
```
|
||||
|
||||
Exit.
|
||||
@@ -71,7 +71,7 @@ blocks direct STATE.md writes):
|
||||
`{decimal_phase}`:
|
||||
|
||||
```bash
|
||||
gsd-sdk query state.patch '{"Current Phase":"{decimal_phase}","Next recommended run":"/gsd:plan-phase {decimal_phase}"}'
|
||||
gsd-sdk query state.patch '{"Current Phase":"{decimal_phase}","Next recommended run":"/gsd-plan-phase {decimal_phase}"}'
|
||||
```
|
||||
|
||||
(Adjust field names to whatever pointers STATE.md exposes — the handler
|
||||
@@ -115,7 +115,7 @@ Project state updated: .planning/STATE.md
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:plan-phase {decimal_phase}`
|
||||
`/gsd-plan-phase {decimal_phase}`
|
||||
|
||||
---
|
||||
|
||||
@@ -131,11 +131,11 @@ Project state updated: .planning/STATE.md
|
||||
|
||||
<anti_patterns>
|
||||
|
||||
- Don't use this for planned work at end of milestone (use /gsd:add-phase)
|
||||
- Don't use this for planned work at end of milestone (use /gsd-add-phase)
|
||||
- Don't insert before Phase 1 (decimal 0.1 makes no sense)
|
||||
- Don't renumber existing phases
|
||||
- Don't modify the target phase content
|
||||
- Don't create plans yet (that's /gsd:plan-phase)
|
||||
- Don't create plans yet (that's /gsd-plan-phase)
|
||||
- Don't commit changes (user decides when to commit)
|
||||
</anti_patterns>
|
||||
|
||||
|
||||
@@ -14,8 +14,8 @@ Phase number: $ARGUMENTS (required)
|
||||
```
|
||||
Error: Phase number required.
|
||||
|
||||
Usage: /gsd:list-phase-assumptions [phase-number]
|
||||
Example: /gsd:list-phase-assumptions 3
|
||||
Usage: /gsd-list-phase-assumptions [phase-number]
|
||||
Example: /gsd-list-phase-assumptions 3
|
||||
```
|
||||
|
||||
Exit workflow.
|
||||
@@ -153,8 +153,8 @@ Present next steps:
|
||||
|
||||
```
|
||||
What's next?
|
||||
1. Discuss context (/gsd:discuss-phase ${PHASE}) - Let me ask you questions to build comprehensive context
|
||||
2. Plan this phase (/gsd:plan-phase ${PHASE}) - Create detailed execution plans
|
||||
1. Discuss context (/gsd-discuss-phase ${PHASE}) - Let me ask you questions to build comprehensive context
|
||||
2. Plan this phase (/gsd-plan-phase ${PHASE}) - Create detailed execution plans
|
||||
3. Re-examine assumptions - I'll analyze again with your corrections
|
||||
4. Done for now
|
||||
```
|
||||
|
||||
@@ -25,7 +25,7 @@ Parse JSON for: `workspace_base`, `workspaces`, `workspace_count`.
|
||||
No workspaces found in ~/gsd-workspaces/
|
||||
|
||||
Create one with:
|
||||
/gsd:new-workspace --name my-workspace --repos repo1,repo2
|
||||
/gsd-new-workspace --name my-workspace --repos repo1,repo2
|
||||
```
|
||||
|
||||
Done.
|
||||
@@ -44,7 +44,7 @@ GSD Workspaces (~/gsd-workspaces/)
|
||||
|
||||
Manage:
|
||||
cd ~/gsd-workspaces/<name> # Enter a workspace
|
||||
/gsd:remove-workspace <name> # Remove a workspace
|
||||
/gsd-remove-workspace <name> # Remove a workspace
|
||||
```
|
||||
|
||||
For each workspace, show:
|
||||
|
||||
@@ -26,7 +26,7 @@ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
||||
Parse JSON for: `milestone_version`, `milestone_name`, `phase_count`, `completed_count`, `in_progress_count`, `phases`, `recommended_actions`, `all_complete`, `waiting_signal`, `manager_flags`, and the optional trio `queued_milestone_version`, `queued_milestone_name`, `queued_phases` (added in SDK fix `2495-2496-2497` — may be absent on older SDK versions, treat missing as empty).
|
||||
|
||||
`manager_flags` contains per-step passthrough flags from config:
|
||||
- `manager_flags.discuss` — appended to `/gsd:discuss-phase` args (e.g. `"--auto --analyze"`)
|
||||
- `manager_flags.discuss` — appended to `/gsd-discuss-phase` args (e.g. `"--auto --analyze"`)
|
||||
- `manager_flags.plan` — appended to plan agent init command
|
||||
- `manager_flags.execute` — appended to execute agent init command
|
||||
|
||||
@@ -135,8 +135,8 @@ If `all_complete` is true:
|
||||
╚══════════════════════════════════════════════════════════════╝
|
||||
|
||||
All {phase_count} phases done. Ready for final steps:
|
||||
→ /gsd:verify-work — run acceptance testing
|
||||
→ /gsd:complete-milestone — archive and wrap up
|
||||
→ /gsd-verify-work — run acceptance testing
|
||||
→ /gsd-complete-milestone — archive and wrap up
|
||||
```
|
||||
|
||||
|
||||
@@ -359,11 +359,11 @@ Display final status with progress bar:
|
||||
{milestone_version} — {milestone_name}
|
||||
{PROGRESS_BAR} {progress_pct}% ({completed_count}/{phase_count} phases)
|
||||
|
||||
Resume anytime: /gsd:manager
|
||||
Resume anytime: /gsd-manager
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
```
|
||||
|
||||
**Note:** Any background agents still running will continue to completion. Their results will be visible on next `/gsd:manager` or `/gsd:progress` invocation.
|
||||
**Note:** Any background agents still running will continue to completion. Their results will be visible on next `/gsd-manager` or `/gsd-progress` invocation.
|
||||
|
||||
</step>
|
||||
|
||||
|
||||
@@ -29,8 +29,8 @@ Documents are reference material for Claude when planning/executing. Always incl
|
||||
|
||||
<step name="parse_paths_flag" priority="first">
|
||||
Parse an optional `--paths <p1,p2,...>` argument. When supplied (by the
|
||||
post-execute codebase-drift gate in `/gsd:execute-phase` or by a user running
|
||||
`/gsd:map-codebase --paths apps/accounting,packages/ui`), the workflow
|
||||
post-execute codebase-drift gate in `/gsd-execute-phase` or by a user running
|
||||
`/gsd-map-codebase --paths apps/accounting,packages/ui`), the workflow
|
||||
operates in **incremental-remap mode**:
|
||||
|
||||
- Pass `--paths <p1>,<p2>,...` through to each spawned `gsd-codebase-mapper`
|
||||
@@ -413,12 +413,12 @@ Created .planning/codebase/:
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:new-project`
|
||||
`/gsd-new-project`
|
||||
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- Re-run mapping: `/gsd:map-codebase`
|
||||
- Re-run mapping: `/gsd-map-codebase`
|
||||
- Review specific file: `cat .planning/codebase/STACK.md`
|
||||
- Edit any document before proceeding
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ If `$ARGUMENTS` is empty:
|
||||
1. Check `.planning/STATE.md` for current milestone version
|
||||
2. Check `.planning/milestones/` for the latest archived version
|
||||
3. If neither found, check if `.planning/ROADMAP.md` exists (project may be mid-milestone)
|
||||
4. If nothing found: error "No milestone found. Run /gsd:new-project or /gsd:new-milestone first."
|
||||
4. If nothing found: error "No milestone found. Run /gsd-new-project or /gsd-new-milestone first."
|
||||
|
||||
Set `VERSION` to the resolved version (e.g., "1.0").
|
||||
|
||||
@@ -212,7 +212,7 @@ If the user asks questions:
|
||||
- Stay grounded in what was actually built (not speculation)
|
||||
|
||||
If the user is done:
|
||||
- Suggest next steps: `/gsd:new-milestone`, `/gsd:progress`, or sharing the summary with the team
|
||||
- Suggest next steps: `/gsd-new-milestone`, `/gsd-progress`, or sharing the summary with the team
|
||||
|
||||
## Step 9: Update STATE.md
|
||||
|
||||
|
||||
@@ -164,7 +164,7 @@ This document evolves at phase transitions and milestone boundaries.
|
||||
4. Decisions to log? → Add to Key Decisions
|
||||
5. "What This Is" still accurate? → Update if drifted
|
||||
|
||||
**After each milestone** (via `/gsd:complete-milestone`):
|
||||
**After each milestone** (via `/gsd-complete-milestone`):
|
||||
1. Full review of all sections
|
||||
2. Core Value check — still the right priority?
|
||||
3. Audit Out of Scope — reasons still valid?
|
||||
@@ -259,7 +259,7 @@ Then verify `.planning/phases/` no longer contains old milestone directories bef
|
||||
|
||||
If `phase_dir_count > 0` but `phase_archive_path` is missing:
|
||||
- Stop and explain that reset numbering is unsafe without a completed milestone archive target.
|
||||
- Tell the user to complete/archive the previous milestone first, then rerun `/gsd:new-milestone --reset-phase-numbers ${GSD_WS}`.
|
||||
- Tell the user to complete/archive the previous milestone first, then rerun `/gsd-new-milestone --reset-phase-numbers ${GSD_WS}`.
|
||||
|
||||
## 8. Research Decision
|
||||
|
||||
@@ -277,7 +277,7 @@ AskUserQuestion: "Research the domain ecosystem for new features before defining
|
||||
- "Skip research (current default)" — Go straight to requirements
|
||||
- "Research first" — Discover patterns, features, architecture for NEW capabilities
|
||||
|
||||
**IMPORTANT:** Do NOT persist this choice to config.json. The `workflow.research` setting is a persistent user preference that controls plan-phase behavior across the project. Changing it here would silently alter future `/gsd:plan-phase` behavior. To change the default, use `/gsd:settings`.
|
||||
**IMPORTANT:** Do NOT persist this choice to config.json. The `workflow.research` setting is a persistent user preference that controls plan-phase behavior across the project. Changing it here would silently alter future `/gsd-plan-phase` behavior. To change the default, use `/gsd-settings`.
|
||||
|
||||
**If user chose "Research first":**
|
||||
|
||||
@@ -601,9 +601,9 @@ Print a summary:
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:discuss-phase [N] ${GSD_WS}` — gather context and clarify approach
|
||||
`/gsd-discuss-phase [N] ${GSD_WS}` — gather context and clarify approach
|
||||
|
||||
Also: `/gsd:plan-phase [N] ${GSD_WS}` — skip discussion, plan directly
|
||||
Also: `/gsd-plan-phase [N] ${GSD_WS}` — skip discussion, plan directly
|
||||
```
|
||||
|
||||
</process>
|
||||
@@ -621,7 +621,7 @@ Also: `/gsd:plan-phase [N] ${GSD_WS}` — skip discussion, plan directly
|
||||
- [ ] Phase numbering mode respected (continued or reset)
|
||||
- [ ] All commits made (if planning docs committed)
|
||||
- [ ] Pending todos scanned for phase matches; matched todos tagged with `resolves_phase: N`
|
||||
- [ ] User knows next step: `/gsd:discuss-phase [N] ${GSD_WS}`
|
||||
- [ ] User knows next step: `/gsd-discuss-phase [N] ${GSD_WS}`
|
||||
|
||||
**Atomic commits:** Each phase commits its artifacts immediately.
|
||||
</success_criteria>
|
||||
|
||||
@@ -33,7 +33,7 @@ Check if `--auto` flag is present in $ARGUMENTS.
|
||||
**Document requirement:**
|
||||
Auto mode requires an idea document — either:
|
||||
|
||||
- File reference: `/gsd:new-project --auto @prd.md`
|
||||
- File reference: `/gsd-new-project --auto @prd.md`
|
||||
- Pasted/written text in the prompt
|
||||
|
||||
If no document content provided, error:
|
||||
@@ -42,8 +42,8 @@ If no document content provided, error:
|
||||
Error: --auto requires an idea document.
|
||||
|
||||
Usage:
|
||||
/gsd:new-project --auto @your-idea.md
|
||||
/gsd:new-project --auto [paste or write your idea here]
|
||||
/gsd-new-project --auto @your-idea.md
|
||||
/gsd-new-project --auto [paste or write your idea here]
|
||||
|
||||
The document should describe what you want to build.
|
||||
```
|
||||
@@ -103,7 +103,7 @@ if [ "$RUNTIME" = "codex" ]; then INSTRUCTION_FILE="AGENTS.md"; else INSTRUCTION
|
||||
|
||||
All subsequent references to the project instruction file use `$INSTRUCTION_FILE`.
|
||||
|
||||
**If `project_exists` is true:** Error — project already initialized. Use `/gsd:progress`.
|
||||
**If `project_exists` is true:** Error — project already initialized. Use `/gsd-progress`.
|
||||
|
||||
**If `has_git` is false:** Initialize git:
|
||||
|
||||
@@ -124,13 +124,13 @@ Use AskUserQuestion:
|
||||
- header: "Codebase"
|
||||
- question: "I detected existing code in this directory. Would you like to map the codebase first?"
|
||||
- options:
|
||||
- "Map codebase first" — Run /gsd:map-codebase to understand existing architecture (Recommended)
|
||||
- "Map codebase first" — Run /gsd-map-codebase to understand existing architecture (Recommended)
|
||||
- "Skip mapping" — Proceed with project initialization
|
||||
|
||||
**If "Map codebase first":**
|
||||
|
||||
```
|
||||
Run `/gsd:map-codebase` first, then return to `/gsd:new-project`
|
||||
Run `/gsd-map-codebase` first, then return to `/gsd-new-project`
|
||||
```
|
||||
|
||||
Exit command.
|
||||
@@ -269,8 +269,8 @@ If any of these exist, surface them before questioning:
|
||||
⚡ Prior exploration detected:
|
||||
{if SPIKE_SKILL} ✓ Spike findings skill: {path} — validated patterns from experiments
|
||||
{if SKETCH_SKILL} ✓ Sketch findings skill: {path} — validated design decisions
|
||||
{if HAS_SPIKES && !SPIKE_SKILL} ◆ Raw spikes in .planning/spikes/ — consider `/gsd:spike-wrap-up` to package findings
|
||||
{if HAS_SKETCHES && !SKETCH_SKILL} ◆ Raw sketches in .planning/sketches/ — consider `/gsd:sketch-wrap-up` to package findings
|
||||
{if HAS_SPIKES && !SPIKE_SKILL} ◆ Raw spikes in .planning/spikes/ — consider `/gsd-spike-wrap-up` to package findings
|
||||
{if HAS_SKETCHES && !SKETCH_SKILL} ◆ Raw sketches in .planning/sketches/ — consider `/gsd-sketch-wrap-up` to package findings
|
||||
|
||||
These findings will be incorporated into project context and available to planning agents.
|
||||
```
|
||||
@@ -434,7 +434,7 @@ This document evolves at phase transitions and milestone boundaries.
|
||||
4. Decisions to log? → Add to Key Decisions
|
||||
5. "What This Is" still accurate? → Update if drifted
|
||||
|
||||
**After each milestone** (via `/gsd:complete-milestone`):
|
||||
**After each milestone** (via `/gsd-complete-milestone`):
|
||||
1. Full review of all sections
|
||||
2. Core Value check — still the right priority?
|
||||
3. Audit Out of Scope — reasons still valid?
|
||||
@@ -652,7 +652,7 @@ mkdir -p .planning
|
||||
gsd-sdk query config-new-project '{"mode":"[yolo|interactive]","granularity":"[selected]","parallelization":true|false,"commit_docs":true|false,"model_profile":"quality|balanced|budget|inherit","workflow":{"research":true|false,"plan_check":true|false,"verifier":true|false,"nyquist_validation":[false if granularity=coarse, true otherwise]}}'
|
||||
```
|
||||
|
||||
**Note:** Run `/gsd:settings` anytime to update model profile, workflow agents, branching strategy, and other preferences.
|
||||
**Note:** Run `/gsd-settings` anytime to update model profile, workflow agents, branching strategy, and other preferences.
|
||||
|
||||
**If commit_docs = No:**
|
||||
|
||||
@@ -1292,7 +1292,7 @@ Present completion summary:
|
||||
╚══════════════════════════════════════════╝
|
||||
```
|
||||
|
||||
Exit skill and invoke SlashCommand("/gsd:discuss-phase 1 --auto")
|
||||
Exit skill and invoke SlashCommand("/gsd-discuss-phase 1 --auto")
|
||||
|
||||
**If interactive mode:**
|
||||
|
||||
@@ -1314,13 +1314,13 @@ PHASE1_HAS_UI=$(echo "$PHASE1_SECTION" | grep -qi "UI hint.*yes" && echo "true"
|
||||
|
||||
/clear then:
|
||||
|
||||
/gsd:discuss-phase 1 — gather context and clarify approach
|
||||
/gsd-discuss-phase 1 — gather context and clarify approach
|
||||
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- /gsd:ui-phase 1 — generate UI design contract (recommended for frontend phases)
|
||||
- /gsd:plan-phase 1 — skip discussion, plan directly
|
||||
- /gsd-ui-phase 1 — generate UI design contract (recommended for frontend phases)
|
||||
- /gsd-plan-phase 1 — skip discussion, plan directly
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
```
|
||||
@@ -1336,12 +1336,12 @@ PHASE1_HAS_UI=$(echo "$PHASE1_SECTION" | grep -qi "UI hint.*yes" && echo "true"
|
||||
|
||||
/clear then:
|
||||
|
||||
/gsd:discuss-phase 1 — gather context and clarify approach
|
||||
/gsd-discuss-phase 1 — gather context and clarify approach
|
||||
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- /gsd:plan-phase 1 — skip discussion, plan directly
|
||||
- /gsd-plan-phase 1 — skip discussion, plan directly
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
```
|
||||
@@ -1384,7 +1384,7 @@ PHASE1_HAS_UI=$(echo "$PHASE1_SECTION" | grep -qi "UI hint.*yes" && echo "true"
|
||||
- [ ] STATE.md initialized
|
||||
- [ ] REQUIREMENTS.md traceability updated
|
||||
- [ ] `$INSTRUCTION_FILE` generated with GSD workflow guidance (AGENTS.md for Codex, CLAUDE.md otherwise)
|
||||
- [ ] User knows next step is `/gsd:discuss-phase 1`
|
||||
- [ ] User knows next step is `/gsd-discuss-phase 1`
|
||||
|
||||
**Atomic commits:** Each phase commits its artifacts immediately. If context is lost, artifacts persist.
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ Error:
|
||||
No git repos found in the current directory and this is not a git repo.
|
||||
|
||||
Run this command from a directory containing git repos, or specify repos explicitly:
|
||||
/gsd:new-workspace --name my-workspace --repos /path/to/repo1,/path/to/repo2
|
||||
/gsd-new-workspace --name my-workspace --repos /path/to/repo1,/path/to/repo2
|
||||
```
|
||||
Exit.
|
||||
|
||||
@@ -84,7 +84,7 @@ Error:
|
||||
Error: --auto requires --repos to specify which repos to include.
|
||||
|
||||
Usage:
|
||||
/gsd:new-workspace --name my-workspace --repos repo1,repo2 --auto
|
||||
/gsd-new-workspace --name my-workspace --repos repo1,repo2 --auto
|
||||
```
|
||||
Exit.
|
||||
|
||||
@@ -203,7 +203,7 @@ Workspace created: $TARGET_PATH
|
||||
|
||||
Next steps:
|
||||
cd "$TARGET_PATH"
|
||||
/gsd:new-project # Initialize GSD in the workspace
|
||||
/gsd-new-project # Initialize GSD in the workspace
|
||||
```
|
||||
|
||||
**If some repos failed:**
|
||||
@@ -216,7 +216,7 @@ Workspace created with $SUCCESS_COUNT of $TOTAL_COUNT repos: $TARGET_PATH
|
||||
|
||||
Next steps:
|
||||
cd "$TARGET_PATH"
|
||||
/gsd:new-project # Initialize GSD in the workspace
|
||||
/gsd-new-project # Initialize GSD in the workspace
|
||||
```
|
||||
|
||||
**Offer to initialize GSD (if not `--auto`):**
|
||||
@@ -225,7 +225,7 @@ Use AskUserQuestion:
|
||||
- header: "Initialize GSD"
|
||||
- question: "Would you like to initialize a GSD project in the new workspace?"
|
||||
- options:
|
||||
- "Yes — run /gsd:new-project" → tell user to `cd "$TARGET_PATH"` first, then run `/gsd:new-project`
|
||||
- "Yes — run /gsd-new-project" → tell user to `cd "$TARGET_PATH"` first, then run `/gsd-new-project`
|
||||
- "No — I'll set it up later" → done
|
||||
|
||||
</process>
|
||||
|
||||
@@ -29,7 +29,7 @@ Extract:
|
||||
|
||||
If no `.planning/` directory exists:
|
||||
```
|
||||
No GSD project detected. Run `/gsd:new-project` to get started.
|
||||
No GSD project detected. Run `/gsd-new-project` to get started.
|
||||
```
|
||||
Exit.
|
||||
</step>
|
||||
@@ -65,7 +65,7 @@ If found:
|
||||
⛔ Hard stop: Project in error state
|
||||
|
||||
STATE.md shows status: {status}. Resolve the error before advancing.
|
||||
Run `/gsd:health` to diagnose, or manually fix STATE.md.
|
||||
Run `/gsd-health` to diagnose, or manually fix STATE.md.
|
||||
Use `--force` to bypass this check.
|
||||
```
|
||||
Exit.
|
||||
@@ -121,7 +121,7 @@ Choice [S]:
|
||||
|
||||
**Goal:** Resolve plans that ran without producing summaries during Phase {src} execution
|
||||
**Source phase:** {src}
|
||||
**Deferred at:** {date} during /gsd:next advancement to Phase {dest}
|
||||
**Deferred at:** {date} during /gsd-next advancement to Phase {dest}
|
||||
**Plans:**
|
||||
- [ ] {N}-{M}: {slug} (ran, no SUMMARY.md)
|
||||
```
|
||||
@@ -151,7 +151,7 @@ If either count is > 0, display before routing:
|
||||
{PENDING_SPIKES} spike(s) with unresolved verdicts in .planning/spikes/
|
||||
{PENDING_SKETCHES} sketch(es) without a winning variant in .planning/sketches/
|
||||
|
||||
Resume with `/gsd:spike` or `/gsd:sketch`, or continue with phase work below.
|
||||
Resume with `/gsd-spike` or `/gsd-sketch`, or continue with phase work below.
|
||||
```
|
||||
|
||||
Only show lines for non-zero counts. If both are 0, skip this notice entirely.
|
||||
@@ -162,35 +162,35 @@ Apply routing rules based on state:
|
||||
|
||||
**Route 1: No phases exist yet → discuss**
|
||||
If ROADMAP has phases but no phase directories exist on disk:
|
||||
→ Next action: `/gsd:discuss-phase <first-phase>`
|
||||
→ Next action: `/gsd-discuss-phase <first-phase>`
|
||||
|
||||
**Route 2: Phase exists but has no CONTEXT.md or RESEARCH.md → discuss**
|
||||
If the current phase directory exists but has neither CONTEXT.md nor RESEARCH.md:
|
||||
→ Next action: `/gsd:discuss-phase <current-phase>`
|
||||
→ Next action: `/gsd-discuss-phase <current-phase>`
|
||||
|
||||
**Route 3: Phase has context but no plans → plan**
|
||||
If the current phase has CONTEXT.md (or RESEARCH.md) but no PLAN.md files:
|
||||
→ Next action: `/gsd:plan-phase <current-phase>`
|
||||
→ Next action: `/gsd-plan-phase <current-phase>`
|
||||
|
||||
**Route 4: Phase has plans but incomplete summaries → execute**
|
||||
If plans exist but not all have matching summaries:
|
||||
→ Next action: `/gsd:execute-phase <current-phase>`
|
||||
→ Next action: `/gsd-execute-phase <current-phase>`
|
||||
|
||||
**Route 5: All plans have summaries → verify and complete**
|
||||
If all plans in the current phase have summaries:
|
||||
→ Next action: `/gsd:verify-work`
|
||||
→ Next action: `/gsd-verify-work`
|
||||
|
||||
**Route 6: Phase complete, next phase exists → advance**
|
||||
If the current phase is complete and the next phase exists in ROADMAP:
|
||||
→ Next action: `/gsd:discuss-phase <next-phase>`
|
||||
→ Next action: `/gsd-discuss-phase <next-phase>`
|
||||
|
||||
**Route 7: All phases complete → complete milestone**
|
||||
If all phases are complete:
|
||||
→ Next action: `/gsd:complete-milestone`
|
||||
→ Next action: `/gsd-complete-milestone`
|
||||
|
||||
**Route 8: Paused → resume**
|
||||
If STATE.md shows paused_at:
|
||||
→ Next action: `/gsd:resume-work`
|
||||
→ Next action: `/gsd-resume-work`
|
||||
</step>
|
||||
|
||||
<step name="show_and_execute">
|
||||
@@ -207,7 +207,7 @@ Display the determination:
|
||||
```
|
||||
|
||||
Then immediately invoke the determined command via SlashCommand.
|
||||
Do not ask for confirmation — the whole point of `/gsd:next` is zero-friction advancement.
|
||||
Do not ask for confirmation — the whole point of `/gsd-next` is zero-friction advancement.
|
||||
</step>
|
||||
|
||||
</process>
|
||||
|
||||
@@ -45,7 +45,7 @@ promoted: false
|
||||
| Arguments are empty (no text at all) | **list** |
|
||||
| Anything else | **append** (the text IS the note) |
|
||||
|
||||
**Critical**: `list` is only a subcommand when it's the ENTIRE argument. `/gsd:note list of groceries` saves a note with text "list of groceries". Same for `promote` — only a subcommand when followed by exactly one number.
|
||||
**Critical**: `list` is only a subcommand when it's the ENTIRE argument. `/gsd-note list of groceries` saves a note with text "list of groceries". Same for `promote` — only a subcommand when followed by exactly one number.
|
||||
</step>
|
||||
|
||||
<step name="append">
|
||||
@@ -89,7 +89,7 @@ Project (.planning/notes/):
|
||||
Global (~/.claude/notes/):
|
||||
4. [2026-02-08 10:00] cross-project idea about shared config
|
||||
|
||||
{count} active note(s). Use `/gsd:note promote <N>` to convert to a todo.
|
||||
{count} active note(s). Use `/gsd-note promote <N>` to convert to a todo.
|
||||
```
|
||||
|
||||
If a scope has no directory or no entries, show: `(no notes)`
|
||||
@@ -101,7 +101,7 @@ If a scope has no directory or no entries, show: `(no notes)`
|
||||
1. Run the **list** logic to build the numbered index (both scopes)
|
||||
2. Find entry N from the numbered list
|
||||
3. If N is invalid or refers to an already-promoted note, tell the user and stop
|
||||
4. **Requires `.planning/` directory** — if it doesn't exist, warn: "Todos require a GSD project. Run `/gsd:new-project` to initialize one."
|
||||
4. **Requires `.planning/` directory** — if it doesn't exist, warn: "Todos require a GSD project. Run `/gsd-new-project` to initialize one."
|
||||
5. Ensure `.planning/todos/pending/` directory exists
|
||||
6. Generate todo ID: `{NNN}-{slug}` where NNN is the next sequential number (scan both `.planning/todos/pending/` and `.planning/todos/completed/` for the highest existing number, increment by 1, zero-pad to 3 digits) and slug is the first ~4 meaningful words of the note text
|
||||
7. Extract the note text from the source file (body after frontmatter)
|
||||
@@ -112,7 +112,7 @@ If a scope has no directory or no entries, show: `(no notes)`
|
||||
title: "{note text}"
|
||||
status: pending
|
||||
priority: P2
|
||||
source: "promoted from /gsd:note"
|
||||
source: "promoted from /gsd-note"
|
||||
created: {YYYY-MM-DD}
|
||||
theme: general
|
||||
---
|
||||
@@ -137,9 +137,9 @@ Promoted from quick note captured on {original date}.
|
||||
</process>
|
||||
|
||||
<edge_cases>
|
||||
1. **"list" as note text**: `/gsd:note list of things` saves note "list of things" (subcommand only when `list` is the entire arg)
|
||||
1. **"list" as note text**: `/gsd-note list of things` saves note "list of things" (subcommand only when `list` is the entire arg)
|
||||
2. **No `.planning/`**: Falls back to global `~/.claude/notes/` — works in any directory
|
||||
3. **Promote without project**: Warns that todos require `.planning/`, suggests `/gsd:new-project`
|
||||
3. **Promote without project**: Warns that todos require `.planning/`, suggests `/gsd-new-project`
|
||||
4. **Large files**: `list` shows last 10 when >20 active entries
|
||||
5. **Duplicate slugs**: Append `-2`, `-3` etc. to filename if slug already used on same date
|
||||
6. **`--global` position**: Stripped from anywhere — `--global my idea` and `my idea --global` both save "my idea" globally
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<purpose>
|
||||
Create structured `.planning/HANDOFF.json` and `.continue-here.md` handoff files to preserve complete work state across sessions. The JSON provides machine-readable state for `/gsd:resume-work`; the markdown provides human-readable context.
|
||||
Create structured `.planning/HANDOFF.json` and `.continue-here.md` handoff files to preserve complete work state across sessions. The JSON provides machine-readable state for `/gsd-resume-work`; the markdown provides human-readable context.
|
||||
</purpose>
|
||||
|
||||
<required_reading>
|
||||
@@ -226,7 +226,7 @@ Current state:
|
||||
- Blockers: [count] ({human_actions_pending count} need human action)
|
||||
- Committed as WIP
|
||||
|
||||
To resume: /gsd:resume-work
|
||||
To resume: /gsd-resume-work
|
||||
|
||||
```
|
||||
</step>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<purpose>
|
||||
Create all phases necessary to close gaps identified by `/gsd:audit-milestone`. Reads MILESTONE-AUDIT.md, groups gaps into logical phases, creates phase entries in ROADMAP.md, and offers to plan each phase. One command creates all fix phases — no manual `/gsd:add-phase` per gap.
|
||||
Create all phases necessary to close gaps identified by `/gsd-audit-milestone`. Reads MILESTONE-AUDIT.md, groups gaps into logical phases, creates phase entries in ROADMAP.md, and offers to plan each phase. One command creates all fix phases — no manual `/gsd-add-phase` per gap.
|
||||
</purpose>
|
||||
|
||||
<required_reading>
|
||||
@@ -22,7 +22,7 @@ Parse YAML frontmatter to extract structured gaps:
|
||||
|
||||
If no audit file exists or has no gaps, error:
|
||||
```
|
||||
No audit gaps found. Run `/gsd:audit-milestone` first.
|
||||
No audit gaps found. Run `/gsd-audit-milestone` first.
|
||||
```
|
||||
|
||||
## 2. Prioritize Gaps
|
||||
@@ -165,20 +165,20 @@ gsd-sdk query commit "docs(roadmap): add gap closure phases {N}-{M}" .planning/R
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:plan-phase {N}`
|
||||
`/gsd-plan-phase {N}`
|
||||
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:execute-phase {N}` — if plans already exist
|
||||
- `/gsd-execute-phase {N}` — if plans already exist
|
||||
- `cat .planning/ROADMAP.md` — see updated roadmap
|
||||
|
||||
---
|
||||
|
||||
**After all gap phases complete:**
|
||||
|
||||
`/gsd:audit-milestone` — re-audit to verify gaps closed
|
||||
`/gsd:complete-milestone {version}` — archive when audit passes
|
||||
`/gsd-audit-milestone` — re-audit to verify gaps closed
|
||||
`/gsd-complete-milestone {version}` — archive when audit passes
|
||||
```
|
||||
|
||||
</process>
|
||||
@@ -269,5 +269,5 @@ becomes:
|
||||
- [ ] Coverage count updated in REQUIREMENTS.md
|
||||
- [ ] Phase directories created
|
||||
- [ ] Changes committed (includes REQUIREMENTS.md)
|
||||
- [ ] User knows to run `/gsd:plan-phase` next
|
||||
- [ ] User knows to run `/gsd-plan-phase` next
|
||||
</success_criteria>
|
||||
|
||||
@@ -50,7 +50,7 @@ Parse JSON for: `researcher_model`, `planner_model`, `checker_model`, `research_
|
||||
|
||||
**File paths (for <files_to_read> blocks):** `state_path`, `roadmap_path`, `requirements_path`, `context_path`, `research_path`, `verification_path`, `uat_path`, `reviews_path`. These are null if files don't exist.
|
||||
|
||||
**If `planning_exists` is false:** Error — run `/gsd:new-project` first.
|
||||
**If `planning_exists` is false:** Error — run `/gsd-new-project` first.
|
||||
|
||||
## 2. Parse and Normalize Arguments
|
||||
|
||||
@@ -90,9 +90,9 @@ Error:
|
||||
```
|
||||
No REVIEWS.md found for Phase {N}. Run reviews first:
|
||||
|
||||
/gsd:review --phase {N}
|
||||
/gsd-review --phase {N}
|
||||
|
||||
Then re-run /gsd:plan-phase {N} --reviews
|
||||
Then re-run /gsd-plan-phase {N} --reviews
|
||||
```
|
||||
Exit workflow.
|
||||
|
||||
@@ -252,9 +252,9 @@ If "Run discuss-phase first":
|
||||
does not work correctly in nested subcontexts (#1009). Instead, display the command
|
||||
and exit so the user runs it as a top-level command:
|
||||
```
|
||||
Run this command first, then re-run /gsd:plan-phase {X} ${GSD_WS}:
|
||||
Run this command first, then re-run /gsd-plan-phase {X} ${GSD_WS}:
|
||||
|
||||
/gsd:discuss-phase {X} ${GSD_WS}
|
||||
/gsd-discuss-phase {X} ${GSD_WS}
|
||||
```
|
||||
**Exit the plan-phase workflow. Do not continue.**
|
||||
|
||||
@@ -277,19 +277,19 @@ echo "${phase_goal}" | grep -qi "agent\|llm\|rag\|chatbot\|embedding\|langchain\
|
||||
**If AI keywords detected AND no AI-SPEC.md:**
|
||||
```
|
||||
◆ Note: This phase appears to involve AI system development.
|
||||
Consider running /gsd:ai-integration-phase {N} before planning to:
|
||||
Consider running /gsd-ai-integration-phase {N} before planning to:
|
||||
- Select the right framework for your use case
|
||||
- Research its docs and best practices
|
||||
- Design an evaluation strategy
|
||||
|
||||
Continue planning without AI-SPEC? (non-blocking — /gsd:ai-integration-phase can be run after)
|
||||
Continue planning without AI-SPEC? (non-blocking — /gsd-ai-integration-phase can be run after)
|
||||
```
|
||||
|
||||
Use AskUserQuestion with options:
|
||||
- "Continue — plan without AI-SPEC"
|
||||
- "Stop — I'll run /gsd:ai-integration-phase {N} first"
|
||||
- "Stop — I'll run /gsd-ai-integration-phase {N} first"
|
||||
|
||||
If "Stop": Exit with `/gsd:ai-integration-phase {N}` reminder.
|
||||
If "Stop": Exit with `/gsd-ai-integration-phase {N}` reminder.
|
||||
If "Continue": Proceed. (Non-blocking — planner will note AI-SPEC is absent.)
|
||||
|
||||
**If `AI_SPEC_FILE` is non-empty:** Extract framework for planner context:
|
||||
@@ -362,7 +362,7 @@ Answer: "What do I need to know to PLAN this phase well?"
|
||||
</objective>
|
||||
|
||||
<files_to_read>
|
||||
- {context_path} (USER DECISIONS from /gsd:discuss-phase)
|
||||
- {context_path} (USER DECISIONS from /gsd-discuss-phase)
|
||||
- {requirements_path} (Project requirements)
|
||||
- {state_path} (Project decisions and history)
|
||||
</files_to_read>
|
||||
@@ -509,10 +509,10 @@ Output this markdown directly (not as a code block):
|
||||
```
|
||||
## ⚠ UI-SPEC.md missing for Phase {N}
|
||||
▶ Recommended next step:
|
||||
`/gsd:ui-phase {N} ${GSD_WS}` — generate UI design contract before planning
|
||||
`/gsd-ui-phase {N} ${GSD_WS}` — generate UI design contract before planning
|
||||
───────────────────────────────────────────────
|
||||
Also available:
|
||||
- `/gsd:plan-phase {N} --skip-ui ${GSD_WS}` — plan without UI-SPEC (not recommended for frontend phases)
|
||||
- `/gsd-plan-phase {N} --skip-ui ${GSD_WS}` — plan without UI-SPEC (not recommended for frontend phases)
|
||||
```
|
||||
|
||||
**Exit the plan-phase workflow. Do not continue.**
|
||||
@@ -628,7 +628,7 @@ VALIDATION_EXISTS=$(ls "${PHASE_DIR}"/*-VALIDATION.md 2>/dev/null | head -1)
|
||||
```
|
||||
|
||||
If missing and Nyquist is still enabled/applicable — ask user:
|
||||
1. Re-run: `/gsd:plan-phase {PHASE} --research ${GSD_WS}`
|
||||
1. Re-run: `/gsd-plan-phase {PHASE} --research ${GSD_WS}`
|
||||
2. Disable Nyquist with the exact command:
|
||||
`gsd-sdk query config-set workflow.nyquist_validation false`
|
||||
3. Continue anyway (plans fail Dimension 8)
|
||||
@@ -666,7 +666,7 @@ Pattern mapper prompt:
|
||||
**Padded phase:** {padded_phase}
|
||||
|
||||
<files_to_read>
|
||||
- {context_path} (USER DECISIONS from /gsd:discuss-phase)
|
||||
- {context_path} (USER DECISIONS from /gsd-discuss-phase)
|
||||
- {research_path} (Technical Research)
|
||||
</files_to_read>
|
||||
|
||||
@@ -716,7 +716,7 @@ Planner prompt:
|
||||
- {state_path} (Project State)
|
||||
- {roadmap_path} (Roadmap)
|
||||
- {requirements_path} (Requirements)
|
||||
- {context_path} (USER DECISIONS from /gsd:discuss-phase)
|
||||
- {context_path} (USER DECISIONS from /gsd-discuss-phase)
|
||||
- {research_path} (Technical Research)
|
||||
- {PATTERNS_PATH} (Pattern Map — analog files and code excerpts, if exists)
|
||||
- {verification_path} (Verification Gaps - if --gaps)
|
||||
@@ -755,7 +755,7 @@ Each TDD plan gets one feature with RED/GREEN/REFACTOR gate sequence.
|
||||
</planning_context>
|
||||
|
||||
<downstream_consumer>
|
||||
Output consumed by /gsd:execute-phase. Plans need:
|
||||
Output consumed by /gsd-execute-phase. Plans need:
|
||||
- Frontmatter (wave, depends_on, files_modified, autonomous)
|
||||
- Tasks in XML format with read_first and acceptance_criteria fields (MANDATORY on every task)
|
||||
- Verification criteria
|
||||
@@ -824,10 +824,10 @@ Task(
|
||||
Chunked mode splits the single long-lived planner Task into a short outline Task followed by
|
||||
N short per-plan Tasks. Each Task is bounded to ~3–5 min; each plan is committed individually
|
||||
for crash resilience. If any Task hangs and the terminal is force-killed, rerunning
|
||||
`/gsd:plan-phase {N} --chunked` resumes from the last successfully committed plan.
|
||||
`/gsd-plan-phase {N} --chunked` resumes from the last successfully committed plan.
|
||||
|
||||
**Intended for new or in-progress chunked runs.** To recover plans already written by a prior
|
||||
*non-chunked* run, use step 6's "Add more plans" or proceed directly to `/gsd:execute-phase`
|
||||
*non-chunked* run, use step 6's "Add more plans" or proceed directly to `/gsd-execute-phase`
|
||||
— don't start a fresh chunked run over existing non-chunked plans.
|
||||
|
||||
### 8.5.1 Outline Phase (outline-only mode, ~2 min)
|
||||
@@ -953,7 +953,7 @@ arrived). Display:
|
||||
Offer 3 options:
|
||||
1. **Accept plans** — treat as `## PLANNING COMPLETE` and continue through step 9 `## PLANNING COMPLETE` handling (so `--skip-verify` / `plan_checker_enabled=false` are honored — may skip to step 13 rather than step 10)
|
||||
2. **Retry planner** — re-spawn the planner with the same prompt (return to step 8)
|
||||
3. **Stop** — exit; user can re-run `/gsd:plan-phase {N}` to resume
|
||||
3. **Stop** — exit; user can re-run `/gsd-plan-phase {N}` to resume
|
||||
|
||||
**If `DISK_PLANS` is 0 and no marker:** The planner produced no output. Treat as
|
||||
`## PLANNING INCONCLUSIVE` and handle accordingly.
|
||||
@@ -986,7 +986,7 @@ rest become a follow-up phase
|
||||
|
||||
Use AskUserQuestion with these 3 options.
|
||||
|
||||
**If "Split":** Use `/gsd:insert-phase` to create the sub-phases, then replan each.
|
||||
**If "Split":** Use `/gsd-insert-phase` to create the sub-phases, then replan each.
|
||||
**If "Proceed":** Return to planner with instruction to attempt all items at full fidelity, accepting more plans/tasks.
|
||||
**If "Prioritize":** Use AskUserQuestion (multiSelect) to let user pick which items are "now" vs "later". Create CONTEXT.md for each sub-phase with the selected items.
|
||||
|
||||
@@ -1015,7 +1015,7 @@ Options:
|
||||
Use AskUserQuestion for each gap (or batch if multiple gaps).
|
||||
|
||||
**If "Add plan":** Return to planner (step 8) with instruction to add plans covering the missing items, preserving existing plans.
|
||||
**If "Split":** Use `/gsd:insert-phase` for overflow items, then replan.
|
||||
**If "Split":** Use `/gsd-insert-phase` for overflow items, then replan.
|
||||
**If "Defer":** Record in CONTEXT.md `## Deferred Ideas` with developer's confirmation. Proceed to step 10.
|
||||
|
||||
## 10. Spawn gsd-plan-checker Agent
|
||||
@@ -1040,7 +1040,7 @@ Checker prompt:
|
||||
- {PHASE_DIR}/*-PLAN.md (Plans to verify)
|
||||
- {roadmap_path} (Roadmap)
|
||||
- {requirements_path} (Requirements)
|
||||
- {context_path} (USER DECISIONS from /gsd:discuss-phase)
|
||||
- {context_path} (USER DECISIONS from /gsd-discuss-phase)
|
||||
- {research_path} (Technical Research — includes Validation Architecture)
|
||||
</files_to_read>
|
||||
|
||||
@@ -1111,7 +1111,7 @@ Windows stdio hang pattern — the subagent finished but the return never arrive
|
||||
Offer 3 options:
|
||||
1. **Accept verification** — treat as `## VERIFICATION PASSED` and continue to step 13
|
||||
2. **Retry checker** — re-spawn the checker with the same prompt (return to step 10)
|
||||
3. **Stop** — exit; user can re-run `/gsd:plan-phase {N}` to resume
|
||||
3. **Stop** — exit; user can re-run `/gsd-plan-phase {N}` to resume
|
||||
|
||||
**If `DISK_PLANS` is 0:** No plans on disk — something is seriously wrong. Display error and stop.
|
||||
|
||||
@@ -1140,7 +1140,7 @@ Display: `Revision iteration {N}/3 -- {blocker_count} blockers, {warning_count}
|
||||
**If `stall_reentry_count >= 2`:**
|
||||
Display: `Stall persists after 2 re-planning attempts. The following issues could not be resolved automatically:`
|
||||
List the remaining issues from the checker.
|
||||
Suggest: "Consider resolving these issues manually or running `/gsd:debug` to investigate root causes."
|
||||
Suggest: "Consider resolving these issues manually or running `/gsd-debug` to investigate root causes."
|
||||
Options: "Proceed anyway" | "Abandon"
|
||||
If "Proceed anyway": accept current plans and continue to step 13.
|
||||
If "Abandon": stop workflow.
|
||||
@@ -1156,7 +1156,7 @@ Revision prompt:
|
||||
|
||||
<files_to_read>
|
||||
- {PHASE_DIR}/*-PLAN.md (Existing plans)
|
||||
- {context_path} (USER DECISIONS from /gsd:discuss-phase)
|
||||
- {context_path} (USER DECISIONS from /gsd-discuss-phase)
|
||||
</files_to_read>
|
||||
|
||||
${AGENT_SKILLS_PLANNER}
|
||||
@@ -1455,7 +1455,7 @@ sort within source):**
|
||||
- Both missing or `<decisions>` block missing → "No requirements or decisions to check" line, no error.
|
||||
|
||||
This step is non-blocking. If items are reported as not covered, the user may
|
||||
re-run `/gsd:plan-phase --gaps` to add plans, or proceed to execute-phase as-is.
|
||||
re-run `/gsd-plan-phase --gaps` to add plans, or proceed to execute-phase as-is.
|
||||
|
||||
## 14. Present Final Status
|
||||
|
||||
@@ -1512,14 +1512,14 @@ The `--no-transition` flag tells execute-phase to return status after verificati
|
||||
|
||||
Auto-advance pipeline finished.
|
||||
|
||||
Next: /gsd:discuss-phase ${NEXT_PHASE} --auto ${GSD_WS}
|
||||
Next: /gsd-discuss-phase ${NEXT_PHASE} --auto ${GSD_WS}
|
||||
```
|
||||
- **GAPS FOUND / VERIFICATION FAILED** → Display result, stop chain:
|
||||
```
|
||||
Auto-advance stopped: Execution needs review.
|
||||
|
||||
Review the output above and continue manually:
|
||||
/gsd:execute-phase ${PHASE} ${GSD_WS}
|
||||
/gsd-execute-phase ${PHASE} ${GSD_WS}
|
||||
```
|
||||
|
||||
**If neither `--auto` nor config enabled:**
|
||||
@@ -1552,15 +1552,15 @@ Verification: {Passed | Passed with override | Skipped}
|
||||
|
||||
/clear then:
|
||||
|
||||
/gsd:execute-phase {X} ${GSD_WS}
|
||||
/gsd-execute-phase {X} ${GSD_WS}
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
|
||||
**Also available:**
|
||||
- cat .planning/phases/{phase-dir}/*-PLAN.md — review plans
|
||||
- /gsd:plan-phase {X} --research — re-research first
|
||||
- /gsd:review --phase {X} --all — peer review plans with external AIs
|
||||
- /gsd:plan-phase {X} --reviews — replan incorporating review feedback
|
||||
- /gsd-plan-phase {X} --research — re-research first
|
||||
- /gsd-review --phase {X} --all — peer review plans with external AIs
|
||||
- /gsd-plan-phase {X} --reviews — replan incorporating review feedback
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
</offer_next>
|
||||
@@ -1581,11 +1581,11 @@ stdio deadlocks with MCP servers — see Claude Code issue anthropics/claude-cod
|
||||
Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\tasks\*" -ErrorAction SilentlyContinue
|
||||
```
|
||||
4. **Reduce MCP server count:** Temporarily disable non-essential MCP servers in settings.json
|
||||
5. **Retry:** Restart Claude Code and run `/gsd:plan-phase` again
|
||||
5. **Retry:** Restart Claude Code and run `/gsd-plan-phase` again
|
||||
|
||||
If freezes persist, try `--skip-research` to reduce the agent chain from 3 to 2 agents:
|
||||
```
|
||||
/gsd:plan-phase N --skip-research
|
||||
/gsd-plan-phase N --skip-research
|
||||
```
|
||||
</windows_troubleshooting>
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ Display: `◆ No plans found — spawning initial planning agent...`
|
||||
```text
|
||||
Agent(
|
||||
description="Initial planning Phase {PHASE}",
|
||||
prompt="Run /gsd:plan-phase for Phase {PHASE}.
|
||||
prompt="Run /gsd-plan-phase for Phase {PHASE}.
|
||||
|
||||
Execute: Skill(skill='gsd-plan-phase', args='{PHASE} {GSD_WS}')
|
||||
|
||||
@@ -116,7 +116,7 @@ Display: `◆ Cycle {cycle}/{MAX_CYCLES} — spawning review agent...`
|
||||
```text
|
||||
Agent(
|
||||
description="Cross-AI review Phase {PHASE} cycle {cycle}",
|
||||
prompt="Run /gsd:review for Phase {PHASE}.
|
||||
prompt="Run /gsd-review for Phase {PHASE}.
|
||||
|
||||
Execute: Skill(skill='gsd-review', args='--phase {PHASE} {REVIEWER_FLAGS} {GSD_WS}')
|
||||
|
||||
@@ -156,7 +156,7 @@ Display:
|
||||
No HIGH concerns remaining.
|
||||
|
||||
REVIEWS.md: {REVIEWS_FILE}
|
||||
Next: /gsd:execute-phase {PHASE}
|
||||
Next: /gsd-execute-phase {PHASE}
|
||||
```
|
||||
|
||||
Exit — convergence achieved.
|
||||
@@ -210,8 +210,8 @@ If "Manual review":
|
||||
```text
|
||||
Review the concerns in: {REVIEWS_FILE}
|
||||
|
||||
To replan manually: /gsd:plan-phase {PHASE} --reviews
|
||||
To restart loop: /gsd:plan-review-convergence {PHASE} {REVIEWER_FLAGS}
|
||||
To replan manually: /gsd-plan-phase {PHASE} --reviews
|
||||
To restart loop: /gsd-plan-review-convergence {PHASE} {REVIEWER_FLAGS}
|
||||
```
|
||||
Exit workflow.
|
||||
|
||||
@@ -226,7 +226,7 @@ Display: `◆ Spawning replan agent with review feedback...`
|
||||
```text
|
||||
Agent(
|
||||
description="Replan Phase {PHASE} with review feedback cycle {cycle}",
|
||||
prompt="Run /gsd:plan-phase with --reviews for Phase {PHASE}.
|
||||
prompt="Run /gsd-plan-phase with --reviews for Phase {PHASE}.
|
||||
|
||||
Execute: Skill(skill='gsd-plan-phase', args='{PHASE} --reviews --skip-research {GSD_WS}')
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<purpose>
|
||||
Capture a forward-looking idea as a structured seed file with trigger conditions.
|
||||
Seeds auto-surface during /gsd:new-milestone when trigger conditions match the
|
||||
Seeds auto-surface during /gsd-new-milestone when trigger conditions match the
|
||||
new milestone's scope.
|
||||
|
||||
Seeds beat deferred items because they:
|
||||
@@ -120,7 +120,7 @@ scope: {$SCOPE}
|
||||
|
||||
**Trigger:** {$TRIGGER}
|
||||
|
||||
This seed should be presented during `/gsd:new-milestone` when the milestone
|
||||
This seed should be presented during `/gsd-new-milestone` when the milestone
|
||||
scope matches any of these conditions:
|
||||
- {trigger condition 1}
|
||||
- {trigger condition 2}
|
||||
@@ -156,7 +156,7 @@ Trigger: {$TRIGGER}
|
||||
Scope: {$SCOPE}
|
||||
File: .planning/seeds/SEED-{PADDED}-{slug}.md
|
||||
|
||||
This seed will surface automatically when you run /gsd:new-milestone
|
||||
This seed will surface automatically when you run /gsd-new-milestone
|
||||
and the milestone scope matches the trigger condition.
|
||||
```
|
||||
</step>
|
||||
|
||||
@@ -142,7 +142,7 @@ Next steps:
|
||||
git push origin {PR_BRANCH}
|
||||
gh pr create --base {TARGET} --head {PR_BRANCH}
|
||||
|
||||
Or use /gsd:ship to create the PR automatically.
|
||||
Or use /gsd-ship to create the PR automatically.
|
||||
```
|
||||
</step>
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ Use AskUserQuestion:
|
||||
- options:
|
||||
- "Let's go" -- Proceed to step 3 (session analysis)
|
||||
- "Use questionnaire instead" -- Jump to step 4b (questionnaire path)
|
||||
- "Not now" -- Display "No worries. Run /gsd:profile-user when ready." and exit
|
||||
- "Not now" -- Display "No worries. Run /gsd-profile-user when ready." and exit
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -27,18 +27,18 @@ If `project_exists` is false (no `.planning/` directory):
|
||||
```
|
||||
No planning structure found.
|
||||
|
||||
Run /gsd:new-project to start a new project.
|
||||
Run /gsd-new-project to start a new project.
|
||||
```
|
||||
|
||||
Exit.
|
||||
|
||||
If missing STATE.md: suggest `/gsd:new-project`.
|
||||
If missing STATE.md: suggest `/gsd-new-project`.
|
||||
|
||||
**If ROADMAP.md missing but PROJECT.md exists:**
|
||||
|
||||
This means a milestone was completed and archived. Go to **Route F** (between milestones).
|
||||
|
||||
If missing both ROADMAP.md and PROJECT.md: suggest `/gsd:new-project`.
|
||||
If missing both ROADMAP.md and PROJECT.md: suggest `/gsd-new-project`.
|
||||
</step>
|
||||
|
||||
<step name="load">
|
||||
@@ -123,10 +123,10 @@ CONTEXT: [✓ if has_context | - if not]
|
||||
- [e.g. jq -r '.blockers[].text' from state-snapshot]
|
||||
|
||||
## Pending Todos
|
||||
- [count] pending — /gsd:check-todos to review
|
||||
- [count] pending — /gsd-check-todos to review
|
||||
|
||||
## Active Debug Sessions
|
||||
- [count] active — /gsd:debug to continue
|
||||
- [count] active — /gsd-debug to continue
|
||||
(Only show this section if count > 0)
|
||||
|
||||
## What's Next
|
||||
@@ -185,8 +185,8 @@ Track: `outstanding_debt` — `summary.total_items` from the audit.
|
||||
| {phase} | {filename} | {pending_count} pending, {skipped_count} skipped, {blocked_count} blocked |
|
||||
| {phase} | {filename} | human_needed — {count} items |
|
||||
|
||||
Review: `/gsd:audit-uat ${GSD_WS}` — full cross-phase audit
|
||||
Resume testing: `/gsd:verify-work {phase} ${GSD_WS}` — retest specific phase
|
||||
Review: `/gsd-audit-uat ${GSD_WS}` — full cross-phase audit
|
||||
Resume testing: `/gsd-verify-work {phase} ${GSD_WS}` — retest specific phase
|
||||
```
|
||||
|
||||
This is a WARNING, not a blocker — routing proceeds normally. The debt is visible so the user can make an informed choice.
|
||||
@@ -217,7 +217,7 @@ Read its `<objective>` section.
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:execute-phase {phase} ${GSD_WS}`
|
||||
`/gsd-execute-phase {phase} ${GSD_WS}`
|
||||
|
||||
---
|
||||
```
|
||||
@@ -247,7 +247,7 @@ PHASE_HAS_UI=$(echo "$PHASE_SECTION" | grep -qi "UI hint.*yes" && echo "true" ||
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:plan-phase {phase-number} ${GSD_WS}`
|
||||
`/gsd-plan-phase {phase-number} ${GSD_WS}`
|
||||
|
||||
---
|
||||
```
|
||||
@@ -263,14 +263,14 @@ PHASE_HAS_UI=$(echo "$PHASE_SECTION" | grep -qi "UI hint.*yes" && echo "true" ||
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:discuss-phase {phase}` — gather context and clarify approach
|
||||
`/gsd-discuss-phase {phase}` — gather context and clarify approach
|
||||
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:ui-phase {phase}` — generate UI design contract (recommended for frontend phases)
|
||||
- `/gsd:plan-phase {phase}` — skip discussion, plan directly
|
||||
- `/gsd:list-phase-assumptions {phase}` — see Claude's assumptions
|
||||
- `/gsd-ui-phase {phase}` — generate UI design contract (recommended for frontend phases)
|
||||
- `/gsd-plan-phase {phase}` — skip discussion, plan directly
|
||||
- `/gsd-list-phase-assumptions {phase}` — see Claude's assumptions
|
||||
|
||||
---
|
||||
```
|
||||
@@ -286,13 +286,13 @@ PHASE_HAS_UI=$(echo "$PHASE_SECTION" | grep -qi "UI hint.*yes" && echo "true" ||
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:discuss-phase {phase} ${GSD_WS}` — gather context and clarify approach
|
||||
`/gsd-discuss-phase {phase} ${GSD_WS}` — gather context and clarify approach
|
||||
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:plan-phase {phase} ${GSD_WS}` — skip discussion, plan directly
|
||||
- `/gsd:list-phase-assumptions {phase} ${GSD_WS}` — see Claude's assumptions
|
||||
- `/gsd-plan-phase {phase} ${GSD_WS}` — skip discussion, plan directly
|
||||
- `/gsd-list-phase-assumptions {phase} ${GSD_WS}` — see Claude's assumptions
|
||||
|
||||
---
|
||||
```
|
||||
@@ -312,13 +312,13 @@ UAT.md exists with gaps (diagnosed issues). User needs to plan fixes.
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:plan-phase {phase} --gaps ${GSD_WS}`
|
||||
`/gsd-plan-phase {phase} --gaps ${GSD_WS}`
|
||||
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:execute-phase {phase} ${GSD_WS}` — execute phase plans
|
||||
- `/gsd:verify-work {phase} ${GSD_WS}` — run more UAT testing
|
||||
- `/gsd-execute-phase {phase} ${GSD_WS}` — execute phase plans
|
||||
- `/gsd-verify-work {phase} ${GSD_WS}` — run more UAT testing
|
||||
|
||||
---
|
||||
```
|
||||
@@ -338,13 +338,13 @@ UAT.md exists with `status: partial` — testing session ended before all items
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:verify-work {phase} ${GSD_WS}` — resume testing from where you left off
|
||||
`/gsd-verify-work {phase} ${GSD_WS}` — resume testing from where you left off
|
||||
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:audit-uat ${GSD_WS}` — full cross-phase UAT audit
|
||||
- `/gsd:execute-phase {phase} ${GSD_WS}` — execute phase plans
|
||||
- `/gsd-audit-uat ${GSD_WS}` — full cross-phase UAT audit
|
||||
- `/gsd-execute-phase {phase} ${GSD_WS}` — execute phase plans
|
||||
|
||||
---
|
||||
```
|
||||
@@ -394,14 +394,14 @@ NEXT_HAS_UI=$(echo "$NEXT_PHASE_SECTION" | grep -qi "UI hint.*yes" && echo "true
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:discuss-phase {Z+1}` — gather context and clarify approach
|
||||
`/gsd-discuss-phase {Z+1}` — gather context and clarify approach
|
||||
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:ui-phase {Z+1}` — generate UI design contract (recommended for frontend phases)
|
||||
- `/gsd:plan-phase {Z+1}` — skip discussion, plan directly
|
||||
- `/gsd:verify-work {Z}` — user acceptance test before continuing
|
||||
- `/gsd-ui-phase {Z+1}` — generate UI design contract (recommended for frontend phases)
|
||||
- `/gsd-plan-phase {Z+1}` — skip discussion, plan directly
|
||||
- `/gsd-verify-work {Z}` — user acceptance test before continuing
|
||||
|
||||
---
|
||||
```
|
||||
@@ -419,13 +419,13 @@ NEXT_HAS_UI=$(echo "$NEXT_PHASE_SECTION" | grep -qi "UI hint.*yes" && echo "true
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:discuss-phase {Z+1} ${GSD_WS}` — gather context and clarify approach
|
||||
`/gsd-discuss-phase {Z+1} ${GSD_WS}` — gather context and clarify approach
|
||||
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:plan-phase {Z+1} ${GSD_WS}` — skip discussion, plan directly
|
||||
- `/gsd:verify-work {Z} ${GSD_WS}` — user acceptance test before continuing
|
||||
- `/gsd-plan-phase {Z+1} ${GSD_WS}` — skip discussion, plan directly
|
||||
- `/gsd-verify-work {Z} ${GSD_WS}` — user acceptance test before continuing
|
||||
|
||||
---
|
||||
```
|
||||
@@ -447,12 +447,12 @@ All {N} phases finished!
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:complete-milestone ${GSD_WS}`
|
||||
`/gsd-complete-milestone ${GSD_WS}`
|
||||
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:verify-work ${GSD_WS}` — user acceptance test before completing milestone
|
||||
- `/gsd-verify-work ${GSD_WS}` — user acceptance test before completing milestone
|
||||
|
||||
---
|
||||
```
|
||||
@@ -478,7 +478,7 @@ Ready to plan the next milestone.
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:new-milestone ${GSD_WS}`
|
||||
`/gsd-new-milestone ${GSD_WS}`
|
||||
|
||||
---
|
||||
```
|
||||
@@ -488,10 +488,10 @@ Ready to plan the next milestone.
|
||||
<step name="edge_cases">
|
||||
**Handle edge cases:**
|
||||
|
||||
- Phase complete but next phase not planned → offer `/gsd:plan-phase [next] ${GSD_WS}`
|
||||
- Phase complete but next phase not planned → offer `/gsd-plan-phase [next] ${GSD_WS}`
|
||||
- All work complete → offer milestone completion
|
||||
- Blockers present → highlight before offering to continue
|
||||
- Handoff file exists → mention it, offer `/gsd:resume-work ${GSD_WS}`
|
||||
- Handoff file exists → mention it, offer `/gsd-resume-work ${GSD_WS}`
|
||||
</step>
|
||||
|
||||
<step name="forensic_audit">
|
||||
@@ -598,12 +598,12 @@ Review the flagged items above before acting on the routing suggestion.
|
||||
```
|
||||
|
||||
Then for each failed check, add a concrete next action:
|
||||
- Check 2 (orphaned handoff): `Read the handoff file(s) and resume from where work was paused: /gsd:resume-work ${GSD_WS}`
|
||||
- Check 2 (orphaned handoff): `Read the handoff file(s) and resume from where work was paused: /gsd-resume-work ${GSD_WS}`
|
||||
- Check 3 (deferred scope): `Add the missing phases to ROADMAP.md or update the deferred references`
|
||||
- Check 4 (memory pending): `Review the flagged memory entries and resolve or clear them`
|
||||
- Check 5 (blocking todos): `Complete the operational steps in .planning/todos/pending/ before continuing`
|
||||
- Check 6 (uncommitted code): `Commit or stash the uncommitted changes before advancing`
|
||||
- Check 1 (STATE inconsistency): `Run /gsd:verify-work ${PHASE} ${GSD_WS} to reconcile state`
|
||||
- Check 1 (STATE inconsistency): `Run /gsd-verify-work ${PHASE} ${GSD_WS} to reconcile state`
|
||||
</step>
|
||||
|
||||
</process>
|
||||
@@ -613,7 +613,7 @@ Then for each failed check, add a concrete next action:
|
||||
- [ ] Rich context provided (recent work, decisions, issues)
|
||||
- [ ] Current position clear with visual progress
|
||||
- [ ] What's next clearly explained
|
||||
- [ ] Smart routing: /gsd:execute-phase if plans exist, /gsd:plan-phase if not
|
||||
- [ ] Smart routing: /gsd-execute-phase if plans exist, /gsd-plan-phase if not
|
||||
- [ ] User confirms before any action
|
||||
- [ ] Seamless handoff to appropriate gsd command
|
||||
</success_criteria>
|
||||
|
||||
@@ -126,13 +126,13 @@ If `$VALIDATE_MODE` only:
|
||||
|
||||
```bash
|
||||
if ! command -v gsd-sdk &>/dev/null; then
|
||||
echo "⚠ gsd-sdk not found in PATH — /gsd:quick requires it."
|
||||
echo "⚠ gsd-sdk not found in PATH — /gsd-quick requires it."
|
||||
echo ""
|
||||
echo "Install the GSD SDK:"
|
||||
echo " npm install -g @gsd-build/sdk"
|
||||
echo ""
|
||||
echo "Or update GSD to get the latest packages:"
|
||||
echo " /gsd:update"
|
||||
echo " /gsd-update"
|
||||
exit 1
|
||||
fi
|
||||
```
|
||||
@@ -161,7 +161,7 @@ if [ -f .gitmodules ]; then
|
||||
fi
|
||||
```
|
||||
|
||||
**If `roadmap_exists` is false:** Error — Quick mode requires an active project with ROADMAP.md. Run `/gsd:new-project` first.
|
||||
**If `roadmap_exists` is false:** Error — Quick mode requires an active project with ROADMAP.md. Run `/gsd-new-project` first.
|
||||
|
||||
Quick tasks can run mid-phase - validation only checks ROADMAP.md exists, not phase status.
|
||||
|
||||
@@ -930,7 +930,7 @@ Commit: ${commit_hash}
|
||||
|
||||
---
|
||||
|
||||
Ready for next task: /gsd:quick ${GSD_WS}
|
||||
Ready for next task: /gsd-quick ${GSD_WS}
|
||||
```
|
||||
|
||||
**If NOT `$VALIDATE_MODE`:**
|
||||
@@ -947,7 +947,7 @@ Commit: ${commit_hash}
|
||||
|
||||
---
|
||||
|
||||
Ready for next task: /gsd:quick ${GSD_WS}
|
||||
Ready for next task: /gsd-quick ${GSD_WS}
|
||||
```
|
||||
|
||||
</process>
|
||||
|
||||
@@ -11,15 +11,15 @@ Read all files referenced by the invoking prompt's execution_context before star
|
||||
<step name="parse_arguments">
|
||||
Parse the command arguments:
|
||||
- Argument is the phase number to remove (integer or decimal)
|
||||
- Example: `/gsd:remove-phase 17` → phase = 17
|
||||
- Example: `/gsd:remove-phase 16.1` → phase = 16.1
|
||||
- Example: `/gsd-remove-phase 17` → phase = 17
|
||||
- Example: `/gsd-remove-phase 16.1` → phase = 16.1
|
||||
|
||||
If no argument provided:
|
||||
|
||||
```
|
||||
ERROR: Phase number required
|
||||
Usage: /gsd:remove-phase <phase-number>
|
||||
Example: /gsd:remove-phase 17
|
||||
Usage: /gsd-remove-phase <phase-number>
|
||||
Example: /gsd-remove-phase 17
|
||||
```
|
||||
|
||||
Exit.
|
||||
@@ -53,7 +53,7 @@ Only future phases can be removed:
|
||||
- Current phase: {current}
|
||||
- Phase {target} is current or completed
|
||||
|
||||
To abandon current work, use /gsd:pause-work instead.
|
||||
To abandon current work, use /gsd-pause-work instead.
|
||||
```
|
||||
|
||||
Exit.
|
||||
@@ -126,7 +126,7 @@ Changes:
|
||||
## What's Next
|
||||
|
||||
Would you like to:
|
||||
- `/gsd:progress` — see updated roadmap status
|
||||
- `/gsd-progress` — see updated roadmap status
|
||||
- Continue with current phase
|
||||
- Review roadmap
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ Parse JSON for: `workspace_name`, `workspace_path`, `has_manifest`, `strategy`,
|
||||
|
||||
**If no workspace name provided:**
|
||||
|
||||
First run `/gsd:list-workspaces` to show available workspaces, then ask:
|
||||
First run `/gsd-list-workspaces` to show available workspaces, then ask:
|
||||
|
||||
|
||||
**Text mode (`workflow.text_mode: true` in config or `--text` flag):** Set `TEXT_MODE=true` if `--text` is present in `$ARGUMENTS` OR `text_mode` from init JSON is `true`. When TEXT_MODE is active, replace every `AskUserQuestion` call with a plain-text numbered list and ask the user to type their choice number. This is required for non-Claude runtimes (OpenAI Codex, Gemini CLI, etc.) where `AskUserQuestion` is not available.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<purpose>
|
||||
Research how to implement a phase. Spawns gsd-phase-researcher with phase context.
|
||||
|
||||
Standalone research command. For most workflows, use `/gsd:plan-phase` which integrates research automatically.
|
||||
Standalone research command. For most workflows, use `/gsd-plan-phase` which integrates research automatically.
|
||||
</purpose>
|
||||
|
||||
<available_agent_types>
|
||||
@@ -54,7 +54,7 @@ Research implementation approach for Phase {phase}: {name}
|
||||
</objective>
|
||||
|
||||
<files_to_read>
|
||||
- {context_path} (USER DECISIONS from /gsd:discuss-phase)
|
||||
- {context_path} (USER DECISIONS from /gsd-discuss-phase)
|
||||
- {requirements_path} (Project requirements)
|
||||
- {state_path} (Project decisions and history)
|
||||
</files_to_read>
|
||||
|
||||
@@ -28,7 +28,7 @@ Parse JSON for: `state_exists`, `roadmap_exists`, `project_exists`, `planning_ex
|
||||
|
||||
**If `state_exists` is true:** Proceed to load_state
|
||||
**If `state_exists` is false but `roadmap_exists` or `project_exists` is true:** Offer to reconstruct STATE.md
|
||||
**If `planning_exists` is false:** This is a new project - route to /gsd:new-project
|
||||
**If `planning_exists` is false:** This is a new project - route to /gsd-new-project
|
||||
</step>
|
||||
|
||||
<step name="load_state">
|
||||
@@ -84,7 +84,7 @@ fi
|
||||
|
||||
**If HANDOFF.json exists:**
|
||||
|
||||
- This is the primary resumption source — structured data from `/gsd:pause-work`
|
||||
- This is the primary resumption source — structured data from `/gsd-pause-work`
|
||||
- Parse `status`, `phase`, `plan`, `task`, `total_tasks`, `next_action`
|
||||
- Check `blockers` and `human_actions_pending` — surface these immediately
|
||||
- Check `completed_tasks` for `in_progress` items — these need attention first
|
||||
@@ -140,7 +140,7 @@ Present complete project status to user:
|
||||
Resume with: Task tool (resume parameter with agent ID)
|
||||
|
||||
[If pending todos exist:]
|
||||
📋 [N] pending todos — /gsd:check-todos to review
|
||||
📋 [N] pending todos — /gsd-check-todos to review
|
||||
|
||||
[If blockers exist:]
|
||||
⚠️ Carried concerns:
|
||||
@@ -200,11 +200,11 @@ What would you like to do?
|
||||
[Primary action based on state - e.g.:]
|
||||
1. Resume interrupted agent [if interrupted agent found]
|
||||
OR
|
||||
1. Execute phase (/gsd:execute-phase {phase} ${GSD_WS})
|
||||
1. Execute phase (/gsd-execute-phase {phase} ${GSD_WS})
|
||||
OR
|
||||
1. Discuss Phase 3 context (/gsd:discuss-phase 3 ${GSD_WS}) [if CONTEXT.md missing]
|
||||
1. Discuss Phase 3 context (/gsd-discuss-phase 3 ${GSD_WS}) [if CONTEXT.md missing]
|
||||
OR
|
||||
1. Plan Phase 3 (/gsd:plan-phase 3 ${GSD_WS}) [if CONTEXT.md exists or discuss option declined]
|
||||
1. Plan Phase 3 (/gsd-plan-phase 3 ${GSD_WS}) [if CONTEXT.md exists or discuss option declined]
|
||||
|
||||
[Secondary options:]
|
||||
2. Review current phase status
|
||||
@@ -237,7 +237,7 @@ Based on user selection, route to appropriate workflow:
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:execute-phase {phase} ${GSD_WS}`
|
||||
`/gsd-execute-phase {phase} ${GSD_WS}`
|
||||
|
||||
---
|
||||
```
|
||||
@@ -251,13 +251,13 @@ Based on user selection, route to appropriate workflow:
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:plan-phase [phase-number] ${GSD_WS}`
|
||||
`/gsd-plan-phase [phase-number] ${GSD_WS}`
|
||||
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:discuss-phase [N] ${GSD_WS}` — gather context first
|
||||
- `/gsd:research-phase [N] ${GSD_WS}` — investigate unknowns
|
||||
- `/gsd-discuss-phase [N] ${GSD_WS}` — gather context first
|
||||
- `/gsd-research-phase [N] ${GSD_WS}` — investigate unknowns
|
||||
|
||||
---
|
||||
```
|
||||
|
||||
@@ -45,7 +45,7 @@ No external AI CLIs found. Install at least one:
|
||||
- qwen: https://github.com/nicepkg/qwen-code (Alibaba Qwen models)
|
||||
- cursor: https://cursor.com (Cursor IDE agent mode)
|
||||
|
||||
Then run /gsd:review again.
|
||||
Then run /gsd-review again.
|
||||
```
|
||||
Exit.
|
||||
|
||||
@@ -327,7 +327,7 @@ Consensus concerns:
|
||||
Full review: {padded_phase}-REVIEWS.md
|
||||
|
||||
To incorporate feedback into planning:
|
||||
/gsd:plan-phase {N} --reviews
|
||||
/gsd-plan-phase {N} --reviews
|
||||
```
|
||||
|
||||
Clean up temp files.
|
||||
@@ -340,5 +340,5 @@ Clean up temp files.
|
||||
- [ ] REVIEWS.md written with structured feedback
|
||||
- [ ] Consensus summary synthesized from multiple reviewers
|
||||
- [ ] Temp files cleaned up
|
||||
- [ ] User knows how to use feedback (/gsd:plan-phase --reviews)
|
||||
- [ ] User knows how to use feedback (/gsd-plan-phase --reviews)
|
||||
</success_criteria>
|
||||
|
||||
@@ -88,7 +88,7 @@ Task(
|
||||
**Documents produced:**
|
||||
{list of documents written with line counts}
|
||||
|
||||
Use `/gsd:map-codebase` for a comprehensive 4-area parallel scan.
|
||||
Use `/gsd-map-codebase` for a comprehensive 4-area parallel scan.
|
||||
```
|
||||
|
||||
</process>
|
||||
|
||||
@@ -28,7 +28,7 @@ AUDITOR_MODEL=$(gsd-sdk query resolve-model gsd-security-auditor --raw)
|
||||
SECURITY_CFG=$(gsd-sdk query config-get workflow.security_enforcement --raw 2>/dev/null || echo "true")
|
||||
```
|
||||
|
||||
If `SECURITY_CFG` is `false`: exit with "Security enforcement disabled. Enable via /gsd:settings."
|
||||
If `SECURITY_CFG` is `false`: exit with "Security enforcement disabled. Enable via /gsd-settings."
|
||||
|
||||
Display banner: `GSD > SECURE PHASE {N}: {name}`
|
||||
|
||||
@@ -42,7 +42,7 @@ SUMMARY_FILES=$(ls "${PHASE_DIR}"/*-SUMMARY.md 2>/dev/null)
|
||||
|
||||
- **State A** (`SECURITY_FILE` non-empty): Audit existing
|
||||
- **State B** (`SECURITY_FILE` empty, `PLAN_FILES` and `SUMMARY_FILES` non-empty): Run from artifacts
|
||||
- **State C** (`SUMMARY_FILES` empty): Exit — "Phase {N} not executed. Run /gsd:execute-phase {N} first."
|
||||
- **State C** (`SUMMARY_FILES` empty): Exit — "Phase {N} not executed. Run /gsd-execute-phase {N} first."
|
||||
|
||||
## 2. Discovery
|
||||
|
||||
@@ -125,7 +125,7 @@ Handle return:
|
||||
```
|
||||
GSD > PHASE {N} SECURITY BLOCKED
|
||||
{K} threats open — phase advancement blocked until threats_open: 0
|
||||
▶ Fix mitigations then re-run: /gsd:secure-phase {N}
|
||||
▶ Fix mitigations then re-run: /gsd-secure-phase {N}
|
||||
▶ Or document accepted risks in SECURITY.md and re-run.
|
||||
```
|
||||
|
||||
@@ -143,8 +143,8 @@ gsd-sdk query commit "docs(phase-${PHASE}): add/update security threat verificat
|
||||
```
|
||||
GSD > PHASE {N} THREAT-SECURE
|
||||
threats_open: 0 — all threats have dispositions.
|
||||
▶ /gsd:validate-phase {N} validate test coverage
|
||||
▶ /gsd:verify-work {N} run UAT
|
||||
▶ /gsd-validate-phase {N} validate test coverage
|
||||
▶ /gsd-verify-work {N} run UAT
|
||||
```
|
||||
|
||||
Display `/clear` reminder.
|
||||
|
||||
@@ -110,7 +110,7 @@ Write `.planning/reports/SESSION_REPORT.md` (or `.planning/reports/YYYYMMDD-sess
|
||||
|
||||
---
|
||||
|
||||
*Generated by `/gsd:session-report`*
|
||||
*Generated by `/gsd-session-report`*
|
||||
```
|
||||
</step>
|
||||
|
||||
@@ -131,7 +131,7 @@ Show the user:
|
||||
|
||||
If this is the first report, mention:
|
||||
```
|
||||
💡 Run `/gsd:session-report` at the end of each session to build a history of project activity.
|
||||
💡 Run `/gsd-session-report` at the end of each session to build a history of project activity.
|
||||
```
|
||||
</step>
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ Interactive configuration of GSD power-user knobs — plan bounce, node repair,
|
||||
inline plan threshold, cross-AI execution, base branch, branch templates, response language,
|
||||
context window, gitignored search, and graphify build timeout.
|
||||
|
||||
This is a companion to `/gsd:settings` — the common-case prompt there covers model profile,
|
||||
This is a companion to `/gsd-settings` — the common-case prompt there covers model profile,
|
||||
research/plan_check/verifier toggles, branching strategy, UI/AI phase gates, and worktree
|
||||
isolation. This advanced command covers everything else that is user-settable, grouped into
|
||||
six sections so each prompt batch stays cognitively scoped. Every answer pre-selects the
|
||||
@@ -413,11 +413,11 @@ Display:
|
||||
| search_gitignored | {on/off} |
|
||||
| graphify.build_timeout | {seconds} |
|
||||
|
||||
These settings apply to future /gsd:plan-phase, /gsd:execute-phase, /gsd:discuss-phase,
|
||||
and /gsd:ship runs.
|
||||
These settings apply to future /gsd-plan-phase, /gsd-execute-phase, /gsd-discuss-phase,
|
||||
and /gsd-ship runs.
|
||||
|
||||
For common-case toggles (model profile, research/plan_check/verifier, branching strategy,
|
||||
UI/AI phase gates), use /gsd:settings.
|
||||
UI/AI phase gates), use /gsd-settings.
|
||||
```
|
||||
</step>
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ agent-skill injection (`agent_skills.<agent-type>`). Writes to
|
||||
`.planning/config.json` via `gsd-sdk`/`gsd-tools` so unrelated keys are
|
||||
preserved, never clobbered.
|
||||
|
||||
This command is deliberately separate from `/gsd:settings` (workflow toggles)
|
||||
and any `/gsd:settings-advanced` tuning surface. It exists because API keys and
|
||||
This command is deliberately separate from `/gsd-settings` (workflow toggles)
|
||||
and any `/gsd-settings-advanced` tuning surface. It exists because API keys and
|
||||
cross-tool routing are *connectivity* concerns, not workflow or tuning knobs.
|
||||
</purpose>
|
||||
|
||||
@@ -264,8 +264,8 @@ Notes:
|
||||
and not displayed in error messages.
|
||||
|
||||
Quick commands:
|
||||
- /gsd:settings — workflow toggles and model profile
|
||||
- /gsd:set-profile <profile> — switch model profile
|
||||
- /gsd-settings — workflow toggles and model profile
|
||||
- /gsd-set-profile <profile> — switch model profile
|
||||
```
|
||||
</step>
|
||||
|
||||
|
||||
@@ -42,15 +42,15 @@ Parse current values (default to `true` if not present):
|
||||
- `workflow.nyquist_validation` — validation architecture research during plan-phase (default: true if absent)
|
||||
- `workflow.pattern_mapper` — run gsd-pattern-mapper between research and planning (default: true if absent)
|
||||
- `workflow.ui_phase` — generate UI-SPEC.md design contracts for frontend phases (default: true if absent)
|
||||
- `workflow.ui_safety_gate` — prompt to run /gsd:ui-phase before planning frontend phases (default: true if absent)
|
||||
- `workflow.ui_safety_gate` — prompt to run /gsd-ui-phase before planning frontend phases (default: true if absent)
|
||||
- `workflow.ai_integration_phase` — framework selection + eval strategy for AI phases (default: true if absent)
|
||||
- `workflow.tdd_mode` — enforce RED/GREEN/REFACTOR gate sequence during execute-phase (default: false if absent)
|
||||
- `workflow.code_review` — enable /gsd:code-review and /gsd:code-review-fix commands (default: true if absent)
|
||||
- `workflow.code_review_depth` — default depth for /gsd:code-review: `quick`, `standard`, or `deep` (default: `"standard"` if absent; only relevant when `code_review` is on)
|
||||
- `workflow.ui_review` — run visual quality audit (/gsd:ui-review) in autonomous mode (default: true if absent)
|
||||
- `workflow.code_review` — enable /gsd-code-review and /gsd-code-review-fix commands (default: true if absent)
|
||||
- `workflow.code_review_depth` — default depth for /gsd-code-review: `quick`, `standard`, or `deep` (default: `"standard"` if absent; only relevant when `code_review` is on)
|
||||
- `workflow.ui_review` — run visual quality audit (/gsd-ui-review) in autonomous mode (default: true if absent)
|
||||
- `commit_docs` — whether `.planning/` files are committed to git (default: true if absent)
|
||||
- `intel.enabled` — enable queryable codebase intelligence (/gsd:intel) (default: false if absent)
|
||||
- `graphify.enabled` — enable project knowledge graph (/gsd:graphify) (default: false if absent)
|
||||
- `intel.enabled` — enable queryable codebase intelligence (/gsd-intel) (default: false if absent)
|
||||
- `graphify.enabled` — enable project knowledge graph (/gsd-graphify) (default: false if absent)
|
||||
- `model_profile` — which model each agent uses (default: `balanced`)
|
||||
- `git.branching_strategy` — branching approach (default: `"none"`)
|
||||
- `workflow.use_worktrees` — whether parallel executor agents run in worktree isolation (default: `true`)
|
||||
@@ -150,11 +150,11 @@ AskUserQuestion([
|
||||
]
|
||||
},
|
||||
{
|
||||
question: "Enable Code Review? (/gsd:code-review and /gsd:code-review-fix commands)",
|
||||
question: "Enable Code Review? (/gsd-code-review and /gsd-code-review-fix commands)",
|
||||
header: "Code Review",
|
||||
multiSelect: false,
|
||||
options: [
|
||||
{ label: "Yes (Recommended)", description: "Enable /gsd:code-review commands for reviewing source files changed during a phase." },
|
||||
{ label: "Yes (Recommended)", description: "Enable /gsd-code-review commands for reviewing source files changed during a phase." },
|
||||
{ label: "No", description: "Commands exit with a configuration gate message. Use when code review is handled externally." }
|
||||
]
|
||||
},
|
||||
@@ -162,7 +162,7 @@ AskUserQuestion([
|
||||
// chosen code_review value is "Yes". If code_review is "No", omit this question from
|
||||
// the AskUserQuestion call and do not touch the existing workflow.code_review_depth value.
|
||||
{
|
||||
question: "Code Review Depth? (default depth for /gsd:code-review — override per-run with --depth=)",
|
||||
question: "Code Review Depth? (default depth for /gsd-code-review — override per-run with --depth=)",
|
||||
header: "Review Depth",
|
||||
multiSelect: false,
|
||||
options: [
|
||||
@@ -172,7 +172,7 @@ AskUserQuestion([
|
||||
]
|
||||
},
|
||||
{
|
||||
question: "Enable UI Review? (visual quality audit via /gsd:ui-review in autonomous mode)",
|
||||
question: "Enable UI Review? (visual quality audit via /gsd-ui-review in autonomous mode)",
|
||||
header: "UI Review",
|
||||
multiSelect: false,
|
||||
options: [
|
||||
@@ -219,11 +219,11 @@ AskUserQuestion([
|
||||
]
|
||||
},
|
||||
{
|
||||
question: "Enable UI Safety Gate? (prompts to run /gsd:ui-phase before planning frontend phases)",
|
||||
question: "Enable UI Safety Gate? (prompts to run /gsd-ui-phase before planning frontend phases)",
|
||||
header: "UI Gate",
|
||||
multiSelect: false,
|
||||
options: [
|
||||
{ label: "Yes (Recommended)", description: "plan-phase asks to run /gsd:ui-phase first when frontend indicators detected." },
|
||||
{ label: "Yes (Recommended)", description: "plan-phase asks to run /gsd-ui-phase first when frontend indicators detected." },
|
||||
{ label: "No", description: "No prompt — plan-phase proceeds without UI-SPEC check." }
|
||||
]
|
||||
},
|
||||
@@ -232,7 +232,7 @@ AskUserQuestion([
|
||||
header: "AI Phase",
|
||||
multiSelect: false,
|
||||
options: [
|
||||
{ label: "Yes (Recommended)", description: "Run /gsd:ai-integration-phase before planning AI system phases. Surfaces the right framework, researches its docs, and designs the evaluation strategy." },
|
||||
{ label: "Yes (Recommended)", description: "Run /gsd-ai-integration-phase before planning AI system phases. Surfaces the right framework, researches its docs, and designs the evaluation strategy." },
|
||||
{ label: "No", description: "Skip AI design contract. Good for non-AI phases or when framework is already decided." }
|
||||
]
|
||||
},
|
||||
@@ -279,7 +279,7 @@ AskUserQuestion([
|
||||
multiSelect: false,
|
||||
options: [
|
||||
{ label: "No (Recommended)", description: "Run smart discuss before each phase — surfaces gray areas and captures decisions." },
|
||||
{ label: "Yes", description: "Skip discuss in /gsd:autonomous — chain directly to plan. Best for backend/pipeline work where phase descriptions are the spec." }
|
||||
{ label: "Yes", description: "Skip discuss in /gsd-autonomous — chain directly to plan. Best for backend/pipeline work where phase descriptions are the spec." }
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -292,21 +292,21 @@ AskUserQuestion([
|
||||
]
|
||||
},
|
||||
{
|
||||
question: "Enable Intel? (queryable codebase intelligence via /gsd:intel — builds a JSON index in .planning/intel/)",
|
||||
question: "Enable Intel? (queryable codebase intelligence via /gsd-intel — builds a JSON index in .planning/intel/)",
|
||||
header: "Intel",
|
||||
multiSelect: false,
|
||||
options: [
|
||||
{ label: "No (Recommended)", description: "Skip intel indexing. Use when codebase is small or intel queries are not needed." },
|
||||
{ label: "Yes", description: "Enable /gsd:intel commands. Builds and queries a JSON index of the codebase." }
|
||||
{ label: "Yes", description: "Enable /gsd-intel commands. Builds and queries a JSON index of the codebase." }
|
||||
]
|
||||
},
|
||||
{
|
||||
question: "Enable Graphify? (project knowledge graph via /gsd:graphify — builds a graph in .planning/graphs/)",
|
||||
question: "Enable Graphify? (project knowledge graph via /gsd-graphify — builds a graph in .planning/graphs/)",
|
||||
header: "Graphify",
|
||||
multiSelect: false,
|
||||
options: [
|
||||
{ label: "No (Recommended)", description: "Skip knowledge graph. Use when dependency graphs are not needed." },
|
||||
{ label: "Yes", description: "Enable /gsd:graphify commands. Builds and queries a project knowledge graph." }
|
||||
{ label: "Yes", description: "Enable /gsd-graphify commands. Builds and queries a project knowledge graph." }
|
||||
]
|
||||
}
|
||||
])
|
||||
@@ -454,15 +454,15 @@ Display:
|
||||
| Context Warnings | {On/Off} |
|
||||
| Saved as Defaults | {Yes/No} |
|
||||
|
||||
These settings apply to future /gsd:plan-phase and /gsd:execute-phase runs.
|
||||
These settings apply to future /gsd-plan-phase and /gsd-execute-phase runs.
|
||||
|
||||
Quick commands:
|
||||
- /gsd:settings-integrations — configure API keys (Brave/Firecrawl/Exa), review.models CLI routing, and agent_skills injection
|
||||
- /gsd:set-profile <profile> — switch model profile
|
||||
- /gsd:plan-phase --research — force research
|
||||
- /gsd:plan-phase --skip-research — skip research
|
||||
- /gsd:plan-phase --skip-verify — skip plan check
|
||||
- /gsd:settings-advanced — power-user tuning (plan bounce, timeouts, branch templates, cross-AI, context window)
|
||||
- /gsd-settings-integrations — configure API keys (Brave/Firecrawl/Exa), review.models CLI routing, and agent_skills injection
|
||||
- /gsd-set-profile <profile> — switch model profile
|
||||
- /gsd-plan-phase --research — force research
|
||||
- /gsd-plan-phase --skip-research — skip research
|
||||
- /gsd-plan-phase --skip-verify — skip plan check
|
||||
- /gsd-settings-advanced — power-user tuning (plan bounce, timeouts, branch templates, cross-AI, context window)
|
||||
```
|
||||
</step>
|
||||
|
||||
|
||||
@@ -276,8 +276,8 @@ Requirements: {N} REQ-IDs addressed
|
||||
Next steps:
|
||||
- Review/approve PR
|
||||
- Merge when CI passes
|
||||
- /gsd:complete-milestone (if last phase in milestone)
|
||||
- /gsd:progress (to see what's next)
|
||||
- /gsd-complete-milestone (if last phase in milestone)
|
||||
- /gsd-progress (to see what's next)
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
```
|
||||
@@ -288,9 +288,9 @@ Next steps:
|
||||
<offer_next>
|
||||
After shipping:
|
||||
|
||||
- /gsd:complete-milestone — if all phases in milestone are done
|
||||
- /gsd:progress — see overall project state
|
||||
- /gsd:execute-phase {next} — continue to next phase
|
||||
- /gsd-complete-milestone — if all phases in milestone are done
|
||||
- /gsd-progress — see overall project state
|
||||
- /gsd-execute-phase {next} — continue to next phase
|
||||
</offer_next>
|
||||
|
||||
<success_criteria>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
Curate sketch design findings and package them into a persistent project skill for future
|
||||
UI implementation. Reads from `.planning/sketches/`, writes skill to `./.claude/skills/sketch-findings-[project]/`
|
||||
(project-local) and summary to `.planning/sketches/WRAP-UP-SUMMARY.md`.
|
||||
Companion to `/gsd:sketch`.
|
||||
Companion to `/gsd-sketch`.
|
||||
</purpose>
|
||||
|
||||
<required_reading>
|
||||
@@ -31,7 +31,7 @@ Read all files referenced by the invoking prompt's execution_context before star
|
||||
If no unprocessed sketches exist:
|
||||
```
|
||||
No unprocessed sketches found in `.planning/sketches/`.
|
||||
Run `/gsd:sketch` first to create design explorations.
|
||||
Run `/gsd-sketch` first to create design explorations.
|
||||
```
|
||||
Exit.
|
||||
|
||||
@@ -257,15 +257,15 @@ The sketch-findings skill will auto-load when building the UI.
|
||||
|
||||
**Explore frontier sketches** — see what else is worth sketching based on what we've explored
|
||||
|
||||
`/gsd:sketch` (run with no argument — its frontier mode analyzes the sketch landscape and proposes consistency and frontier sketches)
|
||||
`/gsd-sketch` (run with no argument — its frontier mode analyzes the sketch landscape and proposes consistency and frontier sketches)
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:plan-phase` — start building the real UI
|
||||
- `/gsd:ui-phase` — generate a UI design contract for a frontend phase
|
||||
- `/gsd:sketch [idea]` — sketch a specific new design area
|
||||
- `/gsd:explore` — continue exploring
|
||||
- `/gsd-plan-phase` — start building the real UI
|
||||
- `/gsd-ui-phase` — generate a UI design contract for a frontend phase
|
||||
- `/gsd-sketch [idea]` — sketch a specific new design area
|
||||
- `/gsd-explore` — continue exploring
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
</step>
|
||||
@@ -281,5 +281,5 @@ The sketch-findings skill will auto-load when building the UI.
|
||||
- [ ] `.planning/sketches/WRAP-UP-SUMMARY.md` written for project history
|
||||
- [ ] Project CLAUDE.md has auto-load routing line
|
||||
- [ ] Summary presented
|
||||
- [ ] Next-step options presented (including frontier sketch exploration via `/gsd:sketch`)
|
||||
- [ ] Next-step options presented (including frontier sketch exploration via `/gsd-sketch`)
|
||||
</success_criteria>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<purpose>
|
||||
Explore design directions through throwaway HTML mockups before committing to implementation.
|
||||
Each sketch produces 2-3 variants for comparison. Saves artifacts to `.planning/sketches/`.
|
||||
Companion to `/gsd:sketch-wrap-up`.
|
||||
Companion to `/gsd-sketch-wrap-up`.
|
||||
|
||||
Supports two modes:
|
||||
- **Idea mode** (default) — user describes a design idea to sketch
|
||||
@@ -331,14 +331,14 @@ After all sketches complete:
|
||||
|
||||
**Package findings** — wrap design decisions into a reusable skill
|
||||
|
||||
`/gsd:sketch-wrap-up`
|
||||
`/gsd-sketch-wrap-up`
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:sketch` — sketch more (or run with no argument for frontier mode)
|
||||
- `/gsd:plan-phase` — start building the real UI
|
||||
- `/gsd:spike` — spike technical feasibility of a design pattern
|
||||
- `/gsd-sketch` — sketch more (or run with no argument for frontier mode)
|
||||
- `/gsd-plan-phase` — start building the real UI
|
||||
- `/gsd-spike` — spike technical feasibility of a design pattern
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
</step>
|
||||
|
||||
@@ -67,7 +67,7 @@ Parse JSON for: `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase
|
||||
**If `phase_found` is false:**
|
||||
```
|
||||
Phase [X] not found in roadmap.
|
||||
Use /gsd:progress to see available phases.
|
||||
Use /gsd-progress to see available phases.
|
||||
```
|
||||
Exit.
|
||||
|
||||
@@ -89,7 +89,7 @@ If SPEC.md already exists:
|
||||
- "Skip" — Exit (use existing spec as-is)
|
||||
|
||||
If "View": Display SPEC.md, then offer Update/Skip.
|
||||
If "Skip": Exit with message: "Existing SPEC.md unchanged. Run /gsd:discuss-phase [X] to continue."
|
||||
If "Skip": Exit with message: "Existing SPEC.md unchanged. Run /gsd-discuss-phase [X] to continue."
|
||||
If "Update": Load existing SPEC.md, continue to Step 3.
|
||||
|
||||
## Step 2: Scout Codebase
|
||||
@@ -233,7 +233,7 @@ SPEC.md written — {N} requirements locked.
|
||||
Phase {X}: {name}
|
||||
Ambiguity: {final_score} (gate: ≤ 0.20)
|
||||
|
||||
Next: /gsd:discuss-phase {X}
|
||||
Next: /gsd-discuss-phase {X}
|
||||
discuss-phase will detect SPEC.md and focus on implementation decisions only.
|
||||
```
|
||||
|
||||
@@ -258,5 +258,5 @@ Next: /gsd:discuss-phase {X}
|
||||
- Boundaries are explicit (in scope / out of scope with reasoning)
|
||||
- Acceptance criteria are pass/fail checkboxes
|
||||
- SPEC.md committed atomically (when commit_docs is true)
|
||||
- User directed to /gsd:discuss-phase as next step
|
||||
- User directed to /gsd-discuss-phase as next step
|
||||
</success_criteria>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
Package spike experiment findings into a persistent project skill — an implementation blueprint
|
||||
for future build conversations. Reads from `.planning/spikes/`, writes skill to
|
||||
`./.claude/skills/spike-findings-[project]/` (project-local) and summary to
|
||||
`.planning/spikes/WRAP-UP-SUMMARY.md`. Companion to `/gsd:spike`.
|
||||
`.planning/spikes/WRAP-UP-SUMMARY.md`. Companion to `/gsd-spike`.
|
||||
</purpose>
|
||||
|
||||
<required_reading>
|
||||
@@ -31,7 +31,7 @@ Read all files referenced by the invoking prompt's execution_context before star
|
||||
If no unprocessed spikes exist:
|
||||
```
|
||||
No unprocessed spikes found in `.planning/spikes/`.
|
||||
Run `/gsd:spike` first to create experiments.
|
||||
Run `/gsd-spike` first to create experiments.
|
||||
```
|
||||
Exit.
|
||||
|
||||
@@ -278,14 +278,14 @@ After the summary, present next-step options:
|
||||
|
||||
**Explore frontier spikes** — see what else is worth spiking based on what we've learned
|
||||
|
||||
`/gsd:spike` (run with no argument — its frontier mode analyzes the spike landscape and proposes integration and frontier spikes)
|
||||
`/gsd-spike` (run with no argument — its frontier mode analyzes the spike landscape and proposes integration and frontier spikes)
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:plan-phase` — start planning the real implementation
|
||||
- `/gsd:spike [idea]` — spike a specific new idea
|
||||
- `/gsd:explore` — continue exploring
|
||||
- `/gsd-plan-phase` — start planning the real implementation
|
||||
- `/gsd-spike [idea]` — spike a specific new idea
|
||||
- `/gsd-explore` — continue exploring
|
||||
- Other
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
@@ -302,5 +302,5 @@ After the summary, present next-step options:
|
||||
- [ ] `.planning/spikes/WRAP-UP-SUMMARY.md` written for project history
|
||||
- [ ] Project CLAUDE.md has auto-load routing line
|
||||
- [ ] Summary presented
|
||||
- [ ] Next-step options presented (including frontier spike exploration via `/gsd:spike`)
|
||||
- [ ] Next-step options presented (including frontier spike exploration via `/gsd-spike`)
|
||||
</success_criteria>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<purpose>
|
||||
Spike an idea through experiential exploration — build focused experiments to feel the pieces
|
||||
of a future app, validate feasibility, and produce verified knowledge for the real build.
|
||||
Saves artifacts to `.planning/spikes/`. Companion to `/gsd:spike-wrap-up`.
|
||||
Saves artifacts to `.planning/spikes/`. Companion to `/gsd-spike-wrap-up`.
|
||||
|
||||
Supports two modes:
|
||||
- **Idea mode** (default) — user describes an idea to spike
|
||||
@@ -421,14 +421,14 @@ gsd-sdk query commit "docs(spikes): update conventions" .planning/spikes/CONVENT
|
||||
|
||||
**Package findings** — wrap spike knowledge into an implementation blueprint
|
||||
|
||||
`/gsd:spike-wrap-up`
|
||||
`/gsd-spike-wrap-up`
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:spike` — spike more ideas (or run with no argument for frontier mode)
|
||||
- `/gsd:plan-phase` — start planning the real implementation
|
||||
- `/gsd:explore` — continue exploring the idea
|
||||
- `/gsd-spike` — spike more ideas (or run with no argument for frontier mode)
|
||||
- `/gsd-plan-phase` — start planning the real implementation
|
||||
- `/gsd-explore` — continue exploring the idea
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
</step>
|
||||
|
||||
@@ -48,7 +48,7 @@ X/Y plans complete (Z%)
|
||||
- **Project age:** N days
|
||||
```
|
||||
|
||||
If no `.planning/` directory exists, inform the user to run `/gsd:new-project` first.
|
||||
If no `.planning/` directory exists, inform the user to run `/gsd-new-project` first.
|
||||
</step>
|
||||
|
||||
</process>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# sync-skills — Cross-Runtime GSD Skill Sync
|
||||
|
||||
**Command:** `/gsd:sync-skills`
|
||||
**Command:** `/gsd-sync-skills`
|
||||
|
||||
Sync managed `gsd-*` skill directories from one canonical runtime's skills root to one or more destination runtime skills roots. Keeps multi-runtime installs aligned after a `gsd-update` on one runtime.
|
||||
|
||||
|
||||
@@ -7,10 +7,10 @@ There is no `/gsd-transition` command. This workflow is invoked automatically by
|
||||
verification. Users should never be told to run `/gsd-transition`.
|
||||
|
||||
**Valid user commands for phase progression:**
|
||||
- `/gsd:discuss-phase {N}` — discuss a phase before planning
|
||||
- `/gsd:plan-phase {N}` — plan a phase
|
||||
- `/gsd:execute-phase {N}` — execute a phase
|
||||
- `/gsd:progress` — see roadmap progress
|
||||
- `/gsd-discuss-phase {N}` — discuss a phase before planning
|
||||
- `/gsd-plan-phase {N}` — plan a phase
|
||||
- `/gsd-execute-phase {N}` — execute a phase
|
||||
- `/gsd-progress` — see roadmap progress
|
||||
|
||||
</internal_workflow>
|
||||
|
||||
@@ -93,7 +93,7 @@ Append to the completion confirmation message (regardless of mode):
|
||||
Outstanding verification items in this phase:
|
||||
{list filenames}
|
||||
|
||||
These will carry forward as debt. Review: `/gsd:audit-uat`
|
||||
These will carry forward as debt. Review: `/gsd-audit-uat`
|
||||
```
|
||||
|
||||
This does NOT block transition — it ensures the user sees the debt before confirming.
|
||||
@@ -468,7 +468,7 @@ Next: Phase [X+1] — [Name]
|
||||
⚡ Auto-continuing: Plan Phase [X+1] in detail
|
||||
```
|
||||
|
||||
Exit skill and invoke SlashCommand("/gsd:plan-phase [X+1] --auto ${GSD_WS}")
|
||||
Exit skill and invoke SlashCommand("/gsd-plan-phase [X+1] --auto ${GSD_WS}")
|
||||
|
||||
**If CONTEXT.md does NOT exist:**
|
||||
|
||||
@@ -480,7 +480,7 @@ Next: Phase [X+1] — [Name]
|
||||
⚡ Auto-continuing: Discuss Phase [X+1] first
|
||||
```
|
||||
|
||||
Exit skill and invoke SlashCommand("/gsd:discuss-phase [X+1] --auto ${GSD_WS}")
|
||||
Exit skill and invoke SlashCommand("/gsd-discuss-phase [X+1] --auto ${GSD_WS}")
|
||||
|
||||
</if>
|
||||
|
||||
@@ -499,13 +499,13 @@ Exit skill and invoke SlashCommand("/gsd:discuss-phase [X+1] --auto ${GSD_WS}")
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:discuss-phase [X+1] ${GSD_WS}` — gather context and clarify approach
|
||||
`/gsd-discuss-phase [X+1] ${GSD_WS}` — gather context and clarify approach
|
||||
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:plan-phase [X+1] ${GSD_WS}` — skip discussion, plan directly
|
||||
- `/gsd:research-phase [X+1] ${GSD_WS}` — investigate unknowns
|
||||
- `/gsd-plan-phase [X+1] ${GSD_WS}` — skip discussion, plan directly
|
||||
- `/gsd-research-phase [X+1] ${GSD_WS}` — investigate unknowns
|
||||
|
||||
---
|
||||
```
|
||||
@@ -524,13 +524,13 @@ Exit skill and invoke SlashCommand("/gsd:discuss-phase [X+1] --auto ${GSD_WS}")
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:plan-phase [X+1] ${GSD_WS}`
|
||||
`/gsd-plan-phase [X+1] ${GSD_WS}`
|
||||
|
||||
---
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:discuss-phase [X+1] ${GSD_WS}` — revisit context
|
||||
- `/gsd:research-phase [X+1] ${GSD_WS}` — investigate unknowns
|
||||
- `/gsd-discuss-phase [X+1] ${GSD_WS}` — revisit context
|
||||
- `/gsd-research-phase [X+1] ${GSD_WS}` — investigate unknowns
|
||||
|
||||
---
|
||||
```
|
||||
@@ -576,18 +576,18 @@ This workstream's phases are complete. Other workstreams are still active:
|
||||
|
||||
Archive this workstream:
|
||||
|
||||
`/gsd:workstreams complete {current_ws_name} ${GSD_WS}`
|
||||
`/gsd-workstreams complete {current_ws_name} ${GSD_WS}`
|
||||
|
||||
See overall milestone progress:
|
||||
|
||||
`/gsd:workstreams progress ${GSD_WS}`
|
||||
`/gsd-workstreams progress ${GSD_WS}`
|
||||
|
||||
<sub>Milestone completion will be available once all workstreams finish.</sub>
|
||||
|
||||
---
|
||||
```
|
||||
|
||||
Do NOT suggest `/gsd:complete-milestone` or `/gsd:new-milestone`.
|
||||
Do NOT suggest `/gsd-complete-milestone` or `/gsd-new-milestone`.
|
||||
Do NOT auto-invoke any further slash commands.
|
||||
|
||||
**Stop here.** The user must explicitly decide what to do next.
|
||||
@@ -615,7 +615,7 @@ Phase {X} marked complete.
|
||||
⚡ Auto-continuing: Complete milestone and archive
|
||||
```
|
||||
|
||||
Exit skill and invoke SlashCommand("/gsd:complete-milestone {version} ${GSD_WS}")
|
||||
Exit skill and invoke SlashCommand("/gsd-complete-milestone {version} ${GSD_WS}")
|
||||
|
||||
</if>
|
||||
|
||||
@@ -634,7 +634,7 @@ Exit skill and invoke SlashCommand("/gsd:complete-milestone {version} ${GSD_WS}"
|
||||
|
||||
`/clear` then:
|
||||
|
||||
`/gsd:complete-milestone {version} ${GSD_WS}`
|
||||
`/gsd-complete-milestone {version} ${GSD_WS}`
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -49,11 +49,11 @@ UI_ENABLED=$(gsd-sdk query config-get workflow.ui_phase 2>/dev/null || echo "tru
|
||||
|
||||
**If `UI_ENABLED` is `false`:**
|
||||
```
|
||||
UI phase is disabled in config. Enable via /gsd:settings.
|
||||
UI phase is disabled in config. Enable via /gsd-settings.
|
||||
```
|
||||
Exit workflow.
|
||||
|
||||
**If `planning_exists` is false:** Error — run `/gsd:new-project` first.
|
||||
**If `planning_exists` is false:** Error — run `/gsd-new-project` first.
|
||||
|
||||
## 2. Parse and Validate Phase
|
||||
|
||||
@@ -70,7 +70,7 @@ PHASE_INFO=$(gsd-sdk query roadmap.get-phase "${PHASE}")
|
||||
**If `has_context` is false:**
|
||||
```
|
||||
No CONTEXT.md found for Phase {N}.
|
||||
Recommended: run /gsd:discuss-phase {N} first to capture design preferences.
|
||||
Recommended: run /gsd-discuss-phase {N} first to capture design preferences.
|
||||
Continuing without user decisions — UI researcher will ask all questions.
|
||||
```
|
||||
Continue (non-blocking).
|
||||
@@ -85,7 +85,7 @@ Continue (non-blocking).
|
||||
**If `SKETCH_FINDINGS_PATH` is not empty:**
|
||||
```
|
||||
⚡ Sketch findings detected: {SKETCH_FINDINGS_PATH}
|
||||
Validated design decisions from /gsd:sketch will be loaded into the UI researcher.
|
||||
Validated design decisions from /gsd-sketch will be loaded into the UI researcher.
|
||||
Pre-validated decisions (layout, palette, typography, spacing) should be treated as locked — not re-asked.
|
||||
```
|
||||
|
||||
@@ -134,9 +134,9 @@ Answer: "What visual and interaction contracts does this phase need?"
|
||||
- {state_path} (Project State)
|
||||
- {roadmap_path} (Roadmap)
|
||||
- {requirements_path} (Requirements)
|
||||
- {context_path} (USER DECISIONS from /gsd:discuss-phase)
|
||||
- {context_path} (USER DECISIONS from /gsd-discuss-phase)
|
||||
- {research_path} (Technical Research — stack decisions)
|
||||
- {SKETCH_FINDINGS_PATH} (Sketch Findings — validated design decisions, CSS patterns, visual direction from /gsd:sketch, if exists)
|
||||
- {SKETCH_FINDINGS_PATH} (Sketch Findings — validated design decisions, CSS patterns, visual direction from /gsd-sketch, if exists)
|
||||
</files_to_read>
|
||||
|
||||
${AGENT_SKILLS_UI}
|
||||
@@ -253,7 +253,7 @@ Max revision iterations reached. Remaining issues:
|
||||
|
||||
Options:
|
||||
1. Force approve — proceed with current UI-SPEC (FLAGs become accepted)
|
||||
2. Edit manually — open UI-SPEC.md in editor, re-run /gsd:ui-phase
|
||||
2. Edit manually — open UI-SPEC.md in editor, re-run /gsd-ui-phase
|
||||
3. Abandon — exit without approving
|
||||
```
|
||||
|
||||
@@ -279,14 +279,14 @@ Dimensions: 6/6 passed
|
||||
{If CONTEXT.md exists for this phase:}
|
||||
**Plan Phase {N}** — planner will use UI-SPEC.md as design context
|
||||
|
||||
`/clear` then: `/gsd:plan-phase {N}`
|
||||
`/clear` then: `/gsd-plan-phase {N}`
|
||||
|
||||
{If CONTEXT.md does NOT exist:}
|
||||
**Discuss Phase {N}** — gather implementation context before planning
|
||||
|
||||
`/clear` then: `/gsd:discuss-phase {N}`
|
||||
`/clear` then: `/gsd-discuss-phase {N}`
|
||||
|
||||
(or `/gsd:plan-phase {N}` to skip discussion)
|
||||
(or `/gsd-plan-phase {N}` to skip discussion)
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
```
|
||||
|
||||
@@ -42,7 +42,7 @@ UI_SPEC_FILE=$(ls "${PHASE_DIR}"/*-UI-SPEC.md 2>/dev/null | head -1)
|
||||
UI_REVIEW_FILE=$(ls "${PHASE_DIR}"/*-UI-REVIEW.md 2>/dev/null | head -1)
|
||||
```
|
||||
|
||||
**If `SUMMARY_FILES` empty:** Exit — "Phase {N} not executed. Run /gsd:execute-phase {N} first."
|
||||
**If `SUMMARY_FILES` empty:** Exit — "Phase {N} not executed. Run /gsd-execute-phase {N} first."
|
||||
|
||||
|
||||
**Text mode (`workflow.text_mode: true` in config or `--text` flag):** Set `TEXT_MODE=true` if `--text` is present in `$ARGUMENTS` OR `text_mode` from init JSON is `true`. When TEXT_MODE is active, replace every `AskUserQuestion` call with a plain-text numbered list and ask the user to type their choice number. This is required for non-Claude runtimes (OpenAI Codex, Gemini CLI, etc.) where `AskUserQuestion` is not available.
|
||||
@@ -142,11 +142,11 @@ Full review: {path to UI-REVIEW.md}
|
||||
|
||||
`/clear` then one of:
|
||||
|
||||
- `/gsd:verify-work {N}` — UAT testing
|
||||
- `/gsd:plan-phase {N+1}` — plan next phase
|
||||
- `/gsd-verify-work {N}` — UAT testing
|
||||
- `/gsd-plan-phase {N+1}` — plan next phase
|
||||
|
||||
- `/gsd:verify-work {N}` — UAT testing
|
||||
- `/gsd:plan-phase {N+1}` — plan next phase
|
||||
- `/gsd-verify-work {N}` — UAT testing
|
||||
- `/gsd-plan-phase {N+1}` — plan next phase
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
```
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Offload GSD's plan phase to Claude Code's ultraplan cloud infrastructure.
|
||||
|
||||
⚠ **BETA feature.** Ultraplan is in research preview and may change. This workflow is
|
||||
intentionally isolated from /gsd:plan-phase so upstream changes to ultraplan cannot
|
||||
intentionally isolated from /gsd-plan-phase so upstream changes to ultraplan cannot
|
||||
affect the core planning pipeline.
|
||||
|
||||
---
|
||||
@@ -17,7 +17,7 @@ Display the stage banner:
|
||||
GSD ► ULTRAPLAN PHASE ⚠ BETA
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
Ultraplan is in research preview (Claude Code v2.1.91+).
|
||||
Use /gsd:plan-phase for stable local planning.
|
||||
Use /gsd-plan-phase for stable local planning.
|
||||
```
|
||||
|
||||
</step>
|
||||
@@ -39,10 +39,10 @@ If the output is empty or unset, display the following error and exit:
|
||||
║ RUNTIME ERROR ║
|
||||
╚══════════════════════════════════════════════════════════════╝
|
||||
|
||||
/gsd:ultraplan-phase requires Claude Code.
|
||||
/gsd-ultraplan-phase requires Claude Code.
|
||||
ultraplan is not available in this runtime.
|
||||
|
||||
Use /gsd:plan-phase for local planning instead.
|
||||
Use /gsd-plan-phase for local planning instead.
|
||||
```
|
||||
|
||||
</step>
|
||||
@@ -52,7 +52,7 @@ Use /gsd:plan-phase for local planning instead.
|
||||
<step name="initialize">
|
||||
|
||||
Parse phase number from `$ARGUMENTS`. If no phase number is provided, detect the next
|
||||
unplanned phase from the roadmap (same logic as /gsd:plan-phase).
|
||||
unplanned phase from the roadmap (same logic as /gsd-plan-phase).
|
||||
|
||||
Load GSD phase context:
|
||||
|
||||
@@ -69,7 +69,7 @@ Parse JSON for: `phase_found`, `phase_number`, `phase_name`, `phase_slug`, `padd
|
||||
```text
|
||||
No .planning directory found. Initialize the project first:
|
||||
|
||||
/gsd:new-project
|
||||
/gsd-new-project
|
||||
```
|
||||
|
||||
**If `phase_found` is false:** Error with the phase number provided and exit.
|
||||
@@ -161,9 +161,9 @@ When ◆ ultraplan ready appears in your terminal:
|
||||
4. Click "Approve plan and teleport back to terminal"
|
||||
5. At the terminal dialog, choose Cancel ← saves the plan to a file
|
||||
6. Note the file path Claude prints
|
||||
7. Run: /gsd:import --from <the file path>
|
||||
7. Run: /gsd-import --from <the file path>
|
||||
|
||||
/gsd:import will run conflict detection, convert to GSD format,
|
||||
/gsd-import will run conflict detection, convert to GSD format,
|
||||
validate via plan-checker, update ROADMAP.md, and commit.
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
@@ -29,7 +29,7 @@ Parse $ARGUMENTS for the undo mode:
|
||||
If no valid argument is provided, display usage and exit:
|
||||
|
||||
```
|
||||
Usage: /gsd:undo --last N | --phase NN | --plan NN-MM
|
||||
Usage: /gsd-undo --last N | --phase NN | --plan NN-MM
|
||||
|
||||
Modes:
|
||||
--last N Show last N GSD commits for interactive selection
|
||||
@@ -37,9 +37,9 @@ Modes:
|
||||
--plan NN-MM Revert all commits for plan NN-MM
|
||||
|
||||
Examples:
|
||||
/gsd:undo --last 5
|
||||
/gsd:undo --phase 03
|
||||
/gsd:undo --plan 03-02
|
||||
/gsd-undo --last 5
|
||||
/gsd-undo --phase 03
|
||||
/gsd-undo --plan 03-02
|
||||
```
|
||||
</step>
|
||||
|
||||
@@ -204,7 +204,7 @@ Store the response as REVERT_REASON. Continue to execute_revert.
|
||||
|
||||
Run `git status --porcelain`. If the output is non-empty, display the dirty files and abort:
|
||||
```
|
||||
Working tree has uncommitted changes. Commit or stash them before running /gsd:undo.
|
||||
Working tree has uncommitted changes. Commit or stash them before running /gsd-undo.
|
||||
```
|
||||
Exit immediately — do not proceed to any revert operations.
|
||||
|
||||
@@ -285,13 +285,13 @@ Show next steps:
|
||||
|
||||
/clear then:
|
||||
|
||||
/gsd:progress
|
||||
/gsd-progress
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
|
||||
**Also available:**
|
||||
- `/gsd:execute-phase ${PHASE}` — re-execute if needed
|
||||
- `/gsd:undo --last 1` — undo the revert itself if something went wrong
|
||||
- `/gsd-execute-phase ${PHASE}` — re-execute if needed
|
||||
- `/gsd-undo --last 1` — undo the revert itself if something went wrong
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
```
|
||||
|
||||
@@ -20,7 +20,7 @@ First, derive `PREFERRED_CONFIG_DIR` and `PREFERRED_RUNTIME` from the invoking p
|
||||
- Otherwise -> `claude`
|
||||
|
||||
Use `PREFERRED_CONFIG_DIR` when available so custom `--config-dir` installs are checked before default locations.
|
||||
Use `PREFERRED_RUNTIME` as the first runtime checked so `/gsd:update` targets the runtime that invoked it.
|
||||
Use `PREFERRED_RUNTIME` as the first runtime checked so `/gsd-update` targets the runtime that invoked it.
|
||||
|
||||
Kilo config precedence must match the installer: `KILO_CONFIG_DIR` -> `dirname(KILO_CONFIG)` -> `XDG_CONFIG_HOME/kilo` -> `~/.config/kilo`.
|
||||
|
||||
@@ -315,7 +315,7 @@ by re-running the local installer from your dev branch:
|
||||
|
||||
node bin/install.js --global --claude
|
||||
|
||||
Running /gsd:update would install the npm release (A.B.C) and downgrade
|
||||
Running /gsd-update would install the npm release (A.B.C) and downgrade
|
||||
your dev version — do NOT use it to resolve this warning.
|
||||
```
|
||||
|
||||
@@ -365,7 +365,7 @@ Your custom files in other locations are preserved:
|
||||
- Custom hooks ✓
|
||||
- Your CLAUDE.md files ✓
|
||||
|
||||
If you've modified any GSD files directly, they'll be automatically backed up to `gsd-local-patches/` and can be reapplied with `/gsd:reapply-patches` after the update.
|
||||
If you've modified any GSD files directly, they'll be automatically backed up to `gsd-local-patches/` and can be reapplied with `/gsd-reapply-patches` after the update.
|
||||
```
|
||||
|
||||
|
||||
@@ -568,7 +568,7 @@ Check for gsd-local-patches/backup-meta.json in the config directory.
|
||||
|
||||
```
|
||||
Local patches were backed up before the update.
|
||||
Run /gsd:reapply-patches to merge your modifications into the new version.
|
||||
Run /gsd-reapply-patches to merge your modifications into the new version.
|
||||
```
|
||||
|
||||
**If no patches:** Continue normally.
|
||||
|
||||
@@ -28,7 +28,7 @@ AUDITOR_MODEL=$(gsd-sdk query resolve-model gsd-nyquist-auditor --raw)
|
||||
NYQUIST_CFG=$(gsd-sdk query config-get workflow.nyquist_validation --raw)
|
||||
```
|
||||
|
||||
If `NYQUIST_CFG` is `false`: exit with "Nyquist validation is disabled. Enable via /gsd:settings."
|
||||
If `NYQUIST_CFG` is `false`: exit with "Nyquist validation is disabled. Enable via /gsd-settings."
|
||||
|
||||
Display banner: `GSD > VALIDATE PHASE {N}: {name}`
|
||||
|
||||
@@ -41,7 +41,7 @@ SUMMARY_FILES=$(ls "${PHASE_DIR}"/*-SUMMARY.md 2>/dev/null)
|
||||
|
||||
- **State A** (`VALIDATION_FILE` non-empty): Audit existing
|
||||
- **State B** (`VALIDATION_FILE` empty, `SUMMARY_FILES` non-empty): Reconstruct from artifacts
|
||||
- **State C** (`SUMMARY_FILES` empty): Exit — "Phase {N} not executed. Run /gsd:execute-phase {N} ${GSD_WS} first."
|
||||
- **State C** (`SUMMARY_FILES` empty): Exit — "Phase {N} not executed. Run /gsd-execute-phase {N} ${GSD_WS} first."
|
||||
|
||||
## 2. Discovery
|
||||
|
||||
@@ -146,14 +146,14 @@ gsd-sdk query commit "docs(phase-${PHASE}): add/update validation strategy"
|
||||
```
|
||||
GSD > PHASE {N} IS NYQUIST-COMPLIANT
|
||||
All requirements have automated verification.
|
||||
▶ Next: /gsd:audit-milestone ${GSD_WS}
|
||||
▶ Next: /gsd-audit-milestone ${GSD_WS}
|
||||
```
|
||||
|
||||
**Partial:**
|
||||
```
|
||||
GSD > PHASE {N} VALIDATED (PARTIAL)
|
||||
{M} automated, {K} manual-only.
|
||||
▶ Retry: /gsd:validate-phase {N} ${GSD_WS}
|
||||
▶ Retry: /gsd-validate-phase {N} ${GSD_WS}
|
||||
```
|
||||
|
||||
Display `/clear` reminder.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<purpose>
|
||||
Validate built features through conversational testing with persistent state. Creates UAT.md that tracks test progress, survives /clear, and feeds gaps into /gsd:plan-phase --gaps.
|
||||
Validate built features through conversational testing with persistent state. Creates UAT.md that tracks test progress, survives /clear, and feeds gaps into /gsd-plan-phase --gaps.
|
||||
|
||||
User tests, Claude records. One test at a time. Plain text responses.
|
||||
</purpose>
|
||||
@@ -78,7 +78,7 @@ If no, continue to `create_uat_file`.
|
||||
```
|
||||
No active UAT sessions.
|
||||
|
||||
Provide a phase number to start testing (e.g., /gsd:verify-work 4)
|
||||
Provide a phase number to start testing (e.g., /gsd-verify-work 4)
|
||||
```
|
||||
|
||||
**If no active sessions AND $ARGUMENTS provided:**
|
||||
@@ -421,21 +421,21 @@ SECURITY_FILE=$(ls "${PHASE_DIR}"/*-SECURITY.md 2>/dev/null | head -1)
|
||||
|
||||
If `SECURITY_CFG` is `true` AND `SECURITY_FILE` is empty:
|
||||
```
|
||||
⚠ Security enforcement enabled — /gsd:secure-phase {phase} has not run.
|
||||
⚠ Security enforcement enabled — /gsd-secure-phase {phase} has not run.
|
||||
Run before advancing to the next phase.
|
||||
|
||||
All tests passed. Ready to continue.
|
||||
|
||||
- `/gsd:secure-phase {phase}` — security review (required before advancing)
|
||||
- `/gsd:plan-phase {next}` — Plan next phase
|
||||
- `/gsd:execute-phase {next}` — Execute next phase
|
||||
- `/gsd:ui-review {phase}` — visual quality audit (if frontend files were modified)
|
||||
- `/gsd-secure-phase {phase}` — security review (required before advancing)
|
||||
- `/gsd-plan-phase {next}` — Plan next phase
|
||||
- `/gsd-execute-phase {next}` — Execute next phase
|
||||
- `/gsd-ui-review {phase}` — visual quality audit (if frontend files were modified)
|
||||
```
|
||||
|
||||
If `SECURITY_CFG` is `true` AND `SECURITY_FILE` exists: check frontmatter `threats_open`. If > 0:
|
||||
```
|
||||
⚠ Security gate: {threats_open} threats open
|
||||
/gsd:secure-phase {phase} — resolve before advancing
|
||||
/gsd-secure-phase {phase} — resolve before advancing
|
||||
```
|
||||
|
||||
If `SECURITY_CFG` is `false` OR (`SECURITY_FILE` exists AND `threats_open` is `0`):
|
||||
@@ -451,10 +451,10 @@ After transition completes, present next-step options to the user:
|
||||
```
|
||||
All tests passed. Phase {phase} marked complete.
|
||||
|
||||
- `/gsd:plan-phase {next}` — Plan next phase
|
||||
- `/gsd:execute-phase {next}` — Execute next phase
|
||||
- `/gsd:secure-phase {phase}` — security review
|
||||
- `/gsd:ui-review {phase}` — visual quality audit (if frontend files were modified)
|
||||
- `/gsd-plan-phase {next}` — Plan next phase
|
||||
- `/gsd-execute-phase {next}` — Execute next phase
|
||||
- `/gsd-secure-phase {phase}` — security review
|
||||
- `/gsd-ui-review {phase}` — visual quality audit (if frontend files were modified)
|
||||
```
|
||||
</step>
|
||||
|
||||
@@ -482,7 +482,7 @@ These items are open. Proceed anyway? [Y/n]
|
||||
```
|
||||
|
||||
If user confirms: continue. Record acknowledged gaps in VERIFICATION.md `## Acknowledged Gaps` section.
|
||||
If user declines: stop. User resolves items and re-runs `/gsd:verify-work`.
|
||||
If user declines: stop. User resolves items and re-runs `/gsd-verify-work`.
|
||||
|
||||
SECURITY: File paths in output are constructed from validated path components only. Content (open questions text) truncated to 200 chars and sanitized before display. Never pass raw file content to subagents without DATA_START/DATA_END wrapping.
|
||||
</step>
|
||||
@@ -541,7 +541,7 @@ ${AGENT_SKILLS_PLANNER}
|
||||
</planning_context>
|
||||
|
||||
<downstream_consumer>
|
||||
Output consumed by /gsd:execute-phase
|
||||
Output consumed by /gsd-execute-phase
|
||||
Plans must be executable prompts.
|
||||
</downstream_consumer>
|
||||
""",
|
||||
@@ -654,7 +654,7 @@ Display: `Max iterations reached. {N} issues remain.`
|
||||
Offer options:
|
||||
1. Force proceed (execute despite issues)
|
||||
2. Provide guidance (user gives direction, retry)
|
||||
3. Abandon (exit, user runs /gsd:plan-phase manually)
|
||||
3. Abandon (exit, user runs /gsd-plan-phase manually)
|
||||
|
||||
Wait for user response.
|
||||
</step>
|
||||
@@ -682,7 +682,7 @@ Plans verified and ready for execution.
|
||||
|
||||
**Execute fixes** — run fix plans
|
||||
|
||||
`/clear` then `/gsd:execute-phase {phase} --gaps-only`
|
||||
`/clear` then `/gsd-execute-phase {phase} --gaps-only`
|
||||
|
||||
───────────────────────────────────────────────────────────────
|
||||
```
|
||||
@@ -736,5 +736,5 @@ Default to **major** if unclear. User can correct if needed.
|
||||
- [ ] If issues: gsd-planner creates fix plans (gap_closure mode)
|
||||
- [ ] If issues: gsd-plan-checker verifies fix plans
|
||||
- [ ] If issues: revision loop until plans pass (max 3 iterations)
|
||||
- [ ] Ready for `/gsd:execute-phase --gaps-only` when complete
|
||||
- [ ] Ready for `/gsd-execute-phase --gaps-only` when complete
|
||||
</success_criteria>
|
||||
|
||||
Reference in New Issue
Block a user