From a60e05c714e11d5d6b5ffdc842b272dd9eb73b06 Mon Sep 17 00:00:00 2001 From: Tom Boucher Date: Tue, 12 May 2026 21:53:24 -0400 Subject: [PATCH] fix(claude): restore namespaced /gsd: references (#3452) * fix(claude): restore namespaced /gsd: references * test(claude): align slash-command expectations to /gsd: form * test(claude): align generated command references to /gsd: * test(claude): finish /gsd: namespace expectation updates --- .changeset/quiet-geckos-switch.md | 5 + .clinerules | 6 +- agents/gsd-ai-researcher.md | 2 +- agents/gsd-code-fixer.md | 10 +- agents/gsd-code-reviewer.md | 8 +- agents/gsd-codebase-mapper.md | 8 +- agents/gsd-debug-session-manager.md | 10 +- agents/gsd-debugger.md | 6 +- agents/gsd-doc-classifier.md | 4 +- agents/gsd-doc-synthesizer.md | 4 +- agents/gsd-doc-verifier.md | 2 +- agents/gsd-doc-writer.md | 4 +- agents/gsd-domain-researcher.md | 2 +- agents/gsd-eval-auditor.md | 2 +- agents/gsd-eval-planner.md | 2 +- agents/gsd-executor.md | 2 +- agents/gsd-framework-selector.md | 2 +- agents/gsd-intel-updater.md | 6 +- agents/gsd-pattern-mapper.md | 6 +- agents/gsd-phase-researcher.md | 8 +- agents/gsd-plan-checker.md | 12 +- agents/gsd-planner.md | 20 +- agents/gsd-project-researcher.md | 4 +- agents/gsd-research-synthesizer.md | 4 +- agents/gsd-roadmapper.md | 10 +- agents/gsd-security-auditor.md | 4 +- agents/gsd-ui-auditor.md | 6 +- agents/gsd-ui-checker.md | 10 +- agents/gsd-ui-researcher.md | 8 +- agents/gsd-verifier.md | 6 +- commands/gsd/add-tests.md | 4 +- commands/gsd/complete-milestone.md | 14 +- commands/gsd/explore.md | 2 +- commands/gsd/fast.md | 4 +- commands/gsd/graphify.md | 6 +- commands/gsd/health.md | 2 +- commands/gsd/map-codebase.md | 6 +- commands/gsd/new-milestone.md | 2 +- commands/gsd/new-project.md | 2 +- commands/gsd/plan-phase.md | 2 +- commands/gsd/quick.md | 2 +- commands/gsd/review.md | 2 +- commands/gsd/ship.md | 2 +- commands/gsd/sketch.md | 2 +- commands/gsd/spec-phase.md | 2 +- commands/gsd/spike.md | 2 +- commands/gsd/ultraplan-phase.md | 4 +- commands/gsd/verify-work.md | 2 +- commands/gsd/workstreams.md | 8 +- get-shit-done/bin/lib/audit.cjs | 2 +- get-shit-done/bin/lib/commands.cjs | 2 +- get-shit-done/bin/lib/config.cjs | 4 +- get-shit-done/bin/lib/core.cjs | 2 +- get-shit-done/bin/lib/drift.cjs | 2 +- get-shit-done/bin/lib/gsd2-import.cjs | 2 +- get-shit-done/bin/lib/init.cjs | 14 +- get-shit-done/bin/lib/milestone.cjs | 4 +- get-shit-done/bin/lib/phase.cjs | 8 +- get-shit-done/bin/lib/profile-output.cjs | 18 +- .../bin/lib/validate-command-router.cjs | 4 +- get-shit-done/bin/lib/verify.cjs | 28 +- get-shit-done/bin/lib/workstream.cjs | 2 +- get-shit-done/references/artifact-types.md | 6 +- get-shit-done/references/context-budget.md | 2 +- .../references/continuation-format.md | 30 +- .../references/doc-conflict-engine.md | 2 +- get-shit-done/references/domain-probes.md | 2 +- get-shit-done/references/gate-prompts.md | 4 +- get-shit-done/references/git-integration.md | 2 +- get-shit-done/references/model-profiles.md | 2 +- get-shit-done/references/mvp-concepts.md | 4 +- get-shit-done/references/planning-config.md | 16 +- get-shit-done/references/thinking-partner.md | 2 +- .../references/verification-overrides.md | 6 +- get-shit-done/templates/AI-SPEC.md | 2 +- get-shit-done/templates/DEBUG.md | 2 +- get-shit-done/templates/README.md | 48 +-- get-shit-done/templates/UAT.md | 8 +- get-shit-done/templates/VALIDATION.md | 2 +- get-shit-done/templates/claude-md.md | 10 +- .../templates/debug-subagent-prompt.md | 2 +- get-shit-done/templates/dev-preferences.md | 2 +- get-shit-done/templates/discovery.md | 4 +- get-shit-done/templates/phase-prompt.md | 2 +- .../templates/planner-subagent-prompt.md | 6 +- get-shit-done/templates/project.md | 2 +- get-shit-done/templates/research.md | 2 +- get-shit-done/templates/spec.md | 6 +- get-shit-done/templates/state.md | 2 +- get-shit-done/workflows/add-backlog.md | 12 +- get-shit-done/workflows/add-phase.md | 4 +- get-shit-done/workflows/add-tests.md | 18 +- get-shit-done/workflows/add-todo.md | 2 +- .../workflows/ai-integration-phase.md | 10 +- .../workflows/analyze-dependencies.md | 6 +- get-shit-done/workflows/audit-milestone.md | 30 +- get-shit-done/workflows/audit-uat.md | 4 +- get-shit-done/workflows/autonomous.md | 14 +- get-shit-done/workflows/check-todos.md | 8 +- get-shit-done/workflows/code-review-fix.md | 14 +- get-shit-done/workflows/code-review.md | 10 +- get-shit-done/workflows/complete-milestone.md | 10 +- get-shit-done/workflows/debug.md | 14 +- get-shit-done/workflows/diagnose-issues.md | 2 +- get-shit-done/workflows/discovery-phase.md | 6 +- .../workflows/discuss-phase-assumptions.md | 8 +- .../workflows/discuss-phase-power.md | 6 +- get-shit-done/workflows/discuss-phase.md | 14 +- .../workflows/discuss-phase/modes/chain.md | 8 +- .../workflows/discuss-phase/modes/text.md | 2 +- get-shit-done/workflows/do.md | 46 +-- get-shit-done/workflows/docs-update.md | 8 +- get-shit-done/workflows/edit-phase.md | 10 +- get-shit-done/workflows/eval-review.md | 10 +- get-shit-done/workflows/execute-phase.md | 46 +-- .../steps/codebase-drift-gate.md | 2 +- get-shit-done/workflows/execute-plan.md | 6 +- get-shit-done/workflows/explore.md | 6 +- get-shit-done/workflows/extract-learnings.md | 4 +- get-shit-done/workflows/fast.md | 10 +- get-shit-done/workflows/forensics.md | 4 +- get-shit-done/workflows/health.md | 8 +- get-shit-done/workflows/help.md | 334 +++++++++--------- get-shit-done/workflows/import.md | 2 +- get-shit-done/workflows/inbox.md | 8 +- get-shit-done/workflows/ingest-docs.md | 4 +- get-shit-done/workflows/insert-phase.md | 6 +- .../workflows/list-phase-assumptions.md | 4 +- get-shit-done/workflows/list-workspaces.md | 2 +- get-shit-done/workflows/manager.md | 10 +- get-shit-done/workflows/map-codebase.md | 8 +- get-shit-done/workflows/milestone-summary.md | 4 +- get-shit-done/workflows/new-milestone.md | 12 +- get-shit-done/workflows/new-project.md | 40 +-- get-shit-done/workflows/new-workspace.md | 10 +- get-shit-done/workflows/next.md | 26 +- get-shit-done/workflows/note.md | 4 +- get-shit-done/workflows/pause-work.md | 4 +- .../workflows/plan-milestone-gaps.md | 14 +- get-shit-done/workflows/plan-phase.md | 76 ++-- .../workflows/plan-review-convergence.md | 14 +- get-shit-done/workflows/plant-seed.md | 12 +- get-shit-done/workflows/pr-branch.md | 2 +- get-shit-done/workflows/profile-user.md | 2 +- get-shit-done/workflows/progress.md | 74 ++-- get-shit-done/workflows/quick.md | 10 +- get-shit-done/workflows/reapply-patches.md | 8 +- get-shit-done/workflows/remove-phase.md | 4 +- get-shit-done/workflows/resume-project.md | 20 +- get-shit-done/workflows/review.md | 6 +- get-shit-done/workflows/scan.md | 2 +- get-shit-done/workflows/secure-phase.md | 10 +- get-shit-done/workflows/settings-advanced.md | 8 +- .../workflows/settings-integrations.md | 4 +- get-shit-done/workflows/settings.md | 50 +-- get-shit-done/workflows/ship.md | 12 +- get-shit-done/workflows/sketch-wrap-up.md | 16 +- get-shit-done/workflows/sketch.md | 10 +- get-shit-done/workflows/spec-phase.md | 8 +- get-shit-done/workflows/spike-wrap-up.md | 14 +- get-shit-done/workflows/spike.md | 10 +- get-shit-done/workflows/stats.md | 2 +- get-shit-done/workflows/thread.md | 14 +- get-shit-done/workflows/transition.md | 36 +- get-shit-done/workflows/ui-phase.md | 20 +- get-shit-done/workflows/ui-review.md | 10 +- get-shit-done/workflows/ultraplan-phase.md | 16 +- get-shit-done/workflows/undo.md | 16 +- get-shit-done/workflows/update.md | 10 +- get-shit-done/workflows/validate-phase.md | 8 +- get-shit-done/workflows/verify-work.md | 34 +- hooks/gsd-context-monitor.js | 4 +- hooks/gsd-statusline.js | 6 +- hooks/gsd-update-banner.js | 2 +- hooks/gsd-workflow-guard.js | 4 +- scripts/fix-slash-commands.cjs | 20 +- tests/bug-2543-gsd-slash-namespace.test.cjs | 130 ++----- .../bug-2948-spike-wrap-up-dispatch.test.cjs | 16 +- .../bug-2949-sketch-wrap-up-dispatch.test.cjs | 8 +- tests/bug-2950-stale-command-refs.test.cjs | 56 +-- ...-2954-help-md-slash-command-stubs.test.cjs | 31 +- tests/claude-md.test.cjs | 6 +- tests/feat-2795-update-banner.test.cjs | 6 +- tests/gsd-settings-advanced.test.cjs | 4 +- tests/milestone.test.cjs | 9 +- tests/settings-integrations.test.cjs | 4 +- tests/validate-context.test.cjs | 10 +- 187 files changed, 1089 insertions(+), 1142 deletions(-) create mode 100644 .changeset/quiet-geckos-switch.md diff --git a/.changeset/quiet-geckos-switch.md b/.changeset/quiet-geckos-switch.md new file mode 100644 index 000000000..6cf99dc37 --- /dev/null +++ b/.changeset/quiet-geckos-switch.md @@ -0,0 +1,5 @@ +--- +type: Fixed +pr: 3443 +--- +Claude-facing command references now use the canonical namespaced form (`/gsd:`) across workflows, commands, agents, templates, references, hooks, and runtime guidance text. Installer/runtime converters continue to map command syntax per-target where needed. diff --git a/.clinerules b/.clinerules index c838f3d77..436684e73 100644 --- a/.clinerules +++ b/.clinerules @@ -5,9 +5,9 @@ GSD is a structured AI development workflow system. It coordinates AI agents thr ## Core Rule: Never Edit Outside a GSD Workflow Do not make direct repo edits. All changes must go through a GSD workflow: -- `/gsd-plan-phase` → plan the work -- `/gsd-execute-phase` → build it -- `/gsd-verify-work` → verify results +- `/gsd:plan-phase` → plan the work +- `/gsd:execute-phase` → build it +- `/gsd:verify-work` → verify results ## Architecture - `get-shit-done/bin/lib/` — Core Node.js library (CommonJS .cjs, no external deps) diff --git a/agents/gsd-ai-researcher.md b/agents/gsd-ai-researcher.md index c739f399a..296792db5 100644 --- a/agents/gsd-ai-researcher.md +++ b/agents/gsd-ai-researcher.md @@ -1,6 +1,6 @@ --- name: gsd-ai-researcher -description: Researches a chosen AI framework's official docs to produce implementation-ready guidance — best practices, syntax, core patterns, and pitfalls distilled for the specific use case. Writes the Framework Quick Reference and Implementation Guidance sections of AI-SPEC.md. Spawned by /gsd-ai-integration-phase orchestrator. +description: Researches a chosen AI framework's official docs to produce implementation-ready guidance — best practices, syntax, core patterns, and pitfalls distilled for the specific use case. Writes the Framework Quick Reference and Implementation Guidance sections of AI-SPEC.md. Spawned by /gsd:ai-integration-phase orchestrator. tools: Read, Write, Bash, Grep, Glob, WebFetch, WebSearch, mcp__context7__* color: "#34D399" # hooks: diff --git a/agents/gsd-code-fixer.md b/agents/gsd-code-fixer.md index 8ffb9a6cd..c9c81a1c3 100644 --- a/agents/gsd-code-fixer.md +++ b/agents/gsd-code-fixer.md @@ -1,6 +1,6 @@ --- name: gsd-code-fixer -description: Applies fixes to code review findings from REVIEW.md. Reads source files, applies intelligent fixes, and commits each fix atomically. Spawned by /gsd-code-review --fix. +description: Applies fixes to code review findings from REVIEW.md. Reads source files, applies intelligent fixes, and commits each fix atomically. Spawned by /gsd:code-review --fix. tools: Read, Edit, Write, Bash, Grep, Glob color: "#10B981" # hooks: @@ -10,7 +10,7 @@ color: "#10B981" You are a GSD code fixer. You apply fixes to issues found by the gsd-code-reviewer agent. -Spawned by `/gsd-code-review --fix` workflow. You produce REVIEW-FIX.md artifact in the phase directory. +Spawned by `/gsd:code-review --fix` workflow. You produce REVIEW-FIX.md artifact in the phase directory. Your job: Read REVIEW.md findings, fix source code intelligently (not blind application), commit each fix atomically, and produce REVIEW-FIX.md report. @@ -214,7 +214,7 @@ If a finding references multiple files (in Fix section or Issue section): This agent runs as a background process that makes commits. Operating on the main working tree would race the foreground session (shared index, HEAD, and on-disk files). Instead, every instance runs in its own isolated worktree. -The cleanup tail (commit fixes -> remove worktree -> drop recovery sentinel) MUST be **transactional**: either all of (worktree, branch advance, sentinel) end in a clean state, or — if the process is interrupted (system restart, OOM kill) between the last commit and `git worktree remove` — a discoverable recovery sentinel is left behind so a future run, `/gsd-resume-work`, or `/gsd-progress` can complete the cleanup. The bug fixed by #2839 was that the cleanup tail was non-transactional and silently left orphan worktrees + unmerged branches with no resume marker. +The cleanup tail (commit fixes -> remove worktree -> drop recovery sentinel) MUST be **transactional**: either all of (worktree, branch advance, sentinel) end in a clean state, or — if the process is interrupted (system restart, OOM kill) between the last commit and `git worktree remove` — a discoverable recovery sentinel is left behind so a future run, `/gsd:resume-work`, or `/gsd:progress` can complete the cleanup. The bug fixed by #2839 was that the cleanup tail was non-transactional and silently left orphan worktrees + unmerged branches with no resume marker. ```bash # Derive worktree path from padded_phase (parsed from config in next step, @@ -295,7 +295,7 @@ cd "$wt" Concrete steps: 1. Parse `padded_phase` and `phase_dir` from the `` block (needed for the path and for the sentinel location). 2. Resolve the current branch: `branch=$(git branch --show-current)`. If empty (detached HEAD), print an error and exit — detached-HEAD state is not supported; commits made in a detached-HEAD worktree would not advance the branch. -3. **Recovery check (#2839, #2990):** If `${phase_dir}/.review-fix-recovery-pending.json` already exists, a prior run was interrupted. Parse the JSON, attempt to remove the orphan worktree it points at (best-effort, with `--force`), and delete the stale `reviewfix_branch` (best-effort, with `git branch -D`), then delete the stale sentinel before continuing. This makes a re-run of `/gsd-code-review --fix` self-healing. +3. **Recovery check (#2839, #2990):** If `${phase_dir}/.review-fix-recovery-pending.json` already exists, a prior run was interrupted. Parse the JSON, attempt to remove the orphan worktree it points at (best-effort, with `--force`), and delete the stale `reviewfix_branch` (best-effort, with `git branch -D`), then delete the stale sentinel before continuing. This makes a re-run of `/gsd:code-review --fix` self-healing. 4. Create a unique worktree path: `wt=$(mktemp -d "/tmp/sv-${padded_phase}-reviewfix-XXXXXX")`. The `mktemp` suffix ensures concurrent runs for the same phase do not collide. 5. Run `git worktree add -b "$reviewfix_branch" "$wt" "$branch"` — this creates a NEW branch (`gsd-reviewfix/${padded_phase}-$$`) starting from the current branch tip and attaches the worktree to that new branch. Attaching to a new branch (rather than `$branch` directly) is what allows the worktree to coexist with the user's checkout — git refuses to check out the same branch in two worktrees by default (#2990). Commits made inside the worktree advance `$reviewfix_branch`; the cleanup tail fast-forwards `$branch` to `$reviewfix_branch` so the user's branch ends up with the agent's commits. 6. **Write the recovery sentinel** at `${phase_dir}/.review-fix-recovery-pending.json` containing `{worktree_path, branch, reviewfix_branch, padded_phase, started_at}`. Doing this AFTER `git worktree add` ensures the sentinel only ever points at a real worktree. The sentinel includes `reviewfix_branch` so recovery can clean both the orphan worktree AND its temp branch. @@ -586,7 +586,7 @@ _Iteration: {N}_ **ALWAYS run inside the isolated worktree** — set up via `branch=$(git branch --show-current)` + `wt=$(mktemp -d "/tmp/sv-${padded_phase}-reviewfix-XXXXXX")` + `git worktree add -b "$reviewfix_branch" "$wt" "$branch"` at the very start (see `setup_worktree` step). Using `mktemp` ensures concurrent runs do not collide. Attaching to a NEW branch `$reviewfix_branch` (not `$branch` directly) is required because git refuses to check out the same branch in two worktrees by default — `$branch` is already checked out in the user's main repo (#2990). Commits advance `$reviewfix_branch`; the cleanup tail fast-forwards `$branch` to `$reviewfix_branch` so the user's branch ends up with the agent's commits. Every file read, edit, and commit must happen inside `$wt`. Run the four-step cleanup tail unconditionally when done (treat it as a finally block). If `git worktree add` fails, exit with an error rather than force-removing a path another run may hold. This prevents racing the foreground session on the shared main working tree (#2686). -**ALWAYS run the transactional cleanup tail in order** (#2839, #2990): the cleanup is four steps with strict ordering. (1) `git -C "$main_repo" merge --ff-only "$reviewfix_branch"` — fast-forward the user's branch to capture the agent's commits; on divergence, fail loudly and preserve the temp branch. (2) `git worktree remove "$wt" --force`. (3) `git -C "$main_repo" branch -D "$reviewfix_branch"` ONLY if the fast-forward succeeded; otherwise leave the temp branch for manual merge. (4) `rm -f "$sentinel"` (the recovery sentinel at `${phase_dir}/.review-fix-recovery-pending.json`). The sentinel is written AFTER `git worktree add` succeeds and removed only AFTER `git worktree remove` returns successfully. The temp branch is deleted only when the fast-forward succeeded. This ordering is what makes the cleanup tail transactional — an interruption between commits and `git worktree remove` leaves the sentinel behind (with `reviewfix_branch` recorded) so a future run, `/gsd-resume-work`, or `/gsd-progress` can detect and complete the recovery. Reversing the order recreates the orphan-worktree bug. +**ALWAYS run the transactional cleanup tail in order** (#2839, #2990): the cleanup is four steps with strict ordering. (1) `git -C "$main_repo" merge --ff-only "$reviewfix_branch"` — fast-forward the user's branch to capture the agent's commits; on divergence, fail loudly and preserve the temp branch. (2) `git worktree remove "$wt" --force`. (3) `git -C "$main_repo" branch -D "$reviewfix_branch"` ONLY if the fast-forward succeeded; otherwise leave the temp branch for manual merge. (4) `rm -f "$sentinel"` (the recovery sentinel at `${phase_dir}/.review-fix-recovery-pending.json`). The sentinel is written AFTER `git worktree add` succeeds and removed only AFTER `git worktree remove` returns successfully. The temp branch is deleted only when the fast-forward succeeded. This ordering is what makes the cleanup tail transactional — an interruption between commits and `git worktree remove` leaves the sentinel behind (with `reviewfix_branch` recorded) so a future run, `/gsd:resume-work`, or `/gsd:progress` can detect and complete the recovery. Reversing the order recreates the orphan-worktree bug. **ALWAYS use the Write tool to create files** — never use `Bash(cat << 'EOF')` or heredoc commands for file creation. diff --git a/agents/gsd-code-reviewer.md b/agents/gsd-code-reviewer.md index 83d615251..6ba1a1138 100644 --- a/agents/gsd-code-reviewer.md +++ b/agents/gsd-code-reviewer.md @@ -1,6 +1,6 @@ --- name: gsd-code-reviewer -description: Reviews source files for bugs, security issues, and code quality problems. Produces structured REVIEW.md with severity-classified findings. Spawned by /gsd-code-review. +description: Reviews source files for bugs, security issues, and code quality problems. Produces structured REVIEW.md with severity-classified findings. Spawned by /gsd:code-review. tools: Read, Write, Bash, Grep, Glob color: "#F59E0B" # hooks: @@ -10,7 +10,7 @@ color: "#F59E0B" Source files from a completed implementation have been submitted for adversarial review. Find every bug, security vulnerability, and quality defect — do not validate that work was done. -Spawned by `/gsd-code-review` workflow. You produce REVIEW.md artifact in the phase directory. +Spawned by `/gsd:code-review` workflow. You produce REVIEW.md artifact in the phase directory. **CRITICAL: Mandatory Initial Read** If the prompt contains a `` block, you MUST use the `Read` tool to load every file listed there before performing any other actions. This is your primary context. @@ -121,11 +121,11 @@ Parse each `- path` line under `files:` into the REVIEW_FILES array. If `files` **Fallback file discovery (safety net only):** -This fallback runs ONLY when invoked directly without workflow context. The `/gsd-code-review` workflow always passes an explicit file list via the `files` config field, making this fallback unnecessary in normal operation. +This fallback runs ONLY when invoked directly without workflow context. The `/gsd:code-review` workflow always passes an explicit file list via the `files` config field, making this fallback unnecessary in normal operation. If `files` is absent or empty, compute DIFF_BASE: 1. If `diff_base` is provided in config, use it -2. Otherwise, **fail closed** with error: "Cannot determine review scope. Please provide explicit file list via --files flag or re-run through /gsd-code-review workflow." +2. Otherwise, **fail closed** with error: "Cannot determine review scope. Please provide explicit file list via --files flag or re-run through /gsd:code-review workflow." Do NOT invent a heuristic (e.g., HEAD~5) — silent mis-scoping is worse than failing loudly. diff --git a/agents/gsd-codebase-mapper.md b/agents/gsd-codebase-mapper.md index f4520e1aa..cc1eb1c82 100644 --- a/agents/gsd-codebase-mapper.md +++ b/agents/gsd-codebase-mapper.md @@ -14,7 +14,7 @@ color: cyan You are a GSD codebase mapper. You explore a codebase for a specific focus area and write analysis documents directly to `.planning/codebase/`. -You are spawned by `/gsd-map-codebase` with one of four focus areas: +You are spawned by `/gsd:map-codebase` with one of four focus areas: - **tech**: Analyze technology stack and external integrations → write STACK.md and INTEGRATIONS.md - **arch**: Analyze architecture and file structure → write ARCHITECTURE.md and STRUCTURE.md - **quality**: Analyze coding conventions and testing patterns → write CONVENTIONS.md and TESTING.md @@ -40,7 +40,7 @@ This ensures project-specific patterns, conventions, and best practices are appl **These documents are consumed by other GSD commands:** -**`/gsd-plan-phase`** loads relevant codebase docs when creating implementation plans: +**`/gsd:plan-phase`** loads relevant codebase docs when creating implementation plans: | Phase Type | Documents Loaded | |------------|------------------| | UI, frontend, components | CONVENTIONS.md, STRUCTURE.md | @@ -51,7 +51,7 @@ This ensures project-specific patterns, conventions, and best practices are appl | refactor, cleanup | CONCERNS.md, ARCHITECTURE.md | | setup, config | STACK.md, STRUCTURE.md | -**`/gsd-execute-phase`** references codebase docs to: +**`/gsd:execute-phase`** references codebase docs to: - Follow existing conventions when writing code - Know where to place new files (STRUCTURE.md) - Match testing patterns (TESTING.md) @@ -102,7 +102,7 @@ The prompt may include a line of the form: --paths ,,... ``` -When present, restrict your exploration (Glob/Grep/Bash globs) to files under the listed repo-relative path prefixes. This is the incremental-remap path used by the post-execute codebase-drift gate in `/gsd-execute-phase`. You still produce the same documents, but their "where to add new code" / "directory layout" sections focus on the provided subtrees rather than re-scanning the whole repository. +When present, restrict your exploration (Glob/Grep/Bash globs) to files under the listed repo-relative path prefixes. This is the incremental-remap path used by the post-execute codebase-drift gate in `/gsd:execute-phase`. You still produce the same documents, but their "where to add new code" / "directory layout" sections focus on the provided subtrees rather than re-scanning the whole repository. **Path validation:** Reject any `--paths` value containing `..`, starting with `/`, or containing shell metacharacters (`;`, `` ` ``, `$`, `&`, `|`, `<`, `>`). If all provided paths are invalid, log a warning in your confirmation and fall back to the default whole-repo scan. diff --git a/agents/gsd-debug-session-manager.md b/agents/gsd-debug-session-manager.md index 9d1a1c148..986d00f2a 100644 --- a/agents/gsd-debug-session-manager.md +++ b/agents/gsd-debug-session-manager.md @@ -1,6 +1,6 @@ --- name: gsd-debug-session-manager -description: Manages multi-cycle /gsd-debug checkpoint and continuation loop in isolated context. Spawns gsd-debugger agents, handles checkpoints via AskUserQuestion, dispatches specialist skills, applies fixes. Returns compact summary to main context. Spawned by /gsd-debug command. +description: Manages multi-cycle /gsd:debug checkpoint and continuation loop in isolated context. Spawns gsd-debugger agents, handles checkpoints via AskUserQuestion, dispatches specialist skills, applies fixes. Returns compact summary to main context. Spawned by /gsd:debug command. tools: Read, Write, Bash, Grep, Glob, Agent, AskUserQuestion color: orange # hooks: @@ -12,7 +12,7 @@ color: orange --- -You are the GSD debug session manager. You run the full debug loop in isolation so the main `/gsd-debug` orchestrator context stays lean. +You are the GSD debug session manager. You run the full debug loop in isolation so the main `/gsd:debug` orchestrator context stays lean. **CRITICAL: Mandatory Initial Read** Your first action MUST be to read the debug file at `debug_file_path`. This is your primary context. @@ -55,7 +55,7 @@ Print: ## Step 2: Spawn gsd-debugger Agent -Fill and spawn the investigator with the same security-hardened prompt format used by `/gsd-debug`: +Fill and spawn the investigator with the same security-hardened prompt format used by `/gsd:debug`: ```markdown @@ -158,7 +158,7 @@ Root cause identified: How would you like to proceed? 1. Fix now — apply fix immediately -2. Plan fix — use /gsd-plan-phase --gaps +2. Plan fix — use /gsd:plan-phase --gaps 3. Manual fix — I'll handle it myself ``` @@ -297,7 +297,7 @@ If the session was abandoned by user choice, return: **Cycles:** {N} **TDD:** {yes/no} **Specialist review:** {specialist_hint used, or "none"} -**Status:** ABANDONED — session saved for `/gsd-debug continue {slug}` +**Status:** ABANDONED — session saved for `/gsd:debug continue {slug}` ``` diff --git a/agents/gsd-debugger.md b/agents/gsd-debugger.md index 0199d7d89..bb57446d6 100644 --- a/agents/gsd-debugger.md +++ b/agents/gsd-debugger.md @@ -1,6 +1,6 @@ --- name: gsd-debugger -description: Investigates bugs using scientific method, manages debug sessions, handles checkpoints. Spawned by /gsd-debug orchestrator. +description: Investigates bugs using scientific method, manages debug sessions, handles checkpoints. Spawned by /gsd:debug orchestrator. tools: Read, Write, Edit, Bash, Grep, Glob, WebSearch color: orange # hooks: @@ -16,7 +16,7 @@ You are a GSD debugger. You investigate bugs using systematic scientific method, You are spawned by: -- `/gsd-debug` command (interactive debugging) +- `/gsd:debug` command (interactive debugging) - `diagnose-issues` workflow (parallel UAT diagnosis) Your job: Find the root cause through hypothesis testing, maintain debug file state, optionally fix and verify (depending on mode). @@ -1001,7 +1001,7 @@ At investigation decision points, apply structured reasoning: - Otherwise -> proceed to fix_and_verify - **ELIMINATED:** Append to Eliminated section, form new hypothesis, return to Phase 2 -**Context management:** After 5+ evidence entries, ensure Current Focus is updated. Suggest "/clear - run /gsd-debug to resume" if context filling up. +**Context management:** After 5+ evidence entries, ensure Current Focus is updated. Suggest "/clear - run /gsd:debug to resume" if context filling up. diff --git a/agents/gsd-doc-classifier.md b/agents/gsd-doc-classifier.md index 5f5a2f838..fda7a8b28 100644 --- a/agents/gsd-doc-classifier.md +++ b/agents/gsd-doc-classifier.md @@ -1,6 +1,6 @@ --- name: gsd-doc-classifier -description: Classifies a single planning document as ADR, PRD, SPEC, DOC, or UNKNOWN. Extracts title, scope summary, and cross-references. Spawned in parallel by /gsd-ingest-docs. Writes a JSON classification file and returns a one-line confirmation. +description: Classifies a single planning document as ADR, PRD, SPEC, DOC, or UNKNOWN. Extracts title, scope summary, and cross-references. Spawned in parallel by /gsd:ingest-docs. Writes a JSON classification file and returns a one-line confirmation. tools: Read, Write, Grep, Glob color: yellow # hooks: @@ -12,7 +12,7 @@ color: yellow --- -You are a GSD doc classifier. You read ONE document and write a structured classification to `.planning/intel/classifications/`. You are spawned by `/gsd-ingest-docs` in parallel with siblings — each of you handles one file. Your output is consumed by `gsd-doc-synthesizer`. +You are a GSD doc classifier. You read ONE document and write a structured classification to `.planning/intel/classifications/`. You are spawned by `/gsd:ingest-docs` in parallel with siblings — each of you handles one file. Your output is consumed by `gsd-doc-synthesizer`. **CRITICAL: Mandatory Initial Read** If the prompt contains a `` block, use the `Read` tool to load every file listed there before doing anything else. That is your primary context. diff --git a/agents/gsd-doc-synthesizer.md b/agents/gsd-doc-synthesizer.md index f3dc52eaa..12d8deb2d 100644 --- a/agents/gsd-doc-synthesizer.md +++ b/agents/gsd-doc-synthesizer.md @@ -1,6 +1,6 @@ --- name: gsd-doc-synthesizer -description: Synthesizes classified planning docs into a single consolidated context. Applies precedence rules, detects cross-ref cycles, enforces LOCKED-vs-LOCKED hard-blocks, and writes INGEST-CONFLICTS.md with three buckets (auto-resolved, competing-variants, unresolved-blockers). Spawned by /gsd-ingest-docs. +description: Synthesizes classified planning docs into a single consolidated context. Applies precedence rules, detects cross-ref cycles, enforces LOCKED-vs-LOCKED hard-blocks, and writes INGEST-CONFLICTS.md with three buckets (auto-resolved, competing-variants, unresolved-blockers). Spawned by /gsd:ingest-docs. tools: Read, Write, Grep, Glob, Bash color: orange # hooks: @@ -12,7 +12,7 @@ color: orange --- -You are a GSD doc synthesizer. You consume per-doc classification JSON files and the source documents themselves, merge their content into structured intel, and produce a conflicts report. You are spawned by `/gsd-ingest-docs` after all classifiers have completed. +You are a GSD doc synthesizer. You consume per-doc classification JSON files and the source documents themselves, merge their content into structured intel, and produce a conflicts report. You are spawned by `/gsd:ingest-docs` after all classifiers have completed. You do NOT prompt the user. You do NOT write PROJECT.md, REQUIREMENTS.md, or ROADMAP.md — those are produced downstream by `gsd-roadmapper` using your output. Your job is synthesis + conflict surfacing. diff --git a/agents/gsd-doc-verifier.md b/agents/gsd-doc-verifier.md index 04ce273a0..fa4085a43 100644 --- a/agents/gsd-doc-verifier.md +++ b/agents/gsd-doc-verifier.md @@ -14,7 +14,7 @@ color: orange A documentation file has been submitted for factual verification against the live codebase. Every checkable claim must be verified — do not assume claims are correct because the doc was recently written. -Spawned by the `/gsd-docs-update` workflow. Each spawn receives a `` XML block containing: +Spawned by the `/gsd:docs-update` workflow. Each spawn receives a `` XML block containing: - `doc_path`: path to the doc file to verify (relative to project_root) - `project_root`: absolute path to project root diff --git a/agents/gsd-doc-writer.md b/agents/gsd-doc-writer.md index 4efe43892..1c7d384a1 100644 --- a/agents/gsd-doc-writer.md +++ b/agents/gsd-doc-writer.md @@ -14,7 +14,7 @@ color: purple You are a GSD doc writer. You write and update project documentation files for a target project. -You are spawned by `/gsd-docs-update` workflow. Each spawn receives a `` XML block in the prompt containing: +You are spawned by `/gsd:docs-update` workflow. Each spawn receives a `` XML block in the prompt containing: - `type`: one of `readme`, `architecture`, `getting_started`, `development`, `testing`, `api`, `configuration`, `deployment`, `contributing`, or `custom` - `mode`: `create` (new doc from scratch), `update` (revise existing GSD-generated doc), `supplement` (append missing sections to a hand-written doc), or `fix` (correct specific claims flagged by gsd-doc-verifier) - `project_context`: JSON from docs-init output (project_root, project_type, doc_tooling, etc.) @@ -593,7 +593,7 @@ change — only location and metadata change. 1. NEVER include GSD methodology content in generated docs — no references to phases, plans, `/gsd-` commands, PLAN.md, ROADMAP.md, or any GSD workflow concepts. Generated docs describe the TARGET PROJECT exclusively. -2. NEVER touch CHANGELOG.md — it is managed by `/gsd-ship` and is out of scope. +2. NEVER touch CHANGELOG.md — it is managed by `/gsd:ship` and is out of scope. 3. Include the GSD marker `` as the first line of every generated doc file (except supplement mode — see rule 7). 4. Explore the actual codebase before writing — never fabricate file paths, function names, endpoints, or configuration values. 8. Use the Write tool to create files — never use `Bash(cat << 'EOF')` or heredoc commands for file creation. diff --git a/agents/gsd-domain-researcher.md b/agents/gsd-domain-researcher.md index e8175e083..4c0b435b1 100644 --- a/agents/gsd-domain-researcher.md +++ b/agents/gsd-domain-researcher.md @@ -1,6 +1,6 @@ --- name: gsd-domain-researcher -description: Researches the business domain and real-world application context of the AI system being built. Surfaces domain expert evaluation criteria, industry-specific failure modes, regulatory context, and what "good" looks like for practitioners in this field — before the eval-planner turns it into measurable rubrics. Spawned by /gsd-ai-integration-phase orchestrator. +description: Researches the business domain and real-world application context of the AI system being built. Surfaces domain expert evaluation criteria, industry-specific failure modes, regulatory context, and what "good" looks like for practitioners in this field — before the eval-planner turns it into measurable rubrics. Spawned by /gsd:ai-integration-phase orchestrator. tools: Read, Write, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__* color: "#A78BFA" # hooks: diff --git a/agents/gsd-eval-auditor.md b/agents/gsd-eval-auditor.md index 611123899..d1cdb2015 100644 --- a/agents/gsd-eval-auditor.md +++ b/agents/gsd-eval-auditor.md @@ -1,6 +1,6 @@ --- name: gsd-eval-auditor -description: Retroactive audit of an implemented AI phase's evaluation coverage. Checks implementation against the AI-SPEC.md evaluation plan. Scores each eval dimension as COVERED/PARTIAL/MISSING. Produces a scored EVAL-REVIEW.md with findings, gaps, and remediation guidance. Spawned by /gsd-eval-review orchestrator. +description: Retroactive audit of an implemented AI phase's evaluation coverage. Checks implementation against the AI-SPEC.md evaluation plan. Scores each eval dimension as COVERED/PARTIAL/MISSING. Produces a scored EVAL-REVIEW.md with findings, gaps, and remediation guidance. Spawned by /gsd:eval-review orchestrator. tools: Read, Write, Bash, Grep, Glob color: "#EF4444" # hooks: diff --git a/agents/gsd-eval-planner.md b/agents/gsd-eval-planner.md index 5b1349af4..af2c617c2 100644 --- a/agents/gsd-eval-planner.md +++ b/agents/gsd-eval-planner.md @@ -1,6 +1,6 @@ --- name: gsd-eval-planner -description: Designs a structured evaluation strategy for an AI phase. Identifies critical failure modes, selects eval dimensions with rubrics, recommends tooling, and specifies the reference dataset. Writes the Evaluation Strategy, Guardrails, and Production Monitoring sections of AI-SPEC.md. Spawned by /gsd-ai-integration-phase orchestrator. +description: Designs a structured evaluation strategy for an AI phase. Identifies critical failure modes, selects eval dimensions with rubrics, recommends tooling, and specifies the reference dataset. Writes the Evaluation Strategy, Guardrails, and Production Monitoring sections of AI-SPEC.md. Spawned by /gsd:ai-integration-phase orchestrator. tools: Read, Write, Bash, Grep, Glob, AskUserQuestion color: "#F59E0B" # hooks: diff --git a/agents/gsd-executor.md b/agents/gsd-executor.md index d4dbd0e92..1b918c527 100644 --- a/agents/gsd-executor.md +++ b/agents/gsd-executor.md @@ -14,7 +14,7 @@ color: yellow You are a GSD plan executor. You execute PLAN.md files atomically, creating per-task commits, handling deviations automatically, pausing at checkpoints, and producing SUMMARY.md files. -Spawned by `/gsd-execute-phase` orchestrator. +Spawned by `/gsd:execute-phase` orchestrator. Your job: Execute the plan completely, commit each task, create SUMMARY.md, update STATE.md. diff --git a/agents/gsd-framework-selector.md b/agents/gsd-framework-selector.md index 134725680..b30c22d37 100644 --- a/agents/gsd-framework-selector.md +++ b/agents/gsd-framework-selector.md @@ -1,6 +1,6 @@ --- name: gsd-framework-selector -description: Presents an interactive decision matrix to surface the right AI/LLM framework for the user's specific use case. Produces a scored recommendation with rationale. Spawned by /gsd-ai-integration-phase and /gsd-select-framework orchestrators. +description: Presents an interactive decision matrix to surface the right AI/LLM framework for the user's specific use case. Produces a scored recommendation with rationale. Spawned by /gsd:ai-integration-phase and /gsd-select-framework orchestrators. tools: Read, Bash, Grep, Glob, WebSearch, AskUserQuestion color: "#38BDF8" --- diff --git a/agents/gsd-intel-updater.md b/agents/gsd-intel-updater.md index 99cbcb653..54eb593b4 100644 --- a/agents/gsd-intel-updater.md +++ b/agents/gsd-intel-updater.md @@ -44,15 +44,15 @@ Write machine-parseable, evidence-based intelligence. Every claim references act ## Upstream Input -### From `/gsd-map-codebase --query` Command +### From `/gsd:map-codebase --query` Command -- **Spawned by:** `/gsd-map-codebase --query` command +- **Spawned by:** `/gsd:map-codebase --query` command - **Receives:** Focus directive -- either `full` (all 5 files) or `partial --files ` (update specific file entries only) - **Input format:** Spawn prompt with `focus: full|partial` directive and project root path ### Config Gate -The /gsd-map-codebase --query command has already confirmed that intel.enabled is true before spawning this agent. Proceed directly to Step 1. +The /gsd:map-codebase --query command has already confirmed that intel.enabled is true before spawning this agent. Proceed directly to Step 1. ## Project Scope diff --git a/agents/gsd-pattern-mapper.md b/agents/gsd-pattern-mapper.md index fb850b29b..9b83144f2 100644 --- a/agents/gsd-pattern-mapper.md +++ b/agents/gsd-pattern-mapper.md @@ -1,6 +1,6 @@ --- name: gsd-pattern-mapper -description: Analyzes codebase for existing patterns and produces PATTERNS.md mapping new files to closest analogs. Read-only codebase analysis spawned by /gsd-plan-phase orchestrator before planning. +description: Analyzes codebase for existing patterns and produces PATTERNS.md mapping new files to closest analogs. Read-only codebase analysis spawned by /gsd:plan-phase orchestrator before planning. tools: Read, Bash, Glob, Grep, Write color: magenta # hooks: @@ -14,7 +14,7 @@ color: magenta You are a GSD pattern mapper. You answer "What existing code should new files copy patterns from?" and produce a single PATTERNS.md that the planner consumes. -Spawned by `/gsd-plan-phase` orchestrator (between research and planning steps). +Spawned by `/gsd:plan-phase` orchestrator (between research and planning steps). **CRITICAL: Mandatory Initial Read** If the prompt contains a `` block, you MUST use the `Read` tool to load every file listed there before performing any other actions. This is your primary context. @@ -44,7 +44,7 @@ This ensures pattern extraction aligns with project-specific conventions. -**CONTEXT.md** (if exists) — User decisions from `/gsd-discuss-phase` +**CONTEXT.md** (if exists) — User decisions from `/gsd:discuss-phase` | Section | How You Use It | |---------|----------------| diff --git a/agents/gsd-phase-researcher.md b/agents/gsd-phase-researcher.md index 55bf9f988..a4482938d 100644 --- a/agents/gsd-phase-researcher.md +++ b/agents/gsd-phase-researcher.md @@ -1,6 +1,6 @@ --- name: gsd-phase-researcher -description: Researches how to implement a phase before planning. Produces RESEARCH.md consumed by gsd-planner. Spawned by /gsd-plan-phase orchestrator. +description: Researches how to implement a phase before planning. Produces RESEARCH.md consumed by gsd-planner. Spawned by /gsd:plan-phase orchestrator. tools: Read, Write, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*, mcp__firecrawl__*, mcp__exa__* color: cyan # hooks: @@ -14,7 +14,7 @@ color: cyan You are a GSD phase researcher. You answer "What do I need to know to PLAN this phase well?" and produce a single RESEARCH.md that the planner consumes. -Spawned by `/gsd-plan-phase` (integrated) or `/gsd-research-phase` (standalone). +Spawned by `/gsd:plan-phase` (integrated) or `/gsd-research-phase` (standalone). @~/.claude/get-shit-done/references/mandatory-initial-read.md @@ -80,7 +80,7 @@ Before researching, discover project context: -**CONTEXT.md** (if exists) — User decisions from `/gsd-discuss-phase` +**CONTEXT.md** (if exists) — User decisions from `/gsd:discuss-phase` | Section | How You Use It | |---------|----------------| @@ -528,7 +528,7 @@ Verified patterns from official sources: ### Sampling Rate - **Per task commit:** `{quick run command}` - **Per wave merge:** `{full suite command}` -- **Phase gate:** Full suite green before `/gsd-verify-work` +- **Phase gate:** Full suite green before `/gsd:verify-work` ### Wave 0 Gaps - [ ] `{tests/test_file.py}` — covers REQ-{XX} diff --git a/agents/gsd-plan-checker.md b/agents/gsd-plan-checker.md index 2957e165f..fc6c5242e 100644 --- a/agents/gsd-plan-checker.md +++ b/agents/gsd-plan-checker.md @@ -1,6 +1,6 @@ --- name: gsd-plan-checker -description: Verifies plans will achieve phase goal before execution. Goal-backward analysis of plan quality. Spawned by /gsd-plan-phase orchestrator. +description: Verifies plans will achieve phase goal before execution. Goal-backward analysis of plan quality. Spawned by /gsd:plan-phase orchestrator. tools: Read, Bash, Glob, Grep color: green --- @@ -8,7 +8,7 @@ color: green A set of phase plans has been submitted for pre-execution review. Verify they WILL achieve the phase goal — do not credit effort or intent, only verifiable coverage. -Spawned by `/gsd-plan-phase` orchestrator (after planner creates PLAN.md) or re-verification (after planner revises). +Spawned by `/gsd:plan-phase` orchestrator (after planner creates PLAN.md) or re-verification (after planner revises). Goal-backward verification of PLANS before execution. Start from what the phase SHOULD deliver, verify plans address it. @@ -64,7 +64,7 @@ This ensures verification checks that plans follow project-specific conventions. -**CONTEXT.md** (if exists) — User decisions from `/gsd-discuss-phase` +**CONTEXT.md** (if exists) — User decisions from `/gsd:discuss-phase` | Section | How You Use It | |---------|----------------| @@ -299,7 +299,7 @@ issue: ## Dimension 7: Context Compliance (if CONTEXT.md exists) -**Question:** Do plans honor user decisions from /gsd-discuss-phase? +**Question:** Do plans honor user decisions from /gsd:discuss-phase? **Only check if CONTEXT.md was provided in the verification context.** @@ -447,7 +447,7 @@ Before running checks 8a-8d, verify VALIDATION.md exists: ls "${PHASE_DIR}"/*-VALIDATION.md 2>/dev/null ``` -**If missing:** **BLOCKING FAIL** — "VALIDATION.md not found for phase {N}. Re-run `/gsd-plan-phase {N} --research` to regenerate." +**If missing:** **BLOCKING FAIL** — "VALIDATION.md not found for phase {N}. Re-run `/gsd:plan-phase {N} --research` to regenerate." Skip checks 8a-8d entirely. Report Dimension 8 as FAIL with this single issue. **If exists:** Proceed to checks 8a-8d. @@ -897,7 +897,7 @@ Return all issues as a structured `issues:` YAML list (see dimension examples fo | 01 | 3 | 5 | 1 | Valid | | 02 | 2 | 4 | 2 | Valid | -Plans verified. Run `/gsd-execute-phase {phase}` to proceed. +Plans verified. Run `/gsd:execute-phase {phase}` to proceed. ``` ## ISSUES FOUND diff --git a/agents/gsd-planner.md b/agents/gsd-planner.md index b23a1d3c8..b0d6d5701 100644 --- a/agents/gsd-planner.md +++ b/agents/gsd-planner.md @@ -1,6 +1,6 @@ --- name: gsd-planner -description: Creates executable phase plans with task breakdown, dependency analysis, and goal-backward verification. Spawned by /gsd-plan-phase orchestrator. +description: Creates executable phase plans with task breakdown, dependency analysis, and goal-backward verification. Spawned by /gsd:plan-phase orchestrator. tools: Read, Write, Bash, Glob, Grep, WebFetch, mcp__context7__* color: green # hooks: @@ -15,10 +15,10 @@ color: green You are a GSD planner. You create executable phase plans with task breakdown, dependency analysis, and goal-backward verification. Spawned by: -- `/gsd-plan-phase` orchestrator (standard phase planning) -- `/gsd-plan-phase --gaps` orchestrator (gap closure from verification failures) -- `/gsd-plan-phase` in revision mode (updating plans based on checker feedback) -- `/gsd-plan-phase --reviews` orchestrator (replanning with cross-AI review feedback) +- `/gsd:plan-phase` orchestrator (standard phase planning) +- `/gsd:plan-phase --gaps` orchestrator (gap closure from verification failures) +- `/gsd:plan-phase` in revision mode (updating plans based on checker feedback) +- `/gsd:plan-phase --reviews` orchestrator (replanning with cross-AI review feedback) Your job: Produce PLAN.md files that Claude executors can implement without interpretation. Plans are prompts, not documents that become prompts. @@ -51,7 +51,7 @@ Before planning, discover project context: ## CRITICAL: User Decision Fidelity -The orchestrator provides user decisions in `` tags from `/gsd-discuss-phase`. +The orchestrator provides user decisions in `` tags from `/gsd:discuss-phase`. **Before creating ANY task, verify:** @@ -987,7 +987,7 @@ If `features.global_learnings` is `true`: run `gsd-sdk query learnings.query --t Use `phase_dir` from init context (already loaded in load_project_state). ```bash -cat "$phase_dir"/*-CONTEXT.md 2>/dev/null # From /gsd-discuss-phase +cat "$phase_dir"/*-CONTEXT.md 2>/dev/null # From /gsd:discuss-phase cat "$phase_dir"/*-RESEARCH.md 2>/dev/null # From /gsd-research-phase cat "$phase_dir"/*-DISCOVERY.md 2>/dev/null # From mandatory discovery ``` @@ -1196,7 +1196,7 @@ Return structured planning outcome to orchestrator. ### Next Steps -Execute: `/gsd-execute-phase {phase}` +Execute: `/gsd:execute-phase {phase}` `/clear` first - fresh context window ``` @@ -1217,7 +1217,7 @@ Execute: `/gsd-execute-phase {phase}` ### Next Steps -Execute: `/gsd-execute-phase {phase} --gaps-only` +Execute: `/gsd:execute-phase {phase} --gaps-only` ``` ## Checkpoint Reached / Revision Complete @@ -1273,6 +1273,6 @@ Planning complete when: - [ ] PLAN file(s) exist with gap_closure: true - [ ] Each plan: tasks derived from gap.missing items - [ ] PLAN file(s) committed to git -- [ ] User knows to run `/gsd-execute-phase {X}` next +- [ ] User knows to run `/gsd:execute-phase {X}` next diff --git a/agents/gsd-project-researcher.md b/agents/gsd-project-researcher.md index 4c3f96d29..4fe60f89d 100644 --- a/agents/gsd-project-researcher.md +++ b/agents/gsd-project-researcher.md @@ -1,6 +1,6 @@ --- name: gsd-project-researcher -description: Researches domain ecosystem before roadmap creation. Produces files in .planning/research/ consumed during roadmap creation. Spawned by /gsd-new-project or /gsd-new-milestone orchestrators. +description: Researches domain ecosystem before roadmap creation. Produces files in .planning/research/ consumed during roadmap creation. Spawned by /gsd:new-project or /gsd:new-milestone orchestrators. tools: Read, Write, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*, mcp__firecrawl__*, mcp__exa__* color: cyan # hooks: @@ -12,7 +12,7 @@ color: cyan --- -You are a GSD project researcher spawned by `/gsd-new-project` or `/gsd-new-milestone` (Phase 6: Research). +You are a GSD project researcher spawned by `/gsd:new-project` or `/gsd:new-milestone` (Phase 6: Research). Answer "What does this domain ecosystem look like?" Write research files in `.planning/research/` that inform roadmap creation. diff --git a/agents/gsd-research-synthesizer.md b/agents/gsd-research-synthesizer.md index 16fc2f51d..a551ebe22 100644 --- a/agents/gsd-research-synthesizer.md +++ b/agents/gsd-research-synthesizer.md @@ -1,6 +1,6 @@ --- name: gsd-research-synthesizer -description: Synthesizes research outputs from parallel researcher agents into SUMMARY.md. Spawned by /gsd-new-project after 4 researcher agents complete. +description: Synthesizes research outputs from parallel researcher agents into SUMMARY.md. Spawned by /gsd:new-project after 4 researcher agents complete. tools: Read, Write, Bash color: purple # hooks: @@ -16,7 +16,7 @@ You are a GSD research synthesizer. You read the outputs from 4 parallel researc You are spawned by: -- `/gsd-new-project` orchestrator (after STACK, FEATURES, ARCHITECTURE, PITFALLS research completes) +- `/gsd:new-project` orchestrator (after STACK, FEATURES, ARCHITECTURE, PITFALLS research completes) Your job: Create a unified research summary that informs roadmap creation. Extract key findings, identify patterns across research files, and produce roadmap implications. diff --git a/agents/gsd-roadmapper.md b/agents/gsd-roadmapper.md index 643ef35a0..c6a12e407 100644 --- a/agents/gsd-roadmapper.md +++ b/agents/gsd-roadmapper.md @@ -1,6 +1,6 @@ --- name: gsd-roadmapper -description: Creates project roadmaps with phase breakdown, requirement mapping, success criteria derivation, and coverage validation. Spawned by /gsd-new-project orchestrator. +description: Creates project roadmaps with phase breakdown, requirement mapping, success criteria derivation, and coverage validation. Spawned by /gsd:new-project orchestrator. tools: Read, Write, Bash, Glob, Grep color: purple # hooks: @@ -16,7 +16,7 @@ You are a GSD roadmapper. You create project roadmaps that map requirements to p You are spawned by: -- `/gsd-new-project` orchestrator (unified project initialization) +- `/gsd:new-project` orchestrator (unified project initialization) Your job: Transform requirements into a phase structure that delivers the project. Every v1 requirement maps to exactly one phase. Every phase has observable success criteria. @@ -44,7 +44,7 @@ This ensures project-specific patterns, conventions, and best practices are appl -Your ROADMAP.md is consumed by `/gsd-plan-phase` which uses it to: +Your ROADMAP.md is consumed by `/gsd:plan-phase` which uses it to: | Output | How Plan-Phase Uses It | |--------|------------------------| @@ -363,7 +363,7 @@ Svelte, Next.js, Nuxt **UI hint**: yes ``` -This annotation is consumed by downstream workflows (`new-project`, `progress`) to suggest `/gsd-ui-phase` at the right time. Phases without UI indicators omit the annotation entirely. +This annotation is consumed by downstream workflows (`new-project`, `progress`) to suggest `/gsd:ui-phase` at the right time. Phases without UI indicators omit the annotation entirely. ### 3. Progress Table @@ -598,7 +598,7 @@ After incorporating user feedback and updating files: ### Ready for Planning -Next: `/gsd-plan-phase 1` +Next: `/gsd:plan-phase 1` ``` ## Roadmap Blocked diff --git a/agents/gsd-security-auditor.md b/agents/gsd-security-auditor.md index 63b06e40c..31847360f 100644 --- a/agents/gsd-security-auditor.md +++ b/agents/gsd-security-auditor.md @@ -1,6 +1,6 @@ --- name: gsd-security-auditor -description: Verifies threat mitigations from PLAN.md threat model exist in implemented code. Produces SECURITY.md. Spawned by /gsd-secure-phase. +description: Verifies threat mitigations from PLAN.md threat model exist in implemented code. Produces SECURITY.md. Spawned by /gsd:secure-phase. tools: - Read - Write @@ -123,7 +123,7 @@ SECURITY.md: {path} |-----------|----------|---------------------|----------------| | {id} | {category} | {pattern not found} | {file paths} | -Next: Implement mitigations or document as accepted in SECURITY.md accepted risks log, then re-run /gsd-secure-phase. +Next: Implement mitigations or document as accepted in SECURITY.md accepted risks log, then re-run /gsd:secure-phase. SECURITY.md: {path} ``` diff --git a/agents/gsd-ui-auditor.md b/agents/gsd-ui-auditor.md index 6b0195a35..2fd1b1153 100644 --- a/agents/gsd-ui-auditor.md +++ b/agents/gsd-ui-auditor.md @@ -1,6 +1,6 @@ --- name: gsd-ui-auditor -description: Retroactive 6-pillar visual audit of implemented frontend code. Produces scored UI-REVIEW.md. Spawned by /gsd-ui-review orchestrator. +description: Retroactive 6-pillar visual audit of implemented frontend code. Produces scored UI-REVIEW.md. Spawned by /gsd:ui-review orchestrator. tools: Read, Write, Bash, Grep, Glob color: "#F472B6" # hooks: @@ -14,7 +14,7 @@ color: "#F472B6" An implemented frontend has been submitted for adversarial visual and interaction audit. Score what was actually built against the design contract or 6-pillar standards — do not average scores upward to soften findings. -Spawned by `/gsd-ui-review` orchestrator. +Spawned by `/gsd:ui-review` orchestrator. **CRITICAL: Mandatory Initial Read** If the prompt contains a `` block, you MUST use the `Read` tool to load every file listed there before performing any other actions. This is your primary context. @@ -55,7 +55,7 @@ Before auditing, discover project context: -**UI-SPEC.md** (if exists) — Design contract from `/gsd-ui-phase` +**UI-SPEC.md** (if exists) — Design contract from `/gsd:ui-phase` | Section | How You Use It | |---------|----------------| diff --git a/agents/gsd-ui-checker.md b/agents/gsd-ui-checker.md index c6ced4f97..2ed509e78 100644 --- a/agents/gsd-ui-checker.md +++ b/agents/gsd-ui-checker.md @@ -1,6 +1,6 @@ --- name: gsd-ui-checker -description: Validates UI-SPEC.md design contracts against 6 quality dimensions. Produces BLOCK/FLAG/PASS verdicts. Spawned by /gsd-ui-phase orchestrator. +description: Validates UI-SPEC.md design contracts against 6 quality dimensions. Produces BLOCK/FLAG/PASS verdicts. Spawned by /gsd:ui-phase orchestrator. tools: Read, Bash, Glob, Grep color: "#22D3EE" --- @@ -8,7 +8,7 @@ color: "#22D3EE" You are a GSD UI checker. Verify that UI-SPEC.md contracts are complete, consistent, and implementable before planning begins. -Spawned by `/gsd-ui-phase` orchestrator (after gsd-ui-researcher creates UI-SPEC.md) or re-verification (after researcher revises). +Spawned by `/gsd:ui-phase` orchestrator (after gsd-ui-researcher creates UI-SPEC.md) or re-verification (after researcher revises). **CRITICAL: Mandatory Initial Read** If the prompt contains a `` block, you MUST use the `Read` tool to load every file listed there before performing any other actions. This is your primary context. @@ -41,7 +41,7 @@ This ensures verification respects project-specific design conventions. **UI-SPEC.md** — Design contract from gsd-ui-researcher (primary input) -**CONTEXT.md** (if exists) — User decisions from `/gsd-discuss-phase` +**CONTEXT.md** (if exists) — User decisions from `/gsd:discuss-phase` | Section | How You Use It | |---------|----------------| @@ -181,7 +181,7 @@ fix_hint: "Use 8px or 12px instead" dimension: 6 severity: BLOCK description: "Third-party registry 'magic-ui' listed with Safety Gate 'shadcn view + diff required' — this is intent, not evidence of actual vetting" -fix_hint: "Re-run /gsd-ui-phase to trigger the registry vetting gate, or manually run 'npx shadcn view {block} --registry {url}' and record results" +fix_hint: "Re-run /gsd:ui-phase to trigger the registry vetting gate, or manually run 'npx shadcn view {block} --registry {url}' and record results" ``` ```yaml dimension: 6 @@ -272,7 +272,7 @@ UI-SPEC approved. Planner can use as design context. - **Dimension {N} — {name}:** {description} (non-blocking) ### Action Required -Fix blocking issues in UI-SPEC.md and re-run `/gsd-ui-phase`. +Fix blocking issues in UI-SPEC.md and re-run `/gsd:ui-phase`. ``` diff --git a/agents/gsd-ui-researcher.md b/agents/gsd-ui-researcher.md index a64e53a5b..b314c82b0 100644 --- a/agents/gsd-ui-researcher.md +++ b/agents/gsd-ui-researcher.md @@ -1,6 +1,6 @@ --- name: gsd-ui-researcher -description: Produces UI-SPEC.md design contract for frontend phases. Reads upstream artifacts, detects design system state, asks only unanswered questions. Spawned by /gsd-ui-phase orchestrator. +description: Produces UI-SPEC.md design contract for frontend phases. Reads upstream artifacts, detects design system state, asks only unanswered questions. Spawned by /gsd:ui-phase orchestrator. tools: Read, Write, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*, mcp__firecrawl__*, mcp__exa__* color: "#E879F9" # hooks: @@ -14,7 +14,7 @@ color: "#E879F9" You are a GSD UI researcher. You answer "What visual and interaction contracts does this phase need?" and produce a single UI-SPEC.md that the planner and executor consume. -Spawned by `/gsd-ui-phase` orchestrator. +Spawned by `/gsd:ui-phase` orchestrator. **CRITICAL: Mandatory Initial Read** If the prompt contains a `` block, you MUST use the `Read` tool to load every file listed there before performing any other actions. This is your primary context. @@ -66,7 +66,7 @@ This ensures the design contract aligns with project-specific conventions and li -**CONTEXT.md** (if exists) — User decisions from `/gsd-discuss-phase` +**CONTEXT.md** (if exists) — User decisions from `/gsd:discuss-phase` | Section | How You Use It | |---------|----------------| @@ -74,7 +74,7 @@ This ensures the design contract aligns with project-specific conventions and li | `## Claude's Discretion` | Your freedom areas — research and recommend | | `## Deferred Ideas` | Out of scope — ignore completely | -**RESEARCH.md** (if exists) — Technical findings from `/gsd-plan-phase` +**RESEARCH.md** (if exists) — Technical findings from `/gsd:plan-phase` | Section | How You Use It | |---------|----------------| diff --git a/agents/gsd-verifier.md b/agents/gsd-verifier.md index 9f4acd93f..dc3d396ed 100644 --- a/agents/gsd-verifier.md +++ b/agents/gsd-verifier.md @@ -605,7 +605,7 @@ Parse the JSON to extract all phases. Identify phases with `number > current_pha Before writing VERIFICATION.md, verify that the status field matches the decision tree from Step 9 — in particular, confirm that status is not `passed` when human verification items exist. -Structure gaps in YAML frontmatter for `/gsd-plan-phase --gaps`: +Structure gaps in YAML frontmatter for `/gsd:plan-phase --gaps`: ```yaml gaps: @@ -812,7 +812,7 @@ All must-haves verified. Phase goal achieved. Ready to proceed. 1. **{Truth 1}** — {reason} - Missing: {what needs to be added} -Structured gaps in VERIFICATION.md frontmatter for `/gsd-plan-phase --gaps`. +Structured gaps in VERIFICATION.md frontmatter for `/gsd:plan-phase --gaps`. {If human_needed:} ### Human Verification Required @@ -833,7 +833,7 @@ Automated checks passed. Awaiting human verification. **DO NOT skip key link verification.** 80% of stubs hide here — pieces exist but aren't connected. -**Structure gaps in YAML frontmatter** for `/gsd-plan-phase --gaps`. +**Structure gaps in YAML frontmatter** for `/gsd:plan-phase --gaps`. **DO flag for human verification when uncertain** (visual, real-time, external service). diff --git a/commands/gsd/add-tests.md b/commands/gsd/add-tests.md index 11f93c631..5a06c1b20 100644 --- a/commands/gsd/add-tests.md +++ b/commands/gsd/add-tests.md @@ -13,8 +13,8 @@ allowed-tools: - AskUserQuestion argument-instructions: | Parse the argument as a phase number (integer, decimal, or letter-suffix), plus optional free-text instructions. - Example: /gsd-add-tests 12 - Example: /gsd-add-tests 12 focus on edge cases in the pricing module + Example: /gsd:add-tests 12 + Example: /gsd:add-tests 12 focus on edge cases in the pricing module --- Generate unit and E2E tests for a completed phase, using its SUMMARY.md, CONTEXT.md, and VERIFICATION.md as specifications. diff --git a/commands/gsd/complete-milestone.md b/commands/gsd/complete-milestone.md index 8ad15b146..63b31ff42 100644 --- a/commands/gsd/complete-milestone.md +++ b/commands/gsd/complete-milestone.md @@ -42,10 +42,10 @@ Output: Milestone archived (roadmap + requirements), PROJECT.md evolved, git tag 0. **Check for audit:** - Look for `.planning/v{{version}}-MILESTONE-AUDIT.md` - - If missing or stale: recommend `/gsd-audit-milestone` first + - If missing or stale: recommend `/gsd:audit-milestone` first - If audit status is `gaps_found`: recommend closing the gaps inline (the audit output already enumerates them — insert closure phases - via `/gsd-phase --insert ` plus the standard + via `/gsd:phase --insert ` plus the standard discuss/plan/execute chain) before proceeding. - If audit status is `passed`: proceed to step 1 @@ -53,14 +53,14 @@ Output: Milestone archived (roadmap + requirements), PROJECT.md evolved, git tag ## Pre-flight Check {If no v{{version}}-MILESTONE-AUDIT.md:} - ⚠ No milestone audit found. Run `/gsd-audit-milestone` first to verify + ⚠ No milestone audit found. Run `/gsd:audit-milestone` first to verify requirements coverage, cross-phase integration, and E2E flows. {If audit has gaps:} ⚠ Milestone audit found gaps. The audit output already enumerates the unsatisfied requirements, cross-phase issues, and broken flows — insert - a closure phase per gap with `/gsd-phase --insert ` and run the - standard `/gsd-discuss-phase` → `/gsd-plan-phase` → `/gsd-execute-phase` + a closure phase per gap with `/gsd:phase --insert ` and run the + standard `/gsd:discuss-phase` → `/gsd:plan-phase` → `/gsd:execute-phase` chain. Or proceed anyway to accept the gaps as tech debt. {If audit passed:} @@ -114,7 +114,7 @@ Output: Milestone archived (roadmap + requirements), PROJECT.md evolved, git tag - Ask about pushing tag 8. **Offer next steps:** - - `/gsd-new-milestone` — start next milestone (questioning → research → requirements → roadmap) + - `/gsd:new-milestone` — start next milestone (questioning → research → requirements → roadmap) @@ -138,5 +138,5 @@ Output: Milestone archived (roadmap + requirements), PROJECT.md evolved, git tag - **Archive before deleting:** Always create archive files before updating/deleting originals - **One-line summary:** Collapsed milestone in ROADMAP.md should be single line with link - **Context efficiency:** Archive keeps ROADMAP.md and REQUIREMENTS.md constant size per milestone -- **Fresh requirements:** Next milestone starts with `/gsd-new-milestone` which includes requirements definition +- **Fresh requirements:** Next milestone starts with `/gsd:new-milestone` which includes requirements definition diff --git a/commands/gsd/explore.md b/commands/gsd/explore.md index 72fe13cdd..f7d9fd4d9 100644 --- a/commands/gsd/explore.md +++ b/commands/gsd/explore.md @@ -15,7 +15,7 @@ Open-ended Socratic ideation session. Guides the developer through exploring an probing questions, optionally spawns research, then routes outputs to the appropriate GSD artifacts (notes, todos, seeds, research questions, requirements, or new phases). -Accepts an optional topic argument: `/gsd-explore authentication strategy` +Accepts an optional topic argument: `/gsd:explore authentication strategy` diff --git a/commands/gsd/fast.md b/commands/gsd/fast.md index 3aaeee0fe..a465b9d49 100644 --- a/commands/gsd/fast.md +++ b/commands/gsd/fast.md @@ -16,8 +16,8 @@ Execute a trivial task directly in the current context without spawning subagent or generating PLAN.md files. For tasks too small to justify planning overhead: typo fixes, config changes, small refactors, forgotten commits, simple additions. -This is NOT a replacement for /gsd-quick — use /gsd-quick for anything that -needs research, multi-step planning, or verification. /gsd-fast is for tasks +This is NOT a replacement for /gsd:quick — use /gsd:quick for anything that +needs research, multi-step planning, or verification. /gsd:fast is for tasks you could describe in one sentence and execute in under 2 minutes. diff --git a/commands/gsd/graphify.md b/commands/gsd/graphify.md index d56b6047f..d353e9f26 100644 --- a/commands/gsd/graphify.md +++ b/commands/gsd/graphify.md @@ -42,7 +42,7 @@ Knowledge graph is disabled. To activate: node $HOME/.claude/get-shit-done/bin/gsd-tools.cjs config-set graphify.enabled true -Then run /gsd-graphify build to create the initial graph. +Then run /gsd:graphify build to create the initial graph. ``` --- @@ -64,7 +64,7 @@ Parse `$ARGUMENTS` to determine the operation mode: ``` GSD > GRAPHIFY -Usage: /gsd-graphify +Usage: /gsd:graphify Modes: build Build or rebuild the knowledge graph @@ -84,7 +84,7 @@ node $HOME/.claude/get-shit-done/bin/gsd-tools.cjs graphify query Parse the JSON output and display results: - If the output contains `"disabled": true`, display the disabled message from Step 1 and **STOP** - If the output contains `"error"` field, display the error message and **STOP** -- If no nodes found, display: `No graph matches for ''. Try /gsd-graphify build to create or rebuild the graph.` +- If no nodes found, display: `No graph matches for ''. Try /gsd:graphify build to create or rebuild the graph.` - Otherwise, display matched nodes grouped by type, with edge relationships and confidence tiers (EXTRACTED/INFERRED/AMBIGUOUS) **STOP** after displaying results. Do not spawn an agent. diff --git a/commands/gsd/health.md b/commands/gsd/health.md index c8fbc7d98..72072801b 100644 --- a/commands/gsd/health.md +++ b/commands/gsd/health.md @@ -16,7 +16,7 @@ Validate `.planning/` directory integrity and report actionable issues. Checks f | Utilization | State | Action | |-------------|----------|-------------------------------------------------------| | < 60% | healthy | no action — context is comfortable | -| 60% – 70% | warning | recommend `/gsd-thread` to start fresh | +| 60% – 70% | warning | recommend `/gsd:thread` to start fresh | | ≥ 70% | critical | reasoning quality may degrade past the fracture point | diff --git a/commands/gsd/map-codebase.md b/commands/gsd/map-codebase.md index 967987ef3..d0c554fd7 100644 --- a/commands/gsd/map-codebase.md +++ b/commands/gsd/map-codebase.md @@ -41,8 +41,8 @@ Parse the first token of $ARGUMENTS: Check for .planning/STATE.md - loads context if project already initialized **This command can run:** -- Before /gsd-new-project (brownfield codebases) - creates codebase map first -- After /gsd-new-project (greenfield codebases) - updates codebase map as code evolves +- Before /gsd:new-project (brownfield codebases) - creates codebase map first +- After /gsd:new-project (greenfield codebases) - updates codebase map as code evolves - Anytime to refresh codebase understanding @@ -70,7 +70,7 @@ Check for .planning/STATE.md - loads context if project already initialized 4. Wait for agents to complete, collect confirmations (NOT document contents) 5. Verify all 7 documents exist with line counts 6. Commit codebase map -7. Offer next steps (typically: /gsd-new-project or /gsd-plan-phase) +7. Offer next steps (typically: /gsd:new-project or /gsd:plan-phase) diff --git a/commands/gsd/new-milestone.md b/commands/gsd/new-milestone.md index 855d511a3..5c2b0a9de 100644 --- a/commands/gsd/new-milestone.md +++ b/commands/gsd/new-milestone.md @@ -21,7 +21,7 @@ Brownfield equivalent of new-project. Project exists, PROJECT.md has history. Ga - `.planning/ROADMAP.md` — phase structure (continues numbering) - `.planning/STATE.md` — reset for new milestone -**After:** `/gsd-plan-phase [N]` to start execution. +**After:** `/gsd:plan-phase [N]` to start execution. diff --git a/commands/gsd/new-project.md b/commands/gsd/new-project.md index 98eaead55..f40209120 100644 --- a/commands/gsd/new-project.md +++ b/commands/gsd/new-project.md @@ -29,7 +29,7 @@ Initialize a new project through unified flow: questioning → research (optiona - `.planning/ROADMAP.md` — phase structure - `.planning/STATE.md` — project memory -**After this command:** Run `/gsd-plan-phase 1` to start execution. +**After this command:** Run `/gsd:plan-phase 1` to start execution. diff --git a/commands/gsd/plan-phase.md b/commands/gsd/plan-phase.md index f32b3b83e..e62e84590 100644 --- a/commands/gsd/plan-phase.md +++ b/commands/gsd/plan-phase.md @@ -48,7 +48,7 @@ Phase number: $ARGUMENTS (optional — auto-detects next unplanned phase if omit - `--prd ` — Use a PRD/acceptance criteria file instead of discuss-phase. Parses requirements into CONTEXT.md automatically. Skips discuss-phase entirely. - `--ingest ` — Use one or more ADR files instead of discuss-phase. Parses locked decisions + scope fences into CONTEXT.md automatically. Skips discuss-phase entirely. - `--ingest-format ` — Optional ADR parser format override (`auto` default). -- `--reviews` — Replan incorporating cross-AI review feedback from REVIEWS.md (produced by `/gsd-review`) +- `--reviews` — Replan incorporating cross-AI review feedback from REVIEWS.md (produced by `/gsd:review`) - `--text` — Use plain-text numbered lists instead of TUI menus (required for `/rc` remote sessions) - `--mvp` — Vertical MVP mode. Planner organizes tasks as feature slices (UI→API→DB) instead of horizontal layers. On Phase 1 of a new project, also emits `SKELETON.md` (Walking Skeleton). Can be persisted on a phase via `**Mode:** mvp` in ROADMAP.md. diff --git a/commands/gsd/quick.md b/commands/gsd/quick.md index 47fc48ae3..16f96b24c 100644 --- a/commands/gsd/quick.md +++ b/commands/gsd/quick.md @@ -118,7 +118,7 @@ Status: {status from SUMMARY.md frontmatter, or "no summary yet"} Description: {first non-empty line from PLAN.md after frontmatter} Last action: {last meaningful line of SUMMARY.md, or "none"} ───────────────────────────────────── -Resume with: /gsd-quick resume {slug} +Resume with: /gsd:quick resume {slug} ``` No agent spawn. STOP after printing. diff --git a/commands/gsd/review.md b/commands/gsd/review.md index f32f01589..1d08e4f6e 100644 --- a/commands/gsd/review.md +++ b/commands/gsd/review.md @@ -13,7 +13,7 @@ allowed-tools: Invoke external AI CLIs (Gemini, Claude, Codex, OpenCode, Qwen Code, Cursor) to independently review phase plans. Produces a structured REVIEWS.md with per-reviewer feedback that can be fed back into -planning via /gsd-plan-phase --reviews. +planning via /gsd:plan-phase --reviews. **Flow:** Detect CLIs → Build review prompt → Invoke each CLI → Collect responses → Write REVIEWS.md diff --git a/commands/gsd/ship.md b/commands/gsd/ship.md index d3b396b72..124695553 100644 --- a/commands/gsd/ship.md +++ b/commands/gsd/ship.md @@ -11,7 +11,7 @@ allowed-tools: - AskUserQuestion --- -Bridge local completion → merged PR. After /gsd-verify-work passes, ship the work: push branch, create PR with auto-generated body, optionally trigger review, and track the merge. +Bridge local completion → merged PR. After /gsd:verify-work passes, ship the work: push branch, create PR with auto-generated body, optionally trigger review, and track the merge. Closes the plan → execute → verify → ship loop. diff --git a/commands/gsd/sketch.md b/commands/gsd/sketch.md index 848da965c..31ad668fa 100644 --- a/commands/gsd/sketch.md +++ b/commands/gsd/sketch.md @@ -25,7 +25,7 @@ Two modes: - **Idea mode** (default) — describe a design idea to sketch - **Frontier mode** (no argument or "frontier") — analyzes existing sketch landscape and proposes consistency and frontier sketches -Does not require `/gsd-new-project` — auto-creates `.planning/sketches/` if needed. +Does not require `/gsd:new-project` — auto-creates `.planning/sketches/` if needed. diff --git a/commands/gsd/spec-phase.md b/commands/gsd/spec-phase.md index 01ba7f02d..c81bec050 100644 --- a/commands/gsd/spec-phase.md +++ b/commands/gsd/spec-phase.md @@ -58,5 +58,5 @@ Execute end-to-end. - Gate passed: ambiguity ≤ 0.20 AND all dimension minimums met - SPEC.md written with falsifiable requirements, explicit boundaries, and acceptance criteria - SPEC.md committed atomically -- User knows they can now run /gsd-discuss-phase which will load SPEC.md automatically +- User knows they can now run /gsd:discuss-phase which will load SPEC.md automatically diff --git a/commands/gsd/spike.md b/commands/gsd/spike.md index 12dbd04df..04a00fc74 100644 --- a/commands/gsd/spike.md +++ b/commands/gsd/spike.md @@ -25,7 +25,7 @@ Two modes: - **Idea mode** (default) — describe an idea to spike - **Frontier mode** (no argument or "frontier") — analyzes existing spike landscape and proposes integration and frontier spikes -Does not require `/gsd-new-project` — auto-creates `.planning/spikes/` if needed. +Does not require `/gsd:new-project` — auto-creates `.planning/spikes/` if needed. diff --git a/commands/gsd/ultraplan-phase.md b/commands/gsd/ultraplan-phase.md index 5c7c8001e..9d5a1b7dd 100644 --- a/commands/gsd/ultraplan-phase.md +++ b/commands/gsd/ultraplan-phase.md @@ -13,9 +13,9 @@ allowed-tools: Offload GSD's plan phase to Claude Code's ultraplan cloud infrastructure. Ultraplan drafts the plan in a remote cloud session while your terminal stays free. -Review and comment on the plan in your browser, then import it back via /gsd-import --from. +Review and comment on the plan in your browser, then import it back via /gsd:import --from. -⚠ BETA: ultraplan is in research preview. Use /gsd-plan-phase for stable local planning. +⚠ BETA: ultraplan is in research preview. Use /gsd:plan-phase for stable local planning. Requirements: Claude Code v2.1.91+, claude.ai account, GitHub repository. diff --git a/commands/gsd/verify-work.md b/commands/gsd/verify-work.md index 04ebe3f2a..88cb6653e 100644 --- a/commands/gsd/verify-work.md +++ b/commands/gsd/verify-work.md @@ -16,7 +16,7 @@ Validate built features through conversational testing with persistent state. Purpose: Confirm what Claude built actually works from user's perspective. One test at a time, plain text responses, no interrogation. When issues are found, automatically diagnose, plan fixes, and prepare for execution. -Output: {phase_num}-UAT.md tracking all test results. If issues found: diagnosed gaps, verified fix plans ready for /gsd-execute-phase +Output: {phase_num}-UAT.md tracking all test results. If issues found: diagnosed gaps, verified fix plans ready for /gsd:execute-phase diff --git a/commands/gsd/workstreams.md b/commands/gsd/workstreams.md index 124368587..6a8346477 100644 --- a/commands/gsd/workstreams.md +++ b/commands/gsd/workstreams.md @@ -6,13 +6,13 @@ allowed-tools: - Bash --- -# /gsd-workstreams +# /gsd:workstreams Manage parallel workstreams for concurrent milestone work. ## Usage -`/gsd-workstreams [subcommand] [args]` +`/gsd:workstreams [subcommand] [args]` ### Subcommands @@ -40,7 +40,7 @@ Display the workstreams in a table format showing name, status, current phase, a ### create Run: `gsd-sdk query workstream.create --raw --cwd "$CWD"` After creation, display the new workstream path and suggest next steps: -- `/gsd-new-milestone --ws ` to set up the milestone +- `/gsd:new-milestone --ws ` to set up the milestone ### status Run: `gsd-sdk query workstream.status --raw --cwd "$CWD"` @@ -61,7 +61,7 @@ Run: `gsd-sdk query workstream.complete --raw --cwd "$CWD"` Archive the workstream to milestones/. ### resume -Set the workstream as active and suggest `/gsd-resume-work --ws `. +Set the workstream as active and suggest `/gsd:resume-work --ws `. ## Step 3: Display Results diff --git a/get-shit-done/bin/lib/audit.cjs b/get-shit-done/bin/lib/audit.cjs index 950875727..51bced10e 100644 --- a/get-shit-done/bin/lib/audit.cjs +++ b/get-shit-done/bin/lib/audit.cjs @@ -4,7 +4,7 @@ * Scans all .planning/ artifact categories for items with open/unresolved state. * Returns structured JSON for workflow consumption. * Called by: gsd-tools.cjs audit-open - * Used by: /gsd-complete-milestone pre-close gate + * Used by: /gsd:complete-milestone pre-close gate */ 'use strict'; diff --git a/get-shit-done/bin/lib/commands.cjs b/get-shit-done/bin/lib/commands.cjs index a08d9fd9b..79af406e3 100644 --- a/get-shit-done/bin/lib/commands.cjs +++ b/get-shit-done/bin/lib/commands.cjs @@ -774,7 +774,7 @@ function cmdScaffold(cwd, type, options, raw) { switch (type) { case 'context': { filePath = path.join(phaseDir, `${padded}-CONTEXT.md`); - content = `---\nphase: "${padded}"\nname: "${name || phaseInfo?.phase_name || 'Unnamed'}"\ncreated: ${today}\n---\n\n# Phase ${phase}: ${name || phaseInfo?.phase_name || 'Unnamed'} — Context\n\n## Decisions\n\n_Decisions will be captured during /gsd-discuss-phase ${phase}_\n\n## Discretion Areas\n\n_Areas where the executor can use judgment_\n\n## Deferred Ideas\n\n_Ideas to consider later_\n`; + content = `---\nphase: "${padded}"\nname: "${name || phaseInfo?.phase_name || 'Unnamed'}"\ncreated: ${today}\n---\n\n# Phase ${phase}: ${name || phaseInfo?.phase_name || 'Unnamed'} — Context\n\n## Decisions\n\n_Decisions will be captured during /gsd:discuss-phase ${phase}_\n\n## Discretion Areas\n\n_Areas where the executor can use judgment_\n\n## Deferred Ideas\n\n_Ideas to consider later_\n`; break; } case 'uat': { diff --git a/get-shit-done/bin/lib/config.cjs b/get-shit-done/bin/lib/config.cjs index 19f87203e..fa384ffcb 100644 --- a/get-shit-done/bin/lib/config.cjs +++ b/get-shit-done/bin/lib/config.cjs @@ -111,7 +111,7 @@ function validateShipPrBodySections(value) { * Merges (increasing priority): * 1. Hardcoded defaults — every key that loadConfig() resolves, plus mode/granularity * 2. User-level defaults from ~/.gsd/defaults.json (if present) - * 3. userChoices — the settings the user explicitly selected during /gsd-new-project + * 3. userChoices — the settings the user explicitly selected during /gsd:new-project * * Uses the canonical `git` namespace for branching keys (consistent with VALID_CONFIG_KEYS * and the settings workflow). loadConfig() handles both flat and nested formats, so this @@ -247,7 +247,7 @@ function buildNewProjectConfig(userChoices) { * Command: create a fully-materialized .planning/config.json for a new project. * * Accepts user-chosen settings as a JSON string (the keys the user explicitly - * configured during /gsd-new-project). All remaining keys are filled from + * configured during /gsd:new-project). All remaining keys are filled from * hardcoded defaults and optional ~/.gsd/defaults.json. * * Idempotent: if config.json already exists, returns { created: false }. diff --git a/get-shit-done/bin/lib/core.cjs b/get-shit-done/bin/lib/core.cjs index af1395871..78faac1ee 100644 --- a/get-shit-done/bin/lib/core.cjs +++ b/get-shit-done/bin/lib/core.cjs @@ -311,7 +311,7 @@ const CONFIG_DEFAULTS = { phase_naming: 'sequential', // 'sequential' (default, auto-increment) or 'custom' (arbitrary string IDs) project_code: null, // optional short prefix for phase dirs (e.g., 'CK' → 'CK-01-foundation') subagent_timeout: 300000, // 5 min default; increase for large codebases or slower models (ms) - security_enforcement: true, // workflow.security_enforcement — threat-model-anchored security verification via /gsd-secure-phase + security_enforcement: true, // workflow.security_enforcement — threat-model-anchored security verification via /gsd:secure-phase security_asvs_level: 1, // workflow.security_asvs_level — OWASP ASVS verification level (1=opportunistic, 2=standard, 3=comprehensive) security_block_on: 'high', // workflow.security_block_on — minimum severity that blocks phase advancement ('high' | 'medium' | 'low') post_planning_gaps: true, // workflow.post_planning_gaps — unified post-planning gap report (#2493): scan REQUIREMENTS.md + CONTEXT.md decisions vs all PLAN.md files diff --git a/get-shit-done/bin/lib/drift.cjs b/get-shit-done/bin/lib/drift.cjs index 0ee7bd2a4..c4639131a 100644 --- a/get-shit-done/bin/lib/drift.cjs +++ b/get-shit-done/bin/lib/drift.cjs @@ -253,7 +253,7 @@ function buildMessage(elements, affectedPaths, action) { lines.push(`Auto-remap scheduled for paths: ${affectedPaths.join(', ')}`); } else { lines.push( - `Run /gsd-map-codebase --paths ${affectedPaths.join(',')} to refresh planning context.`, + `Run /gsd:map-codebase --paths ${affectedPaths.join(',')} to refresh planning context.`, ); } return lines.join('\n'); diff --git a/get-shit-done/bin/lib/gsd2-import.cjs b/get-shit-done/bin/lib/gsd2-import.cjs index 26dea66ff..e8d602cdc 100644 --- a/get-shit-done/bin/lib/gsd2-import.cjs +++ b/get-shit-done/bin/lib/gsd2-import.cjs @@ -420,7 +420,7 @@ function buildPreview(gsd2Data, artifacts) { lines.push(''); lines.push('Cannot migrate automatically:'); lines.push(' - GSD-2 cost/token ledger (no v1 equivalent)'); - lines.push(' - GSD-2 database state (rebuilt from files on first /gsd-health)'); + lines.push(' - GSD-2 database state (rebuilt from files on first /gsd:health)'); lines.push(' - VS Code extension state'); return lines.join('\n'); diff --git a/get-shit-done/bin/lib/init.cjs b/get-shit-done/bin/lib/init.cjs index fb84f5de4..ee7a4427f 100644 --- a/get-shit-done/bin/lib/init.cjs +++ b/get-shit-done/bin/lib/init.cjs @@ -255,7 +255,7 @@ function cmdInitPlanPhase(cwd, phase, raw, options = {}) { const phase_req_ids = (reqExtracted && reqExtracted !== 'TBD') ? reqExtracted : null; // #3287: compute the canonical directory name with project_code prefix so - // the first-touch mkdir in /gsd-plan-phase stays consistent with phase.add. + // the first-touch mkdir in /gsd:plan-phase stays consistent with phase.add. const phaseDirPlan = phaseInfo?.directory || null; const phaseNumberPlan = phaseInfo?.phase_number || null; const phaseNamePlan = phaseInfo?.phase_name || null; @@ -747,7 +747,7 @@ function cmdInitPhaseOp(cwd, phase, raw) { } // #3287: compute the canonical directory name with project_code prefix so - // the first-touch mkdir in /gsd-discuss-phase stays consistent with phase.add. + // the first-touch mkdir in /gsd:discuss-phase stays consistent with phase.add. const phaseDir = phaseInfo?.directory || null; const phaseNumber = phaseInfo?.phase_number || null; const phaseName = phaseInfo?.phase_name || null; @@ -1048,10 +1048,10 @@ function cmdInitManager(cwd, raw) { // Validate prerequisites if (!fs.existsSync(paths.roadmap)) { - error('No ROADMAP.md found. Run /gsd-new-milestone first.'); + error('No ROADMAP.md found. Run /gsd:new-milestone first.'); } if (!fs.existsSync(paths.state)) { - error('No STATE.md found. Run /gsd-new-milestone first.'); + error('No STATE.md found. Run /gsd:new-milestone first.'); } const rawContent = fs.readFileSync(paths.roadmap, 'utf-8'); const content = extractCurrentMilestone(rawContent, cwd); @@ -1230,7 +1230,7 @@ function cmdInitManager(cwd, raw) { phase_name: phase.name, action: 'execute', reason: `${phase.plan_count} plans ready, dependencies met`, - command: `/gsd-execute-phase ${phase.number}`, + command: `/gsd:execute-phase ${phase.number}`, }); } else if (phase.disk_status === 'discussed' || phase.disk_status === 'researched') { recommendedActions.push({ @@ -1238,7 +1238,7 @@ function cmdInitManager(cwd, raw) { phase_name: phase.name, action: 'plan', reason: 'Context gathered, ready for planning', - command: `/gsd-plan-phase ${phase.number}`, + command: `/gsd:plan-phase ${phase.number}`, }); } else if ((phase.disk_status === 'empty' || phase.disk_status === 'no_directory') && phase.is_next_to_discuss) { recommendedActions.push({ @@ -1246,7 +1246,7 @@ function cmdInitManager(cwd, raw) { phase_name: phase.name, action: 'discuss', reason: 'Unblocked, ready to gather context', - command: `/gsd-discuss-phase ${phase.number}`, + command: `/gsd:discuss-phase ${phase.number}`, }); } } diff --git a/get-shit-done/bin/lib/milestone.cjs b/get-shit-done/bin/lib/milestone.cjs index 7490b935e..3eca300b5 100644 --- a/get-shit-done/bin/lib/milestone.cjs +++ b/get-shit-done/bin/lib/milestone.cjs @@ -227,10 +227,10 @@ function cmdMilestoneComplete(cwd, version, options, raw) { if (operatorPattern.test(stateContent)) { stateContent = stateContent.replace( operatorPattern, - `$1\n- Start the next milestone with /gsd-new-milestone\n\n`, + `$1\n- Start the next milestone with /gsd:new-milestone\n\n`, ); } else { - stateContent = `${stateContent.trimEnd()}\n\n## Operator Next Steps\n\n- Start the next milestone with /gsd-new-milestone\n`; + stateContent = `${stateContent.trimEnd()}\n\n## Operator Next Steps\n\n- Start the next milestone with /gsd:new-milestone\n`; } writeStateMd(statePath, stateContent, cwd); diff --git a/get-shit-done/bin/lib/phase.cjs b/get-shit-done/bin/lib/phase.cjs index 5ecdf8c18..28e442188 100644 --- a/get-shit-done/bin/lib/phase.cjs +++ b/get-shit-done/bin/lib/phase.cjs @@ -576,7 +576,7 @@ function cmdPhaseAdd(cwd, description, raw, customId) { // Build phase entry const dependsOn = config.phase_naming === 'custom' ? '' : `\n**Depends on:** Phase ${typeof _newPhaseId === 'number' ? _newPhaseId - 1 : 'TBD'}`; - const phaseEntry = `\n### Phase ${_newPhaseId}: ${description}\n\n**Goal:** [To be planned]\n**Requirements**: TBD${dependsOn}\n**Plans:** 0 plans\n\nPlans:\n- [ ] TBD (run /gsd-plan-phase ${_newPhaseId} to break down)\n`; + const phaseEntry = `\n### Phase ${_newPhaseId}: ${description}\n\n**Goal:** [To be planned]\n**Requirements**: TBD${dependsOn}\n**Plans:** 0 plans\n\nPlans:\n- [ ] TBD (run /gsd:plan-phase ${_newPhaseId} to break down)\n`; // Find insertion point: before last "---" or at end let updatedContent; @@ -653,7 +653,7 @@ function cmdPhaseAddBatch(cwd, descriptions, raw) { fs.mkdirSync(dirPath, { recursive: true }); fs.writeFileSync(path.join(dirPath, '.gitkeep'), ''); const dependsOn = config.phase_naming === 'custom' ? '' : `\n**Depends on:** Phase ${typeof newPhaseId === 'number' ? newPhaseId - 1 : 'TBD'}`; - const phaseEntry = `\n### Phase ${newPhaseId}: ${description}\n\n**Goal:** [To be planned]\n**Requirements**: TBD${dependsOn}\n**Plans:** 0 plans\n\nPlans:\n- [ ] TBD (run /gsd-plan-phase ${newPhaseId} to break down)\n`; + const phaseEntry = `\n### Phase ${newPhaseId}: ${description}\n\n**Goal:** [To be planned]\n**Requirements**: TBD${dependsOn}\n**Plans:** 0 plans\n\nPlans:\n- [ ] TBD (run /gsd:plan-phase ${newPhaseId} to break down)\n`; const lastSeparator = rawContent.lastIndexOf('\n---'); rawContent = lastSeparator > 0 ? rawContent.slice(0, lastSeparator) + phaseEntry + rawContent.slice(lastSeparator) @@ -741,7 +741,7 @@ function cmdPhaseInsert(cwd, afterPhase, description, raw) { fs.writeFileSync(path.join(dirPath, '.gitkeep'), ''); // Build phase entry - const phaseEntry = `\n### Phase ${_decimalPhase}: ${description} (INSERTED)\n\n**Goal:** [Urgent work - to be planned]\n**Requirements**: TBD\n**Depends on:** Phase ${afterPhase}\n**Plans:** 0 plans\n\nPlans:\n- [ ] TBD (run /gsd-plan-phase ${_decimalPhase} to break down)\n`; + const phaseEntry = `\n### Phase ${_decimalPhase}: ${description} (INSERTED)\n\n**Goal:** [Urgent work - to be planned]\n**Requirements**: TBD\n**Depends on:** Phase ${afterPhase}\n**Plans:** 0 plans\n\nPlans:\n- [ ] TBD (run /gsd:plan-phase ${_decimalPhase} to break down)\n`; // Insert after the target phase section const headerPattern = new RegExp(`(#{2,4}\\s*Phase\\s+0*${afterPhaseEscaped}:[^\\n]*\\n)`, 'i'); @@ -1060,7 +1060,7 @@ function cmdPhaseComplete(cwd, phaseNum, raw) { // Update plan count in phase section. // Use direct .replace() rather than replaceInCurrentMilestone() so this // works when the current milestone section is itself inside a
- // block (the standard /gsd-new-project layout). replaceInCurrentMilestone + // block (the standard /gsd:new-project layout). replaceInCurrentMilestone // scopes to content after the last
, which misses content inside // the current milestone's own
wrapper (#2005). // The phase-scoped heading pattern is specific enough to avoid matching diff --git a/get-shit-done/bin/lib/profile-output.cjs b/get-shit-done/bin/lib/profile-output.cjs index e24b4061b..7a1217edd 100644 --- a/get-shit-done/bin/lib/profile-output.cjs +++ b/get-shit-done/bin/lib/profile-output.cjs @@ -174,7 +174,7 @@ const CLAUDE_INSTRUCTIONS = { }; const CLAUDE_MD_FALLBACKS = { - project: 'Project not yet initialized. Run /gsd-new-project to set up.', + project: 'Project not yet initialized. Run /gsd:new-project to set up.', stack: 'Technology stack not yet documented. Will populate after codebase mapping or first phase.', conventions: 'Conventions not yet established. Will populate as patterns emerge during development.', architecture: 'Architecture not yet mapped. Follow existing patterns found in the codebase.', @@ -188,9 +188,9 @@ const CLAUDE_MD_WORKFLOW_ENFORCEMENT = [ 'Before using Edit, Write, or other file-changing tools, start work through a GSD command so planning artifacts and execution context stay in sync.', '', 'Use these entry points:', - '- `/gsd-quick` for small fixes, doc updates, and ad-hoc tasks', - '- `/gsd-debug` for investigation and bug fixing', - '- `/gsd-execute-phase` for planned phase work', + '- `/gsd:quick` for small fixes, doc updates, and ad-hoc tasks', + '- `/gsd:debug` for investigation and bug fixing', + '- `/gsd:execute-phase` for planned phase work', '', 'Do not make direct repo edits outside a GSD workflow unless the user explicitly asks to bypass it.', ].join('\n'); @@ -199,7 +199,7 @@ const CLAUDE_MD_PROFILE_PLACEHOLDER = [ '', '## Developer Profile', '', - '> Profile not yet configured. Run `/gsd-profile-user` to generate your developer profile.', + '> Profile not yet configured. Run `/gsd:profile-user` to generate your developer profile.', '> This section is managed by `generate-claude-profile` -- do not edit manually.', '', ].join('\n'); @@ -769,7 +769,7 @@ function cmdGenerateDevPreferences(cwd, options, raw) { let stackBlock; if (analysis.data_source === 'questionnaire') { - stackBlock = 'Stack preferences not available (questionnaire-only profile). Run `/gsd-profile-user --refresh` with session data to populate.'; + stackBlock = 'Stack preferences not available (questionnaire-only profile). Run `/gsd:profile-user --refresh` with session data to populate.'; } else if (options.stack) { stackBlock = options.stack; } else { @@ -782,7 +782,7 @@ function cmdGenerateDevPreferences(cwd, options, raw) { // the runtime config dir. This writer was missed in the migration // (PR #1540 targeted GSD-shipped command files; dev-preferences is a // runtime-generated user artifact). Default now points at the skills/ - // location so /gsd-profile-user --refresh stops re-creating the legacy + // location so /gsd:profile-user --refresh stops re-creating the legacy // directory. The path is constructed via path.join (not a literal // string) so the cline-install leaked-path lint does not flag it. let outputPath = options.output; @@ -874,7 +874,7 @@ function cmdGenerateClaudeProfile(cwd, options, raw) { '', '## Developer Profile', '', - `> Generated by GSD from ${dataSource}. Run \`/gsd-profile-user --refresh\` to update.`, + `> Generated by GSD from ${dataSource}. Run \`/gsd:profile-user --refresh\` to update.`, '', '| Dimension | Rating | Confidence |', '|-----------|--------|------------|', @@ -1080,7 +1080,7 @@ function cmdGenerateClaudeMd(cwd, options, raw) { let message = `Generated ${genCount}/${totalManaged} sections.`; if (sectionsFallback.length > 0) message += ` Fallback: ${sectionsFallback.join(', ')}.`; if (sectionsSkipped.length > 0) message += ` Skipped (manually edited): ${sectionsSkipped.join(', ')}.`; - if (profileStatus === 'placeholder_added') message += ' Run /gsd-profile-user to unlock Developer Profile.'; + if (profileStatus === 'placeholder_added') message += ' Run /gsd:profile-user to unlock Developer Profile.'; const result = { claude_md_path: outputPath, diff --git a/get-shit-done/bin/lib/validate-command-router.cjs b/get-shit-done/bin/lib/validate-command-router.cjs index fb5575467..1a5a8c7bd 100644 --- a/get-shit-done/bin/lib/validate-command-router.cjs +++ b/get-shit-done/bin/lib/validate-command-router.cjs @@ -26,8 +26,8 @@ function routeValidateCommand({ verify, args, cwd, raw, parseNamedArgs, output, const { classifyContextUtilization, STATES } = require('./context-utilization.cjs'); const RECOMMENDATIONS = { [STATES.HEALTHY]: null, - [STATES.WARNING]: 'Context is approaching the fracture zone — consider /gsd-thread to continue in a fresh window.', - [STATES.CRITICAL]: 'Reasoning quality may degrade past 70% utilization (fracture point). Run /gsd-thread now to preserve output quality.', + [STATES.WARNING]: 'Context is approaching the fracture zone — consider /gsd:thread to continue in a fresh window.', + [STATES.CRITICAL]: 'Reasoning quality may degrade past 70% utilization (fracture point). Run /gsd:thread now to preserve output quality.', }; let classified; try { diff --git a/get-shit-done/bin/lib/verify.cjs b/get-shit-done/bin/lib/verify.cjs index 5346f120f..2acaa0b1e 100644 --- a/get-shit-done/bin/lib/verify.cjs +++ b/get-shit-done/bin/lib/verify.cjs @@ -608,7 +608,7 @@ function cmdValidateHealth(cwd, options, raw) { // ─── Check 1: .planning/ exists ─────────────────────────────────────────── if (!fs.existsSync(planBase)) { - addIssue('error', 'E001', '.planning/ directory not found', 'Run /gsd-new-project to initialize'); + addIssue('error', 'E001', '.planning/ directory not found', 'Run /gsd:new-project to initialize'); output({ status: 'broken', errors, @@ -621,7 +621,7 @@ function cmdValidateHealth(cwd, options, raw) { // ─── Check 2: PROJECT.md exists and has required sections ───────────────── if (!fs.existsSync(projectPath)) { - addIssue('error', 'E002', 'PROJECT.md not found', 'Run /gsd-new-project to create'); + addIssue('error', 'E002', 'PROJECT.md not found', 'Run /gsd:new-project to create'); } else { const content = fs.readFileSync(projectPath, 'utf-8'); const requiredSections = ['## What This Is', '## Core Value', '## Requirements']; @@ -634,12 +634,12 @@ function cmdValidateHealth(cwd, options, raw) { // ─── Check 3: ROADMAP.md exists ─────────────────────────────────────────── if (!fs.existsSync(roadmapPath)) { - addIssue('error', 'E003', 'ROADMAP.md not found', 'Run /gsd-new-milestone to create roadmap'); + addIssue('error', 'E003', 'ROADMAP.md not found', 'Run /gsd:new-milestone to create roadmap'); } // ─── Check 4: STATE.md exists and references valid phases ───────────────── if (!fs.existsSync(statePath)) { - addIssue('error', 'E004', 'STATE.md not found', 'Run /gsd-health --repair to regenerate', true); + addIssue('error', 'E004', 'STATE.md not found', 'Run /gsd:health --repair to regenerate', true); repairs.push('regenerateState'); } else { const stateContent = fs.readFileSync(statePath, 'utf-8'); @@ -686,7 +686,7 @@ function cmdValidateHealth(cwd, options, raw) { 'warning', 'W002', `STATE.md references phase ${ref}, but only phases ${[...validPhases].sort().join(', ')} are declared`, - 'Review STATE.md manually before changing it; /gsd-health --repair will not overwrite an existing STATE.md for phase mismatches' + 'Review STATE.md manually before changing it; /gsd:health --repair will not overwrite an existing STATE.md for phase mismatches' ); } } @@ -695,7 +695,7 @@ function cmdValidateHealth(cwd, options, raw) { // ─── Check 5: config.json valid JSON + valid schema ─────────────────────── if (!fs.existsSync(configPath)) { - addIssue('warning', 'W003', 'config.json not found', 'Run /gsd-health --repair to create with defaults', true); + addIssue('warning', 'W003', 'config.json not found', 'Run /gsd:health --repair to create with defaults', true); repairs.push('createConfig'); } else { try { @@ -707,7 +707,7 @@ function cmdValidateHealth(cwd, options, raw) { addIssue('warning', 'W004', `config.json: invalid model_profile "${parsed.model_profile}"`, `Valid values: ${validProfiles.join(', ')}`); } } catch (err) { - addIssue('error', 'E005', `config.json: JSON parse error - ${err.message}`, 'Run /gsd-health --repair to reset to defaults', true); + addIssue('error', 'E005', `config.json: JSON parse error - ${err.message}`, 'Run /gsd:health --repair to reset to defaults', true); repairs.push('resetConfig'); } } @@ -718,11 +718,11 @@ function cmdValidateHealth(cwd, options, raw) { const configRaw = fs.readFileSync(configPath, 'utf-8'); const configParsed = JSON.parse(configRaw); if (configParsed.workflow && configParsed.workflow.nyquist_validation === undefined) { - addIssue('warning', 'W008', 'config.json: workflow.nyquist_validation absent (defaults to enabled but agents may skip)', 'Run /gsd-health --repair to add key', true); + addIssue('warning', 'W008', 'config.json: workflow.nyquist_validation absent (defaults to enabled but agents may skip)', 'Run /gsd:health --repair to add key', true); if (!repairs.includes('addNyquistKey')) repairs.push('addNyquistKey'); } if (configParsed.workflow && configParsed.workflow.ai_integration_phase === undefined) { - addIssue('warning', 'W016', 'config.json: workflow.ai_integration_phase absent (defaults to enabled — run /gsd-ai-integration-phase before planning AI system phases)', 'Run /gsd-health --repair to add key', true); + addIssue('warning', 'W016', 'config.json: workflow.ai_integration_phase absent (defaults to enabled — run /gsd:ai-integration-phase before planning AI system phases)', 'Run /gsd:health --repair to add key', true); if (!repairs.includes('addAiIntegrationPhaseKey')) repairs.push('addAiIntegrationPhaseKey'); } } catch { /* intentionally empty */ } @@ -772,7 +772,7 @@ function cmdValidateHealth(cwd, options, raw) { try { const researchContent = fs.readFileSync(path.join(phasesDir, e.name, researchFile), 'utf-8'); if (researchContent.includes('## Validation Architecture')) { - addIssue('warning', 'W009', `Phase ${e.name}: has Validation Architecture in RESEARCH.md but no VALIDATION.md`, 'Re-run /gsd-plan-phase with --research to regenerate'); + addIssue('warning', 'W009', `Phase ${e.name}: has Validation Architecture in RESEARCH.md but no VALIDATION.md`, 'Re-run /gsd:plan-phase with --research to regenerate'); } } catch { /* intentionally empty */ } } @@ -861,7 +861,7 @@ function cmdValidateHealth(cwd, options, raw) { if (statusVal !== 'complete' && statusVal !== 'done') { addIssue('warning', 'W011', `STATE.md says current phase is ${statePhase} (status: ${statusVal || 'unknown'}) but ROADMAP.md shows it as [x] complete — state files may be out of sync`, - 'Run /gsd-progress to re-derive current position, or manually update STATE.md'); + 'Run /gsd:progress to re-derive current position, or manually update STATE.md'); } } } @@ -970,7 +970,7 @@ function cmdValidateHealth(cwd, options, raw) { if (missingFromRegistry.length > 0) { addIssue('warning', 'W018', `MILESTONES.md missing ${missingFromRegistry.length} archived milestone(s): ${missingFromRegistry.join(', ')}`, - 'Run /gsd-health --backfill to synthesize missing entries from archive snapshots', + 'Run /gsd:health --backfill to synthesize missing entries from archive snapshots', true); repairs.push('backfillMilestones'); } @@ -1044,7 +1044,7 @@ function cmdValidateHealth(cwd, options, raw) { stateContent += `**Current phase:** (determining...)\n`; stateContent += `**Status:** Resuming\n\n`; stateContent += `## Session Log\n\n`; - stateContent += `- ${new Date().toISOString().split('T')[0]}: STATE.md regenerated by /gsd-health --repair\n`; + stateContent += `- ${new Date().toISOString().split('T')[0]}: STATE.md regenerated by /gsd:health --repair\n`; writeStateMd(statePath, stateContent, cwd); repairActions.push({ action: repair, success: true, path: 'STATE.md' }); break; @@ -1094,7 +1094,7 @@ function cmdValidateHealth(cwd, options, raw) { // Build minimal entry from snapshot title or version const titleMatch = snapshot && snapshot.match(/^#\s+(.+)$/m); const milestoneName = titleMatch ? titleMatch[1].replace(/^Milestone\s+/i, '').replace(/^v[\d.]+\s*/, '').trim() : ver; - const entry = `## ${ver}${milestoneName && milestoneName !== ver ? ` ${milestoneName}` : ''} (Backfilled: ${today})\n\n**Note:** Synthesized from archive snapshot by \`/gsd-health --backfill\`. Original completion date unknown.\n\n---\n\n`; + const entry = `## ${ver}${milestoneName && milestoneName !== ver ? ` ${milestoneName}` : ''} (Backfilled: ${today})\n\n**Note:** Synthesized from archive snapshot by \`/gsd:health --backfill\`. Original completion date unknown.\n\n---\n\n`; const milestonesContent = fs.existsSync(milestonesPath) ? fs.readFileSync(milestonesPath, 'utf-8') : ''; diff --git a/get-shit-done/bin/lib/workstream.cjs b/get-shit-done/bin/lib/workstream.cjs index 44c03db6d..51881769a 100644 --- a/get-shit-done/bin/lib/workstream.cjs +++ b/get-shit-done/bin/lib/workstream.cjs @@ -84,7 +84,7 @@ function cmdWorkstreamCreate(cwd, name, options, raw) { const baseDir = planningRoot(cwd); if (!fs.existsSync(baseDir)) { - error('.planning/ directory not found — run /gsd-new-project first'); + error('.planning/ directory not found — run /gsd:new-project first'); } const wsRoot = path.join(baseDir, 'workstreams'); diff --git a/get-shit-done/references/artifact-types.md b/get-shit-done/references/artifact-types.md index d472c32fd..8cfa121f9 100644 --- a/get-shit-done/references/artifact-types.md +++ b/get-shit-done/references/artifact-types.md @@ -72,15 +72,15 @@ reads is inert — the consumption mechanism is what gives an artifact meaning. - **Location**: `.planning/spikes/SPIKE-NNN/` - **Consumed by**: Planner when spike is referenced; `pause-work` for spike context handoff -### Spike README.md / MANIFEST.md (per-spike, via /gsd-spike) +### Spike README.md / MANIFEST.md (per-spike, via /gsd:spike) - **Shape**: YAML frontmatter (spike, name, validates, verdict, related, tags) + run instructions + results -- **Lifecycle**: Created by `/gsd-spike` → Verified → Wrapped up by `/gsd-spike-wrap-up` +- **Lifecycle**: Created by `/gsd:spike` → Verified → Wrapped up by `/gsd-spike-wrap-up` - **Location**: `.planning/spikes/NNN-name/README.md`, `.planning/spikes/MANIFEST.md` - **Consumed by**: `/gsd-spike-wrap-up` for curation; `pause-work` for spike context handoff ### Sketch README.md / MANIFEST.md / index.html (per-sketch) - **Shape**: YAML frontmatter (sketch, name, question, winner, tags) + variants as tabbed HTML -- **Lifecycle**: Created by `/gsd-sketch` → Evaluated → Wrapped up by `/gsd-sketch-wrap-up` +- **Lifecycle**: Created by `/gsd:sketch` → Evaluated → Wrapped up by `/gsd-sketch-wrap-up` - **Location**: `.planning/sketches/NNN-name/README.md`, `.planning/sketches/NNN-name/index.html`, `.planning/sketches/MANIFEST.md` - **Consumed by**: `/gsd-sketch-wrap-up` for curation; `pause-work` for sketch context handoff diff --git a/get-shit-done/references/context-budget.md b/get-shit-done/references/context-budget.md index 6c40c7bfd..b078f6271 100644 --- a/get-shit-done/references/context-budget.md +++ b/get-shit-done/references/context-budget.md @@ -58,7 +58,7 @@ Tool schemas count against the same context budget as model context, prompts, an ### Pre-Phase MCP Audit -Before starting a long phase (especially `/gsd-execute-phase`, `/gsd-plan-phase`, or anything that fans out across many subagents), run this audit: +Before starting a long phase (especially `/gsd:execute-phase`, `/gsd:plan-phase`, or anything that fans out across many subagents), run this audit: - [ ] **Browser / playwright tools enabled?** If this phase has no UI work, disable them. They're among the heaviest per-turn schemas. - [ ] **Platform-specific tools enabled?** Mac-tools / Windows-tools / OS-specific helpers should be disabled when not actively needed for the phase at hand. diff --git a/get-shit-done/references/continuation-format.md b/get-shit-done/references/continuation-format.md index a036a9556..01921b26a 100644 --- a/get-shit-done/references/continuation-format.md +++ b/get-shit-done/references/continuation-format.md @@ -50,7 +50,7 @@ Standard format for presenting next steps after completing a command or workflow `/clear` then: -`/gsd-execute-phase 2` +`/gsd:execute-phase 2` --- @@ -75,7 +75,7 @@ Add note that this is the last plan and what comes after: `/clear` then: -`/gsd-execute-phase 2` +`/gsd:execute-phase 2` --- @@ -97,13 +97,13 @@ Add note that this is the last plan and what comes after: `/clear` then: -`/gsd-plan-phase 2` +`/gsd:plan-phase 2` --- **Also available:** -- `/gsd-discuss-phase 2` — gather context first -- `/gsd-plan-phase --research-phase 2` — investigate unknowns +- `/gsd:discuss-phase 2` — gather context first +- `/gsd:plan-phase --research-phase 2` — investigate unknowns - Review roadmap --- @@ -126,13 +126,13 @@ Show completion status before next action: `/clear` then: -`/gsd-plan-phase 3` +`/gsd:plan-phase 3` --- **Also available:** -- `/gsd-discuss-phase 3` — gather context first -- `/gsd-plan-phase --research-phase 3` — investigate unknowns +- `/gsd:discuss-phase 3` — gather context first +- `/gsd:plan-phase --research-phase 3` — investigate unknowns - Review what Phase 2 built --- @@ -151,11 +151,11 @@ When there's no clear primary action: `/clear` then one of: -**To plan directly:** `/gsd-plan-phase 3` +**To plan directly:** `/gsd:plan-phase 3` -**To discuss context first:** `/gsd-discuss-phase 3` +**To discuss context first:** `/gsd:discuss-phase 3` -**To research unknowns:** `/gsd-plan-phase --research-phase 3` +**To research unknowns:** `/gsd:plan-phase --research-phase 3` --- ``` @@ -175,7 +175,7 @@ All 4 phases shipped `/clear` then: -`/gsd-new-milestone` +`/gsd:new-milestone` --- ``` @@ -218,7 +218,7 @@ Extract: `**02-03: Refresh Token Rotation** — Add /api/auth/refresh with slidi ## To Continue Run `/clear`, then paste: -/gsd-execute-phase 2 +/gsd:execute-phase 2 ``` User has no idea what 02-03 is about. @@ -226,7 +226,7 @@ User has no idea what 02-03 is about. ### Don't: Missing /clear explanation ``` -`/gsd-plan-phase 3` +`/gsd:plan-phase 3` Run /clear first. ``` @@ -246,7 +246,7 @@ Sounds like an afterthought. Use "Also available:" instead. ``` ``` -/gsd-plan-phase 3 +/gsd:plan-phase 3 ``` ``` diff --git a/get-shit-done/references/doc-conflict-engine.md b/get-shit-done/references/doc-conflict-engine.md index 67dc685fd..5e8a338b6 100644 --- a/get-shit-done/references/doc-conflict-engine.md +++ b/get-shit-done/references/doc-conflict-engine.md @@ -1,6 +1,6 @@ # Doc Conflict Engine -Shared conflict-detection contract for workflows that ingest external content into `.planning/` (e.g., `/gsd-import`, `/gsd-ingest-docs`). Defines the report format, severity semantics, and safety-gate behavior. The specific checks that populate each severity bucket are workflow-specific and defined by the calling workflow. +Shared conflict-detection contract for workflows that ingest external content into `.planning/` (e.g., `/gsd:import`, `/gsd:ingest-docs`). Defines the report format, severity semantics, and safety-gate behavior. The specific checks that populate each severity bucket are workflow-specific and defined by the calling workflow. --- diff --git a/get-shit-done/references/domain-probes.md b/get-shit-done/references/domain-probes.md index 62acdfd64..1c24806a2 100644 --- a/get-shit-done/references/domain-probes.md +++ b/get-shit-done/references/domain-probes.md @@ -1,6 +1,6 @@ # Domain-Aware Probing Patterns -Shared reference for `/gsd-begin`, `/gsd-discuss-phase`, and domain exploration workflows. +Shared reference for `/gsd-begin`, `/gsd:discuss-phase`, and domain exploration workflows. When the user mentions a technology area, use these probes to ask insightful follow-up questions. Don't run through them as a checklist -- pick the 2-3 most relevant based on context. The goal is to surface hidden assumptions and trade-offs the user may not have considered yet. diff --git a/get-shit-done/references/gate-prompts.md b/get-shit-done/references/gate-prompts.md index 49a413ca7..930d0636b 100644 --- a/get-shit-done/references/gate-prompts.md +++ b/get-shit-done/references/gate-prompts.md @@ -47,7 +47,7 @@ Simple 2-option confirmation for re-planning, rebuild, replace plans, commit. 4-option escalation for review escalation (max retries exceeded). - question: "Phase {N} has failed verification {attempt} times. How should we proceed?" - header: "Escalate" -- options: Accept gaps | Re-plan (via /gsd-plan-phase) | Debug (via /gsd-debug) | Retry +- options: Accept gaps | Re-plan (via /gsd:plan-phase) | Debug (via /gsd:debug) | Retry ## Pattern: multi-option-gaps 4-option gap handler for review gaps-found. @@ -78,7 +78,7 @@ Up to 4 suggested next actions with selection (status, resume workflows). 3-option confirmation for quick task scope validation. - question: "This task looks complex. Proceed as quick task or use full planning?" - header: "Scope" -- options: Quick task | Full plan (via /gsd-plan-phase) | Revise +- options: Quick task | Full plan (via /gsd:plan-phase) | Revise ## Pattern: depth-select 3-option depth selection for planning workflow preferences. diff --git a/get-shit-done/references/git-integration.md b/get-shit-done/references/git-integration.md index e4ecd3aca..628f24f12 100644 --- a/get-shit-done/references/git-integration.md +++ b/get-shit-done/references/git-integration.md @@ -277,7 +277,7 @@ Set `commit_docs: false` so planning docs stay local and are not committed to an ### How It Works -1. **Auto-detection:** During `/gsd-new-project`, directories with their own `.git` folder are detected and offered for selection as sub-repos. On subsequent runs, `loadConfig` auto-syncs the `sub_repos` list with the filesystem — adding newly created repos and removing deleted ones. This means `config.json` may be rewritten automatically when repos change on disk. +1. **Auto-detection:** During `/gsd:new-project`, directories with their own `.git` folder are detected and offered for selection as sub-repos. On subsequent runs, `loadConfig` auto-syncs the `sub_repos` list with the filesystem — adding newly created repos and removing deleted ones. This means `config.json` may be rewritten automatically when repos change on disk. 2. **File grouping:** Code files are grouped by their sub-repo prefix (e.g., `backend/src/api/users.ts` belongs to the `backend/` repo). 3. **Independent commits:** Each sub-repo receives its own atomic commit via `gsd-tools.cjs commit-to-subrepo`. File paths are made relative to the sub-repo root before staging. 4. **Planning stays local:** The `.planning/` directory is not committed; it acts as cross-repo coordination. diff --git a/get-shit-done/references/model-profiles.md b/get-shit-done/references/model-profiles.md index e19ca169d..4a581b27a 100644 --- a/get-shit-done/references/model-profiles.md +++ b/get-shit-done/references/model-profiles.md @@ -122,7 +122,7 @@ If you're using Claude Code with OpenRouter, a local model, or any non-Anthropic ```bash # Via settings command -/gsd-settings +/gsd:settings # → Select "Inherit" for model profile # Or manually in .planning/config.json diff --git a/get-shit-done/references/mvp-concepts.md b/get-shit-done/references/mvp-concepts.md index 3ea57fb00..b3f673617 100644 --- a/get-shit-done/references/mvp-concepts.md +++ b/get-shit-done/references/mvp-concepts.md @@ -34,7 +34,7 @@ If you're looking for the canonical statement of a concept, this is where to fin - **`--mvp` and `--prd ` together on Phase 1.** Both paths converge at the planner spawn. The PRD express path creates `CONTEXT.md` from the PRD file and continues to the research step; the Walking Skeleton gate fires independently when Phase 1 + new project + `--mvp`. The planner therefore receives both `WALKING_SKELETON=true` and PRD-derived context. This is intentional: the PRD informs what the skeleton should prove. - **`MVP_MODE` is all-or-nothing per phase, not per task.** A phase is either MVP-mode or standard. Mixed-mode phases are not supported (PRD #2826 Q1). - **`TDD_MODE` is independent of `MVP_MODE`.** TDD can be on without MVP, MVP can be on without TDD. Only the *intersection* (both true) activates the MVP+TDD Gate. -- **The `gsd-roadmapper` agent makes the MVP/standard decision once at project init** based on `PROJECT_MODE`. Per-phase opt-in/out happens later via `/gsd-mvp-phase` or `/gsd-edit-phase`. +- **The `gsd-roadmapper` agent makes the MVP/standard decision once at project init** based on `PROJECT_MODE`. Per-phase opt-in/out happens later via `/gsd:mvp-phase` or `/gsd-edit-phase`. ## Tests @@ -42,7 +42,7 @@ Structural contract tests for each integration site live under `tests/`: - `plan-phase-mvp-flag.test.cjs` — plan-phase MVP_MODE resolution chain - `planner-mvp-mode.test.cjs` — gsd-planner agent MVP section -- `mvp-phase-command.test.cjs`, `mvp-phase-integration.test.cjs`, `mvp-phase-spidr.test.cjs` — `/gsd-mvp-phase` +- `mvp-phase-command.test.cjs`, `mvp-phase-integration.test.cjs`, `mvp-phase-spidr.test.cjs` — `/gsd:mvp-phase` - `execute-mvp-tdd-gate.test.cjs`, `executor-mvp-tdd-section.test.cjs` — MVP+TDD Gate - `verifier-mvp-section.test.cjs`, `verify-mvp-uat.test.cjs` — verifier UAT framing - `new-project-mvp-prompt.test.cjs` — mode prompt at init diff --git a/get-shit-done/references/planning-config.md b/get-shit-done/references/planning-config.md index 72d1165c5..fae155511 100644 --- a/get-shit-done/references/planning-config.md +++ b/get-shit-done/references/planning-config.md @@ -36,7 +36,7 @@ Configuration options for `.planning/` directory behavior. | `workflow.use_worktrees` | `true` | Whether executor agents run in isolated git worktrees. Set to `false` to disable worktrees — agents execute sequentially on the main working tree instead. Recommended for solo developers or when worktree merges cause issues. | | `workflow.subagent_timeout` | `300000` | Timeout in milliseconds for parallel subagent tasks (e.g. codebase mapping). Increase for large codebases or slower models. Default: 300000 (5 minutes). | | `workflow.inline_plan_threshold` | `2` | Plans with this many tasks or fewer execute inline (Pattern C) instead of spawning a subagent. Avoids ~14K token spawn overhead for small plans. Set to `0` to always spawn subagents. | -| `manager.flags.discuss` | `""` | Flags passed to `/gsd-discuss-phase` when dispatched from manager (e.g. `"--auto --analyze"`) | +| `manager.flags.discuss` | `""` | Flags passed to `/gsd:discuss-phase` when dispatched from manager (e.g. `"--auto --analyze"`) | | `manager.flags.plan` | `""` | Flags passed to plan workflow when dispatched from manager | | `manager.flags.execute` | `""` | Flags passed to execute workflow when dispatched from manager | | `response_language` | `null` | Language for user-facing questions and prompts across all phases/subagents (e.g. `"Portuguese"`, `"Japanese"`, `"Spanish"`). When set, all spawned agents include a directive to respond in this language. | @@ -236,7 +236,7 @@ Generated from `CONFIG_DEFAULTS` (core.cjs) and `VALID_CONFIG_KEYS` (config.cjs) | `context_window` | number | `200000` | `200000`, `1000000` | Context window size; set `1000000` for 1M-context models | | `resolve_model_ids` | boolean\|string | `false` | `false`, `true`, `"omit"` | Map model aliases to full Claude IDs; `"omit"` returns empty string | | `context` | string\|null | `null` | `"dev"`, `"research"`, `"review"` | Execution context profile that adjusts agent behavior: `"dev"` for development tasks, `"research"` for investigation/exploration, `"review"` for code review workflows | -| `review.models.` | string\|null | `null` | Any model ID string | Per-CLI model override for /gsd-review (e.g., `review.models.gemini`). Falls back to CLI default when null. | +| `review.models.` | string\|null | `null` | Any model ID string | Per-CLI model override for /gsd:review (e.g., `review.models.gemini`). Falls back to CLI default when null. | ### Workflow Fields @@ -252,7 +252,7 @@ Set via `workflow.*` namespace in config.json (e.g., `"workflow": { "research": | `workflow.auto_advance` | boolean | `false` | `true`, `false` | Auto-advance to next phase after completion | | `workflow.node_repair` | boolean | `true` | `true`, `false` | Attempt automatic repair of failed plan nodes | | `workflow.node_repair_budget` | number | `2` | Any positive integer | Max repair retries per failed node | -| `workflow.ai_integration_phase` | boolean | `true` | `true`, `false` | Run /gsd-ai-integration-phase before planning AI system phases | +| `workflow.ai_integration_phase` | boolean | `true` | `true`, `false` | Run /gsd:ai-integration-phase before planning AI system phases | | `workflow.ui_phase` | boolean | `true` | `true`, `false` | Generate UI-SPEC.md for frontend phases | | `workflow.ui_safety_gate` | boolean | `true` | `true`, `false` | Require safety gate approval for UI changes | | `workflow.text_mode` | boolean | `false` | `true`, `false` | Use plain-text numbered lists instead of AskUserQuestion menus | @@ -265,14 +265,14 @@ Set via `workflow.*` namespace in config.json (e.g., `"workflow": { "research": | `workflow.code_review` | boolean | `true` | `true`, `false` | Enable built-in code review step in the ship workflow | | `workflow.code_review_depth` | string | `"standard"` | `"light"`, `"standard"`, `"deep"` | Depth level for code review analysis in the ship workflow | | `workflow._auto_chain_active` | boolean | `false` | `true`, `false` | Internal: tracks whether autonomous chaining is active | -| `workflow.security_enforcement` | boolean | `true` | `true`, `false` | Enable threat-model-anchored security verification via `/gsd-secure-phase`. When `false`, security checks are skipped entirely | +| `workflow.security_enforcement` | boolean | `true` | `true`, `false` | Enable threat-model-anchored security verification via `/gsd:secure-phase`. When `false`, security checks are skipped entirely | | `workflow.security_asvs_level` | number | `1` | `1`, `2`, `3` | OWASP ASVS verification level. Level 1 = opportunistic, Level 2 = standard, Level 3 = comprehensive | | `workflow.security_block_on` | string | `"high"` | `"high"`, `"medium"`, `"low"` | Minimum severity that blocks phase advancement | | `workflow.post_planning_gaps` | boolean | `true` | `true`, `false` | Post-planning gap report (#2493). After plans are generated, scans REQUIREMENTS.md and CONTEXT.md `` against all PLAN.md files and emits a unified `Source \| Item \| Status` table. Non-blocking. Set to `false` to skip Step 13e of plan-phase. _Alias:_ `post_planning_gaps` is the flat-key form used in `CONFIG_DEFAULTS`; `workflow.post_planning_gaps` is the canonical namespaced form. | ### Ship Fields -Set via `ship.*` namespace in config.json. These fields affect `/gsd-ship` PRD-style pull request body composition only. +Set via `ship.*` namespace in config.json. These fields affect `/gsd:ship` PRD-style pull request body composition only. | Key | Type | Default | Allowed Values | Description | |-----|------|---------|----------------|-------------| @@ -327,11 +327,11 @@ Set via `learnings.*` namespace (e.g., `"learnings": { "max_inject": 5 }`). Used ### Intel Fields -Set via `intel.*` namespace (e.g., `"intel": { "enabled": true }`). Controls the queryable codebase intelligence system consumed by `/gsd-map-codebase --query`. +Set via `intel.*` namespace (e.g., `"intel": { "enabled": true }`). Controls the queryable codebase intelligence system consumed by `/gsd:map-codebase --query`. | Key | Type | Default | Allowed Values | Description | |-----|------|---------|----------------|-------------| -| `intel.enabled` | boolean | `false` | `true`, `false` | Enable queryable codebase intelligence system. When `true`, `/gsd-map-codebase --query` builds and queries a JSON index in `.planning/intel/`. | +| `intel.enabled` | boolean | `false` | `true`, `false` | Enable queryable codebase intelligence system. When `true`, `/gsd:map-codebase --query` builds and queries a JSON index in `.planning/intel/`. | ### Manager Fields @@ -339,7 +339,7 @@ Set via `manager.*` namespace (e.g., `"manager": { "flags": { "discuss": "--auto | Key | Type | Default | Allowed Values | Description | |-----|------|---------|----------------|-------------| -| `manager.flags.discuss` | string | `""` | Any CLI flags string | Flags passed to `/gsd-discuss-phase` from manager (e.g., `"--auto --analyze"`) | +| `manager.flags.discuss` | string | `""` | Any CLI flags string | Flags passed to `/gsd:discuss-phase` from manager (e.g., `"--auto --analyze"`) | | `manager.flags.plan` | string | `""` | Any CLI flags string | Flags passed to plan workflow from manager | | `manager.flags.execute` | string | `""` | Any CLI flags string | Flags passed to execute workflow from manager | diff --git a/get-shit-done/references/thinking-partner.md b/get-shit-done/references/thinking-partner.md index f39732fe8..c2be6ba2b 100644 --- a/get-shit-done/references/thinking-partner.md +++ b/get-shit-done/references/thinking-partner.md @@ -69,7 +69,7 @@ Apply this recommendation to the revision? [Yes] / [No, let me decide] ### 3. Explore — Approach Comparison (requires #1729) **When:** During Socratic conversation, when multiple viable approaches emerge. -**Note:** This integration point will be added when /gsd-explore (#1729) lands. +**Note:** This integration point will be added when /gsd:explore (#1729) lands. --- diff --git a/get-shit-done/references/verification-overrides.md b/get-shit-done/references/verification-overrides.md index e7ffed876..ab884a240 100644 --- a/get-shit-done/references/verification-overrides.md +++ b/get-shit-done/references/verification-overrides.md @@ -163,10 +163,10 @@ Then re-run verification to apply. Overrides can also be managed through the verification workflow: -1. Run `/gsd-verify-work` — verification finds gaps +1. Run `/gsd:verify-work` — verification finds gaps 2. Review gaps — determine which are intentional deviations 3. Add override entries to VERIFICATION.md frontmatter -4. Re-run `/gsd-verify-work` — overrides are applied, remaining gaps shown +4. Re-run `/gsd:verify-work` — overrides are applied, remaining gaps shown @@ -183,7 +183,7 @@ When a phase is re-verified (e.g., after gap closure): ### At Milestone Completion -During `/gsd-audit-milestone`, overrides are surfaced in the audit report: +During `/gsd:audit-milestone`, overrides are surfaced in the audit report: ``` ### Verification Overrides ({count} across {phase_count} phases) diff --git a/get-shit-done/templates/AI-SPEC.md b/get-shit-done/templates/AI-SPEC.md index b002d95fd..46b3d8ccc 100644 --- a/get-shit-done/templates/AI-SPEC.md +++ b/get-shit-done/templates/AI-SPEC.md @@ -1,6 +1,6 @@ # AI-SPEC — Phase {N}: {phase_name} -> AI design contract generated by `/gsd-ai-integration-phase`. Consumed by `gsd-planner` and `gsd-eval-auditor`. +> AI design contract generated by `/gsd:ai-integration-phase`. Consumed by `gsd-planner` and `gsd-eval-auditor`. > Locks framework selection, implementation guidance, and evaluation strategy before planning begins. --- diff --git a/get-shit-done/templates/DEBUG.md b/get-shit-done/templates/DEBUG.md index 9cf66c709..a23ea25e8 100644 --- a/get-shit-done/templates/DEBUG.md +++ b/get-shit-done/templates/DEBUG.md @@ -104,7 +104,7 @@ files_changed: [] -**Creation:** Immediately when /gsd-debug is called +**Creation:** Immediately when /gsd:debug is called - Create file with trigger from user input - Set status to "gathering" - Current Focus: next_action = "gather symptoms" diff --git a/get-shit-done/templates/README.md b/get-shit-done/templates/README.md index f81318043..323b1f4d7 100644 --- a/get-shit-done/templates/README.md +++ b/get-shit-done/templates/README.md @@ -12,25 +12,25 @@ These files live directly at `.planning/` — not inside phase subdirectories. | File | Template | Produced by | Purpose | |------|----------|-------------|---------| -| `PROJECT.md` | `project.md` | `/gsd-new-project` | Project identity, goals, requirements summary | -| `ROADMAP.md` | `roadmap.md` | `/gsd-new-milestone`, `/gsd-new-project` | Phase plan with milestones and progress tracking | -| `STATE.md` | `state.md` | `/gsd-new-project`, `/gsd-health --repair` | Current session state, active phase, last activity | -| `REQUIREMENTS.md` | `requirements.md` | `/gsd-new-milestone` | Functional requirements with traceability | -| `MILESTONES.md` | `milestone.md` | `/gsd-complete-milestone` | Log of completed milestones with accomplishments | +| `PROJECT.md` | `project.md` | `/gsd:new-project` | Project identity, goals, requirements summary | +| `ROADMAP.md` | `roadmap.md` | `/gsd:new-milestone`, `/gsd:new-project` | Phase plan with milestones and progress tracking | +| `STATE.md` | `state.md` | `/gsd:new-project`, `/gsd:health --repair` | Current session state, active phase, last activity | +| `REQUIREMENTS.md` | `requirements.md` | `/gsd:new-milestone` | Functional requirements with traceability | +| `MILESTONES.md` | `milestone.md` | `/gsd:complete-milestone` | Log of completed milestones with accomplishments | | `BACKLOG.md` | *(inline)* | `/gsd-add-backlog` | Pending ideas and deferred work | -| `LEARNINGS.md` | *(inline)* | `/gsd-extract-learnings`, `/gsd-execute-phase` | Phase retrospective learnings for future plans | -| `THREADS.md` | *(inline)* | `/gsd-thread` | Persistent discussion threads | -| `config.json` | `config.json` | `/gsd-new-project`, `/gsd-health --repair` | Project-specific GSD configuration | +| `LEARNINGS.md` | *(inline)* | `/gsd:extract-learnings`, `/gsd:execute-phase` | Phase retrospective learnings for future plans | +| `THREADS.md` | *(inline)* | `/gsd:thread` | Persistent discussion threads | +| `config.json` | `config.json` | `/gsd:new-project`, `/gsd:health --repair` | Project-specific GSD configuration | | `CLAUDE.md` | `claude-md.md` | `/gsd-profile` | Auto-assembled Claude Code context file | -| `RETROSPECTIVE.md` | *(inline)* | `/gsd-complete-milestone` | Living milestone retrospective updated at each milestone close | +| `RETROSPECTIVE.md` | *(inline)* | `/gsd:complete-milestone` | Living milestone retrospective updated at each milestone close | ### Version-stamped artifacts (pattern: `vX.Y-*.md`) | Pattern | Produced by | Purpose | |---------|-------------|---------| -| `vX.Y-MILESTONE-AUDIT.md` | `/gsd-audit-milestone` | Milestone audit report before archiving | +| `vX.Y-MILESTONE-AUDIT.md` | `/gsd:audit-milestone` | Milestone audit report before archiving | -These files are archived to `.planning/milestones/` by `/gsd-complete-milestone`. Finding them at the `.planning/` root after completion indicates the archive step was skipped. +These files are archived to `.planning/milestones/` by `/gsd:complete-milestone`. Finding them at the `.planning/` root after completion indicates the archive step was skipped. --- @@ -40,24 +40,24 @@ These files live inside a phase directory. They are NOT checked by W019 (which o | File Pattern | Template | Produced by | Purpose | |-------------|----------|-------------|---------| -| `NN-MM-PLAN.md` | `phase-prompt.md` | `/gsd-plan-phase` | Executable implementation plan | -| `NN-MM-SUMMARY.md` | `summary.md` | `/gsd-execute-phase` | Post-execution summary with learnings | -| `NN-CONTEXT.md` | `context.md` | `/gsd-discuss-phase` | Scoped discussion decisions for the phase | -| `NN-RESEARCH.md` | `research.md` | `/gsd-plan-phase`, `/gsd-plan-phase --research-phase ` | Technical research for the phase | -| `NN-VALIDATION.md` | `VALIDATION.md` | `/gsd-plan-phase` (Nyquist) | Validation architecture (Nyquist method) | -| `NN-UAT.md` | `UAT.md` | `/gsd-validate-phase` | User acceptance test results | -| `NN-PATTERNS.md` | *(inline)* | `/gsd-plan-phase` (pattern mapper) | Analog file mapping for the phase | -| `NN-UI-SPEC.md` | `UI-SPEC.md` | `/gsd-ui-phase` | UI design contract | -| `NN-SECURITY.md` | `SECURITY.md` | `/gsd-secure-phase` | Security threat model | -| `NN-AI-SPEC.md` | `AI-SPEC.md` | `/gsd-ai-integration-phase` | AI integration spec with eval strategy | -| `NN-DEBUG.md` | `DEBUG.md` | `/gsd-debug` | Debug session log | -| `NN-REVIEWS.md` | *(inline)* | `/gsd-review` | Cross-AI review feedback | +| `NN-MM-PLAN.md` | `phase-prompt.md` | `/gsd:plan-phase` | Executable implementation plan | +| `NN-MM-SUMMARY.md` | `summary.md` | `/gsd:execute-phase` | Post-execution summary with learnings | +| `NN-CONTEXT.md` | `context.md` | `/gsd:discuss-phase` | Scoped discussion decisions for the phase | +| `NN-RESEARCH.md` | `research.md` | `/gsd:plan-phase`, `/gsd:plan-phase --research-phase ` | Technical research for the phase | +| `NN-VALIDATION.md` | `VALIDATION.md` | `/gsd:plan-phase` (Nyquist) | Validation architecture (Nyquist method) | +| `NN-UAT.md` | `UAT.md` | `/gsd:validate-phase` | User acceptance test results | +| `NN-PATTERNS.md` | *(inline)* | `/gsd:plan-phase` (pattern mapper) | Analog file mapping for the phase | +| `NN-UI-SPEC.md` | `UI-SPEC.md` | `/gsd:ui-phase` | UI design contract | +| `NN-SECURITY.md` | `SECURITY.md` | `/gsd:secure-phase` | Security threat model | +| `NN-AI-SPEC.md` | `AI-SPEC.md` | `/gsd:ai-integration-phase` | AI integration spec with eval strategy | +| `NN-DEBUG.md` | `DEBUG.md` | `/gsd:debug` | Debug session log | +| `NN-REVIEWS.md` | *(inline)* | `/gsd:review` | Cross-AI review feedback | --- ## Milestone Archive (`.planning/milestones/`) -Files archived by `/gsd-complete-milestone`. These are never checked by W019. +Files archived by `/gsd:complete-milestone`. These are never checked by W019. | File Pattern | Source | |-------------|--------| diff --git a/get-shit-done/templates/UAT.md b/get-shit-done/templates/UAT.md index 523e45179..fd2345a98 100644 --- a/get-shit-done/templates/UAT.md +++ b/get-shit-done/templates/UAT.md @@ -106,7 +106,7 @@ blocked: [N] **Gaps:** - APPEND only when issue found (YAML format) - After diagnosis: fill `root_cause`, `artifacts`, `missing`, `debug_session` -- This section feeds directly into /gsd-plan-phase --gaps +- This section feeds directly into /gsd:plan-phase --gaps @@ -120,7 +120,7 @@ blocked: [N] 4. UAT.md Gaps section updated with diagnosis: - Each gap gets `root_cause`, `artifacts`, `missing`, `debug_session` filled 5. status → "diagnosed" -6. Ready for /gsd-plan-phase --gaps with root causes +6. Ready for /gsd:plan-phase --gaps with root causes **After diagnosis:** ```yaml @@ -144,7 +144,7 @@ blocked: [N] -**Creation:** When /gsd-verify-work starts new session +**Creation:** When /gsd:verify-work starts new session - Extract tests from SUMMARY.md files - Set status to "testing" - Current Test points to test 1 @@ -171,7 +171,7 @@ blocked: [N] - Present summary with outstanding items highlighted **Resuming partial session:** -- `/gsd-verify-work {phase}` picks up from first pending/blocked test +- `/gsd:verify-work {phase}` picks up from first pending/blocked test - When all items resolved, status advances to "complete" **Resume after /clear:** diff --git a/get-shit-done/templates/VALIDATION.md b/get-shit-done/templates/VALIDATION.md index c435ce238..6adaf46d6 100644 --- a/get-shit-done/templates/VALIDATION.md +++ b/get-shit-done/templates/VALIDATION.md @@ -29,7 +29,7 @@ created: {date} - **After every task commit:** Run `{quick run command}` - **After every plan wave:** Run `{full suite command}` -- **Before `/gsd-verify-work`:** Full suite must be green +- **Before `/gsd:verify-work`:** Full suite must be green - **Max feedback latency:** {N} seconds --- diff --git a/get-shit-done/templates/claude-md.md b/get-shit-done/templates/claude-md.md index 80ff26c43..4c96fd488 100644 --- a/get-shit-done/templates/claude-md.md +++ b/get-shit-done/templates/claude-md.md @@ -21,7 +21,7 @@ The profile section is managed exclusively by `generate-claude-profile`. **Fallback text:** ``` -Project not yet initialized. Run /gsd-new-project to set up. +Project not yet initialized. Run /gsd:new-project to set up. ``` ### Stack Section @@ -96,9 +96,9 @@ No project skills found. Add skills to any of: `.claude/skills/`, `.agents/skill Before using Edit, Write, or other file-changing tools, start work through a GSD command so planning artifacts and execution context stay in sync. Use these entry points: -- `/gsd-quick` for small fixes, doc updates, and ad-hoc tasks -- `/gsd-debug` for investigation and bug fixing -- `/gsd-execute-phase` for planned phase work +- `/gsd:quick` for small fixes, doc updates, and ad-hoc tasks +- `/gsd:debug` for investigation and bug fixing +- `/gsd:execute-phase` for planned phase work Do not make direct repo edits outside a GSD workflow unless the user explicitly asks to bypass it. @@ -109,7 +109,7 @@ Do not make direct repo edits outside a GSD workflow unless the user explicitly ## Developer Profile -> Profile not yet configured. Run `/gsd-profile-user` to generate your developer profile. +> Profile not yet configured. Run `/gsd:profile-user` to generate your developer profile. > This section is managed by `generate-claude-profile` — do not edit manually. ``` diff --git a/get-shit-done/templates/debug-subagent-prompt.md b/get-shit-done/templates/debug-subagent-prompt.md index 99be182b4..c90c7ce45 100644 --- a/get-shit-done/templates/debug-subagent-prompt.md +++ b/get-shit-done/templates/debug-subagent-prompt.md @@ -51,7 +51,7 @@ Create: .planning/debug/{slug}.md ## Usage -**From /gsd-debug:** +**From /gsd:debug:** ```python Task( prompt=filled_template, diff --git a/get-shit-done/templates/dev-preferences.md b/get-shit-done/templates/dev-preferences.md index 2a0013c5b..428b5c5b5 100644 --- a/get-shit-done/templates/dev-preferences.md +++ b/get-shit-done/templates/dev-preferences.md @@ -5,7 +5,7 @@ description: Load developer preferences into this session # Developer Preferences > Generated by GSD on {{generated_at}} from {{data_source}}. -> Run `/gsd-profile-user --refresh` to regenerate. +> Run `/gsd:profile-user --refresh` to regenerate. ## Behavioral Directives diff --git a/get-shit-done/templates/discovery.md b/get-shit-done/templates/discovery.md index ee3b1a487..0c707e401 100644 --- a/get-shit-done/templates/discovery.md +++ b/get-shit-done/templates/discovery.md @@ -4,7 +4,7 @@ Template for `.planning/phases/XX-name/DISCOVERY.md` - shallow research for libr **Purpose:** Answer "which library/option should we use" questions during mandatory discovery in plan-phase. -For deep ecosystem research ("how do experts build this"), use `/gsd-plan-phase --research-phase` which produces RESEARCH.md. +For deep ecosystem research ("how do experts build this"), use `/gsd:plan-phase --research-phase` which produces RESEARCH.md. --- @@ -142,5 +142,5 @@ Create `.planning/phases/XX-name/DISCOVERY.md`: - Niche/complex domains (3D, games, audio, shaders) - Need ecosystem knowledge, not just library choice - "How do experts build this" questions -- Use `/gsd-plan-phase --research-phase` for these +- Use `/gsd:plan-phase --research-phase` for these diff --git a/get-shit-done/templates/phase-prompt.md b/get-shit-done/templates/phase-prompt.md index 03937daf8..b242dc15e 100644 --- a/get-shit-done/templates/phase-prompt.md +++ b/get-shit-done/templates/phase-prompt.md @@ -142,7 +142,7 @@ After completion, create `.planning/phases/XX-name/{phase}-{plan}-SUMMARY.md` | `user_setup` | No | Array of human-required setup items (external services) | | `must_haves` | Yes | Goal-backward verification criteria (see below) | -**Wave is pre-computed:** Wave numbers are assigned during `/gsd-plan-phase`. Execute-phase reads `wave` directly from frontmatter and groups plans by wave number. No runtime dependency analysis needed. +**Wave is pre-computed:** Wave numbers are assigned during `/gsd:plan-phase`. Execute-phase reads `wave` directly from frontmatter and groups plans by wave number. No runtime dependency analysis needed. **Must-haves enable verification:** The `must_haves` field carries goal-backward requirements from planning to execution. After all plans complete, execute-phase spawns a verification subagent that checks these criteria against the actual codebase. diff --git a/get-shit-done/templates/planner-subagent-prompt.md b/get-shit-done/templates/planner-subagent-prompt.md index 8be7fa0db..bcaa68d27 100644 --- a/get-shit-done/templates/planner-subagent-prompt.md +++ b/get-shit-done/templates/planner-subagent-prompt.md @@ -34,7 +34,7 @@ Template for spawning gsd-planner agent. The agent contains all planning experti -Output consumed by /gsd-execute-phase +Output consumed by /gsd:execute-phase Plans must be executable prompts with: - Frontmatter (wave, depends_on, files_modified, autonomous) - Tasks in XML format @@ -68,7 +68,7 @@ Before returning PLANNING COMPLETE: ## Usage -**From /gsd-plan-phase (standard mode):** +**From /gsd:plan-phase (standard mode):** ```python Task( prompt=filled_template, @@ -77,7 +77,7 @@ Task( ) ``` -**From /gsd-plan-phase --gaps (gap closure mode):** +**From /gsd:plan-phase --gaps (gap closure mode):** ```python Task( prompt=filled_template, # with mode: gap_closure diff --git a/get-shit-done/templates/project.md b/get-shit-done/templates/project.md index dea673bec..37a986c70 100644 --- a/get-shit-done/templates/project.md +++ b/get-shit-done/templates/project.md @@ -149,7 +149,7 @@ and implemented by workflows/transition.md and workflows/complete-milestone.md. For existing codebases: -1. **Map codebase first** via `/gsd-map-codebase` +1. **Map codebase first** via `/gsd:map-codebase` 2. **Infer Validated requirements** from existing code: - What does the codebase actually do? diff --git a/get-shit-done/templates/research.md b/get-shit-done/templates/research.md index 30ef09269..bed3e1d52 100644 --- a/get-shit-done/templates/research.md +++ b/get-shit-done/templates/research.md @@ -18,7 +18,7 @@ Template for `.planning/phases/XX-name/{phase_num}-RESEARCH.md` - comprehensive ## User Constraints (from CONTEXT.md) -**CRITICAL:** If CONTEXT.md exists from /gsd-discuss-phase, copy locked decisions here verbatim. These MUST be honored by the planner. +**CRITICAL:** If CONTEXT.md exists from /gsd:discuss-phase, copy locked decisions here verbatim. These MUST be honored by the planner. ### Locked Decisions [Copy from CONTEXT.md `## Decisions` section - these are NON-NEGOTIABLE] diff --git a/get-shit-done/templates/spec.md b/get-shit-done/templates/spec.md index 99b615533..18b8ce6e1 100644 --- a/get-shit-done/templates/spec.md +++ b/get-shit-done/templates/spec.md @@ -96,7 +96,7 @@ Status: ✓ = met minimum, ⚠ = below minimum (planner treats as assumption) *Phase: [XX-name]* *Spec created: [date]* -*Next step: /gsd-discuss-phase [X] — implementation decisions (how to build what's specified above)* +*Next step: /gsd:discuss-phase [X] — implementation decisions (how to build what's specified above)* ``` @@ -192,7 +192,7 @@ The database has a `posts` table and `follows` table. No feed query or feed UI e *Phase: 03-post-feed* *Spec created: 2025-01-20* -*Next step: /gsd-discuss-phase 3 — implementation decisions (card layout, loading skeleton, etc.)* +*Next step: /gsd:discuss-phase 3 — implementation decisions (card layout, loading skeleton, etc.)* ``` **Example 2: CLI tool (Database backup)** @@ -280,7 +280,7 @@ No backup tooling exists. The project uses PostgreSQL. Developers currently use *Phase: 02-backup-command* *Spec created: 2025-01-20* -*Next step: /gsd-discuss-phase 2 — implementation decisions (progress reporting, flag design, etc.)* +*Next step: /gsd:discuss-phase 2 — implementation decisions (progress reporting, flag design, etc.)* ``` diff --git a/get-shit-done/templates/state.md b/get-shit-done/templates/state.md index 4b0cd63e4..05c6aa117 100644 --- a/get-shit-done/templates/state.md +++ b/get-shit-done/templates/state.md @@ -156,7 +156,7 @@ Updated after each plan completion. **Pending Todos:** Ideas captured via /gsd-add-todo - Count of pending todos - Reference to .planning/todos/pending/ -- Brief list if few, count if many (e.g., "5 pending todos — see /gsd-capture --list") +- Brief list if few, count if many (e.g., "5 pending todos — see /gsd:capture --list") **Blockers/Concerns:** From "Next Phase Readiness" sections - Issues that affect future work diff --git a/get-shit-done/workflows/add-backlog.md b/get-shit-done/workflows/add-backlog.md index 4b2ca973e..88e8fdee1 100644 --- a/get-shit-done/workflows/add-backlog.md +++ b/get-shit-done/workflows/add-backlog.md @@ -1,6 +1,6 @@ # Add Backlog Item Workflow -Invoked by `/gsd-capture --backlog` (`commands/gsd/capture.md`). +Invoked by `/gsd:capture --backlog` (`commands/gsd/capture.md`). Adds an idea to the ROADMAP.md backlog parking lot using 999.x numbering. Backlog items are unsequenced ideas that aren't ready for active planning — they live outside the normal @@ -44,7 +44,7 @@ of ROADMAP.md: **Plans:** 0 plans Plans: -- [ ] TBD (promote with /gsd-review-backlog when ready) +- [ ] TBD (promote with /gsd:review-backlog when ready) ``` ## Step 4: Create the phase directory @@ -75,16 +75,16 @@ Phase {NEXT}: {description} Directory: {PHASE_DIR}/ This item lives in the backlog parking lot. -Use /gsd-discuss-phase {NEXT} to explore it further. -Use /gsd-review-backlog to promote items to active milestone. +Use /gsd:discuss-phase {NEXT} to explore it further. +Use /gsd:review-backlog to promote items to active milestone. ``` - 999.x numbering keeps backlog items out of the active phase sequence -- Phase directories are created immediately so /gsd-discuss-phase and /gsd-plan-phase work on them +- Phase directories are created immediately so /gsd:discuss-phase and /gsd:plan-phase work on them - No `Depends on:` field — backlog items are unsequenced by definition - Sparse numbering is fine (999.1, 999.3) — always uses next-decimal -- Promote backlog items to the active milestone with /gsd-review-backlog +- Promote backlog items to the active milestone with /gsd:review-backlog diff --git a/get-shit-done/workflows/add-phase.md b/get-shit-done/workflows/add-phase.md index 524e17a8b..098e19fd8 100644 --- a/get-shit-done/workflows/add-phase.md +++ b/get-shit-done/workflows/add-phase.md @@ -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. @@ -89,7 +89,7 @@ Roadmap updated: .planning/ROADMAP.md `/clear` then: -`/gsd-plan-phase {N}` +`/gsd:plan-phase {N}` --- diff --git a/get-shit-done/workflows/add-tests.md b/get-shit-done/workflows/add-tests.md index 732db4018..31b1f1deb 100644 --- a/get-shit-done/workflows/add-tests.md +++ b/get-shit-done/workflows/add-tests.md @@ -1,7 +1,7 @@ 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. @@ -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 [additional instructions] -Example: /gsd-add-tests 12 -Example: /gsd-add-tests 12 focus on edge cases in the pricing module +Usage: /gsd:add-tests [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 --- ``` diff --git a/get-shit-done/workflows/add-todo.md b/get-shit-done/workflows/add-todo.md index 64e5d4e49..b889bed84 100644 --- a/get-shit-done/workflows/add-todo.md +++ b/get-shit-done/workflows/add-todo.md @@ -143,7 +143,7 @@ Would you like to: 1. Continue with current work 2. Add another todo -3. View all todos (/gsd-capture --list) +3. View all todos (/gsd:capture --list) ``` diff --git a/get-shit-done/workflows/ai-integration-phase.md b/get-shit-done/workflows/ai-integration-phase.md index 6b19d00e8..1d764112a 100644 --- a/get-shit-done/workflows/ai-integration-phase.md +++ b/get-shit-done/workflows/ai-integration-phase.md @@ -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 @@ -276,7 +276,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 ``` diff --git a/get-shit-done/workflows/analyze-dependencies.md b/get-shit-done/workflows/analyze-dependencies.md index 618e3c9d0..376e31c9e 100644 --- a/get-shit-done/workflows/analyze-dependencies.md +++ b/get-shit-done/workflows/analyze-dependencies.md @@ -1,12 +1,12 @@ -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`. ## 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." diff --git a/get-shit-done/workflows/audit-milestone.md b/get-shit-done/workflows/audit-milestone.md index 4e7d93831..df5293039 100644 --- a/get-shit-done/workflows/audit-milestone.md +++ b/get-shit-done/workflows/audit-milestone.md @@ -160,7 +160,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 @@ -233,7 +233,7 @@ All requirements covered. Cross-phase integration verified. E2E flows complete. /clear then: -/gsd-complete-milestone {version} +/gsd:complete-milestone {version} ─────────────────────────────────────────────────────────────── @@ -266,9 +266,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. ─────────────────────────────────────────────────────────────── @@ -281,13 +281,13 @@ per group of related gaps) using the standard phase chain: /clear then: -/gsd-phase --insert "Close gap: — " -/gsd-discuss-phase -/gsd-plan-phase -/gsd-execute-phase +/gsd:phase --insert "Close gap: — " +/gsd:discuss-phase +/gsd:plan-phase +/gsd:execute-phase For Nyquist-coverage gaps flagged in the table above, prefer running -`/gsd-validate-phase ` for each flagged phase (and `/gsd-secure-phase +`/gsd:validate-phase ` for each flagged phase (and `/gsd:secure-phase ` if SECURITY.md was flagged) before inserting a new closure phase — they may close the gap retroactively without a new phase. @@ -295,7 +295,7 @@ they may close the gap retroactively without a new phase. **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) ─────────────────────────────────────────────────────────────── @@ -325,17 +325,17 @@ 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 a cleanup phase** — address the debt above before completing. Insert a closure phase using the standard chain: /clear then: -/gsd-phase --insert "Address tech debt: " -/gsd-discuss-phase -/gsd-plan-phase -/gsd-execute-phase +/gsd:phase --insert "Address tech debt: " +/gsd:discuss-phase +/gsd:plan-phase +/gsd:execute-phase ─────────────────────────────────────────────────────────────── diff --git a/get-shit-done/workflows/audit-uat.md b/get-shit-done/workflows/audit-uat.md index 29afc946f..83650d62a 100644 --- a/get-shit-done/workflows/audit-uat.md +++ b/get-shit-done/workflows/audit-uat.md @@ -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}` ``` diff --git a/get-shit-done/workflows/autonomous.md b/get-shit-done/workflows/autonomous.md index 66ed36486..820b3b8af 100644 --- a/get-shit-done/workflows/autonomous.md +++ b/get-shit-done/workflows/autonomous.md @@ -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 : ""} ``` diff --git a/get-shit-done/workflows/check-todos.md b/get-shit-done/workflows/check-todos.md index e24df4fb2..6259ba163 100644 --- a/get-shit-done/workflows/check-todos.md +++ b/get-shit-done/workflows/check-todos.md @@ -28,7 +28,7 @@ Todos are captured during work sessions with /gsd-add-todo. Would you like to: -1. Continue with current phase (/gsd-progress) +1. Continue with current phase (/gsd:progress) 2. Add a todo now (/gsd-add-todo) ``` @@ -37,8 +37,8 @@ Exit. Check for area filter in arguments: -- `/gsd-capture --list` → show all -- `/gsd-capture --list api` → filter to area:api only +- `/gsd:capture --list` → show all +- `/gsd:capture --list api` → filter to area:api only @@ -56,7 +56,7 @@ Pending Todos: --- Reply with a number to view details, or: -- `/gsd-capture --list [area]` to filter by area +- `/gsd:capture --list [area]` to filter by area - `q` to exit ``` diff --git a/get-shit-done/workflows/code-review-fix.md b/get-shit-done/workflows/code-review-fix.md index b3be2ba6a..798a3a572 100644 --- a/get-shit-done/workflows/code-review-fix.md +++ b/get-shit-done/workflows/code-review-fix.md @@ -36,7 +36,7 @@ fi **Phase validation (before config gate):** If `phase_found` is false, report error and exit: ``` -Error: Phase ${PHASE_ARG} not found. Run /gsd-progress to see available phases. +Error: Phase ${PHASE_ARG} not found. Run /gsd:progress to see available phases. ``` This runs BEFORE config gate check so user errors are surfaced immediately regardless of config state. @@ -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 ``` @@ -223,7 +223,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 ${PHASE_ARG} --fix. +You can retry with /gsd:code-review ${PHASE_ARG} --fix. ``` Exit workflow (skip auto loop). @@ -398,7 +398,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 ${PHASE_ARG} --fix" + echo "Retry: /gsd:code-review ${PHASE_ARG} --fix" echo "" echo "═══════════════════════════════════════════════════════════════" exit 1 @@ -455,7 +455,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 ``` @@ -469,8 +469,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 ``` diff --git a/get-shit-done/workflows/code-review.md b/get-shit-done/workflows/code-review.md index fefb810f8..a74aab574 100644 --- a/get-shit-done/workflows/code-review.md +++ b/get-shit-done/workflows/code-review.md @@ -35,7 +35,7 @@ fi **Phase validation (before config gate):** If `phase_found` is false, report error and exit: ``` -Error: Phase ${PHASE_ARG} not found. Run /gsd-progress to see available phases. +Error: Phase ${PHASE_ARG} not found. Run /gsd:progress to see available phases. ``` This runs BEFORE config gate check so user errors are surfaced immediately regardless of config state. @@ -233,7 +233,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 ``` @@ -380,7 +380,7 @@ If the Agent() 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. @@ -413,7 +413,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 ``` @@ -477,7 +477,7 @@ If total findings > 0: Full report: ${REVIEW_PATH} Next steps: - /gsd-code-review ${PHASE_NUMBER} --fix — Auto-fix issues + /gsd:code-review ${PHASE_NUMBER} --fix — Auto-fix issues cat ${REVIEW_PATH} — View full report ``` diff --git a/get-shit-done/workflows/complete-milestone.md b/get-shit-done/workflows/complete-milestone.md index 864227c23..9a0c80324 100644 --- a/get-shit-done/workflows/complete-milestone.md +++ b/get-shit-done/workflows/complete-milestone.md @@ -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) diff --git a/get-shit-done/workflows/debug.md b/get-shit-done/workflows/debug.md index ed907e4fc..20b763e9e 100644 --- a/get-shit-done/workflows/debug.md +++ b/get-shit-done/workflows/debug.md @@ -1,6 +1,6 @@ # Debug Workflow -Invoked by `/gsd-debug` (`commands/gsd/debug.md`). +Invoked by `/gsd:debug` (`commands/gsd/debug.md`). Systematic debugging using the scientific method with subagent isolation. Orchestrates symptom gathering, session creation, and delegation to `gsd-debug-session-manager`. @@ -52,11 +52,11 @@ Active Debug Sessions hypothesis: Missing null check on req.body.user next: Verify fix passes regression test ───────────────────────────────────────────── -Run `/gsd-debug continue ` to resume a session. -No sessions? `/gsd-debug ` to start. +Run `/gsd:debug continue ` to resume a session. +No sessions? `/gsd:debug ` to start. ``` -If no files exist or the glob returns nothing: print "No active debug sessions. Run `/gsd-debug ` to start one." +If no files exist or the glob returns nothing: print "No active debug sessions. Run `/gsd:debug ` to start one." STOP after displaying list. Do NOT proceed to further steps. @@ -83,9 +83,9 @@ No agent spawn. Just information display. STOP after printing. When SUBCMD=continue and SLUG is set: -**Sanitize SLUG first:** strip whitespace, reject unless it matches `^[a-z0-9][a-z0-9-]*$`, enforce max 30 chars, reject any `..`, `/`, or `\`. If invalid, print "No active debug session found with slug: {SLUG}. Check `/gsd-debug list` for active sessions." and stop. +**Sanitize SLUG first:** strip whitespace, reject unless it matches `^[a-z0-9][a-z0-9-]*$`, enforce max 30 chars, reject any `..`, `/`, or `\`. If invalid, print "No active debug session found with slug: {SLUG}. Check `/gsd:debug list` for active sessions." and stop. -Check `.planning/debug/{SLUG}.md` exists. If not, print "No active debug session found with slug: {SLUG}. Check `/gsd-debug list` for active sessions." and stop. +Check `.planning/debug/{SLUG}.md` exists. If not, print "No active debug session found with slug: {SLUG}. Check `/gsd:debug list` for active sessions." and stop. Read file and print Current Focus block to console: @@ -215,7 +215,7 @@ specialist_dispatch_enabled: true Display the compact summary returned by the session manager. If summary shows `DEBUG SESSION COMPLETE`: done. -If summary shows `ABANDONED`: note session saved at `.planning/debug/{slug}.md` for later `/gsd-debug continue {slug}`. +If summary shows `ABANDONED`: note session saved at `.planning/debug/{slug}.md` for later `/gsd:debug continue {slug}`. diff --git a/get-shit-done/workflows/diagnose-issues.md b/get-shit-done/workflows/diagnose-issues.md index 5c2a37049..e819f9047 100644 --- a/get-shit-done/workflows/diagnose-issues.md +++ b/get-shit-done/workflows/diagnose-issues.md @@ -222,7 +222,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.) diff --git a/get-shit-done/workflows/discovery-phase.md b/get-shit-done/workflows/discovery-phase.md index 3cf7f8762..011d13c85 100644 --- a/get-shit-done/workflows/discovery-phase.md +++ b/get-shit-done/workflows/discovery-phase.md @@ -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-plan-phase --research-phase instead, which produces RESEARCH.md. +NOTE: For comprehensive ecosystem research ("how do experts build this"), use /gsd:plan-phase --research-phase instead, which produces RESEARCH.md. @@ -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 diff --git a/get-shit-done/workflows/discuss-phase-assumptions.md b/get-shit-done/workflows/discuss-phase-assumptions.md index 63446cd75..cdc1a96fb 100644 --- a/get-shit-done/workflows/discuss-phase-assumptions.md +++ b/get-shit-done/workflows/discuss-phase-assumptions.md @@ -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. @@ -603,13 +603,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 --- diff --git a/get-shit-done/workflows/discuss-phase-power.md b/get-shit-done/workflows/discuss-phase-power.md index 57e7671a6..0877ee6e3 100644 --- a/get-shit-done/workflows/discuss-phase-power.md +++ b/get-shit-done/workflows/discuss-phase-power.md @@ -5,7 +5,7 @@ Power user mode for discuss-phase. Generates ALL questions upfront into a JSON s -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} ``` diff --git a/get-shit-done/workflows/discuss-phase.md b/get-shit-done/workflows/discuss-phase.md index a79f48ffd..c3329ba59 100644 --- a/get-shit-done/workflows/discuss-phase.md +++ b/get-shit-done/workflows/discuss-phase.md @@ -103,7 +103,7 @@ Phase: "API documentation" → Structure/navigation, Code examples depth, -**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. 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 -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. @@ -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 ``. -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 `` 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). @@ -420,11 +420,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. ``` diff --git a/get-shit-done/workflows/discuss-phase/modes/chain.md b/get-shit-done/workflows/discuss-phase/modes/chain.md index 517895000..c30c06beb 100644 --- a/get-shit-done/workflows/discuss-phase/modes/chain.md +++ b/get-shit-done/workflows/discuss-phase/modes/chain.md @@ -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 diff --git a/get-shit-done/workflows/discuss-phase/modes/text.md b/get-shit-done/workflows/discuss-phase/modes/text.md index a0821727b..cfc7ea197 100644 --- a/get-shit-done/workflows/discuss-phase/modes/text.md +++ b/get-shit-done/workflows/discuss-phase/modes/text.md @@ -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. diff --git a/get-shit-done/workflows/do.md b/get-shit-done/workflows/do.md index 8b6c780e5..2fdf77244 100644 --- a/get-shit-done/workflows/do.md +++ b/get-shit-done/workflows/do.md @@ -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-explore` | Socratic ideation and idea routing | -| Discussing vision, "how should X look", brainstorming | `/gsd-discuss-phase` | Needs context gathering | -| A complex task: refactoring, migration, multi-file architecture, system redesign | `/gsd-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-capture` | 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:explore` | Socratic ideation and idea routing | +| Discussing vision, "how should X look", brainstorming | `/gsd:discuss-phase` | Needs context gathering | +| A complex task: refactoring, migration, multi-file architecture, system redesign | `/gsd: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:capture` | 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`, and `/gsd-help`. 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`, and `/gsd:help`. 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-phase — Full planning cycle (recommended for multi-file refactors) -2. /gsd-quick — Quick execution (if scope is small and clear) +1. /gsd:phase — Full planning cycle (recommended for multi-file refactors) +2. /gsd:quick — Quick execution (if scope is small and clear) Which approach fits better? ``` diff --git a/get-shit-done/workflows/docs-update.md b/get-shit-done/workflows/docs-update.md index 2a1a42218..1fc7c8ea0 100644 --- a/get-shit-done/workflows/docs-update.md +++ b/get-shit-done/workflows/docs-update.md @@ -994,8 +994,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. @@ -1030,7 +1030,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: @@ -1132,7 +1132,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. diff --git a/get-shit-done/workflows/edit-phase.md b/get-shit-done/workflows/edit-phase.md index 494f57fee..d2483cda3 100644 --- a/get-shit-done/workflows/edit-phase.md +++ b/get-shit-done/workflows/edit-phase.md @@ -41,7 +41,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. @@ -58,7 +58,7 @@ Parse the JSON result. If `found` is false: ``` ERROR: Phase {target} not found in ROADMAP.md -Available phases can be seen with /gsd-progress. +Available phases can be seen with /gsd:progress. ``` Exit. @@ -258,9 +258,9 @@ Fields changed: {changed_field_list} ## What's Next -- `/gsd-progress` — view updated roadmap -- `/gsd-plan-phase {target}` — re-plan this phase (if needed) -- `/gsd-discuss-phase {target}` — discuss implementation approach +- `/gsd:progress` — view updated roadmap +- `/gsd:plan-phase {target}` — re-plan this phase (if needed) +- `/gsd:discuss-phase {target}` — discuss implementation approach --- ``` diff --git a/get-shit-done/workflows/eval-review.md b/get-shit-done/workflows/eval-review.md index 90b679018..f80bdc1ca 100644 --- a/get-shit-done/workflows/eval-review.md +++ b/get-shit-done/workflows/eval-review.md @@ -1,7 +1,7 @@ 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. @@ -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. diff --git a/get-shit-done/workflows/execute-phase.md b/get-shit-done/workflows/execute-phase.md index e07ae167b..cf94884ad 100644 --- a/get-shit-done/workflows/execute-phase.md +++ b/get-shit-done/workflows/execute-phase.md @@ -421,7 +421,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). @@ -1118,13 +1118,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 ``` @@ -1203,8 +1203,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:** @@ -1237,7 +1237,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 ${PHASE_NUMBER} --fix +/gsd:code-review ${PHASE_NUMBER} --fix ``` **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. @@ -1491,7 +1491,7 @@ grep "^status:" "$PHASE_DIR"/*-VERIFICATION.md | cut -d: -f2 | tr -d ' ' |--------|--------| | `passed` | → update_roadmap | | `human_needed` | Persist and present human testing items; keep phase pending until verification reruns as `passed` | -| `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:** @@ -1546,12 +1546,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. @@ -1570,13 +1570,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. @@ -1602,7 +1602,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 @@ -1689,7 +1689,7 @@ gsd-sdk query commit "docs(phase-{X}): evolve PROJECT.md after phase completion" -**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):** @@ -1752,10 +1752,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: @@ -1763,10 +1763,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. @@ -1793,7 +1793,7 @@ For 1M+ context models, consider: -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. diff --git a/get-shit-done/workflows/execute-phase/steps/codebase-drift-gate.md b/get-shit-done/workflows/execute-phase/steps/codebase-drift-gate.md index 3b6bb942b..2081502e2 100644 --- a/get-shit-done/workflows/execute-phase/steps/codebase-drift-gate.md +++ b/get-shit-done/workflows/execute-phase/steps/codebase-drift-gate.md @@ -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. diff --git a/get-shit-done/workflows/execute-plan.md b/get-shit-done/workflows/execute-plan.md index 957d3dd8a..995dd2ac3 100644 --- a/get-shit-done/workflows/execute-plan.md +++ b/get-shit-done/workflows/execute-plan.md @@ -503,9 +503,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. diff --git a/get-shit-done/workflows/explore.md b/get-shit-done/workflows/explore.md index 9fb4bd047..d3ccdbb08 100644 --- a/get-shit-done/workflows/explore.md +++ b/get-shit-done/workflows/explore.md @@ -84,8 +84,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: ``` @@ -127,7 +127,7 @@ gsd-sdk query commit "docs: capture exploration — {topic_slug}" --files {file_ **Outputs:** {count} artifact(s) created {list of created files} -Continue exploring with `/gsd-explore` or start working with `/gsd-progress --next`. +Continue exploring with `/gsd:explore` or start working with `/gsd:progress --next`. ``` diff --git a/get-shit-done/workflows/extract-learnings.md b/get-shit-done/workflows/extract-learnings.md index 27e1658e2..5c0c1c448 100644 --- a/get-shit-done/workflows/extract-learnings.md +++ b/get-shit-done/workflows/extract-learnings.md @@ -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 --------------------------------------------------------------- ``` diff --git a/get-shit-done/workflows/fast.md b/get-shit-done/workflows/fast.md index da764835d..729bcc32e 100644 --- a/get-shit-done/workflows/fast.md +++ b/get-shit-done/workflows/fast.md @@ -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. @@ -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 diff --git a/get-shit-done/workflows/forensics.md b/get-shit-done/workflows/forensics.md index bbc250c4a..928af1832 100644 --- a/get-shit-done/workflows/forensics.md +++ b/get-shit-done/workflows/forensics.md @@ -219,11 +219,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:** diff --git a/get-shit-done/workflows/health.md b/get-shit-done/workflows/health.md index ff2c767ad..8ced59b58 100644 --- a/get-shit-done/workflows/health.md +++ b/get-shit-done/workflows/health.md @@ -101,10 +101,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:** @@ -129,7 +129,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 ``` @@ -139,7 +139,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. diff --git a/get-shit-done/workflows/help.md b/get-shit-done/workflows/help.md index 9fd7b524f..4e7292152 100644 --- a/get-shit-done/workflows/help.md +++ b/get-shit-done/workflows/help.md @@ -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,9 +46,9 @@ 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 [--fast] [--focus ] [--query ]`** +**`/gsd:map-codebase [--fast] [--focus ] [--query ]`** Map an existing codebase for brownfield projects. - `--fast` — rapid lightweight assessment (replaces the former `gsd-scan`) @@ -58,13 +58,13 @@ 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 [--chain | --analyze | --power | --assumptions] [--batch[=N]]`** +**`/gsd:discuss-phase [--chain | --analyze | --power | --assumptions] [--batch[=N]]`** Help articulate your vision for a phase before planning. - `--chain` — chained-prompt discuss flow @@ -77,22 +77,22 @@ 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-mvp-phase [--force]`** -Plan a phase as a vertical MVP slice — three structured user-story prompts (`As a / I want to / So that`), SPIDR splitting if the story is too large, then delegates to `/gsd-plan-phase` with MVP mode active. +**`/gsd:mvp-phase [--force]`** +Plan a phase as a vertical MVP slice — three structured user-story prompts (`As a / I want to / So that`), SPIDR splitting if the story is too large, then delegates to `/gsd:plan-phase` with MVP mode active. - Mutates the phase's ROADMAP entry: writes `**Mode:** mvp` + replaces `**Goal:**` with the assembled user story - Validates the story via `gsd-sdk query user-story.validate` (canonical regex `/^As a .+, I want to .+, so that .+\.$/`) - `--force` overrides the status guard (required if the phase is already `in_progress` or `completed`) - Pairs with the new-project mode prompt (Vertical MVP vs Horizontal Layers) -Usage: `/gsd-mvp-phase 1` -Usage: `/gsd-mvp-phase 2 --force` +Usage: `/gsd:mvp-phase 1` +Usage: `/gsd:mvp-phase 2 --force` -**`/gsd-plan-phase [--research] [--skip-research] [--research-phase ] [--view] [--gaps] [--skip-verify] [--prd ] [--ingest ] [--ingest-format ] [--tdd] [--mvp]`** +**`/gsd:plan-phase [--research] [--skip-research] [--research-phase ] [--view] [--gaps] [--skip-verify] [--prd ] [--ingest ] [--ingest-format ] [--tdd] [--mvp]`** Create detailed execution plan for a specific phase. - `--skip-research` — bypass the research subagent @@ -111,10 +111,10 @@ 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 --research-phase 2` — research only on phase 2 (prompts if `RESEARCH.md` exists) -Usage: `/gsd-plan-phase --research-phase 2 --view` — print existing `RESEARCH.md`, no spawn -Usage: `/gsd-plan-phase --research-phase 2 --research` — force-refresh, no prompt +Usage: `/gsd:plan-phase 1` +Usage: `/gsd:plan-phase --research-phase 2` — research only on phase 2 (prompts if `RESEARCH.md` exists) +Usage: `/gsd:plan-phase --research-phase 2 --view` — print existing `RESEARCH.md`, no spawn +Usage: `/gsd:plan-phase --research-phase 2 --research` — force-refresh, no prompt 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. Cannot be combined with `--ingest`. @@ -123,7 +123,7 @@ Result: Creates `.planning/phases/01-foundation/01-01-PLAN.md` ### Execution -**`/gsd-execute-phase [--wave N] [--gaps-only] [--tdd]`** +**`/gsd:execute-phase [--wave N] [--gaps-only] [--tdd]`** Execute all plans in a phase, or run a specific wave. - `--wave N` — execute only wave N (see *Plans within each wave* below) @@ -136,12 +136,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-progress --do ""`** +**`/gsd:progress --do ""`** Route freeform text to the right GSD command automatically. - Analyzes natural language input to find the best matching GSD command @@ -149,13 +149,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-progress --do "fix the login button"` -Usage: `/gsd-progress --do "refactor the auth system"` -Usage: `/gsd-progress --do "I want to start a new milestone"` +Usage: `/gsd:progress --do "fix the login button"` +Usage: `/gsd:progress --do "refactor the auth system"` +Usage: `/gsd:progress --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: @@ -171,48 +171,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/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-phase `** +**`/gsd:phase `** Add new phase to end of current milestone. - Appends to ROADMAP.md - Uses next sequential number - Updates phase directory structure -Usage: `/gsd-phase "Add admin dashboard"` +Usage: `/gsd:phase "Add admin dashboard"` -**`/gsd-phase --insert `** +**`/gsd:phase --insert `** 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-phase --insert 7 "Fix critical auth bug"` +Usage: `/gsd:phase --insert 7 "Fix critical auth bug"` Result: Creates Phase 7.1 -**`/gsd-phase --remove `** +**`/gsd:phase --remove `** Remove a future phase and renumber subsequent phases. - Deletes phase directory and all references @@ -220,10 +220,10 @@ Remove a future phase and renumber subsequent phases. - Only works on future (unstarted) phases - Git commit preserves historical record -Usage: `/gsd-phase --remove 17` +Usage: `/gsd:phase --remove 17` Result: Phase 17 deleted, phases 18-20 become 17-19 -**`/gsd-phase --edit [--force]`** +**`/gsd:phase --edit [--force]`** Edit any field of an existing roadmap phase in place, preserving number and position. - Updates title, description, requirements, dependencies in `ROADMAP.md` @@ -231,7 +231,7 @@ Edit any field of an existing roadmap phase in place, preserving number and posi ### Milestone Management -**`/gsd-new-milestone `** +**`/gsd:new-milestone `** Start a new milestone through unified flow. - Deep questioning to understand what you're building next @@ -240,12 +240,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 `** +**`/gsd:complete-milestone `** Archive completed milestone and prepare for next version. - Creates MILESTONES.md entry with stats @@ -253,11 +253,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 [--next | --forensic | --do ""]`** +**`/gsd:progress [--next | --forensic | --do ""]`** Check project status and intelligently route to next action. - Shows visual progress bar and completion percentage @@ -273,22 +273,22 @@ Modes: - **`--forensic`** — append a 6-check integrity audit after the progress report - **`--do ""`** — smart router: dispatch freeform intent to the matching `/gsd-*` command (see *Smart Router* above) -Usage: `/gsd-progress` -Usage: `/gsd-progress --next` -Usage: `/gsd-progress --forensic` +Usage: `/gsd:progress` +Usage: `/gsd:progress --next` +Usage: `/gsd:progress --forensic` ### 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 [--report]`** +**`/gsd:pause-work [--report]`** Create context handoff when pausing work mid-phase. - `--report` — generate a post-session summary in `.planning/reports/` capturing commits, file changes, and phase progress @@ -296,11 +296,11 @@ Create context handoff when pausing work mid-phase. - Updates STATE.md session continuity section - Captures in-progress work context -Usage: `/gsd-pause-work` +Usage: `/gsd:pause-work` ### Debugging -**`/gsd-debug [issue description] [--diagnose]`** +**`/gsd:debug [issue description] [--diagnose]`** Systematic debugging with persistent state across context resets. - `--diagnose` — run a one-shot diagnostic pass without opening a persistent debug session @@ -308,28 +308,28 @@ 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 @@ -337,13 +337,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) @@ -352,9 +352,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) @@ -363,11 +363,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` ### Capturing Ideas, Notes, and Todos -**`/gsd-capture [description]`** +**`/gsd:capture [description]`** Capture an idea or task as a structured todo from current conversation. - Extracts context from conversation (or uses provided description) @@ -376,10 +376,10 @@ Capture an idea or task as a structured todo from current conversation. - Checks for duplicates before creating - Updates STATE.md todo count -Usage: `/gsd-capture` (infers from conversation) -Usage: `/gsd-capture Add auth token refresh` +Usage: `/gsd:capture` (infers from conversation) +Usage: `/gsd:capture Add auth token refresh` -**`/gsd-capture --note `** +**`/gsd:capture --note `** Zero-friction note capture — one command, instant save, no questions. - Saves timestamped note to `.planning/notes/` (or `~/.claude/notes/` globally) @@ -387,26 +387,26 @@ Zero-friction note 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-capture --note refactor the hook system` -Usage: `/gsd-capture --note list` -Usage: `/gsd-capture --note promote 3` -Usage: `/gsd-capture --note --global cross-project idea` +Usage: `/gsd:capture --note refactor the hook system` +Usage: `/gsd:capture --note list` +Usage: `/gsd:capture --note promote 3` +Usage: `/gsd:capture --note --global cross-project idea` -**`/gsd-capture --list [area]`** +**`/gsd:capture --list [area]`** List pending todos and select one to work on. - Lists all pending todos with title, area, age -- Optional area filter (e.g., `/gsd-capture --list api`) +- Optional area filter (e.g., `/gsd:capture --list 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-capture --list` -Usage: `/gsd-capture --list api` +Usage: `/gsd:capture --list` +Usage: `/gsd:capture --list 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 @@ -414,11 +414,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 @@ -428,66 +428,66 @@ 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-capture --seed [idea]`** +**`/gsd:capture --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-capture --seed "add real-time notifications when we build the events system"` +Usage: `/gsd:capture --seed "add real-time notifications when we build the events system"` -**`/gsd-capture --backlog [description]`** +**`/gsd:capture --backlog [description]`** Add an idea to the backlog parking lot for future milestones. - Creates a backlog item under 999.x numbering in ROADMAP.md - Reserves ideas without committing to the current milestone -- Surface and promote later via `/gsd-review-backlog` +- Surface and promote later via `/gsd:review-backlog` -Usage: `/gsd-capture --backlog "real-time notifications when events ship"` +Usage: `/gsd:capture --backlog "real-time notifications when events ship"` --- -**`/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 @@ -495,20 +495,20 @@ 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` ### 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-config [--profile | --advanced | --integrations]`** +**`/gsd:config [--profile | --advanced | --integrations]`** Configure GSD beyond the basic settings: model profile, advanced tuning, and third-party integrations. - `--profile ` — quick switch model profile (`quality | balanced | budget | inherit`) @@ -520,11 +520,11 @@ Configure GSD beyond the basic settings: model profile, advanced tuning, and thi - `budget` — Sonnet for writing, Haiku for research/verification - `inherit` — Use current session model for all agents (OpenCode `/model`) -Usage: `/gsd-config --profile budget` +Usage: `/gsd:config --profile budget` ### Utility Commands -**`/gsd-cleanup`** +**`/gsd:cleanup`** Archive accumulated phase directories from completed milestones. - Identifies phases from completed milestones still in `.planning/phases/` @@ -532,12 +532,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 [--sync] [--reapply]`** +**`/gsd:update [--sync] [--reapply]`** Update GSD to latest version with changelog preview. - `--sync` — sync managed GSD skills across runtime roots (replaces the former `gsd-sync-skills`) @@ -549,7 +549,7 @@ 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` ## Additional Commands @@ -557,55 +557,55 @@ The commands above cover the most common day-to-day flows. Every command listed ### Discovery & Specification -- **`/gsd-explore`** — Socratic ideation and idea routing. Think through ideas before committing to plans. -- **`/gsd-spec-phase [--auto] [--text]`** — Clarify WHAT a phase delivers with ambiguity scoring; produces a SPEC.md before discuss-phase. -- **`/gsd-ai-integration-phase [phase]`** — Generate an AI-SPEC.md design contract for phases that involve building AI systems. -- **`/gsd-ui-phase [phase]`** — Generate UI design contract (UI-SPEC.md) for frontend phases. -- **`/gsd-import --from | --from-gsd2`** — Ingest external plans with conflict detection, or reverse-migrate a GSD-2 (`.gsd/`) project back to GSD v1 (`.planning/`) format. -- **`/gsd-ingest-docs [path] [--mode new|merge] [--manifest ] [--resolve auto|interactive]`** — Bootstrap or merge a `.planning/` setup from existing ADRs, PRDs, SPECs, and docs in a repo. +- **`/gsd:explore`** — Socratic ideation and idea routing. Think through ideas before committing to plans. +- **`/gsd:spec-phase [--auto] [--text]`** — Clarify WHAT a phase delivers with ambiguity scoring; produces a SPEC.md before discuss-phase. +- **`/gsd:ai-integration-phase [phase]`** — Generate an AI-SPEC.md design contract for phases that involve building AI systems. +- **`/gsd:ui-phase [phase]`** — Generate UI design contract (UI-SPEC.md) for frontend phases. +- **`/gsd:import --from | --from-gsd2`** — Ingest external plans with conflict detection, or reverse-migrate a GSD-2 (`.gsd/`) project back to GSD v1 (`.planning/`) format. +- **`/gsd:ingest-docs [path] [--mode new|merge] [--manifest ] [--resolve auto|interactive]`** — Bootstrap or merge a `.planning/` setup from existing ADRs, PRDs, SPECs, and docs in a repo. ### Planning & Execution -- **`/gsd-ultraplan-phase [phase]`** — [BETA] Offload plan phase to Claude Code's ultraplan cloud; review in browser and import back. -- **`/gsd-plan-review-convergence [--codex] [--gemini] [--claude] [--opencode] [--ollama] [--lm-studio] [--llama-cpp] [--all] [--text] [--ws ] [--max-cycles N]`** — Cross-AI plan convergence loop — replan with review feedback until no HIGH concerns remain. Supports both cloud reviewers (Codex/Gemini/Claude/OpenCode) and local model runtimes (Ollama, LM Studio, llama.cpp). -- **`/gsd-autonomous [--from N] [--to N] [--only N] [--interactive]`** — Run all remaining phases autonomously: discuss → plan → execute per phase. +- **`/gsd:ultraplan-phase [phase]`** — [BETA] Offload plan phase to Claude Code's ultraplan cloud; review in browser and import back. +- **`/gsd:plan-review-convergence [--codex] [--gemini] [--claude] [--opencode] [--ollama] [--lm-studio] [--llama-cpp] [--all] [--text] [--ws ] [--max-cycles N]`** — Cross-AI plan convergence loop — replan with review feedback until no HIGH concerns remain. Supports both cloud reviewers (Codex/Gemini/Claude/OpenCode) and local model runtimes (Ollama, LM Studio, llama.cpp). +- **`/gsd:autonomous [--from N] [--to N] [--only N] [--interactive]`** — Run all remaining phases autonomously: discuss → plan → execute per phase. ### Quality, Review & Verification -- **`/gsd-code-review [--depth=quick|standard|deep] [--files file1,file2,...] [--fix [--all] [--auto]]`** — Review source files changed during a phase for bugs, security issues, and code quality problems. -- **`/gsd-secure-phase [phase]`** — Retroactively verify threat mitigations for a completed phase. -- **`/gsd-validate-phase [phase]`** — Retroactively audit and fill Nyquist validation gaps for a completed phase. -- **`/gsd-ui-review [phase]`** — Retroactive 6-pillar visual audit of implemented frontend code. -- **`/gsd-eval-review [phase]`** — Audit an executed AI phase's evaluation coverage and produce an EVAL-REVIEW.md remediation plan. -- **`/gsd-audit-fix --source [--severity medium|high|all] [--max N] [--dry-run]`** — Autonomous audit-to-fix pipeline: find issues, classify, fix, test, commit. -- **`/gsd-add-tests [additional instructions]`** — Generate tests for a completed phase based on UAT criteria and implementation. +- **`/gsd:code-review [--depth=quick|standard|deep] [--files file1,file2,...] [--fix [--all] [--auto]]`** — Review source files changed during a phase for bugs, security issues, and code quality problems. +- **`/gsd:secure-phase [phase]`** — Retroactively verify threat mitigations for a completed phase. +- **`/gsd:validate-phase [phase]`** — Retroactively audit and fill Nyquist validation gaps for a completed phase. +- **`/gsd:ui-review [phase]`** — Retroactive 6-pillar visual audit of implemented frontend code. +- **`/gsd:eval-review [phase]`** — Audit an executed AI phase's evaluation coverage and produce an EVAL-REVIEW.md remediation plan. +- **`/gsd:audit-fix --source [--severity medium|high|all] [--max N] [--dry-run]`** — Autonomous audit-to-fix pipeline: find issues, classify, fix, test, commit. +- **`/gsd:add-tests [additional instructions]`** — Generate tests for a completed phase based on UAT criteria and implementation. ### Diagnostics & Maintenance -- **`/gsd-health [--repair] [--context]`** — Diagnose planning directory health and optionally repair issues. -- **`/gsd-forensics [problem description]`** — Post-mortem investigation for failed GSD workflows; diagnoses what went wrong. -- **`/gsd-undo --last N | --phase NN | --plan NN-MM`** — Safe git revert. Roll back phase or plan commits using the phase manifest with dependency checks. -- **`/gsd-docs-update [--force] [--verify-only]`** — Generate or update project documentation verified against the codebase. -- **`/gsd-extract-learnings `** — Extract decisions, lessons, patterns, and surprises from completed phase artifacts. +- **`/gsd:health [--repair] [--context]`** — Diagnose planning directory health and optionally repair issues. +- **`/gsd:forensics [problem description]`** — Post-mortem investigation for failed GSD workflows; diagnoses what went wrong. +- **`/gsd:undo --last N | --phase NN | --plan NN-MM`** — Safe git revert. Roll back phase or plan commits using the phase manifest with dependency checks. +- **`/gsd:docs-update [--force] [--verify-only]`** — Generate or update project documentation verified against the codebase. +- **`/gsd:extract-learnings `** — Extract decisions, lessons, patterns, and surprises from completed phase artifacts. ### Knowledge & Context -- **`/gsd-graphify [build|query |status|diff]`** — Build, query, and inspect the project knowledge graph in `.planning/graphs/`. -- **`/gsd-thread [list [--open|--resolved] | close | status | name | description]`** — Manage persistent context threads for cross-session work. -- **`/gsd-profile-user [--questionnaire] [--refresh]`** — Generate developer behavioral profile and create Claude-discoverable artifacts. -- **`/gsd-stats`** — Display project statistics: phases, plans, requirements, git metrics, and timeline. +- **`/gsd:graphify [build|query |status|diff]`** — Build, query, and inspect the project knowledge graph in `.planning/graphs/`. +- **`/gsd:thread [list [--open|--resolved] | close | status | name | description]`** — Manage persistent context threads for cross-session work. +- **`/gsd:profile-user [--questionnaire] [--refresh]`** — Generate developer behavioral profile and create Claude-discoverable artifacts. +- **`/gsd:stats`** — Display project statistics: phases, plans, requirements, git metrics, and timeline. ### Workflow & Orchestration -- **`/gsd-manager [--analyze-deps]`** — Interactive command center for managing multiple phases from one terminal. `--analyze-deps` scans ROADMAP phases for dependency relationships before parallel execution. -- **`/gsd-workspace [--new | --list | --remove] [name]`** — Manage GSD workspaces: create, list, or remove isolated workspace environments. -- **`/gsd-workstreams`** — Manage parallel workstreams: list, create, switch, status, progress, complete, and resume. -- **`/gsd-review-backlog`** — Review and promote backlog items to active milestone. -- **`/gsd-milestone-summary [version]`** — Generate a comprehensive project summary from milestone artifacts for team onboarding and review. +- **`/gsd:manager [--analyze-deps]`** — Interactive command center for managing multiple phases from one terminal. `--analyze-deps` scans ROADMAP phases for dependency relationships before parallel execution. +- **`/gsd:workspace [--new | --list | --remove] [name]`** — Manage GSD workspaces: create, list, or remove isolated workspace environments. +- **`/gsd:workstreams`** — Manage parallel workstreams: list, create, switch, status, progress, complete, and resume. +- **`/gsd:review-backlog`** — Review and promote backlog items to active milestone. +- **`/gsd:milestone-summary [version]`** — Generate a comprehensive project summary from milestone artifacts for team onboarding and review. ### Repository Integration -- **`/gsd-inbox [--issues] [--prs] [--label] [--close-incomplete] [--repo owner/repo]`** — Triage and review open GitHub issues and PRs against project templates and contribution guidelines. +- **`/gsd:inbox [--issues] [--prs] [--label] [--close-incomplete] [--repo owner/repo]`** — Triage and review open GitHub issues and PRs against project templates and contribution guidelines. ### Namespace Routers (model-facing meta-skills) @@ -630,10 +630,10 @@ These six skills exist primarily for the model to perform two-stage hierarchical ├── 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) @@ -642,7 +642,7 @@ These six skills exist primarily for the model to perform two-stage hierarchical ├── 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) @@ -664,7 +664,7 @@ These six skills exist primarily for the model to perform two-stage hierarchical ## Workflow Modes -Set during `/gsd-new-project`: +Set during `/gsd:new-project`: **Interactive Mode** @@ -712,53 +712,53 @@ 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-phase --insert 5 "Critical security fix" -/gsd-plan-phase 5.1 -/gsd-execute-phase 5.1 +/gsd:phase --insert 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-capture # Capture from conversation context -/gsd-capture Fix modal z-index # Capture with explicit description -/gsd-capture --note refactor auth system # Quick friction-free note -/gsd-capture --seed "real-time notifications" # Forward-looking idea with triggers -/gsd-capture --list # Review and work on todos -/gsd-capture --list api # Filter by area +/gsd:capture # Capture from conversation context +/gsd:capture Fix modal z-index # Capture with explicit description +/gsd:capture --note refactor auth system # Quick friction-free note +/gsd:capture --seed "real-time notifications" # Forward-looking idea with triggers +/gsd:capture --list # Review and work on todos +/gsd:capture --list 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 @@ -766,5 +766,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 diff --git a/get-shit-done/workflows/import.md b/get-shit-done/workflows/import.md index a2bbcb2c3..b78d6c586 100644 --- a/get-shit-done/workflows/import.md +++ b/get-shit-done/workflows/import.md @@ -32,7 +32,7 @@ Parse `$ARGUMENTS` to determine the execution mode: - If neither flag is found: display usage and exit: ``` -Usage: /gsd-import --from +Usage: /gsd:import --from --from Import an external plan file into GSD format ``` diff --git a/get-shit-done/workflows/inbox.md b/get-shit-done/workflows/inbox.md index 9e5d95011..353e00e08 100644 --- a/get-shit-done/workflows/inbox.md +++ b/get-shit-done/workflows/inbox.md @@ -370,10 +370,10 @@ Next steps: 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 diff --git a/get-shit-done/workflows/ingest-docs.md b/get-shit-done/workflows/ingest-docs.md index 1e48251e0..fc75699db 100644 --- a/get-shit-done/workflows/ingest-docs.md +++ b/get-shit-done/workflows/ingest-docs.md @@ -123,7 +123,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 . + /gsd:ingest-docs again with a narrower . ``` Exit without proceeding. @@ -315,7 +315,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) diff --git a/get-shit-done/workflows/insert-phase.md b/get-shit-done/workflows/insert-phase.md index 54ac687d3..3538bad6d 100644 --- a/get-shit-done/workflows/insert-phase.md +++ b/get-shit-done/workflows/insert-phase.md @@ -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}` --- @@ -135,7 +135,7 @@ Project state updated: .planning/STATE.md - 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) diff --git a/get-shit-done/workflows/list-phase-assumptions.md b/get-shit-done/workflows/list-phase-assumptions.md index f575a4e21..4970faa7c 100644 --- a/get-shit-done/workflows/list-phase-assumptions.md +++ b/get-shit-done/workflows/list-phase-assumptions.md @@ -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 ``` diff --git a/get-shit-done/workflows/list-workspaces.md b/get-shit-done/workflows/list-workspaces.md index 0083addea..aa3aefb65 100644 --- a/get-shit-done/workflows/list-workspaces.md +++ b/get-shit-done/workflows/list-workspaces.md @@ -25,7 +25,7 @@ Parse JSON for: `workspace_base`, `workspaces`, `workspace_count`. No workspaces found in ~/gsd-workspaces/ Create one with: - /gsd-workspace --new --name my-workspace --repos repo1,repo2 + /gsd:workspace --new --name my-workspace --repos repo1,repo2 ``` Done. diff --git a/get-shit-done/workflows/manager.md b/get-shit-done/workflows/manager.md index 67ccd3460..6e40f86d6 100644 --- a/get-shit-done/workflows/manager.md +++ b/get-shit-done/workflows/manager.md @@ -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 ``` @@ -363,11 +363,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. diff --git a/get-shit-done/workflows/map-codebase.md b/get-shit-done/workflows/map-codebase.md index c73dd3750..03a3c112c 100644 --- a/get-shit-done/workflows/map-codebase.md +++ b/get-shit-done/workflows/map-codebase.md @@ -29,8 +29,8 @@ Documents are reference material for Claude when planning/executing. Always incl Parse an optional `--paths ` 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 ,,...` through to each spawned `gsd-codebase-mapper` @@ -415,12 +415,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 diff --git a/get-shit-done/workflows/milestone-summary.md b/get-shit-done/workflows/milestone-summary.md index 7d15ff56a..11b157829 100644 --- a/get-shit-done/workflows/milestone-summary.md +++ b/get-shit-done/workflows/milestone-summary.md @@ -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 diff --git a/get-shit-done/workflows/new-milestone.md b/get-shit-done/workflows/new-milestone.md index d6203d009..d0f6bc2d8 100644 --- a/get-shit-done/workflows/new-milestone.md +++ b/get-shit-done/workflows/new-milestone.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":** @@ -607,9 +607,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 ``` @@ -627,7 +627,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. diff --git a/get-shit-done/workflows/new-project.md b/get-shit-done/workflows/new-project.md index 77b9b0fc2..2ceb19c0c 100644 --- a/get-shit-done/workflows/new-project.md +++ b/get-shit-done/workflows/new-project.md @@ -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. ``` @@ -115,7 +115,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: @@ -136,13 +136,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. @@ -237,7 +237,7 @@ AskUserQuestion([ **Round 3 — PR body onboarding:** -Ask which optional PRD-style sections `/gsd-ship` should append to generated PR bodies. These map to `ship.pr_body_sections`; selected sections are written with `"enabled": true`, unselected seeded sections are written with `"enabled": false` so the project can enable them later without editing `ship.md`. +Ask which optional PRD-style sections `/gsd:ship` should append to generated PR bodies. These map to `ship.pr_body_sections`; selected sections are written with `"enabled": true`, unselected seeded sections are written with `"enabled": false` so the project can enable them later without editing `ship.md`. Prefer lean/agile PRD sections that make the delivered increment clear: user stories, acceptance criteria, Definition of Done or release criteria, risks, dependencies, and stakeholder review. @@ -245,7 +245,7 @@ Prefer lean/agile PRD sections that make the delivered increment clear: user sto AskUserQuestion([ { header: "PR Body", - question: "Which optional PRD-style sections should /gsd-ship include in PR bodies?", + question: "Which optional PRD-style sections should /gsd:ship include in PR bodies?", multiSelect: true, options: [ { label: "User Stories & Acceptance Criteria", description: "Append user-facing stories and acceptance checks from REQUIREMENTS.md" }, @@ -305,8 +305,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. ``` @@ -470,7 +470,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? @@ -681,7 +681,7 @@ questions: [ ] ``` -**PR body onboarding:** Ask which optional PRD-style sections `/gsd-ship` should append to generated PR bodies. Use the same `ship.pr_body_sections` mapping as Step 2a: selected sections get `enabled: true`, seeded-but-unselected sections get `enabled: false`, and selecting none writes an empty list. Prefer lean/agile PRD sections that make user value, acceptance criteria, Definition of Done, and stakeholder traceability explicit. +**PR body onboarding:** Ask which optional PRD-style sections `/gsd:ship` should append to generated PR bodies. Use the same `ship.pr_body_sections` mapping as Step 2a: selected sections get `enabled: true`, seeded-but-unselected sections get `enabled: false`, and selecting none writes an empty list. Prefer lean/agile PRD sections that make user value, acceptance criteria, Definition of Done, and stakeholder traceability explicit. Recommended options: @@ -697,7 +697,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]},"ship":{"pr_body_sections":[{"heading":"User Stories & Acceptance Criteria","enabled":true|false,"source":"REQUIREMENTS.md ## User Stories || REQUIREMENTS.md ## Acceptance Criteria","fallback":"- Acceptance criteria are covered by the linked requirements and verification evidence."},{"heading":"Risks & Dependencies","enabled":true|false,"source":"PLAN.md ## Risks || PLAN.md ## Dependencies","fallback":"- No known high-risk rollout dependencies."},{"heading":"Success Metrics & Release Criteria","enabled":true|false,"source":"REQUIREMENTS.md ## Definition of Done || VERIFICATION.md ## Release Criteria","fallback":"- Release when automated verification and required manual checks pass."},{"heading":"Stakeholder Review & Approval","enabled":true|false,"template":"- Product owner approval pending for {phase_name}."}]}}' ``` -**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:** @@ -1377,7 +1377,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:** @@ -1399,13 +1399,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 ─────────────────────────────────────────────────────────────── ``` @@ -1421,12 +1421,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 ─────────────────────────────────────────────────────────────── ``` @@ -1469,7 +1469,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. diff --git a/get-shit-done/workflows/new-workspace.md b/get-shit-done/workflows/new-workspace.md index 73c293fef..205d5a380 100644 --- a/get-shit-done/workflows/new-workspace.md +++ b/get-shit-done/workflows/new-workspace.md @@ -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-workspace --new --name my-workspace --repos /path/to/repo1,/path/to/repo2 + /gsd:workspace --new --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-workspace --new --name my-workspace --repos repo1,repo2 --auto + /gsd:workspace --new --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 diff --git a/get-shit-done/workflows/next.md b/get-shit-done/workflows/next.md index 5f17e6fe7..2a0e81fff 100644 --- a/get-shit-done/workflows/next.md +++ b/get-shit-done/workflows/next.md @@ -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. @@ -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-progress --next advancement to Phase {dest} +**Deferred at:** {date} during /gsd:progress --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 ` +→ Next action: `/gsd:discuss-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 ` +→ Next action: `/gsd:discuss-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 ` +→ Next action: `/gsd:plan-phase ` **Route 4: Phase has plans but incomplete summaries → execute** If plans exist but not all have matching summaries: -→ Next action: `/gsd-execute-phase ` +→ Next action: `/gsd:execute-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 action: `/gsd:discuss-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` @@ -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-progress --next` is zero-friction advancement. +Do not ask for confirmation — the whole point of `/gsd:progress --next` is zero-friction advancement. diff --git a/get-shit-done/workflows/note.md b/get-shit-done/workflows/note.md index 48432417b..8e701cd0c 100644 --- a/get-shit-done/workflows/note.md +++ b/get-shit-done/workflows/note.md @@ -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) @@ -139,7 +139,7 @@ Promoted from quick note captured on {original date}. 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 diff --git a/get-shit-done/workflows/pause-work.md b/get-shit-done/workflows/pause-work.md index 7d7dec994..218e5dd0c 100644 --- a/get-shit-done/workflows/pause-work.md +++ b/get-shit-done/workflows/pause-work.md @@ -1,5 +1,5 @@ -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. @@ -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 ``` diff --git a/get-shit-done/workflows/plan-milestone-gaps.md b/get-shit-done/workflows/plan-milestone-gaps.md index bcf191fe9..14463ef74 100644 --- a/get-shit-done/workflows/plan-milestone-gaps.md +++ b/get-shit-done/workflows/plan-milestone-gaps.md @@ -1,5 +1,5 @@ -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. @@ -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 @@ -172,20 +172,20 @@ gsd-sdk query commit "docs(roadmap): add gap closure phases {N}-{M}" --files .pl `/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 ``` @@ -276,5 +276,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 diff --git a/get-shit-done/workflows/plan-phase.md b/get-shit-done/workflows/plan-phase.md index cfed47888..dc21ea48c 100644 --- a/get-shit-done/workflows/plan-phase.md +++ b/get-shit-done/workflows/plan-phase.md @@ -51,7 +51,7 @@ Parse JSON for: `researcher_model`, `planner_model`, `checker_model`, `research_ **File paths (for 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 @@ -141,9 +141,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. @@ -273,7 +273,7 @@ gsd-sdk query commit "docs(${padded_phase}): generate context from PRD" --files 1. Display banner: `GSD ► ADR Ingest Express Path` with `{INGEST_PATH}` and `{INGEST_FORMAT}`. 2. Parse each resolved ADR through `get-shit-done/bin/lib/adr-parser.cjs` (`--input`, `--format`) and collect normalized records. 3. Status gate: reject `superseded`/`rejected`/`deprecated`; warn on `proposed`; missing status defaults to `accepted`. -4. Empty-decisions fallback: if all parsed ADRs have zero `decisions[]`, emit `ADR ingest produced no locked decisions; fall back to discuss-phase for this phase.` and exit with `/gsd-discuss-phase {N}` guidance. +4. Empty-decisions fallback: if all parsed ADRs have zero `decisions[]`, emit `ADR ingest produced no locked decisions; fall back to discuss-phase for this phase.` and exit with `/gsd:discuss-phase {N}` guidance. 5. Generate CONTEXT.md using ``, ``, ``, ``, ``, ``, map `consequences_positive[]` to Success Criteria and `consequences_negative[]` to Risk Summary, and include `**Source:** ADR Ingest Express Path ({INGEST_PATH})`. 6. Commit with `gsd-sdk query commit "docs(${padded_phase}): generate context from ADR ingest" --files "${phase_dir}/${padded_phase}-CONTEXT.md"` and set `context_content`; continue to step 5. @@ -323,9 +323,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.** @@ -348,19 +348,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: @@ -454,7 +454,7 @@ Answer: "What do I need to know to PLAN this phase well?" -- {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) @@ -494,7 +494,7 @@ Agent( **Skip if:** `RESEARCH_ONLY` is `false` (the default). -**If `RESEARCH_ONLY=true`:** the user invoked `/gsd-plan-phase --research-phase ` for research-only mode. Do **not** continue to Section 5.5+ (validation strategy, planner, plan-checker, verification, gaps, bounce, post-planning-gaps). Print the research-complete summary and exit cleanly: +**If `RESEARCH_ONLY=true`:** the user invoked `/gsd:plan-phase --research-phase ` for research-only mode. Do **not** continue to Section 5.5+ (validation strategy, planner, plan-checker, verification, gaps, bounce, post-planning-gaps). Print the research-complete summary and exit cleanly: ```text ✓ Research-only mode complete (#3042) @@ -502,8 +502,8 @@ Agent( Phase: ${PHASE} RESEARCH.md: ${research_path} -Re-run /gsd-plan-phase ${PHASE} to plan the phase using this research, -or /gsd-plan-phase ${PHASE} --research to refresh research and plan. +Re-run /gsd:plan-phase ${PHASE} to plan the phase using this research, +or /gsd:plan-phase ${PHASE} --research to refresh research and plan. ``` This exits the workflow. The planner / plan-checker / verifier blocks below are skipped. @@ -621,10 +621,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.** @@ -740,7 +740,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) @@ -778,7 +778,7 @@ Pattern mapper prompt: **Padded phase:** {padded_phase} -- {context_path} (USER DECISIONS from /gsd-discuss-phase) +- {context_path} (USER DECISIONS from /gsd:discuss-phase) - {research_path} (Technical Research) @@ -830,7 +830,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) @@ -878,7 +878,7 @@ ${MVP_MODE === 'true' ? ` -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 @@ -951,10 +951,10 @@ Agent( Chunked mode splits the single long-lived planner Agent run into a short outline Agent run followed by N short per-plan Agent runs. Each run is bounded to ~3–5 min; each plan is committed individually for crash resilience. If any run 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) @@ -1084,7 +1084,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. @@ -1117,7 +1117,7 @@ rest become a follow-up phase Use AskUserQuestion with these 3 options. -**If "Split":** Use `/gsd-phase --insert` to create the sub-phases, then replan each. +**If "Split":** Use `/gsd:phase --insert` 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. @@ -1146,7 +1146,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-phase --insert` for overflow items, then replan. +**If "Split":** Use `/gsd:phase --insert` 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 @@ -1171,7 +1171,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) @@ -1244,7 +1244,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. @@ -1273,7 +1273,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. @@ -1289,7 +1289,7 @@ Revision prompt: - {PHASE_DIR}/*-PLAN.md (Existing plans) -- {context_path} (USER DECISIONS from /gsd-discuss-phase) +- {context_path} (USER DECISIONS from /gsd:discuss-phase) ${AGENT_SKILLS_PLANNER} @@ -1590,7 +1590,7 @@ sort within source):** - Both missing or `` 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 @@ -1647,14 +1647,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:** @@ -1687,15 +1687,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 ─────────────────────────────────────────────────────────────── @@ -1716,11 +1716,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 ``` diff --git a/get-shit-done/workflows/plan-review-convergence.md b/get-shit-done/workflows/plan-review-convergence.md index 944053140..c953f14c3 100644 --- a/get-shit-done/workflows/plan-review-convergence.md +++ b/get-shit-done/workflows/plan-review-convergence.md @@ -56,7 +56,7 @@ Enable it with: gsd config-set workflow.plan_review_convergence true -Then re-run: /gsd-plan-review-convergence {PHASE} +Then re-run: /gsd:plan-review-convergence {PHASE} ``` ## 2. Initialize @@ -102,7 +102,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}') @@ -138,7 +138,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}') @@ -226,7 +226,7 @@ Display: No HIGH concerns remaining. REVIEWS.md: {REVIEWS_FILE} - Next: /gsd-execute-phase {PHASE} + Next: /gsd:execute-phase {PHASE} ``` Exit — convergence achieved. @@ -280,8 +280,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. @@ -296,7 +296,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}') diff --git a/get-shit-done/workflows/plant-seed.md b/get-shit-done/workflows/plant-seed.md index bed8e51ee..d153ff90f 100644 --- a/get-shit-done/workflows/plant-seed.md +++ b/get-shit-done/workflows/plant-seed.md @@ -1,6 +1,6 @@ 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: @@ -82,17 +82,17 @@ scope: unknown ## Why This Matters -_To be filled in. Run `/gsd-capture --seed --enrich SEED-{PADDED}` to add context._ +_To be filled in. Run `/gsd:capture --seed --enrich SEED-{PADDED}` to add context._ ## When to Surface **Trigger:** when relevant -This seed will surface during `/gsd-new-milestone` when the milestone scope matches. +This seed will surface during `/gsd:new-milestone` when the milestone scope matches. ## Scope Estimate -**Unknown** — run `/gsd-capture --seed --enrich SEED-{PADDED}` to estimate effort. +**Unknown** — run `/gsd:capture --seed --enrich SEED-{PADDED}` to estimate effort. ## Breadcrumbs @@ -146,10 +146,10 @@ gsd-sdk query commit "docs: plant seed — {$IDEA}" --files .planning/seeds/SEED "{$IDEA}" File: .planning/seeds/SEED-{PADDED}-{slug}.md -Trigger and scope are set to defaults. Run `/gsd-capture --seed --enrich SEED-{PADDED}` +Trigger and scope are set to defaults. Run `/gsd:capture --seed --enrich SEED-{PADDED}` to add trigger conditions, rationale, and scope estimate at your convenience. -This seed will surface automatically when you run /gsd-new-milestone. +This seed will surface automatically when you run /gsd:new-milestone. ``` diff --git a/get-shit-done/workflows/pr-branch.md b/get-shit-done/workflows/pr-branch.md index 9bf74d52c..e8582d324 100644 --- a/get-shit-done/workflows/pr-branch.md +++ b/get-shit-done/workflows/pr-branch.md @@ -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. ``` diff --git a/get-shit-done/workflows/profile-user.md b/get-shit-done/workflows/profile-user.md index d5fd4ccf5..bd0415f75 100644 --- a/get-shit-done/workflows/profile-user.md +++ b/get-shit-done/workflows/profile-user.md @@ -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 --- diff --git a/get-shit-done/workflows/progress.md b/get-shit-done/workflows/progress.md index e1cceb9a3..c01237460 100644 --- a/get-shit-done/workflows/progress.md +++ b/get-shit-done/workflows/progress.md @@ -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`. @@ -128,10 +128,10 @@ CONTEXT: [✓ if has_context | - if not] - [e.g. jq -r '.blockers[].text' from state-snapshot] ## Pending Todos -- [count] pending — /gsd-capture --list to review +- [count] pending — /gsd:capture --list 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 @@ -215,8 +215,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. @@ -247,7 +247,7 @@ Read its `` section. `/clear` then: -`/gsd-execute-phase {phase} ${GSD_WS}` +`/gsd:execute-phase {phase} ${GSD_WS}` --- ``` @@ -277,7 +277,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}` --- ``` @@ -293,14 +293,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-discuss-phase {phase}` — include assumptions check before planning +- `/gsd:ui-phase {phase}` — generate UI design contract (recommended for frontend phases) +- `/gsd:plan-phase {phase}` — skip discussion, plan directly +- `/gsd:discuss-phase {phase}` — include assumptions check before planning --- ``` @@ -316,13 +316,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-discuss-phase {phase} ${GSD_WS}` — include assumptions check before planning +- `/gsd:plan-phase {phase} ${GSD_WS}` — skip discussion, plan directly +- `/gsd:discuss-phase {phase} ${GSD_WS}` — include assumptions check before planning --- ``` @@ -342,13 +342,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 --- ``` @@ -368,13 +368,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 --- ``` @@ -424,14 +424,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 --- ``` @@ -449,13 +449,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 --- ``` @@ -477,12 +477,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 --- ``` @@ -508,7 +508,7 @@ Ready to plan the next milestone. `/clear` then: -`/gsd-new-milestone ${GSD_WS}` +`/gsd:new-milestone ${GSD_WS}` --- ``` @@ -518,10 +518,10 @@ Ready to plan the next milestone. **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}` @@ -628,12 +628,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` @@ -643,7 +643,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 diff --git a/get-shit-done/workflows/quick.md b/get-shit-done/workflows/quick.md index c5627d2c0..cbc792087 100644 --- a/get-shit-done/workflows/quick.md +++ b/get-shit-done/workflows/quick.md @@ -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 query-capable GSD SDK CLI:" echo " npm install -g get-shit-done-cc" echo "" echo "Or update GSD to get the latest packages:" - echo " /gsd-update" + echo " /gsd:update" exit 1 fi ``` @@ -170,7 +170,7 @@ fi Quick mode does not have a pre-declared `files_modified` list (the task is freeform), so use a fail-loud guard at commit time: when the executor stages files for the quick-task commit, if any staged path falls inside a `SUBMODULE_PATHS` entry, abort with a clear error explaining that worktree-isolated commits cannot safely span submodule boundaries — the user can re-run with `workflow.use_worktrees=false` to fall back to sequential execution on the main tree. If `SUBMODULE_PATHS` is empty (no `.gitmodules` in the repo), worktree isolation proceeds normally. -**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. @@ -1115,7 +1115,7 @@ Commit: ${commit_hash} --- -Ready for next task: /gsd-quick ${GSD_WS} +Ready for next task: /gsd:quick ${GSD_WS} ``` **If NOT `$VALIDATE_MODE`:** @@ -1132,7 +1132,7 @@ Commit: ${commit_hash} --- -Ready for next task: /gsd-quick ${GSD_WS} +Ready for next task: /gsd:quick ${GSD_WS} ``` diff --git a/get-shit-done/workflows/reapply-patches.md b/get-shit-done/workflows/reapply-patches.md index 9dbe24ae6..1f5b2ce56 100644 --- a/get-shit-done/workflows/reapply-patches.md +++ b/get-shit-done/workflows/reapply-patches.md @@ -1,6 +1,6 @@ # Reapply Local Patches Workflow -Invoked by `/gsd-update --reapply` (`commands/gsd/update.md`). +Invoked by `/gsd:update --reapply` (`commands/gsd/update.md`). After a GSD update wipes and reinstalls files, this workflow merges user's previously saved local modifications back into the new version. Uses three-way comparison (pristine baseline, user-modified backup, newly installed version) to reliably distinguish user customizations from version drift. @@ -111,7 +111,7 @@ Read `backup-meta.json` from the patches directory. ``` No local patches found. Nothing to reapply. -Local patches are automatically saved when you run /gsd-update +Local patches are automatically saved when you run /gsd:update after modifying any GSD workflow, command, or agent files. ``` Exit. @@ -317,7 +317,7 @@ Resolve before proceeding: (a) Re-merge the missing content into the installed file by hand, or (b) Restore from backup: cp {patches_dir}/{file} {installed_path} -Then re-run /gsd-update --reapply to re-verify. +Then re-run /gsd:update --reapply to re-verify. ``` Do not proceed to cleanup until the verifier exits 0. @@ -334,7 +334,7 @@ The Hunk Verification Table produced in Step 4 must also be reviewed before proc ERROR: Hunk Verification Table is missing — Step 4 did not produce it. The deterministic verifier (5a) may still have passed, but a missing table means post-merge verification was not fully completed. Rerun -/gsd-update --reapply to retry with full verification. +/gsd:update --reapply to retry with full verification. ``` A missing table absent from the workflow output cannot bypass this gate. diff --git a/get-shit-done/workflows/remove-phase.md b/get-shit-done/workflows/remove-phase.md index 645c11550..7d34bdc62 100644 --- a/get-shit-done/workflows/remove-phase.md +++ b/get-shit-done/workflows/remove-phase.md @@ -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 diff --git a/get-shit-done/workflows/resume-project.md b/get-shit-done/workflows/resume-project.md index e7b6ea5e6..ec333fe35 100644 --- a/get-shit-done/workflows/resume-project.md +++ b/get-shit-done/workflows/resume-project.md @@ -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 @@ -89,7 +89,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 @@ -145,7 +145,7 @@ Present complete project status to user: Resume with: Task tool (resume parameter with agent ID) [If pending todos exist:] -📋 [N] pending todos — /gsd-capture --list to review +📋 [N] pending todos — /gsd:capture --list to review [If blockers exist:] ⚠️ Carried concerns: @@ -205,11 +205,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 @@ -242,7 +242,7 @@ Resume-specific exception: do **not** emit `/clear then:` here. Resume is alread **{phase}-{plan}: [Plan Name]** — [objective from PLAN.md] - `/gsd-execute-phase {phase} ${GSD_WS}` + `/gsd:execute-phase {phase} ${GSD_WS}` --- ``` @@ -254,13 +254,13 @@ Resume-specific exception: do **not** emit `/clear then:` here. Resume is alread **Phase [N]: [Name]** — [Goal from ROADMAP.md] - `/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-plan-phase --research-phase [N] ${GSD_WS}` — investigate unknowns + - `/gsd:discuss-phase [N] ${GSD_WS}` — gather context first + - `/gsd:plan-phase --research-phase [N] ${GSD_WS}` — investigate unknowns --- ``` diff --git a/get-shit-done/workflows/review.md b/get-shit-done/workflows/review.md index 828405582..ca8b30c80 100644 --- a/get-shit-done/workflows/review.md +++ b/get-shit-done/workflows/review.md @@ -61,7 +61,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. @@ -430,7 +430,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. @@ -443,5 +443,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) diff --git a/get-shit-done/workflows/scan.md b/get-shit-done/workflows/scan.md index 3b4951ddd..fd50852d9 100644 --- a/get-shit-done/workflows/scan.md +++ b/get-shit-done/workflows/scan.md @@ -90,7 +90,7 @@ Agent( **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. ``` diff --git a/get-shit-done/workflows/secure-phase.md b/get-shit-done/workflows/secure-phase.md index 6ad0a2a63..42d71ae9e 100644 --- a/get-shit-done/workflows/secure-phase.md +++ b/get-shit-done/workflows/secure-phase.md @@ -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 @@ -137,7 +137,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. ``` @@ -155,8 +155,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. diff --git a/get-shit-done/workflows/settings-advanced.md b/get-shit-done/workflows/settings-advanced.md index 23eb819ee..20a1309ad 100644 --- a/get-shit-done/workflows/settings-advanced.md +++ b/get-shit-done/workflows/settings-advanced.md @@ -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, graphify build timeout, and runtime model tier overrides. -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 seven sections so each prompt batch stays cognitively scoped. Every answer pre-selects the @@ -554,11 +554,11 @@ Display: | model_profile_overrides..sonnet | {model/built-in/null} | | model_profile_overrides..haiku | {model/built-in/null} | -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. ``` diff --git a/get-shit-done/workflows/settings-integrations.md b/get-shit-done/workflows/settings-integrations.md index d342bd04e..76de746ae 100644 --- a/get-shit-done/workflows/settings-integrations.md +++ b/get-shit-done/workflows/settings-integrations.md @@ -5,7 +5,7 @@ agent-skill injection (`agent_skills.`). 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) +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. @@ -264,7 +264,7 @@ Notes: and not displayed in error messages. Quick commands: -- /gsd-settings — workflow toggles and model profile +- /gsd:settings — workflow toggles and model profile - /gsd-set-profile — switch model profile ``` diff --git a/get-shit-done/workflows/settings.md b/get-shit-done/workflows/settings.md index 0b8307236..51642e375 100644 --- a/get-shit-done/workflows/settings.md +++ b/get-shit-done/workflows/settings.md @@ -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-map-codebase --query) (default: false if absent) -- `graphify.enabled` — enable project knowledge graph (/gsd-graphify) (default: false if absent) +- `intel.enabled` — enable queryable codebase intelligence (/gsd:map-codebase --query) (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-map-codebase --query — builds a JSON index in .planning/intel/)", + question: "Enable Intel? (queryable codebase intelligence via /gsd:map-codebase --query — 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-map-codebase --query commands. Builds and queries a JSON index of the codebase." } + { label: "Yes", description: "Enable /gsd:map-codebase --query 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-config --integrations — configure API keys (Brave/Firecrawl/Exa), review.models CLI routing, and agent_skills injection -- /gsd-config --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-config --advanced — power-user tuning (plan bounce, timeouts, branch templates, cross-AI, context window) +- /gsd:config --integrations — configure API keys (Brave/Firecrawl/Exa), review.models CLI routing, and agent_skills injection +- /gsd:config --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:config --advanced — power-user tuning (plan bounce, timeouts, branch templates, cross-AI, context window) ``` diff --git a/get-shit-done/workflows/ship.md b/get-shit-done/workflows/ship.md index 27d95c585..52481eb7b 100644 --- a/get-shit-done/workflows/ship.md +++ b/get-shit-done/workflows/ship.md @@ -151,7 +151,7 @@ CUSTOM_PR_SECTIONS=$(gsd-sdk query config-get ship.pr_body_sections --default '[ `ship.pr_body_sections` is an onboarding-time extension point for teams that need extra PRD-style sections such as `User Stories & Acceptance Criteria`, `Risks & Dependencies`, `Success Metrics`, `Release Criteria`, or `Stakeholder Review & Approval`. -Use these sections for lean/agile PRD material that should travel with the PR without making the core `/gsd-ship` body configurable: +Use these sections for lean/agile PRD material that should travel with the PR without making the core `/gsd:ship` body configurable: - User stories and acceptance criteria that explain the functional increment from the user's point of view. - Definition of Done or release criteria that make the completion standard explicit. @@ -329,8 +329,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) ─────────────────────────────────────────────────────────────── ``` @@ -341,9 +341,9 @@ Next steps: 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 diff --git a/get-shit-done/workflows/sketch-wrap-up.md b/get-shit-done/workflows/sketch-wrap-up.md index 6edf9d39a..6b231881c 100644 --- a/get-shit-done/workflows/sketch-wrap-up.md +++ b/get-shit-done/workflows/sketch-wrap-up.md @@ -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`. @@ -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 ─────────────────────────────────────────────────────────────── @@ -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`) diff --git a/get-shit-done/workflows/sketch.md b/get-shit-done/workflows/sketch.md index 6ef5a2636..8108f6bb9 100644 --- a/get-shit-done/workflows/sketch.md +++ b/get-shit-done/workflows/sketch.md @@ -1,7 +1,7 @@ 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 ─────────────────────────────────────────────────────────────── diff --git a/get-shit-done/workflows/spec-phase.md b/get-shit-done/workflows/spec-phase.md index 46aca520e..6a713a866 100644 --- a/get-shit-done/workflows/spec-phase.md +++ b/get-shit-done/workflows/spec-phase.md @@ -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 diff --git a/get-shit-done/workflows/spike-wrap-up.md b/get-shit-done/workflows/spike-wrap-up.md index fd72b4d02..676a74941 100644 --- a/get-shit-done/workflows/spike-wrap-up.md +++ b/get-shit-done/workflows/spike-wrap-up.md @@ -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`. @@ -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`) diff --git a/get-shit-done/workflows/spike.md b/get-shit-done/workflows/spike.md index df1a5f527..307706676 100644 --- a/get-shit-done/workflows/spike.md +++ b/get-shit-done/workflows/spike.md @@ -1,7 +1,7 @@ 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" --files .planning/spikes **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 ─────────────────────────────────────────────────────────────── diff --git a/get-shit-done/workflows/stats.md b/get-shit-done/workflows/stats.md index 360083c7d..237cca862 100644 --- a/get-shit-done/workflows/stats.md +++ b/get-shit-done/workflows/stats.md @@ -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. diff --git a/get-shit-done/workflows/thread.md b/get-shit-done/workflows/thread.md index bb131c450..05b1a043a 100644 --- a/get-shit-done/workflows/thread.md +++ b/get-shit-done/workflows/thread.md @@ -1,6 +1,6 @@ # Thread Workflow -Invoked by `/gsd-thread` (`commands/gsd/thread.md`). +Invoked by `/gsd:thread` (`commands/gsd/thread.md`). Create, list, close, or resume persistent context threads for cross-session work. @@ -52,7 +52,7 @@ frontend-build-tools resolved 2026-04-01 Vite vs webpack If no threads exist (or none match the filter): ``` -No threads found. Create one with: /gsd-thread +No threads found. Create one with: /gsd:thread ``` STOP after displaying. Do NOT proceed to further steps. @@ -107,8 +107,8 @@ When SUBCMD=status and SLUG is set (already sanitized): Next Steps: {content of ## Next Steps section} ───────────────────────────────────── - Resume with: /gsd-thread {SLUG} - Close with: /gsd-thread close {SLUG} + Resume with: /gsd:thread {SLUG} + Close with: /gsd:thread close {SLUG} ``` No agent spawn. STOP after printing. @@ -195,8 +195,8 @@ updated: {today ISO date} Thread: {slug} File: .planning/threads/{slug}.md - Resume anytime with: /gsd-thread {slug} - Close when done with: /gsd-thread close {slug} + Resume anytime with: /gsd:thread {slug} + Close when done with: /gsd:thread close {slug} ``` @@ -204,7 +204,7 @@ updated: {today ISO date} - Threads are NOT phase-scoped — they exist independently of the roadmap -- Lighter weight than /gsd-pause-work — no phase state, no plan context +- Lighter weight than /gsd:pause-work — no phase state, no plan context - The value is in Context and Next Steps — a cold-start session can pick up immediately - Threads can be promoted to phases or backlog items when they mature: /gsd-add-phase or /gsd-add-backlog with context from the thread diff --git a/get-shit-done/workflows/transition.md b/get-shit-done/workflows/transition.md index d0457e728..625ea3966 100644 --- a/get-shit-done/workflows/transition.md +++ b/get-shit-done/workflows/transition.md @@ -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 @@ -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}") @@ -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-plan-phase --research-phase [X+1] ${GSD_WS}` — investigate unknowns +- `/gsd:plan-phase [X+1] ${GSD_WS}` — skip discussion, plan directly +- `/gsd:plan-phase --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-plan-phase --research-phase [X+1] ${GSD_WS}` — investigate unknowns +- `/gsd:discuss-phase [X+1] ${GSD_WS}` — revisit context +- `/gsd:plan-phase --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}` Milestone completion will be available once all workstreams finish. --- ``` -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}") @@ -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}` --- diff --git a/get-shit-done/workflows/ui-phase.md b/get-shit-done/workflows/ui-phase.md index 849f016b4..21f98dc06 100644 --- a/get-shit-done/workflows/ui-phase.md +++ b/get-shit-done/workflows/ui-phase.md @@ -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) ${AGENT_SKILLS_UI} @@ -257,7 +257,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 ``` @@ -283,14 +283,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) ─────────────────────────────────────────────────────────────── ``` diff --git a/get-shit-done/workflows/ui-review.md b/get-shit-done/workflows/ui-review.md index 335653130..08aee528a 100644 --- a/get-shit-done/workflows/ui-review.md +++ b/get-shit-done/workflows/ui-review.md @@ -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. @@ -144,11 +144,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 ─────────────────────────────────────────────────────────────── ``` diff --git a/get-shit-done/workflows/ultraplan-phase.md b/get-shit-done/workflows/ultraplan-phase.md index f9fde0520..a6a448c50 100644 --- a/get-shit-done/workflows/ultraplan-phase.md +++ b/get-shit-done/workflows/ultraplan-phase.md @@ -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. ``` @@ -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. ``` @@ -52,7 +52,7 @@ Use /gsd-plan-phase for local planning instead. 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 + 7. Run: /gsd:import --from -/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. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ diff --git a/get-shit-done/workflows/undo.md b/get-shit-done/workflows/undo.md index 375ef46a4..fac14de0b 100644 --- a/get-shit-done/workflows/undo.md +++ b/get-shit-done/workflows/undo.md @@ -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 ``` @@ -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 ─────────────────────────────────────────────────────────────── ``` diff --git a/get-shit-done/workflows/update.md b/get-shit-done/workflows/update.md index 6ff794b23..9d82e3427 100644 --- a/get-shit-done/workflows/update.md +++ b/get-shit-done/workflows/update.md @@ -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`. @@ -356,7 +356,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. ``` @@ -406,7 +406,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-update --reapply` 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:update --reapply` after the update. ``` @@ -588,7 +588,7 @@ done # Clear the shared tool-agnostic cache written by gsd-check-update.js hook (#2784). # The hook uses ~/.cache/gsd/gsd-update-check.json regardless of runtime; clear it -# so the statusline stops showing the stale "⬆ /gsd-update" indicator after update. +# so the statusline stops showing the stale "⬆ /gsd:update" indicator after update. rm -f "$HOME/.cache/gsd/gsd-update-check.json" ``` @@ -619,7 +619,7 @@ Check for gsd-local-patches/backup-meta.json in the config directory. ``` Local patches were backed up before the update. -Run `/gsd-update --reapply` to merge your modifications into the new version. +Run `/gsd:update --reapply` to merge your modifications into the new version. ``` **If no patches:** Continue normally. diff --git a/get-shit-done/workflows/validate-phase.md b/get-shit-done/workflows/validate-phase.md index f418cf618..3aa80de9c 100644 --- a/get-shit-done/workflows/validate-phase.md +++ b/get-shit-done/workflows/validate-phase.md @@ -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 @@ -148,14 +148,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. diff --git a/get-shit-done/workflows/verify-work.md b/get-shit-done/workflows/verify-work.md index ede27ea52..cd8826879 100644 --- a/get-shit-done/workflows/verify-work.md +++ b/get-shit-done/workflows/verify-work.md @@ -1,5 +1,5 @@ -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. @@ -89,7 +89,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:** @@ -455,21 +455,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`): @@ -485,10 +485,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) ``` @@ -516,7 +516,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. @@ -575,7 +575,7 @@ ${AGENT_SKILLS_PLANNER} -Output consumed by /gsd-execute-phase +Output consumed by /gsd:execute-phase Plans must be executable prompts. """, @@ -694,7 +694,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. @@ -722,7 +722,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` ─────────────────────────────────────────────────────────────── ``` @@ -776,5 +776,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 diff --git a/hooks/gsd-context-monitor.js b/hooks/gsd-context-monitor.js index 5b0ae89b9..51f23dee3 100644 --- a/hooks/gsd-context-monitor.js +++ b/hooks/gsd-context-monitor.js @@ -130,7 +130,7 @@ process.stdin.on('end', () => { const isGsdActive = fs.existsSync(path.join(cwd, '.planning', 'STATE.md')); // On CRITICAL with active GSD project, auto-record session state as a - // breadcrumb for /gsd-resume-work (#1974). Fire-and-forget subprocess — + // breadcrumb for /gsd:resume-work (#1974). Fire-and-forget subprocess — // doesn't block the hook or the agent. Fires ONCE per CRITICAL session, // guarded by warnData.criticalRecorded to prevent repeated overwrites // of the "crash moment" record on every debounce cycle. @@ -163,7 +163,7 @@ process.stdin.on('end', () => { ? `CONTEXT CRITICAL: Usage at ${usedPct}%. Remaining: ${remaining}%. ` + 'Context is nearly exhausted. Do NOT start new complex work or write handoff files — ' + 'GSD state is already tracked in STATE.md. Inform the user so they can run ' + - '/gsd-pause-work at the next natural stopping point.' + '/gsd:pause-work at the next natural stopping point.' : `CONTEXT CRITICAL: Usage at ${usedPct}%. Remaining: ${remaining}%. ` + 'Context is nearly exhausted. Inform the user that context is low and ask how they ' + 'want to proceed. Do NOT autonomously save state or write handoff files unless the user asks.'; diff --git a/hooks/gsd-statusline.js b/hooks/gsd-statusline.js index ee8ec9f87..33821c19f 100755 --- a/hooks/gsd-statusline.js +++ b/hooks/gsd-statusline.js @@ -398,11 +398,11 @@ function runStatusline() { try { const cache = JSON.parse(fs.readFileSync(cacheFile, 'utf8')); if (cache.update_available) { - gsdUpdate = '\x1b[33m⬆ /gsd-update\x1b[0m │ '; + gsdUpdate = '\x1b[33m⬆ /gsd:update\x1b[0m │ '; } if (cache.stale_hooks && cache.stale_hooks.length > 0) { // If installed version is ahead of npm latest, this is a dev install. - // Running /gsd-update would downgrade — show a contextual warning instead. + // Running /gsd:update would downgrade — show a contextual warning instead. const isDevInstall = (() => { if (!cache.installed || !cache.latest || cache.latest === 'unknown') return false; const parseV = v => v.replace(/^v/, '').split('.').map(Number); @@ -413,7 +413,7 @@ function runStatusline() { if (isDevInstall) { gsdUpdate += '\x1b[33m⚠ dev install — re-run installer to sync hooks\x1b[0m │ '; } else { - gsdUpdate += '\x1b[31m⚠ stale hooks — run /gsd-update\x1b[0m │ '; + gsdUpdate += '\x1b[31m⚠ stale hooks — run /gsd:update\x1b[0m │ '; } } } catch (e) {} diff --git a/hooks/gsd-update-banner.js b/hooks/gsd-update-banner.js index 29b64d5fc..e6fdd7f17 100755 --- a/hooks/gsd-update-banner.js +++ b/hooks/gsd-update-banner.js @@ -41,7 +41,7 @@ function buildBannerOutput(state) { const installed = cache.installed || 'unknown'; const latest = cache.latest || 'unknown'; return { - systemMessage: `GSD update available: ${installed} → ${latest}. Run /gsd-update.`, + systemMessage: `GSD update available: ${installed} → ${latest}. Run /gsd:update.`, }; } diff --git a/hooks/gsd-workflow-guard.js b/hooks/gsd-workflow-guard.js index 662cc7518..55ba45cf4 100644 --- a/hooks/gsd-workflow-guard.js +++ b/hooks/gsd-workflow-guard.js @@ -5,7 +5,7 @@ // (no active /gsd- skill or Task subagent) and injects an advisory warning. // // This is a SOFT guard — it advises, not blocks. The edit still proceeds. -// The warning nudges Claude to use /gsd-quick or /gsd-fast instead of +// The warning nudges Claude to use /gsd:quick or /gsd:fast instead of // making direct edits that bypass state tracking. // // Enable via config: hooks.workflow_guard: true (default: false) @@ -80,7 +80,7 @@ process.stdin.on('end', () => { hookEventName: "PreToolUse", additionalContext: `⚠️ WORKFLOW ADVISORY: You're editing ${path.basename(filePath)} directly without a GSD command. ` + 'This edit will not be tracked in STATE.md or produce a SUMMARY.md. ' + - 'Consider using /gsd-fast for trivial fixes or /gsd-quick for larger changes ' + + 'Consider using /gsd:fast for trivial fixes or /gsd:quick for larger changes ' + 'to maintain project state tracking. ' + 'If this is intentional (e.g., user explicitly asked for a direct edit), proceed normally.' } diff --git a/scripts/fix-slash-commands.cjs b/scripts/fix-slash-commands.cjs index 2b06ce426..079751f12 100644 --- a/scripts/fix-slash-commands.cjs +++ b/scripts/fix-slash-commands.cjs @@ -1,6 +1,6 @@ 'use strict'; /** - * One-shot script: replace retired /gsd: with /gsd- for known command names. + * One-shot script: replace retired /gsd- with /gsd: for known command names. * Only replaces when followed by a word boundary (space, newline, quote, backtick, ), end). * * The transform is exported as a pure function so it can be unit-tested directly @@ -19,7 +19,7 @@ const SEARCH_DIRS = [ path.join(__dirname, '..', 'get-shit-done', 'contexts'), path.join(__dirname, '..', 'commands', 'gsd'), path.join(__dirname, '..', 'agents'), - path.join(__dirname, '..', 'sdk', 'src'), + path.join(__dirname, '..', 'hooks'), ]; const TOP_LEVEL_FILES = [ @@ -36,25 +36,25 @@ function isTestFile(name) { } function buildPattern(cmdNames) { - // Empty input would compile `/gsd:()(?=[^a-zA-Z0-9_-]|$)/g`, which the regex - // engine still matches at any `/gsd:` token followed by a non-word boundary - // (e.g. EOL, whitespace, punctuation) — rewriting it to a stray `/gsd-`. + // Empty input would compile `/gsd-()(?=[^a-zA-Z0-9_-]|$)/g`, which the regex + // engine still matches at any `/gsd-` token followed by a non-word boundary + // (e.g. EOL, whitespace, punctuation) — rewriting it to a stray `/gsd:`. // Short-circuit so the caller can no-op on a missing/empty registry rather // than perform an unintended broad rewrite. if (!Array.isArray(cmdNames) || cmdNames.length === 0) return null; const sorted = [...cmdNames].sort((a, b) => b.length - a.length); // longest first to avoid partial matches - return new RegExp(`/gsd:(${sorted.join('|')})(?=[^a-zA-Z0-9_-]|$)`, 'g'); + return new RegExp(`/gsd-(${sorted.join('|')})(?=[^a-zA-Z0-9_-]|$)`, 'g'); } /** - * Pure transform: rewrite retired `/gsd:` to `/gsd-` for the given command names. - * Returns the rewritten string. Identifiers not in `cmdNames` (e.g. `/gsd:sdk`, - * `/gsd:tools`) are left untouched. + * Pure transform: rewrite retired `/gsd-` to `/gsd:` for the given command names. + * Returns the rewritten string. Identifiers not in `cmdNames` (e.g. `/gsd-sdk`, + * `/gsd-tools`) are left untouched. */ function transformContent(src, cmdNames) { const pattern = buildPattern(cmdNames); if (!pattern) return src; - return src.replace(pattern, (_, cmd) => `/gsd-${cmd}`); + return src.replace(pattern, (_, cmd) => `/gsd:${cmd}`); } function readCmdNames() { diff --git a/tests/bug-2543-gsd-slash-namespace.test.cjs b/tests/bug-2543-gsd-slash-namespace.test.cjs index 3a65a92c9..138f13d9b 100644 --- a/tests/bug-2543-gsd-slash-namespace.test.cjs +++ b/tests/bug-2543-gsd-slash-namespace.test.cjs @@ -3,21 +3,16 @@ // allow-test-rule: structural-regression-guard /** - * Slash-command namespace invariant (#2543, updated by #2697). + * Slash-command namespace invariant (#3443). * * History: - * #2543 switched user-facing references from /gsd- (dash) to /gsd: (colon) - * because Claude Code's skill frontmatter used `name: gsd:`. - * #2697 reversed this: Claude Code slash commands are invoked by skill *directory* - * name (gsd-), not frontmatter name. The colon form (/gsd:) does not work - * as a user-typed slash command. Other environment installers (OpenCode, Copilot, - * Antigravity) already transform gsd: → gsd- at install time, so changing the source - * to use gsd- makes all environments consistent. + * #3443 re-establishes `/gsd:` as canonical in Claude-facing source text. + * The source repo is authored for Claude command registration under + * `.claude/commands/gsd/` (namespaced slash commands), while non-Claude runtimes + * perform install-time conversion (for example `/gsd:` -> `/gsd-`). * * Invariant enforced here: - * No `/gsd:` pattern in user-facing source text. - * `Skill(skill="gsd:")` calls are checked by the skill frontmatter - * parity tests and should use `Skill(skill="gsd-")`. + * No `/gsd-` pattern in Claude-facing source text. * * Exceptions: * - CHANGELOG.md: historical entries document commands under their original names. @@ -37,10 +32,9 @@ const SEARCH_DIRS = [ path.join(ROOT, 'get-shit-done', 'workflows'), path.join(ROOT, 'get-shit-done', 'references'), path.join(ROOT, 'get-shit-done', 'templates'), - path.join(ROOT, 'get-shit-done', 'contexts'), COMMANDS_DIR, path.join(ROOT, 'agents'), - path.join(ROOT, 'sdk', 'src'), + path.join(ROOT, 'hooks'), ]; const TOP_LEVEL_FILES = [ @@ -53,50 +47,6 @@ const TOP_LEVEL_FILES = [ // the fixer also rewrites `.ts`/`.tsx`), so it is not shared. const { SKIP_DIRS } = require(path.join(ROOT, 'scripts', 'fix-slash-commands.cjs')); -// Discover user-facing markdown surfaces dynamically so a freshly added -// doc (a new RELEASE-*.md, a new top-level guide) is automatically scanned -// for namespace drift. A hand-curated list silently weakens drift detection -// over time — every time a doc is added, someone has to remember to extend -// the list, and the failure mode is invisible: the test passes but doesn't -// actually inspect the new file. We scan every .md under docs/ plus -// README.md at the repo root. -function discoverDocSearchFiles(root) { - const out = []; - const readme = path.join(root, 'README.md'); - if (fs.existsSync(readme)) out.push(readme); - // Walk docs/ recursively. Localized translation trees (docs/ja-JP/, - // docs/zh-CN/, docs/ko-KR/, docs/pt-BR/) and nested doc collections - // (docs/skills/, docs/superpowers/) all carry user-facing markdown that - // can drift; a top-level-only scan would silently exclude them. Iterative - // stack walk avoids recursion limits on deep trees. - const stack = [path.join(root, 'docs')]; - while (stack.length > 0) { - const dir = stack.pop(); - let entries; - try { - entries = fs.readdirSync(dir, { withFileTypes: true }); - } catch { - continue; - } - for (const entry of entries) { - const full = path.join(dir, entry.name); - if (entry.isDirectory()) { - stack.push(full); - } else if (entry.isFile() && entry.name.endsWith('.md')) { - out.push(full); - } - } - } - return out.sort(); -} - -const DOC_SEARCH_FILES = discoverDocSearchFiles(ROOT); - -// Limited to .md (and pre-existing .cjs/.js) by the no-source-grep standard: -// markdown text IS the deployed product, but .ts/.tsx source must be guarded -// via runtime behavior. The fixer (scripts/fix-slash-commands.cjs) covers -// .ts/.tsx auto-rewrites at build time; idempotency (a no-op second run) is -// the runtime guard for those extensions. const EXTENSIONS = new Set(['.md', '.cjs', '.js']); function collectFiles(dir, results = []) { @@ -118,24 +68,20 @@ const cmdNames = fs.readdirSync(COMMANDS_DIR) .map(f => f.replace(/\.md$/, '')) .sort((a, b) => b.length - a.length); -// Matches /gsd: — the retired user-facing format. -// Does NOT match Skill(skill="gsd:") because those have no leading slash. -const retiredPattern = new RegExp(`/gsd:(${cmdNames.join('|')})(?=[^a-zA-Z0-9_-]|$)`); +const retiredPattern = new RegExp(`/gsd-(${cmdNames.join('|')})(?=[^a-zA-Z0-9_-]|$)`); const allFiles = SEARCH_DIRS.flatMap(d => collectFiles(d)); const topLevelFiles = TOP_LEVEL_FILES.filter((file) => fs.existsSync(file)); -const allUserFacingFiles = allFiles - .concat(topLevelFiles) - .concat(DOC_SEARCH_FILES.filter((file) => fs.existsSync(file))); +const allUserFacingFiles = allFiles.concat(topLevelFiles); -describe('slash-command namespace invariant (#2697)', () => { +describe('slash-command namespace invariant (#3443)', () => { test('commands/gsd/ directory contains known command files', () => { assert.ok(cmdNames.length > 0, 'commands/gsd/ must contain .md files'); assert.ok(cmdNames.includes('plan-phase'), 'plan-phase must be a known command'); assert.ok(cmdNames.includes('execute-phase'), 'execute-phase must be a known command'); }); - test('no /gsd: retired syntax in user-facing source files', () => { + test('no /gsd- retired syntax in Claude-facing source files', () => { const violations = []; for (const file of allUserFacingFiles) { const src = fs.readFileSync(file, 'utf-8'); @@ -149,7 +95,7 @@ describe('slash-command namespace invariant (#2697)', () => { assert.strictEqual( violations.length, 0, - `Found ${violations.length} retired /gsd: reference(s) — use /gsd- instead:\n${violations.slice(0, 10).join('\n')}`, + `Found ${violations.length} retired /gsd- reference(s) — use /gsd: instead:\n${violations.slice(0, 10).join('\n')}`, ); }); @@ -169,53 +115,45 @@ describe('slash-command namespace invariant (#2697)', () => { // the production CLI rewrites. const liveCmdNames = cmdNames; - test('rewrites /gsd: to /gsd-', () => { - const out = transformContent('See /gsd:plan-phase for details.', liveCmdNames); - assert.ok(out.includes('/gsd-plan-phase'), `expected /gsd-plan-phase, got: ${out}`); - assert.ok(!out.includes('/gsd:plan-phase'), `colon form must not survive, got: ${out}`); + test('rewrites /gsd- to /gsd:', () => { + const out = transformContent('See /gsd-plan-phase for details.', liveCmdNames); + assert.ok(out.includes('/gsd:plan-phase'), `expected /gsd:plan-phase, got: ${out}`); + assert.ok(!out.includes('/gsd-plan-phase'), `dash form must not survive, got: ${out}`); }); test('rewrites multiple occurrences in one pass', () => { - const out = transformContent('Run /gsd:plan-phase then /gsd:execute-phase.', liveCmdNames); - assert.ok(out.includes('/gsd-plan-phase')); - assert.ok(out.includes('/gsd-execute-phase')); - assert.ok(!out.match(/\/gsd:[a-z]/), `no colon form may remain, got: ${out}`); + const out = transformContent('Run /gsd-plan-phase then /gsd-execute-phase.', liveCmdNames); + assert.ok(out.includes('/gsd:plan-phase')); + assert.ok(out.includes('/gsd:execute-phase')); + assert.ok(!out.match(/\/gsd-[a-z]/), `no dash form may remain, got: ${out}`); }); - test('does not rewrite canonical hyphen form (idempotent)', () => { - const input = '/gsd-plan-phase is the canonical name.'; + test('does not rewrite canonical colon form (idempotent)', () => { + const input = '/gsd:plan-phase is the canonical name.'; assert.strictEqual(transformContent(input, liveCmdNames), input, 'transformer must be a no-op when input is already canonical'); }); test('does not rewrite gsd-sdk or gsd-tools (not slash commands)', () => { - // Edge case: even though sdk/tools aren't in cmdNames, defensively check - // that strings like "/gsd:sdk" pass through untouched. - const input = 'Run /gsd:sdk query and /gsd:tools init.'; + const input = 'Run /gsd-sdk query and /gsd-tools init.'; assert.strictEqual(transformContent(input, liveCmdNames), input, 'transformer must leave non-command identifiers alone'); }); - test('respects word boundary — does not rewrite /gsd:plan-phase-extra', () => { - // The trailing -extra means this is NOT the plan-phase command. - // The negative lookahead `[^a-zA-Z0-9_-]|$` should prevent the match. - const out = transformContent('/gsd:plan-phase-extra', liveCmdNames); - assert.strictEqual(out, '/gsd:plan-phase-extra', + test('respects word boundary — does not rewrite /gsd-plan-phase-extra', () => { + const out = transformContent('/gsd-plan-phase-extra', liveCmdNames); + assert.strictEqual(out, '/gsd-plan-phase-extra', 'word-boundary lookahead must prevent partial matches'); }); }); - test('gsd-sdk and gsd-tools identifiers are not rewritten', () => { - for (const file of allUserFacingFiles) { - const src = fs.readFileSync(file, 'utf-8'); - assert.ok( - !src.includes('/gsd:sdk'), - `${path.relative(ROOT, file)} must not contain /gsd:sdk (gsd-sdk is not a slash command)`, - ); - assert.ok( - !src.includes('/gsd:tools'), - `${path.relative(ROOT, file)} must not contain /gsd:tools (gsd-tools is not a slash command)`, - ); - } + test('transformer leaves non-command identifiers untouched', () => { + const { transformContent } = require(path.join(ROOT, 'scripts', 'fix-slash-commands.cjs')); + const sample = 'Use /gsd-sdk query and node bin/gsd-tools.cjs'; + assert.strictEqual( + transformContent(sample, cmdNames), + sample, + 'gsd-sdk and gsd-tools are not slash commands and must remain untouched' + ); }); }); diff --git a/tests/bug-2948-spike-wrap-up-dispatch.test.cjs b/tests/bug-2948-spike-wrap-up-dispatch.test.cjs index dc23d4173..70e4f6923 100644 --- a/tests/bug-2948-spike-wrap-up-dispatch.test.cjs +++ b/tests/bug-2948-spike-wrap-up-dispatch.test.cjs @@ -1,17 +1,17 @@ /** * Regression test for bug #2948 * - * `/gsd-spike --wrap-up` was silently no-oping because: + * `/gsd:spike --wrap-up` was silently no-oping because: * 1. `commands/gsd/spike.md` listed `--wrap-up` as a flag but had no dispatch block. * 2. `workflows/spike.md` still referenced the deleted `/gsd-spike-wrap-up` entry-point - * instead of the correct `/gsd-spike --wrap-up` form. + * instead of the correct `/gsd:spike --wrap-up` form. * * Fix: * - `commands/gsd/spike.md` now has a dispatch block that routes `--wrap-up` to * spike-wrap-up.md, and spike-wrap-up.md is listed in execution_context so the * runtime can find it. * - `workflows/spike.md` companion references updated from `/gsd-spike-wrap-up` to - * `/gsd-spike --wrap-up`. + * `/gsd:spike --wrap-up`. */ // allow-test-rule: source-text-is-the-product @@ -86,7 +86,7 @@ function parseExecutionContextRefs(section) { .map(l => l.slice(1).trim()); } -describe('bug-2948: /gsd-spike --wrap-up dispatch wiring', () => { +describe('bug-2948: /gsd:spike --wrap-up dispatch wiring', () => { describe('commands/gsd/spike.md — frontmatter and section contract', () => { test('spike.md command file exists and has valid frontmatter', () => { assert.ok(fs.existsSync(SPIKE_CMD_PATH), 'commands/gsd/spike.md should exist'); @@ -147,15 +147,15 @@ describe('bug-2948: /gsd-spike --wrap-up dispatch wiring', () => { const fm = parseFrontmatter(fs.readFileSync(SPIKE_WORKFLOW_PATH, 'utf-8')); assert.ok( !fm._body.includes('/gsd-spike-wrap-up'), - 'workflows/spike.md must not reference the deleted /gsd-spike-wrap-up command; use /gsd-spike --wrap-up instead' + 'workflows/spike.md must not reference the deleted /gsd-spike-wrap-up command; use /gsd:spike --wrap-up instead' ); }); - test('references /gsd-spike --wrap-up as the canonical wrap-up invocation', () => { + test('references /gsd:spike --wrap-up as the canonical wrap-up invocation', () => { const fm = parseFrontmatter(fs.readFileSync(SPIKE_WORKFLOW_PATH, 'utf-8')); assert.ok( - fm._body.includes('/gsd-spike --wrap-up'), - 'workflows/spike.md must reference /gsd-spike --wrap-up as the canonical wrap-up command' + fm._body.includes('/gsd:spike --wrap-up'), + 'workflows/spike.md must reference /gsd:spike --wrap-up as the canonical wrap-up command' ); }); }); diff --git a/tests/bug-2949-sketch-wrap-up-dispatch.test.cjs b/tests/bug-2949-sketch-wrap-up-dispatch.test.cjs index b5ac85b53..99e8d261e 100644 --- a/tests/bug-2949-sketch-wrap-up-dispatch.test.cjs +++ b/tests/bug-2949-sketch-wrap-up-dispatch.test.cjs @@ -4,7 +4,7 @@ // reclassify some entries as source-text-is-the-product during migration. /** - * GSD Tests — /gsd-sketch --wrap-up silently no-ops (#2949) + * GSD Tests — /gsd:sketch --wrap-up silently no-ops (#2949) * * The --wrap-up flag was documented in commands/gsd/sketch.md but never dispatched. * The sketch-wrap-up.md micro-skill entry point was deleted in #2790 and the dispatch @@ -56,11 +56,11 @@ describe('bug-2949: sketch --wrap-up dispatch wiring', () => { ); }); - test('workflows/sketch.md DOES contain new /gsd-sketch --wrap-up form', () => { + test('workflows/sketch.md DOES contain new /gsd:sketch --wrap-up form', () => { const content = fs.readFileSync(SKETCH_WORKFLOW, 'utf8'); assert.ok( - content.includes('/gsd-sketch --wrap-up'), - 'workflows/sketch.md should reference /gsd-sketch --wrap-up (the new form)' + content.includes('/gsd:sketch --wrap-up'), + 'workflows/sketch.md should reference /gsd:sketch --wrap-up (the new form)' ); }); }); diff --git a/tests/bug-2950-stale-command-refs.test.cjs b/tests/bug-2950-stale-command-refs.test.cjs index 86cc45923..b2f9c86a9 100644 --- a/tests/bug-2950-stale-command-refs.test.cjs +++ b/tests/bug-2950-stale-command-refs.test.cjs @@ -7,12 +7,12 @@ * gsd-spike-wrap-up, gsd-sketch-wrap-up, gsd-code-review-fix). * * Fix: Update every occurrence to the new consolidated forms: - * /gsd-phase (no flag | --insert | --remove) - * /gsd-capture - * /gsd-config (--profile | --integrations | --advanced) - * /gsd-spike --wrap-up - * /gsd-sketch --wrap-up - * /gsd-code-review --fix + * /gsd:phase (no flag | --insert | --remove) + * /gsd:capture + * /gsd:config (--profile | --integrations | --advanced) + * /gsd:spike --wrap-up + * /gsd:sketch --wrap-up + * /gsd:code-review --fix */ 'use strict'; @@ -45,42 +45,42 @@ const DELETED_COMMANDS = [ // Per-file assertions: [file, deletedCmd, newForm] const FILE_ASSERTIONS = [ // help.md - ['help.md', '/gsd-add-phase', '/gsd-phase "Add admin dashboard"'], - ['help.md', '/gsd-insert-phase', '/gsd-phase --insert 7 "Fix critical auth bug"'], - ['help.md', '/gsd-remove-phase', '/gsd-phase --remove 17'], - ['help.md', '/gsd-spike-wrap-up', '/gsd-spike --wrap-up'], - ['help.md', '/gsd-sketch-wrap-up', '/gsd-sketch --wrap-up'], - ['help.md', '/gsd-add-todo', '/gsd-capture'], - ['help.md', '/gsd-set-profile', '/gsd-config --profile budget'], + ['help.md', '/gsd-add-phase', '/gsd:phase "Add admin dashboard"'], + ['help.md', '/gsd-insert-phase', '/gsd:phase --insert 7 "Fix critical auth bug"'], + ['help.md', '/gsd-remove-phase', '/gsd:phase --remove 17'], + ['help.md', '/gsd-spike-wrap-up', '/gsd:spike --wrap-up'], + ['help.md', '/gsd-sketch-wrap-up', '/gsd:sketch --wrap-up'], + ['help.md', '/gsd-add-todo', '/gsd:capture'], + ['help.md', '/gsd-set-profile', '/gsd:config --profile budget'], // do.md - ['do.md', '/gsd-spike-wrap-up', '/gsd-spike --wrap-up'], - ['do.md', '/gsd-sketch-wrap-up', '/gsd-sketch --wrap-up'], - ['do.md', '/gsd-add-phase', '/gsd-phase'], - ['do.md', '/gsd-add-todo', '/gsd-capture'], + ['do.md', '/gsd-spike-wrap-up', '/gsd:spike --wrap-up'], + ['do.md', '/gsd-sketch-wrap-up', '/gsd:sketch --wrap-up'], + ['do.md', '/gsd-add-phase', '/gsd:phase'], + ['do.md', '/gsd-add-todo', '/gsd:capture'], // settings.md - ['settings.md', '/gsd-code-review-fix', '/gsd-code-review --fix'], - ['settings.md', '/gsd-settings-integrations', '/gsd-config --integrations'], - ['settings.md', '/gsd-set-profile', '/gsd-config --profile'], - ['settings.md', '/gsd-settings-advanced', '/gsd-config --advanced'], + ['settings.md', '/gsd-code-review-fix', '/gsd:code-review --fix'], + ['settings.md', '/gsd-settings-integrations', '/gsd:config --integrations'], + ['settings.md', '/gsd-set-profile', '/gsd:config --profile'], + ['settings.md', '/gsd-settings-advanced', '/gsd:config --advanced'], // discuss-phase.md - ['discuss-phase.md', '/gsd-spike-wrap-up', '/gsd-spike --wrap-up'], - ['discuss-phase.md', '/gsd-sketch-wrap-up', '/gsd-sketch --wrap-up'], + ['discuss-phase.md', '/gsd-spike-wrap-up', '/gsd:spike --wrap-up'], + ['discuss-phase.md', '/gsd-sketch-wrap-up', '/gsd:sketch --wrap-up'], // new-project.md - ['new-project.md', '/gsd-spike-wrap-up', '/gsd-spike --wrap-up'], - ['new-project.md', '/gsd-sketch-wrap-up', '/gsd-sketch --wrap-up'], + ['new-project.md', '/gsd-spike-wrap-up', '/gsd:spike --wrap-up'], + ['new-project.md', '/gsd-sketch-wrap-up', '/gsd:sketch --wrap-up'], // plan-phase.md - ['plan-phase.md', '/gsd-insert-phase', '/gsd-phase --insert'], + ['plan-phase.md', '/gsd-insert-phase', '/gsd:phase --insert'], // spike.md - ['spike.md', '/gsd-spike-wrap-up', '/gsd-spike --wrap-up'], + ['spike.md', '/gsd-spike-wrap-up', '/gsd:spike --wrap-up'], // sketch.md - ['sketch.md', '/gsd-sketch-wrap-up', '/gsd-sketch --wrap-up'], + ['sketch.md', '/gsd-sketch-wrap-up', '/gsd:sketch --wrap-up'], ]; describe('bug #2950: stale deleted-command references removed from workflow files', () => { diff --git a/tests/bug-2954-help-md-slash-command-stubs.test.cjs b/tests/bug-2954-help-md-slash-command-stubs.test.cjs index 703211046..b758b37fb 100644 --- a/tests/bug-2954-help-md-slash-command-stubs.test.cjs +++ b/tests/bug-2954-help-md-slash-command-stubs.test.cjs @@ -11,11 +11,11 @@ process.env.GSD_TEST_MODE = '1'; * Bug #2954: keep `help.md` and the live `commands/gsd/*` slash surface * in lockstep. Two regression tests: * - * 1. help.md must not advertise any /gsd- that has no shipped + * 1. help.md must not advertise any /gsd[-:] that has no shipped * slash command. (Caught the original #2954 regression: #2824 deleted * 31 stubs without updating help.md.) * - * 2. Every shipped /gsd- command must appear in help.md. (Caught + * 2. Every shipped /gsd[-:] command must appear in help.md. (Caught * the inverse: a command lands without docs, so users never discover it.) * * The shipped slash name is parsed from frontmatter `name:` (which can be @@ -24,7 +24,7 @@ process.env.GSD_TEST_MODE = '1'; * different slash name (`gsd-context`) than their filename suggests. * * Also covers `do.md`, the dispatcher invoked at runtime by - * `/gsd-progress --do`: any `/gsd-` token in its routing table must + * `/gsd:progress --do`: any `/gsd[-:]` token in its routing table must * resolve to a live command, otherwise the dispatcher emits "Unknown command". */ @@ -74,7 +74,7 @@ function listShippedSlashBaseNames() { function extractSlashReferences(contents) { const names = new Set(); - const tokenRe = /\/gsd-([a-z][a-z0-9-]*)/g; + const tokenRe = /\/gsd[:-]([a-z][a-z0-9-]*)/g; let match; while ((match = tokenRe.exec(contents)) !== null) { names.add(match[1]); @@ -109,7 +109,7 @@ function listShippedFlagsByCommand() { } describe('Bug #2954: help.md ↔ commands/gsd/ bidirectional parity', () => { - test('every /gsd- referenced in help.md is a shipped command', () => { + test('every /gsd[-:] referenced in help.md is a shipped command', () => { const helpContents = fs.readFileSync(HELP_MD, 'utf8'); const referenced = extractSlashReferences(helpContents); const shipped = listShippedSlashBaseNames(); @@ -117,11 +117,11 @@ describe('Bug #2954: help.md ↔ commands/gsd/ bidirectional parity', () => { assert.deepEqual( dangling, [], - `help.md advertises /gsd- commands that are not shipped: ${dangling.join(', ')}`, + `help.md advertises /gsd[-:] commands that are not shipped: ${dangling.join(', ')}`, ); }); - test('every shipped /gsd- command is documented in help.md', () => { + test('every shipped /gsd[-:] command is documented in help.md', () => { const helpContents = fs.readFileSync(HELP_MD, 'utf8'); const referenced = extractSlashReferences(helpContents); const shipped = listShippedSlashBaseNames(); @@ -129,11 +129,11 @@ describe('Bug #2954: help.md ↔ commands/gsd/ bidirectional parity', () => { assert.deepEqual( undocumented, [], - `commands shipped under commands/gsd/ with no /gsd- reference in help.md: ${undocumented.join(', ')}`, + `commands shipped under commands/gsd/ with no /gsd[-:] reference in help.md: ${undocumented.join(', ')}`, ); }); - test('every /gsd- in do.md (live dispatcher) is a shipped command', () => { + test('every /gsd[-:] in do.md (live dispatcher) is a shipped command', () => { const doContents = fs.readFileSync(DO_MD, 'utf8'); const referenced = extractSlashReferences(doContents); const shipped = listShippedSlashBaseNames(); @@ -141,7 +141,7 @@ describe('Bug #2954: help.md ↔ commands/gsd/ bidirectional parity', () => { assert.deepEqual( dangling, [], - `do.md routing table references /gsd- that is not shipped: ${dangling.join(', ')}`, + `do.md routing table references /gsd[-:] that is not shipped: ${dangling.join(', ')}`, ); }); @@ -154,10 +154,15 @@ describe('Bug #2954: help.md ↔ commands/gsd/ bidirectional parity', () => { // Accept `/gsd- --` (precise) OR a bare `--` token // anywhere in help.md (good enough for shared flags like `--force` that // appear under multiple commands' descriptions). - const preciseToken = `/gsd-${command} --${flag}`; + const preciseDash = `/gsd-${command} --${flag}`; + const preciseColon = `/gsd:${command} --${flag}`; const flagToken = `--${flag}`; - if (!helpContents.includes(preciseToken) && !helpContents.includes(flagToken)) { - gaps.push(`/gsd-${command} --${flag}`); + if ( + !helpContents.includes(preciseDash) && + !helpContents.includes(preciseColon) && + !helpContents.includes(flagToken) + ) { + gaps.push(`/gsd:${command} --${flag}`); } } } diff --git a/tests/claude-md.test.cjs b/tests/claude-md.test.cjs index 5de6eb1a2..f34fc7a39 100644 --- a/tests/claude-md.test.cjs +++ b/tests/claude-md.test.cjs @@ -40,9 +40,9 @@ describe('generate-claude-md', () => { const claudePath = path.join(tmpDir, 'CLAUDE.md'); const content = fs.readFileSync(claudePath, 'utf-8'); assert.ok(content.includes('## GSD Workflow Enforcement')); - assert.ok(content.includes('/gsd-quick')); - assert.ok(content.includes('/gsd-debug')); - assert.ok(content.includes('/gsd-execute-phase')); + assert.ok(content.includes('/gsd:quick')); + assert.ok(content.includes('/gsd:debug')); + assert.ok(content.includes('/gsd:execute-phase')); assert.ok(content.includes('Do not make direct repo edits outside a GSD workflow')); }); diff --git a/tests/feat-2795-update-banner.test.cjs b/tests/feat-2795-update-banner.test.cjs index 8c59ac973..13e1b7901 100644 --- a/tests/feat-2795-update-banner.test.cjs +++ b/tests/feat-2795-update-banner.test.cjs @@ -65,8 +65,8 @@ describe('buildBannerOutput', () => { 'banner should name latest version' ); assert.ok( - out.systemMessage.includes('/gsd-update'), - 'banner should reference /gsd-update command' + out.systemMessage.includes('/gsd:update'), + 'banner should reference /gsd:update command' ); }); @@ -211,7 +211,7 @@ describe('gsd-update-banner.js end-to-end', () => { const parsed = JSON.parse(r.stdout); assert.equal(typeof parsed.systemMessage, 'string'); assert.ok(parsed.systemMessage.includes('1.40.0')); - assert.ok(parsed.systemMessage.includes('/gsd-update')); + assert.ok(parsed.systemMessage.includes('/gsd:update')); } finally { fs.rmSync(home, { recursive: true, force: true }); } diff --git a/tests/gsd-settings-advanced.test.cjs b/tests/gsd-settings-advanced.test.cjs index f8362fb0e..a563fef1e 100644 --- a/tests/gsd-settings-advanced.test.cjs +++ b/tests/gsd-settings-advanced.test.cjs @@ -209,8 +209,8 @@ describe('/gsd-settings advertises /gsd-settings-advanced', () => { test('settings workflow mentions canonical /gsd-config --advanced', () => { const text = fs.readFileSync(SETTINGS_WORKFLOW_PATH, 'utf-8'); assert.ok( - text.includes('gsd-config --advanced'), - 'get-shit-done/workflows/settings.md must mention /gsd-config --advanced' + text.includes('/gsd:config --advanced'), + 'get-shit-done/workflows/settings.md must mention /gsd:config --advanced' ); assert.ok( !text.includes('gsd-settings-advanced') && !text.includes('gsd:settings-advanced'), diff --git a/tests/milestone.test.cjs b/tests/milestone.test.cjs index 79c0dba93..843a0eea4 100644 --- a/tests/milestone.test.cjs +++ b/tests/milestone.test.cjs @@ -234,7 +234,7 @@ describe('milestone complete command', () => { ); fs.writeFileSync( path.join(tmpDir, '.planning', 'STATE.md'), - `# State\n\n**Status:** In progress\n**Last Activity:** 2025-01-01\n**Last Activity Description:** Working\n\n## Current Position\n\nPhase: 03 — EXECUTING\nPlan: 03-02\nStatus: Executing\nLast activity: 2025-01-01 — Running phase\n\n## Operator Next Steps\n\n- Re-run /gsd-complete-milestone v1.0\n` + `# State\n\n**Status:** In progress\n**Last Activity:** 2025-01-01\n**Last Activity Description:** Working\n\n## Current Position\n\nPhase: 03 — EXECUTING\nPlan: 03-02\nStatus: Executing\nLast activity: 2025-01-01 — Running phase\n\n## Operator Next Steps\n\n- Re-run /gsd:complete-milestone v1.0\n` ); const result = runGsdTools('milestone complete v1.0 --name Test', tmpDir); @@ -243,8 +243,8 @@ describe('milestone complete command', () => { const state = fs.readFileSync(path.join(tmpDir, '.planning', 'STATE.md'), 'utf-8'); assert.ok(state.includes('Phase: Milestone v1.0 complete')); assert.ok(state.includes('Status: Awaiting next milestone')); - assert.ok(!state.includes('Re-run /gsd-complete-milestone')); - assert.ok(state.includes('/gsd-new-milestone')); + assert.ok(!state.includes('Re-run /gsd:complete-milestone')); + assert.ok(state.includes('/gsd:new-milestone')); }); test('appends canonical narrative sections when STATE.md headings are missing (#3088)', () => { @@ -261,7 +261,7 @@ describe('milestone complete command', () => { assert.ok(state.includes('## Current Position')); assert.ok(state.includes('Phase: Milestone v1.0 complete')); assert.ok(state.includes('## Operator Next Steps')); - assert.ok(state.includes('/gsd-new-milestone')); + assert.ok(state.includes('/gsd:new-milestone')); }); test('handles missing ROADMAP.md gracefully', () => { @@ -864,4 +864,3 @@ describe('new-milestone workflow verification gate', () => { // ───────────────────────────────────────────────────────────────────────────── // validate consistency command // ───────────────────────────────────────────────────────────────────────────── - diff --git a/tests/settings-integrations.test.cjs b/tests/settings-integrations.test.cjs index f189279ff..6c81cf9b6 100644 --- a/tests/settings-integrations.test.cjs +++ b/tests/settings-integrations.test.cjs @@ -272,8 +272,8 @@ describe('#2529 /gsd-settings mentions new command', () => { test('settings workflow mentions canonical /gsd-config --integrations', () => { const src = fs.readFileSync(SETTINGS_WORKFLOW_PATH, 'utf-8'); assert.ok( - src.includes('gsd-config --integrations'), - 'settings.md must mention /gsd-config --integrations' + src.includes('/gsd:config --integrations'), + 'settings.md must mention /gsd:config --integrations' ); assert.ok( !src.includes('/gsd-settings-integrations'), diff --git a/tests/validate-context.test.cjs b/tests/validate-context.test.cjs index f4906c521..2af280071 100644 --- a/tests/validate-context.test.cjs +++ b/tests/validate-context.test.cjs @@ -58,7 +58,7 @@ describe('gsd-tools validate context — JSON vs human rendering', () => { assert.strictEqual(r.success, true); assert.match(r.output, /70%/); assert.match(r.output, /critical/); - assert.match(r.output, /\/gsd-thread/); + assert.match(r.output, /\/gsd:thread/); }); test('human mode omits the recommendation line for healthy state', () => { @@ -66,25 +66,25 @@ describe('gsd-tools validate context — JSON vs human rendering', () => { assert.strictEqual(r.success, true); assert.match(r.output, /20%/); assert.match(r.output, /healthy/); - assert.doesNotMatch(r.output, /\/gsd-thread/, 'healthy output must not nag the user'); + assert.doesNotMatch(r.output, /\/gsd:thread/, 'healthy output must not nag the user'); }); }); describe('gsd-tools validate context — recommendation copy per state', () => { // The CLI owns the recommendation strings (the classifier does not). // These tests pin the wording so a regression to the prose is caught. - test('warning state recommends /gsd-thread', () => { + test('warning state recommends /gsd:thread', () => { const r = runGsdTools(['validate', 'context', '--tokens-used', '130000', '--context-window', '200000', '--json']); const obj = JSON.parse(r.output); assert.strictEqual(obj.state, 'warning'); - assert.match(obj.recommendation, /\/gsd-thread/); + assert.match(obj.recommendation, /\/gsd:thread/); }); test('critical state names the fracture-point reasoning risk', () => { const r = runGsdTools(['validate', 'context', '--tokens-used', '160000', '--context-window', '200000', '--json']); const obj = JSON.parse(r.output); assert.strictEqual(obj.state, 'critical'); - assert.match(obj.recommendation, /\/gsd-thread/); + assert.match(obj.recommendation, /\/gsd:thread/); assert.match(obj.recommendation, /reasoning|degrade|fracture/i); }); });