Files
msd-core/commands/gsd/define-requirements.md
Lex Christopherson 194d1d88bb refactor: slim principles.md and load in core commands
Reduce principles.md from 158 to 73 lines:
- Remove duplicates (atomic_commits, tdd, deviation_rules)
- Remove version drag from claude_automates
- Keep core orientation: solo dev model, plans are prompts,
  scope control, ship fast, anti-enterprise

Add principles.md to 9 core commands so Claude always
understands what GSD is.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 23:48:44 -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/references/principles.md @/.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>