* feat(skill-deps): add requires: frontmatter to all 51 skills with cross-skill references Mechanical migration from docs/research/data/2026-05-12-skill-audit.json. Every skill whose body references another GSD skill now declares those dependencies in `requires:` YAML frontmatter (flow-style array). Notable: discuss-phase, plan-phase, and execute-phase all reference `phase`, which confirms the latent gap in MINIMAL_SKILL_ALLOWLIST — `phase` is pulled by the core loop but was never in the allowlist. The profile closure model (ADR-0010 Phase 1) resolves this automatically. Closes part of #3408. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(skill-surface-budget): add PROFILES map, resolveProfile, loadSkillsManifest, staging, marker IO Implements the Skill Surface Budget Module core (ADR-0010, Phase 1): - PROFILES Object.freeze map: core (6 skills), standard (~13), full ('*') - loadSkillsManifest: parses requires: frontmatter from commands/gsd/*.md into a Map<stem, string[]> without external YAML dep - resolveProfile({modes, manifest}): computes transitive closure over the requires: graph; composable (modes=['core','audit'] unions closures) - stageSkillsForProfile / stageAgentsForProfile: filesystem staging with same exit-cleanup machinery as the legacy stageSkillsForMode - readActiveProfile / writeActiveProfile: .gsd-profile marker round-trip - Back-compat shims preserved: MINIMAL_SKILL_ALLOWLIST, isMinimalMode, shouldInstallSkill (overloaded), stageSkillsForMode — all legacy tests pass The phase latent bug is now resolved by closure: discuss-phase, plan-phase, and execute-phase all require phase, so any profile including any of them automatically includes phase via transitive closure. Tests: 22 manifest+resolve, 9 stage, 10 marker (41 new tests, all green). Back-compat anchor: 80/80 passing. Closes part of #3408. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(skill-surface-budget): add lint-skill-deps.cjs CI gate and fix 19 missed requires: entries Two lint checks (scripts/lint-skill-deps.cjs): a) Frontmatter-body consistency: skill body references must appear in requires: b) Profile closure: every requires: dep of any profile skill must be in closure Running the lint revealed 19 body references missed by the audit JSON (the audit used static analysis; some bodies have conditional references). Fixed: complete-milestone: +audit-milestone, discuss-phase, plan-phase, execute-phase, new-milestone fast: +quick health: +thread map-codebase: +new-project, plan-phase new-milestone, new-project, review, ultraplan-phase: +plan-phase ship: +verify-work sketch, spike: +new-project verify-work: +execute-phase workstreams: +new-milestone, resume-work Wired into package.json as lint:skill-deps and added to pretest. 8 fixture-based tests: all green. Closes part of #3408. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(skill-surface-budget): wire --profile= arg, profile marker write/read in bin/install.js - Add --profile=<name> / --profile=<n1>,<n2> arg parsing (composable). Mutually exclusive with --minimal / --core-only (aliases for --profile=core). Default (no flag): full. - Import readActiveProfile / writeActiveProfile from install-profiles.cjs. - After writeManifest: persist active profile to .gsd-profile marker. - gsd update path: if no --profile flag given, read existing .gsd-profile marker so non-full profiles are not silently re-expanded to full (ADR-0010). - Update --help block to document --profile= with per-tier token costs. New test: install-minimal-backcompat.test.cjs (6 tests): - PROFILES.core === MINIMAL_SKILL_ALLOWLIST (contract) - --minimal writes .gsd-profile marker "core" - --profile=core, --profile=standard write correct markers - default install writes marker "full" Closes part of #3408. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore(changeset): add feat-3408-skill-profiles changelog fragment Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(install-profiles): derive agents from skill body refs and wire into resolveProfile Deviation 1 of ADR-0010 phase 1b: tiered profiles (core, standard) now produce a non-empty agents Set instead of always returning empty. resolveProfile() scans each skill body for gsd-* agent name references (via new parseCallsAgents()), stores them in _calls_agents_<stem> manifest entries, and unions them across the resolved skill closure. stageAgentsForProfile() already checked resolvedProfile.agents — it now gets real data so tiered profiles install the correct subset of agents instead of zero. Closes #3408 (partial — Deviation 1 only) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(install): honor .gsd-profile marker on update, add resolveEffectiveProfile/mostRestrictiveProfile Deviation 2 of ADR-0010 phase 1b: the marker written during installation is now actually honored when re-running without explicit flags (e.g. gsd update). The dead-end logging block is replaced by resolveEffectiveProfile(), which picks the marker profile over 'full' when no explicit --profile= flag was given. The resolved profile is piped through to all 13 stageSkillsForMode dispatch sites (now _stageSkills) so updates install only the previously-chosen skill subset. --minimal retains its back-compat behavior (strict 6-skill allowlist, no closure) while writing 'core' to the marker. mostRestrictiveProfile() is exported for callers that need to reconcile disagreeing markers across runtimes (smallest skill set wins). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(surface): add CLUSTERS data + state IO module Add clusters.cjs with 10 named skill groups covering all 66 skills (verified by surface-clusters.test.cjs). Add surface.cjs with readSurface/ writeSurface atomic IO, resolveSurface, applySurface, and listSurface. Tests: 17 passing (11 state IO + 6 cluster integrity). Closes #3408 * docs(adr): add ADR-0011 Skill Surface Budget Module (Phase 1 accepted, Phase 2 amendment) Records the install-time profile staging decision (Phase 1, landed) and the runtime /gsd:surface cluster-toggle decision (Phase 2, in flight) as an amendment. Updates the ADR README index. Closes #3408 * docs(install-profiles): update module docblock for Phase 2 and ADR-0011 Corrects the ADR reference from 0010 to 0011, documents the three-profile model and back-compat aliases, adds resolveEffectiveProfile precedence rule, and notes the companion surface.cjs Phase 2 engine. * docs(context): add Skill Surface Budget Module canonical entry Adds the Domain terms entry for the Skill Surface Budget Module covering both Phase 1 (install-time profiles, .gsd-profile marker) and Phase 2 (runtime /gsd:surface cluster toggles, clusters.cjs, .gsd-surface.json), per ADR-0011 Consequences requirement. * feat(surface): add resolveSurface and applySurface engine + tests Tests cover: profile → surface equivalence, cluster disable/enable, explicitAdds transitive closure, applySurface file sync (add missing, remove superseded, preserve non-gsd files), listSurface token cost. 16 new tests passing. * docs(readme): document --profile= flag and /gsd:surface command Brief user-facing mention of install profiles (core/standard/full) and the /gsd:surface slash command in the Commands table. Points to ADR-0011 for details. * feat(surface): add /gsd:surface slash command runbook New skill: gsd:surface — runtime profile/cluster toggle without reinstall. Sub-commands: list, status, profile <name>, disable/enable <cluster>, reset. Persists state to .gsd-surface.json (independent of .gsd-profile). Description 96 chars (≤100 limit). lint:descriptions + lint:skill-deps: 0 violations. * feat(surface): add changeset fragment for /gsd:surface runtime toggle * feat(surface): add surface skill stem to utility cluster surface.md is a new skill; add it to the utility cluster so the surface-clusters.test.cjs coverage invariant stays satisfied. * docs(adr): fix ADR references to 0011 and record Phase 2 as shipped ADR-0010 number was already claimed by the file-operation-engine ADR; this ADR landed as 0011-skill-surface-budget-module.md. Update inline ADR references in clusters.cjs, surface.cjs, install-profiles.cjs, and the Phase 2 changeset to ADR-0011. Update the ADR Status section to record Phase 2 artifacts as shipped on this branch rather than "in progress". Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs(research): port skill-surface-budget memo and audit data ADR-0011 references docs/research/2026-05-12-skill-surface-budget.md and docs/research/data/2026-05-12-skill-audit.json, which only existed in the research worktree. Port both onto this branch so the ADR's References section resolves and reviewers can read the cluster taxonomy (§3.2), dependency topology (§3.1), and option grading (§4) that justify Phase 1 and Phase 2 decisions. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(registration): register surface/clusters in INVENTORY, COMMANDS, and help.md - surface.md: convert allowed-tools from inline YAML array to block style (was parsed as a single tool name "[Read, Write, Bash]" by test harness) - docs/INVENTORY.md: add CLI module rows for clusters.cjs and surface.cjs; add Commands row for /gsd-surface; bump CLI Modules count 55→57, Commands 66→67 - docs/INVENTORY-MANIFEST.json: add entries for clusters.cjs, surface.cjs, and /gsd-surface (filename-based command key) - docs/COMMANDS.md: add ### `/gsd-surface` heading in Configuration Commands - get-shit-done/workflows/help.md: add /gsd:surface entry in Configuration section Fixes registration failures introduced by Phase 2 of #3408. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(surface,docs): scrub .claude leakage and escape hypothetical slash tokens Two PR regressions introduced earlier on this branch: 1. surface.cjs JSDoc comments contained the canonical paths (~/.claude/commands/gsd, ~/.claude/agents) as example values, which the cline-install leak regex (~\/\.claude\/(?:get-shit-done|commands|agents |hooks)) flagged as install-time path leaks. Reworded the docblocks to describe runtime-resolved paths without literal ~/.claude tokens. 2. The ported research memo proposed hypothetical Option C dispatchers using slash syntax (/gsd:milestone, /gsd:research). The docs-parity-live-registry test enforces that every slash-command token in docs/ resolves to a real command. Rewrote the Option C sketch without the slash prefix and added a clarifying note that the dispatchers are illustrative, not shipped. Targeted tests now pass: tests/cline-install.test.cjs and tests/docs-parity-live-registry.test.cjs both green. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test: remove raw output/source grep in lint tests * fix: close coderabbit profile and requires issues * test: align surface token-cost assertion wording * fix(install): align core profile alias and defer profile marker write --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
33 KiB
GSD (Get Shit Done) creates hierarchical project plans optimized for solo agentic development with Claude Code.
Quick Start
/gsd:new-project- Initialize project (includes research, requirements, roadmap)/gsd:plan-phase 1- Create detailed plan for first phase/gsd:execute-phase 1- Execute the phase
Staying Updated
GSD evolves fast. Update periodically:
npx get-shit-done-cc@latest
Core Workflow
/gsd:new-project → /gsd:plan-phase → /gsd:execute-phase → repeat
Project Initialization
/gsd:new-project
Initialize new project through unified flow.
One command takes you from idea to ready-for-planning:
- Deep questioning to understand what you're building
- Optional domain research (spawns 4 parallel researcher agents)
- Requirements definition with v1/v2/out-of-scope scoping
- Roadmap creation with phase breakdown and success criteria
Creates all .planning/ artifacts:
PROJECT.md— vision and requirementsconfig.json— workflow mode (interactive/yolo)research/— domain research (if selected)REQUIREMENTS.md— scoped requirements with REQ-IDsROADMAP.md— phases mapped to requirementsSTATE.md— project memory
Usage: /gsd:new-project
/gsd:map-codebase [--fast] [--focus <area>] [--query <term>]
Map an existing codebase for brownfield projects.
-
--fast— rapid lightweight assessment (replaces the formergsd-scan) -
--focus <area>— scope the map to a specific area -
--query <term>— query the codebase intelligence index in.planning/intel/(replaces the formergsd-intel) -
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-projecton existing codebases
Usage: /gsd:map-codebase
Phase Planning
/gsd:discuss-phase <number> [--chain | --analyze | --power | --assumptions] [--batch[=N]]
Help articulate your vision for a phase before planning.
-
--chain— chained-prompt discuss flow -
--analyze— deep assumption analysis pass -
--power— power-user mode with extended question set -
--assumptions— surface Claude's implementation assumptions about the phase without an interactive session -
Captures how you imagine this phase working
-
Creates CONTEXT.md with your vision, essentials, and boundaries
-
Use when you have ideas about how something should look/feel
-
Optional
--batchasks 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
/gsd:mvp-phase <number> [--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 .+\.$/) --forceoverrides the status guard (required if the phase is alreadyin_progressorcompleted)- Pairs with the new-project mode prompt (Vertical MVP vs Horizontal Layers)
Usage: /gsd:mvp-phase 1
Usage: /gsd:mvp-phase 2 --force
/gsd:plan-phase <number> [--research] [--skip-research] [--research-phase <N>] [--view] [--gaps] [--skip-verify] [--prd <file>] [--ingest <path-or-glob>] [--ingest-format <auto|nygard|madr|narrative>] [--tdd] [--mvp]
Create detailed execution plan for a specific phase.
-
--skip-research— bypass the research subagent -
--research-phase <N>— research-only mode. Spawns the research agent for phase<N>, writesRESEARCH.md, then exits before the planner runs. Useful for cross-phase research, doc review before committing to a planning approach, and correction-without-replanning loops. Replaces the deletedgsd-research-phasestandalone command (#3042).- Modifiers:
--researchforces refresh (re-spawn researcher, no prompt).--viewprints existingRESEARCH.mdto stdout without spawning. With neither, promptsupdate / view / skipifRESEARCH.mdalready exists.
- Modifiers:
-
--gaps— focus only on closing gaps from a prior plan-check -
--skip-verify— skip the post-plan verifier loop -
--prd <file>— use a PRD file as planning context and skip discuss-phase (mutually exclusive with--ingest) -
--ingest <path-or-glob>— use ADR file(s) as planning context and skip discuss-phase (mutually exclusive with--prd) -
--ingest-format <auto|nygard|madr|narrative>— optional ADR parser format override -
--tdd— plan in test-driven order (tests before code) -
--mvp— vertical-slice MVP planning mode -
Generates
.planning/phases/XX-phase-name/XX-YY-PLAN.md -
Breaks phase into concrete, actionable tasks
-
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
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.
ADR Ingest Express Path: Pass --ingest path/to/adr.md (or a glob) to skip discuss-phase and synthesize CONTEXT.md from approved ADR decisions and scope fences. Cannot be combined with --prd.
Execution
/gsd:execute-phase <phase-number> [--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) -
--gaps-only— re-run only plans flagged as gaps by a prior verifier -
--tdd— enforce test-driven order during execution -
Groups plans by wave (from frontmatter), executes waves sequentially
-
Plans within each wave run in parallel via Task tool
-
Optional
--wave Nflag executes only WaveNand stops unless the phase is now fully complete -
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
Smart Router
/gsd:progress --do "<description>"
Route freeform text to the right GSD command automatically.
- Analyzes natural language input to find the best matching GSD command
- Acts as a dispatcher — never does the work itself
- 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"
Quick Mode
/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:
- Spawns planner + executor (skips researcher, checker, verifier by default)
- Quick tasks live in
.planning/quick/separate from planned phases - Updates STATE.md tracking (not ROADMAP.md)
Flags enable additional quality steps:
--full— Complete quality pipeline: discussion + research + plan-checking + verification--validate— Plan-checking (max 2 iterations) and post-execution verification only--discuss— Lightweight discussion to surface gray areas before planning--research— Focused research agent investigates approaches before planning
Granular flags are composable: --discuss --research --validate gives the same as --full.
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]
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:quickif task is non-trivial - Atomic commit with conventional message
Usage: /gsd:fast "fix the typo in README"
Usage: /gsd:fast "add .env to gitignore"
Roadmap Management
/gsd:phase <description>
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"
/gsd:phase --insert <after> <description>
Insert urgent work as decimal phase between existing phases.
- Creates intermediate phase (e.g., 7.1 between 7 and 8)
- Useful for discovered work that must happen mid-milestone
- Maintains phase ordering
Usage: /gsd:phase --insert 7 "Fix critical auth bug"
Result: Creates Phase 7.1
/gsd:phase --remove <number>
Remove a future phase and renumber subsequent phases.
- Deletes phase directory and all references
- Renumbers all subsequent phases to close the gap
- Only works on future (unstarted) phases
- Git commit preserves historical record
Usage: /gsd:phase --remove 17
Result: Phase 17 deleted, phases 18-20 become 17-19
/gsd:phase --edit <number> [--force]
Edit any field of an existing roadmap phase in place, preserving number and position.
- Updates title, description, requirements, dependencies in
ROADMAP.md --forceallows editing already-started phases (use with caution)
Milestone Management
/gsd:new-milestone <name>
Start a new milestone through unified flow.
- Deep questioning to understand what you're building next
- Optional domain research (spawns 4 parallel researcher agents)
- Requirements definition with scoping
- Roadmap creation with phase breakdown
- Optional
--reset-phase-numbersflag restarts numbering at Phase 1 and archives old phase dirs first for safety
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"
/gsd:complete-milestone <version>
Archive completed milestone and prepare for next version.
- Creates MILESTONES.md entry with stats
- Archives full details to milestones/ directory
- Creates git tag for the release
- Prepares workspace for next version
Usage: /gsd:complete-milestone 1.0.0
Progress Tracking
/gsd:progress [--next | --forensic | --do "<description>"]
Check project status and intelligently route to next action.
- Shows visual progress bar and completion percentage
- Summarizes recent work from SUMMARY files
- Displays current position and what's next
- Lists key decisions and open issues
- Offers to execute next plan or create it if missing
- Detects 100% milestone completion
Modes:
- default — progress report + intelligent routing
--next— auto-advance to the next logical step (use--next --forceto bypass safety gates)--forensic— append a 6-check integrity audit after the progress report--do "<text>"— 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
Session Management
/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
/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- Creates .continue-here file with current state
- Updates STATE.md session continuity section
- Captures in-progress work context
Usage: /gsd:pause-work
Debugging
/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 -
Gathers symptoms through adaptive questioning
-
Creates
.planning/debug/[slug].mdto track investigation -
Investigates using scientific method (evidence → hypothesis → test)
-
Survives
/clear— run/gsd:debugwith 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)
Spiking & Sketching
/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 --quickskips decomposition, builds immediately
Usage: /gsd:spike "can we stream LLM output over WebSockets?"
Usage: /gsd:spike --quick "test if pdfjs extracts tables"
/gsd:sketch [idea] [--quick]
Rapidly sketch UI/design ideas using throwaway HTML mockups with multi-variant exploration.
- Conversational mood/direction intake before building
- Each sketch produces 2-3 variants as tabbed HTML pages
- 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 --quickskips mood intake, jumps to building
Usage: /gsd:sketch "dashboard layout for the admin panel"
Usage: /gsd:sketch --quick "form card grouping"
/gsd:spike --wrap-up
Package spike findings into a persistent project skill.
- Curates each spike one-at-a-time (include/exclude/partial/UAT)
- Groups findings by feature area
- Generates
./.claude/skills/spike-findings-[project]/with references and sources - Writes summary to
.planning/spikes/WRAP-UP-SUMMARY.md - Adds auto-load routing line to project CLAUDE.md
Usage: /gsd:spike --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)
- Groups findings by design area
- Generates
./.claude/skills/sketch-findings-[project]/with design decisions, CSS patterns, HTML structures - Writes summary to
.planning/sketches/WRAP-UP-SUMMARY.md - Adds auto-load routing line to project CLAUDE.md
Usage: /gsd:sketch --wrap-up
Capturing Ideas, Notes, and Todos
/gsd:capture [description]
Capture an idea or task as a structured todo from current conversation.
- Extracts context from conversation (or uses provided description)
- Creates structured todo file in
.planning/todos/pending/ - Infers area from file paths for grouping
- Checks for duplicates before creating
- Updates STATE.md todo count
Usage: /gsd:capture (infers from conversation)
Usage: /gsd:capture Add auth token refresh
/gsd:capture --note <text>
Zero-friction note capture — one command, instant save, no questions.
- Saves timestamped note to
.planning/notes/(or~/.claude/notes/globally) - Three subcommands: append (default), list, promote
- 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
/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) - 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
User Acceptance Testing
/gsd:verify-work [phase]
Validate built features through conversational UAT.
- Extracts testable deliverables from SUMMARY.md files
- Presents tests one at a time (yes/no responses)
- Automatically diagnoses failures and creates fix plans
- Ready for re-execution if issues found
Usage: /gsd:verify-work 3
Ship Work
/gsd:ship [phase]
Create a PR from completed phase work with an auto-generated body.
- Pushes branch to remote
- Creates PR with summary from SUMMARY.md, VERIFICATION.md, REQUIREMENTS.md
- Optionally requests code review
- Updates STATE.md with shipping status
Prerequisites: Phase verified, gh CLI installed and authenticated.
Usage: /gsd:ship 4 or /gsd:ship 4 --draft
/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
Usage: /gsd:review --phase 3 --all
/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
/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-milestonewhen 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"
/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
Usage: /gsd:capture --backlog "real-time notifications when events ship"
/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
Milestone Auditing
/gsd:audit-milestone [version]
Audit milestone completion against original intent.
- Reads all phase VERIFICATION.md files
- Checks requirements coverage
- Spawns integration checker for cross-phase wiring
- Creates MILESTONE-AUDIT.md with gaps and tech debt
Usage: /gsd:audit-milestone
Configuration
/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
/gsd:config [--profile <profile> | --advanced | --integrations]
Configure GSD beyond the basic settings: model profile, advanced tuning, and third-party integrations.
-
--profile <profile>— quick switch model profile (quality | balanced | budget | inherit) -
--advanced— power-user tuning: plan bounce, timeouts, branch templates, cross-AI execution (replaces the formergsd-settings-advanced) -
--integrations— third-party API keys, code-review CLI routing, agent-skill injection (replaces the formergsd-settings-integrations) -
quality— Opus everywhere except verification -
balanced— Opus for planning, Sonnet for execution (default) -
budget— Sonnet for writing, Haiku for research/verification -
inherit— Use current session model for all agents (OpenCode/model)
Usage: /gsd:config --profile budget
/gsd:surface [list|status|profile <name>|disable <cluster>|enable <cluster>|reset]
Toggle which skills are surfaced — apply a profile, list, or disable a cluster without reinstall.
list/status— Show enabled and disabled clusters and skills with token costprofile <name>— Switch to a named base profile (core,standard,full)disable <cluster>— Remove a cluster from the active surfaceenable <cluster>— Add a cluster back to the active surfacereset— Delete the surface delta and return to the install-time profile
Usage: /gsd:surface list
Usage: /gsd:surface profile standard
Usage: /gsd:surface disable utility
Utility Commands
/gsd:cleanup
Archive accumulated phase directories from completed milestones.
- Identifies phases from completed milestones still in
.planning/phases/ - Shows dry-run summary before moving anything
- Moves phase dirs to
.planning/milestones/v{X.Y}-phases/ - Use after multiple milestones to reduce
.planning/phases/clutter
Usage: /gsd:cleanup
/gsd:help
Show this command reference.
/gsd:update [--sync] [--reapply]
Update GSD to latest version with changelog preview.
-
--sync— sync managed GSD skills across runtime roots (replaces the formergsd-sync-skills) -
--reapply— reapply local modifications after an update (replaces the formergsd-reapply-patches) -
Shows installed vs latest version comparison
-
Displays changelog entries for versions you've missed
-
Highlights breaking changes
-
Confirms before running install
-
Better than raw
npx get-shit-done-cc
Usage: /gsd:update
Additional Commands
The commands above cover the most common day-to-day flows. Every command listed here is also a live /gsd-* slash command and is grouped by purpose.
Discovery & Specification
/gsd:explore— Socratic ideation and idea routing. Think through ideas before committing to plans./gsd:spec-phase <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 <filepath> | --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 <file>] [--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 <phase> [--codex] [--gemini] [--claude] [--opencode] [--ollama] [--lm-studio] [--llama-cpp] [--all] [--text] [--ws <name>] [--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 <phase> [--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 <audit-uat> [--severity medium|high|all] [--max N] [--dry-run]— Autonomous audit-to-fix pipeline: find issues, classify, fix, test, commit./gsd:add-tests <phase> [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 <phase>— Extract decisions, lessons, patterns, and surprises from completed phase artifacts.
Knowledge & Context
/gsd:graphify [build|query <term>|status|diff]— Build, query, and inspect the project knowledge graph in.planning/graphs/./gsd:thread [list [--open|--resolved] | close <slug> | status <slug> | 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-depsscans 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.
Namespace Routers (model-facing meta-skills)
These six skills exist primarily for the model to perform two-stage hierarchical routing across 60+ skills. You can invoke them directly when you want to browse a category interactively.
/gsd-context— Codebase intelligence routing (map, graphify, docs, learnings)./gsd-ideate— Exploration / capture routing (explore, sketch, spike, spec, capture)./gsd-manage— Configuration and workspace routing (workstreams, thread, update, ship, inbox)./gsd-project— Project-lifecycle routing (milestones, audits, summary)./gsd-quality— Quality-gate routing (code review, debug, audit, security, eval, ui)./gsd-workflow— Phase-pipeline routing (discuss, plan, execute, verify, phase, progress).
Files & Structure
.planning/
├── PROJECT.md # Project vision
├── ROADMAP.md # Current phase breakdown
├── STATE.md # Project memory & context
├── RETROSPECTIVE.md # Living retrospective (updated per milestone)
├── config.json # Workflow mode & gates
├── todos/ # Captured ideas and tasks
│ ├── pending/ # Todos waiting to be worked on
│ └── done/ # Completed todos
├── spikes/ # Spike experiments (/gsd:spike)
│ ├── MANIFEST.md # Spike inventory and verdicts
│ └── NNN-name/ # Individual spike directories
├── sketches/ # Design sketches (/gsd:sketch)
│ ├── MANIFEST.md # Sketch inventory and winners
│ ├── themes/ # Shared CSS theme files
│ └── NNN-name/ # Individual sketch directories (HTML + README)
├── debug/ # Active debug sessions
│ └── resolved/ # Archived resolved issues
├── 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)
│ ├── 01-foundation/
│ └── 02-core-features/
├── codebase/ # Codebase map (brownfield projects)
│ ├── STACK.md # Languages, frameworks, dependencies
│ ├── ARCHITECTURE.md # Patterns, layers, data flow
│ ├── STRUCTURE.md # Directory layout, key files
│ ├── CONVENTIONS.md # Coding standards, naming
│ ├── TESTING.md # Test setup, patterns
│ ├── INTEGRATIONS.md # External services, APIs
│ └── CONCERNS.md # Tech debt, known issues
└── phases/
├── 01-foundation/
│ ├── 01-01-PLAN.md
│ └── 01-01-SUMMARY.md
└── 02-core-features/
├── 02-01-PLAN.md
└── 02-01-SUMMARY.md
Workflow Modes
Set during /gsd:new-project:
Interactive Mode
- Confirms each major decision
- Pauses at checkpoints for approval
- More guidance throughout
YOLO Mode
- Auto-approves most decisions
- Executes plans without confirmation
- Only stops for critical checkpoints
Change anytime by editing .planning/config.json
Planning Configuration
Configure how planning artifacts are managed in .planning/config.json:
planning.commit_docs (default: true)
true: Planning artifacts committed to git (standard workflow)false: Planning artifacts kept local-only, not committed
When commit_docs: false:
- Add
.planning/to your.gitignore - Useful for OSS contributions, client projects, or keeping planning private
- All planning files still work normally, just not tracked in git
planning.search_gitignored (default: false)
true: Add--no-ignoreto broad ripgrep searches- Only needed when
.planning/is gitignored and you want project-wide searches to include it
Example config:
{
"planning": {
"commit_docs": false,
"search_gitignored": true
}
}
Common Workflows
Starting a new project:
/gsd:new-project # Unified flow: questioning → research → requirements → roadmap
/clear
/gsd:plan-phase 1 # Create plans for first phase
/clear
/gsd:execute-phase 1 # Execute all plans in phase
Resuming work after a break:
/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
Completing a milestone:
/gsd:complete-milestone 1.0.0
/clear
/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
Debugging an issue:
/gsd:debug "form submission fails silently" # Start debug session
# ... investigation happens, context fills up ...
/clear
/gsd:debug # Resume from where you left off
Getting Help
- Read
.planning/PROJECT.mdfor project vision - Read
.planning/STATE.mdfor current context - Check
.planning/ROADMAP.mdfor phase status - Run
/gsd:progressto check where you're up to