7.2 KiB
7.2 KiB
Requirements Analysis Command
You are helping the user analyze, document, and manage project requirements following Sngular's project management best practices.
Instructions
-
Determine the scope:
- Ask what feature or project needs requirements analysis
- Identify if this is for a new feature, enhancement, or bug fix
- Determine if there's an existing GitHub issue to update
- Check for existing documentation to review
-
Gather context:
- Review project documentation in
./docs - Analyze relevant codebase sections
- Check existing requirements or specifications
- Review similar features or patterns in the project
- Identify stakeholders and their needs
- Review project documentation in
-
Analyze requirements:
- Functional Requirements: What the system must do
- Non-Functional Requirements: Performance, security, scalability, accessibility
- User Stories: As a [user], I want [goal], so that [benefit]
- Acceptance Criteria: Clear, testable conditions for completion
- Dependencies: Other features, services, or systems required
- Constraints: Technical, business, or time limitations
- Assumptions: Things we're assuming to be true
- Risks: Potential issues or challenges
-
Structure the documentation:
## [Feature Name] - Requirements ### Overview Brief description of the feature and its purpose. ### Business Context - Why is this needed? - What problem does it solve? - What is the expected business impact? ### Functional Requirements #### FR-1: [Requirement Title] **Priority**: Must-have / Should-have / Could-have / Won't-have **Description**: Detailed description of what needs to be implemented **Acceptance Criteria**: - [ ] Criterion 1 - [ ] Criterion 2 - [ ] Criterion 3 #### FR-2: [Next Requirement] ... ### Non-Functional Requirements #### NFR-1: Performance - Response time: < 200ms for API calls - Page load time: < 2 seconds - Support for 1000 concurrent users #### NFR-2: Security - Authentication required - Role-based access control - Data encryption at rest and in transit #### NFR-3: Accessibility - WCAG 2.1 AA compliance - Screen reader support - Keyboard navigation ### User Stories **US-1**: As a [user type], I want to [action], so that [benefit] - Acceptance Criteria: - [ ] Criterion 1 - [ ] Criterion 2 ### Technical Specifications #### Data Models ```typescript interface Model { id: string // ... }API Endpoints
POST /api/resource- Create new resourceGET /api/resource/:id- Retrieve resource
UI Components
- ComponentName: Description and purpose
Dependencies
- External APIs or services required
- Third-party libraries needed
- Database schema changes
- Infrastructure requirements
Assumptions
- List of assumptions made during analysis
Risks & Mitigation
Risk Impact Likelihood Mitigation Strategy Risk 1 High Medium Mitigation plan Testing Strategy
- Unit tests for business logic
- Integration tests for API endpoints
- E2E tests for user workflows
- Performance testing approach
- Security testing considerations
Implementation Phases
Phase 1: Core functionality (2 weeks)
- Task 1
- Task 2
Phase 2: Advanced features (1 week)
- Task 3
- Task 4
Phase 3: Polish & optimization (3 days)
- Task 5
- Task 6
Success Metrics
- How will we measure success?
- KPIs to track
- User adoption goals
Open Questions
- Question 1 that needs clarification
- Question 2 requiring stakeholder input
-
GitHub Integration (if applicable):
- Check if working in a GitHub repository
- Ask for issue number to update
- Create or update GitHub issue with requirements
- Add appropriate labels:
requirements,documentation - Link related issues if any
-
Save documentation:
- Save requirements to
./docs/requirements/[feature-name].md - Update main requirements index if it exists
- Create a summary for quick reference
- Save requirements to
GitHub Commands
# View repository info
gh repo view
# List existing issues
gh issue list
# View specific issue
gh issue view <issue-number>
# Create new issue with requirements
gh issue create --title "Requirements: [Feature Name]" --body "$(cat requirements.md)" --label "requirements,documentation"
# Add requirements as comment to existing issue
gh issue comment <issue-number> --body "$(cat requirements.md)"
# Update issue labels
gh issue edit <issue-number> --add-label "requirements-defined"
# Link issues
gh issue comment <issue-number> --body "Related to #<other-issue-number>"
Requirements Prioritization (MoSCoW Method)
- Must-have: Critical for launch, non-negotiable
- Should-have: Important but not critical, can be scheduled for later if needed
- Could-have: Nice to have, adds value but not essential
- Won't-have: Not planned for this release, explicitly excluded
Best Practices
Writing Good Requirements
✅ Good:
- "The system shall allow users to export data in CSV, JSON, and XML formats"
- "API response time must be under 200ms for 95% of requests"
- "The login form must be accessible via keyboard navigation"
❌ Bad:
- "The system should be fast" (not measurable)
- "It should be user-friendly" (too vague)
- "We might need export functionality" (not decisive)
Acceptance Criteria Guidelines
Each acceptance criterion should be:
- Specific: Clearly defined without ambiguity
- Measurable: Can be verified through testing
- Achievable: Technically feasible within constraints
- Relevant: Directly related to the requirement
- Testable: Can write automated or manual tests
INVEST Principles for User Stories
- Independent: Can be developed separately
- Negotiable: Open to discussion and refinement
- Valuable: Provides clear value to users
- Estimable: Team can estimate effort
- Small: Can be completed in one sprint
- Testable: Can verify it's done
Questions to Ask
Before starting requirements analysis:
- "What is the main goal or problem this feature addresses?"
- "Who are the primary users and what are their needs?"
- "Are there existing issues or documentation I should review?"
- "What are the must-have features vs. nice-to-have?"
- "Are there any technical constraints or dependencies?"
- "What is the expected timeline or deadline?"
- "How will success be measured?"
- "Should I create a new GitHub issue or update an existing one?"
Example Workflow
- User: "Analyze requirements for user authentication feature"
- Claude: Reviews codebase, checks for existing auth patterns
- Claude: Asks clarifying questions about auth method (OAuth, JWT, etc.)
- Claude: Creates comprehensive requirements document
- Claude: Saves to
./docs/requirements/user-authentication.md - Claude: Creates GitHub issue or updates existing one
- Claude: Provides summary and next steps
Ask the user: "What feature or project would you like me to analyze requirements for?"