Files
msd-core/commands/gsd/define-requirements.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

2.8 KiB

name, description, allowed-tools
name description allowed-tools
gsd:define-requirements Define what "done" looks like with checkable requirements
Read
Write
Bash
Glob
AskUserQuestion
Define concrete, checkable requirements from research findings.

Research answers "what do products like this have?" Requirements answers "what are WE building?"

Transforms research features into scoped v1/v2 requirements that roadmap phases map to.

Run after /gsd:research-project, before /gsd:create-roadmap.

Output: .planning/REQUIREMENTS.md

<execution_context> @/.claude/get-shit-done/workflows/define-requirements.md @/.claude/get-shit-done/templates/requirements.md </execution_context>

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

Verify research exists

[ -f .planning/research/FEATURES.md ] || { echo "ERROR: No research found. Run /gsd:research-project first."; exit 1; }

Check if requirements already exist

[ -f .planning/REQUIREMENTS.md ] && echo "REQUIREMENTS_EXISTS" || echo "NO_REQUIREMENTS"

</step>

<step name="check_existing">
**If REQUIREMENTS_EXISTS:**

Use AskUserQuestion:
- header: "Requirements exist"
- question: "Requirements already defined. What would you like to do?"
- options:
  - "View existing" — Show current requirements
  - "Replace" — Define requirements fresh (will overwrite)
  - "Cancel" — Keep existing requirements

If "View existing": Read and display `.planning/REQUIREMENTS.md`, then exit
If "Cancel": Exit
If "Replace": Continue with workflow
</step>

<step name="execute">
Follow the define-requirements.md workflow:
- Load research features
- Present features by category
- Ask user to scope each category (v1 / v2 / out of scope)
- Capture any additions research missed
- Generate REQUIREMENTS.md with checkable list
</step>

<step name="done">

Requirements defined:

  • Requirements: .planning/REQUIREMENTS.md
  • v1 scope: [N] requirements across [M] categories
  • v2 scope: [X] requirements deferred
  • Out of scope: [Y] requirements excluded

▶ Next Up

Create roadmap — phases mapped to requirements

/gsd:create-roadmap

/clear first → fresh context window


</step>

</process>

<success_criteria>
- [ ] PROJECT.md validated
- [ ] Research FEATURES.md loaded
- [ ] Features presented by category
- [ ] User scoped each category (v1/v2/out of scope)
- [ ] User had opportunity to add missing requirements
- [ ] REQUIREMENTS.md created with checkable list
- [ ] Requirements committed to git
- [ ] User knows next step (create-roadmap)
</success_criteria>