Files
msd-core/commands/gsd/create-roadmap.md
Lex Christopherson d0488c503f feat: add define-requirements command for scoped v1 requirements
Adds /gsd:define-requirements to transform research findings into
checkable requirements before roadmap creation.

New flow:
  new-project → research-project → define-requirements → create-roadmap

New files:
- commands/gsd/define-requirements.md
- get-shit-done/workflows/define-requirements.md
- get-shit-done/templates/requirements.md

Modified:
- new-project.md: updated next steps
- research-project.md: points to define-requirements
- create-roadmap.md: requires REQUIREMENTS.md, validates coverage
- workflows/create-roadmap.md: maps phases to requirements, updates traceability

Key changes:
- Phases now map to specific requirement IDs
- 100% requirement coverage required before roadmap creation
- REQUIREMENTS.md traceability section tracks phase assignments

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-14 23:25:41 -06:00

129 lines
2.9 KiB
Markdown

---
name: gsd:create-roadmap
description: Create roadmap with phases for the project
allowed-tools:
- Read
- Write
- Bash
- AskUserQuestion
- Glob
---
<objective>
Create project roadmap with phase breakdown.
Roadmaps define what work happens in what order. Phases map to requirements.
Run after `/gsd:define-requirements`.
</objective>
<execution_context>
@~/.claude/get-shit-done/workflows/create-roadmap.md
@~/.claude/get-shit-done/templates/roadmap.md
@~/.claude/get-shit-done/templates/state.md
</execution_context>
<context>
@.planning/PROJECT.md
@.planning/config.json
@.planning/REQUIREMENTS.md
@.planning/research/SUMMARY.md (if exists)
</context>
<process>
<step name="validate">
```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
</step>
<step name="create_roadmap">
Follow the create-roadmap.md workflow starting from detect_domain step.
The workflow handles:
- Loading requirements
- Domain expertise detection
- 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
</step>
<step name="done">
```
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`
<sub>`/clear` first → fresh context window</sub>
---
**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)
- [ ] ROADMAP.md created with phases and requirement mappings
- [ ] STATE.md initialized
- [ ] REQUIREMENTS.md traceability section updated
- [ ] Phase directories created
- [ ] Changes committed
</success_criteria>