Files
msd-core/commands/gsd/create-roadmap.md
Lex Christopherson 18351fe3e4 feat: unify project initialization into single /gsd:new-project flow
Consolidates 4 separate commands into one unified flow:
- /gsd:new-project now handles: questioning → research → requirements → roadmap
- Creates gsd-roadmapper agent for heavy lifting (goal-backward, coverage validation)
- Adds atomic commits after each stage for crash recovery
- Deprecates standalone research-project, define-requirements, create-roadmap
  (kept for mid-project use)

Fixes from audit:
- Add requirements quality criteria (specific, user-centric, atomic, independent)
- Add milestone context to research prompts (greenfield vs subsequent)
- Add quality gates per research dimension
- Add template references for consistent output format

Removes deprecated gsd-researcher.md (replaced by project/phase researchers)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 11:15:58 -06:00

3.7 KiB

name, description, allowed-tools
name description allowed-tools
gsd:create-roadmap Create roadmap with phases for the project
Read
Write
Bash
AskUserQuestion
Glob
Task
Create project roadmap with phase breakdown.

Roadmaps define what work happens in what order. Phases map to requirements.

Note: For new projects, /gsd:new-project includes roadmap creation. Use this command to recreate roadmap later.

<execution_context> @/.claude/get-shit-done/references/principles.md @/.claude/get-shit-done/workflows/create-roadmap.md @/.claude/get-shit-done/templates/roadmap.md @/.claude/get-shit-done/templates/state.md @~/.claude/get-shit-done/references/goal-backward.md </execution_context>

@.planning/PROJECT.md @.planning/config.json @.planning/REQUIREMENTS.md @.planning/research/SUMMARY.md (if exists) ```bash # Verify project exists [ -f .planning/PROJECT.md ] || { echo "ERROR: No PROJECT.md found. Run /gsd:new-project first."; exit 1; }

Verify requirements exist

[ -f .planning/REQUIREMENTS.md ] || { echo "ERROR: No REQUIREMENTS.md found. Run /gsd:define-requirements first."; exit 1; }

</step>

<step name="check_existing">
Check if roadmap already exists:

```bash
[ -f .planning/ROADMAP.md ] && echo "ROADMAP_EXISTS" || echo "NO_ROADMAP"

If ROADMAP_EXISTS: Use AskUserQuestion:

  • header: "Roadmap exists"
  • question: "A roadmap already exists. What would you like to do?"
  • options:
    • "View existing" - Show current roadmap
    • "Replace" - Create new roadmap (will overwrite)
    • "Cancel" - Keep existing roadmap

If "View existing": cat .planning/ROADMAP.md and exit If "Cancel": Exit If "Replace": Continue with workflow

Follow the create-roadmap.md workflow starting from identify_phases step.

The workflow handles:

  • Loading requirements
  • Phase identification mapped to requirements
  • Requirement coverage validation (no orphaned requirements)
  • Research flags for each phase
  • Confirmation gates (respecting config mode)
  • ROADMAP.md creation with requirement mappings
  • STATE.md initialization
  • REQUIREMENTS.md traceability update
  • Phase directory creation
  • Git commit
``` Roadmap created: - Roadmap: .planning/ROADMAP.md - State: .planning/STATE.md - [N] phases defined

▶ Next Up

Phase 1: [Name] — [Goal from ROADMAP.md]

/gsd:plan-phase 1

/clear first → fresh context window


Also available:

  • /gsd:discuss-phase 1 — gather context first
  • /gsd:research-phase 1 — investigate unknowns
  • Review roadmap

</step>

</process>

<output>
- `.planning/ROADMAP.md`
- `.planning/STATE.md`
- `.planning/phases/XX-name/` directories
</output>

<success_criteria>
- [ ] PROJECT.md validated
- [ ] REQUIREMENTS.md validated
- [ ] All v1 requirements mapped to phases (no orphans)
- [ ] Success criteria derived for each phase (2-5 observable behaviors)
- [ ] Success criteria cross-checked against requirements (gaps resolved)
- [ ] ROADMAP.md created with phases, requirement mappings, and success criteria
- [ ] STATE.md initialized
- [ ] REQUIREMENTS.md traceability section updated
- [ ] Phase directories created
- [ ] Changes committed
</success_criteria>