Requirements
Overview
Structured command to help create a requirements document by guiding through requirements discovery, practical scoping, and generating a single, consolidated requirements document with clear, practical language.
Create a requirements document following the established feature development process. First, read the feature development guide at @~/.local/share/dotfiles/ai/guides/feature-development-process.md and the vision document at @vision.md to understand the feature scope and documentation approach.
Note: If the project has a local copy of the guide at @project/guides/feature-development-process.md, you may reference that instead for project-specific modifications.
IMPORTANT: Start by creating a TODO list to track the 3 phases of requirements creation. Mark the first phase as "in_progress" and others as "pending".
Requirements Document Structure
Single Consolidated Document (requirements.md) includes:
User Stories & Business Needs:
-
User stories structured by role
-
Business capabilities and user workflows
-
Core system capabilities the system must provide
Business Data & Rules:
-
Business entities and data requirements (entities, relationships, business-level attributes and constraints)
-
Business logic and rules that govern system behavior
-
User experience requirements
Quality Attributes & Constraints:
-
Performance, security, reliability, and scalability requirements
-
Compliance and privacy controls
-
Technical constraints and limitations
Integration & Success:
-
Integration touchpoints with existing systems
-
Development and testing approaches
-
Success criteria and acceptance criteria
-
Constraints and assumptions
Requirement Identification Format
All requirements must use systematic ID prefixes for easy cross-referencing in specs, plans, and discussions.
Prefix Usage Numbering
US-X.X.X
User Stories Section.Subsection.Item
REQ-X.X.X
Requirements Section.Subsection.Item
SC-X
Success Criteria Sequential number
Format Examples:
US-1.1.1: As a staff member, I want to view custom field data...
REQ-2.1.1: The system must render form controls dynamically based on...
SC-1: Staff can view custom field values on detail pages.
Numbering Rules:
-
Numbers follow document section hierarchy (section 2.1 → REQ-2.1.x)
-
User stories in section 1.1 use US-1.1.1, US-1.1.2, etc.
-
Requirements in section 3.2 use REQ-3.2.1, REQ-3.2.2, etc.
-
Success criteria use simple sequential numbers (SC-1 through SC-N)
Existing System Patterns to Consider
When gathering requirements, check if existing system capabilities apply:
-
Search: Full-text search capabilities
-
File Attachments: Document/file upload and management
-
Audit Trail: Change tracking and history
-
Multi-tenancy: Data isolation per organization/tenant
-
Permissions: Role-based access control
-
Tagging: Classification and categorization systems
-
Custom Fields: Extensible data fields
Ask early: "Which of these existing capabilities might apply to this feature?"
Process: Work Through These 3 Phases Sequentially
Phase 1: Requirements Discovery
Ask focused questions to gather ALL requirements (don't categorize yet):
-
What specific capabilities does the system need to provide?
-
What business entities does it need to manage (main concepts, relationships, business-level attributes)?
-
What data does it need to store and what are the business constraints?
-
What business rules need to be enforced?
-
What are the different audiences (staff, members, public, admins)?
-
How do requirements differ across these audiences?
-
What should each audience be able to see and do?
-
How do users interact with the system?
-
What happens when there's no data? (Empty states for staff vs members)
-
How is the data presented? (Feed-style, table, cards, etc.)
-
What makes this feature usable for all technical skill levels?
-
What are the security and permission requirements?
-
What performance expectations exist?
-
What integrations are needed with existing systems?
-
What compliance or privacy requirements apply?
ONE QUESTION AT A TIME - Wait for answers before proceeding.
Phase 2: Practical Focus & Future Planning
For each discovered requirement, ask:
-
Is this immediately practical for the current scope?
-
Should this go in current requirements or future.md for later phases?
-
Can we state this in clear, simple language?
-
Is this appropriately scoped for the current phase?
-
Is this testable and measurable?
Create future.md for requirements that are:
-
Great ideas but beyond current scope
-
Complex features requiring Phase 2/3 implementation
-
Ideas worth preserving for future consideration
-
Advanced features that build on the initial foundation
Keep in current requirements only what is:
-
Immediately practical and achievable
-
Essential for core functionality
-
Written in clear, simple language
Phase 3: Document Generation
-
Apply ID prefixes to all user stories (US-), requirements (REQ-), and success criteria (SC-) following the Requirement Identification Format above
-
Create a single consolidated requirements.md document with the following structure:
-
User Stories & Business Needs - structured by role with clear business capabilities
-
Core System Capabilities - what the system must provide to users
-
Business Data Requirements - entities, relationships, business-level attributes
-
Business Rules & Logic - rules and constraints that govern behavior
-
User Experience Requirements - how the system should feel and behave
-
Quality Attributes & Constraints - performance, security, reliability, scalability
-
Integration Touchpoints - connections with existing systems
-
Development & Testing Approach - how the system will be built and validated
-
Success Criteria - clear acceptance criteria and definition of success
-
Constraints & Assumptions - scope boundaries and foundational assumptions
-
Create future.md for deferred requirements (organized by user stories and technical phases)
-
Update or create discussion-summary.md:
-
Check if discussion-summary.md exists in the feature directory
-
If exists: Add a "Requirements Phase" section with:
-
Technical discussions and research from requirements phase
-
"Resolved Questions from Vision" subsection (table showing what was open and how resolved)
-
Update Key Decisions Log with new decisions (continuing numbering from vision)
-
Update Technical Context with newly referenced files
-
If not exists: Create it with full structure including Vision Phase placeholder
-
Include table of contents with proper links in all documents
-
Include systematic section numbering (1.1, 1.2, 2.1, 2.2, etc.) for precise cross-referencing
-
Cross-reference the vision document for business context
-
Use clear, practical language throughout
-
Follow the exact structure from our feature development process
-
When documenting key architectural decisions (separate page vs modal, feed vs table, etc.), capture the rationale (linkability, performance, UX, etc.)
Guidelines
-
Ask ONE question at a time and wait for response
-
Update your TODO list as you complete each phase
-
Keep language clear and conversational, not corporate-speak
-
Focus on immediately useful requirements, avoid over-engineering
-
Organize requirements in logical, readable structure that serves the whole team
-
Reference vision document and feature development process
-
Stay practical and focus on readable, actionable documents
-
Stay at Requirements Level: Focus on WHAT and WHY, not HOW
-
Good: "System must track whether event is draft or published"
-
Avoid: "Use boolean flag for is_draft field"
-
Good: "Events belong to one organization"
-
Avoid: "Include organization_id foreign key"
-
Save technical implementation details (data types, table structures, field names) for the specification phase
-
Expect Iteration: Requirements often get refined as users think through implications. This is normal and healthy. Be ready to update requirements based on new insights.
-
When requirements change significantly (optional→required, add→remove features), update ALL related sections consistently
Getting Started Process
-
Create your 3-phase TODO list immediately
-
Ask user: "What feature directory are you working in? Please provide the full path (e.g., project/features/FT033-feature-name)"
-
Ask user: "Please tag your vision document with @vision.md so I can understand the feature scope"
-
Validate the directory exists and confirm where you'll create the requirements document
-
Review the vision document to understand feature context
-
Begin Phase 1 with the first requirements discovery question
-
Keep questions focused and wait for answers before proceeding to next questions