BMAD-METHOD/.claude/templates/feature-specification.md

211 lines
6.2 KiB
Markdown

# Feature Specification: {{feature_name}}
**Feature ID**: {{feature_id}}
**Created**: {{creation_date}}
**Status**: {{status}}
**Priority**: {{priority}}
**Input**: User description: "{{user_description}}"
## Execution Flow (SDD Approach)
```
1. Parse user description from Input
→ If empty: ERROR "No feature description provided"
2. Extract key concepts from description
→ Identify: actors, actions, data, constraints
3. For each unclear aspect:
→ Mark with [NEEDS CLARIFICATION: {{specific_question}}]
4. Fill User Scenarios & Testing section
→ If no clear user flow: ERROR "Cannot determine user scenarios"
5. Generate Functional Requirements
→ Each requirement must be testable
→ Mark ambiguous requirements
6. Identify Key Entities (if data involved)
7. Run Review Checklist
→ If any [NEEDS CLARIFICATION]: WARN "Spec has uncertainties"
→ If implementation details found: ERROR "Remove tech details"
8. Return: SUCCESS (spec ready for implementation planning)
```
---
## ⚡ SDD Guidelines
- ✅ Focus on **WHAT** users need and **WHY**
- ❌ Avoid **HOW** to implement (no tech stack, APIs, code structure)
- 👥 Written for business stakeholders, **specifications drive code**
- 🔄 Specifications are **executable** - they generate implementation
## Problem Statement
### What Problem Does This Solve?
{{problem_description}}
### Who Is Affected?
- **Primary Users**: {{primary_users}}
- **Secondary Users**: {{secondary_users}}
- **Stakeholders**: {{stakeholders}}
### Current Pain Points
- {{pain_point_1}}
- {{pain_point_2}}
- {{pain_point_3}}
## Success Criteria
### Business Objectives
- {{business_objective_1}}
- {{business_objective_2}}
- {{business_objective_3}}
### User Success Metrics
- {{user_metric_1}}
- {{user_metric_2}}
- {{user_metric_3}}
### Acceptance Definition
{{acceptance_definition}}
## User Scenarios & Testing
### Primary User Flow
```
Given {{precondition}}
When {{user_action}}
Then {{expected_outcome}}
```
### Edge Cases & Error Scenarios
1. **{{edge_case_1}}**: {{edge_case_1_behavior}}
2. **{{edge_case_2}}**: {{edge_case_2_behavior}}
3. **{{edge_case_3}}**: {{edge_case_3_behavior}}
### Integration Points
- {{integration_point_1}}
- {{integration_point_2}}
- {{integration_point_3}}
## Functional Requirements
### Core Requirements
1. **FR1**: {{functional_requirement_1}}
2. **FR2**: {{functional_requirement_2}}
3. **FR3**: {{functional_requirement_3}}
### Data Requirements
- **Input Data**: {{input_data_requirements}}
- **Output Data**: {{output_data_requirements}}
- **Data Validation**: {{data_validation_rules}}
- **Data Retention**: {{data_retention_policy}}
### Business Rules
- {{business_rule_1}}
- {{business_rule_2}}
- {{business_rule_3}}
## Non-Functional Requirements
### Performance Requirements
- **Response Time**: {{response_time_requirement}}
- **Throughput**: {{throughput_requirement}}
- **Concurrent Users**: {{concurrency_requirement}}
### Security Requirements
- **Authentication**: {{auth_requirements}}
- **Authorization**: {{authorization_requirements}}
- **Data Protection**: {{data_protection_requirements}}
### Usability Requirements
- **Accessibility**: {{accessibility_requirements}}
- **User Experience**: {{ux_requirements}}
- **Browser Support**: {{browser_support_requirements}}
## Key Entities & Relationships
### Data Entities
- **{{entity_1}}**: {{entity_1_description}}
- Attributes: {{entity_1_attributes}}
- Relationships: {{entity_1_relationships}}
- **{{entity_2}}**: {{entity_2_description}}
- Attributes: {{entity_2_attributes}}
- Relationships: {{entity_2_relationships}}
### State Management
- **States**: {{possible_states}}
- **Transitions**: {{state_transitions}}
- **Triggers**: {{state_triggers}}
## Constraints & Assumptions
### Technical Constraints
- {{technical_constraint_1}}
- {{technical_constraint_2}}
- {{technical_constraint_3}}
### Business Constraints
- {{business_constraint_1}}
- {{business_constraint_2}}
- {{business_constraint_3}}
### Key Assumptions
- {{assumption_1}}
- {{assumption_2}}
- {{assumption_3}}
## Dependencies & Prerequisites
### Internal Dependencies
- {{internal_dependency_1}}
- {{internal_dependency_2}}
- {{internal_dependency_3}}
### External Dependencies
- {{external_dependency_1}}
- {{external_dependency_2}}
- {{external_dependency_3}}
### Prerequisites
- {{prerequisite_1}}
- {{prerequisite_2}}
- {{prerequisite_3}}
## Open Questions & Clarifications
### Needs Clarification
- [NEEDS CLARIFICATION: {{clarification_1}}]
- [NEEDS CLARIFICATION: {{clarification_2}}]
- [NEEDS CLARIFICATION: {{clarification_3}}]
### Research Required
- {{research_item_1}}
- {{research_item_2}}
- {{research_item_3}}
## Review Checklist
- [ ] **Testable Requirements**: Every requirement has clear acceptance criteria
- [ ] **No Implementation Details**: Specification focuses on WHAT, not HOW
- [ ] **Complete User Flows**: All primary and edge case scenarios covered
- [ ] **Clear Business Value**: Success criteria directly relate to user/business needs
- [ ] **Unambiguous Language**: No room for multiple interpretations
- [ ] **Data Model Clarity**: All entities and relationships clearly defined
- [ ] **Error Handling**: All failure scenarios have defined behaviors
- [ ] **Integration Points**: All external dependencies identified
- [ ] **Performance Criteria**: Non-functional requirements are measurable
- [ ] **Security Considerations**: Authentication, authorization, and data protection addressed
---
## Implementation Handoff
### For Architect Agent
This specification defines **WHAT** needs to be built. Create technical architecture that determines **HOW** to implement these requirements using appropriate technologies and patterns.
### For Developer Agent
Implementation must satisfy **ALL** functional requirements and success criteria. Generated code should include comprehensive tests that validate specification compliance.
### For QA Agent
Test plans must verify **EVERY** requirement and scenario defined in this specification. Focus on specification compliance, not just code coverage.
---
*This specification follows Specification-Driven Development (SDD) principles where specifications are executable and generate implementation. Changes to requirements should update this specification first, then propagate to implementation.*