Skip to main content
REQUIREMENTS.md defines what “done” means for your project. Each requirement is checkable, atomic, and traced to specific phases in your roadmap.

Location

Created during /gsd:new-project after research and before roadmap creation.

Template Structure

Requirement Format

ID Scheme

Format: [CATEGORY]-[NUMBER] Examples:
  • AUTH-01, AUTH-02 - Authentication features
  • CONT-01, CONT-02 - Content features
  • SOCL-01, SOCL-02 - Social features
  • NOTF-01, NOTF-02 - Notifications

Description Guidelines

Requirements should be:
  1. User-centric - Focus on what users can do
  2. Testable - Clear pass/fail criteria
  3. Atomic - One thing per requirement
  4. Clear - No ambiguity about what “done” means
Good examples:
Bad examples (too vague):

Categories

Deriving Categories

Source: Research FEATURES.md categories Keep consistent with domain conventions:
  • Social app: Authentication, Profiles, Content, Social, Notifications, Moderation
  • CLI tool: Commands, Configuration, Output, Error Handling
  • API: Endpoints, Authentication, Validation, Error Responses
Typical categories:
  • Authentication (AUTH)
  • Authorization (AUTHZ)
  • Content (CONT)
  • Social (SOCL)
  • Notifications (NOTF)
  • Moderation (MODR)
  • Payments (PAYM)
  • Admin (ADMN)
  • Search (SRCH)

v1 vs v2 vs Out of Scope

v1 Requirements

Committed scope - Will be in roadmap phases.
  • Checkbox format: - [ ] **REQ-ID**: Description
  • Each requirement maps to exactly one phase
  • Checked off as phases complete

v2 Requirements

Acknowledged but deferred - Not in current roadmap.
  • No checkbox format: - **REQ-ID**: Description
  • Documented so they’re not forgotten
  • Moving v2 → v1 requires roadmap update

Out of Scope

Explicit exclusions with reasoning.
  • Prevents “why didn’t you include X?” later
  • Anti-features from research belong here with warnings
Example:

Traceability

Purpose

Maps requirements to phases, ensuring nothing is missed.

Population

  • Initially empty - Populated during roadmap creation
  • Each requirement maps to exactly one phase
  • Unmapped requirements = roadmap gap

Status Values

Coverage Check

The summary at the bottom ensures completeness:
⚠️ Unmapped requirements indicate phases missing from roadmap.

Example: Community App

Evolution

After Each Phase Completes

  1. Mark covered requirements as Complete
  2. Update traceability status
  3. Note any requirements that changed scope

After Roadmap Updates

  1. Verify all v1 requirements still mapped
  2. Add new requirements if scope expanded
  3. Move requirements to v2/out of scope if descoped

Completion Criteria

Requirement is “Complete” when:
  • Feature is implemented
  • Feature is verified (tests pass, manual check done)
  • Feature is committed

See Also