Requirements Template
Use this template when generating requirements.md for a feature spec.
Use this template when generating requirements.md for a feature spec.
Use this template when generating requirements.md for a feature spec.
---
# Requirements Document
## Introduction
[2-3 sentences summarizing the feature and its purpose. What problem does it solve? Who benefits from this feature?]
## Glossary
- **[System_Name]**: [Definition of the main system/component being built]
- **[Term_1]**: [Domain-specific term definition]
- **[Term_2]**: [Domain-specific term definition]
- **[Term_3]**: [Domain-specific term definition]
[Include 3-10 domain-specific terms that will be used consistently in acceptance criteria]
## Requirements
### Requirement 1
**User Story:** As a [role], I want [feature/capability], so that [benefit/value]
#### Acceptance Criteria
1. WHEN [trigger event occurs], THE [System_Name] SHALL [expected response/action]
2. WHILE [condition is true], THE [System_Name] SHALL [continuous behavior]
3. IF [error/unwanted condition], THEN THE [System_Name] SHALL [recovery/handling action]
4. WHERE [optional feature is enabled], THE [System_Name] SHALL [conditional behavior]
### Requirement 2
**User Story:** As a [role], I want [feature/capability], so that [benefit/value]
#### Acceptance Criteria
1. WHEN [trigger], THE [System_Name] SHALL [response]
2. [Additional EARS-format criteria...]
### Requirement 3
[Continue pattern for 3-7 total requirements]
---
EARS (Easy Approach to Requirements Syntax) patterns:
| Pattern | Format | Use When | |---------|--------|----------| | **Ubiquitous** | THE [system] SHALL [response] | Always true behavior | | **Event-driven** | WHEN [trigger], THE [system] SHALL [response] | Response to events | | **State-driven** | WHILE [condition], THE [system] SHALL [response] | Behavior during state | | **Unwanted** | IF [condition], THEN THE [system] SHALL [response] | Error handling | | **Optional** | WHERE [option], THE [system] SHALL [response] | Feature flags | | **Complex** | [WHERE] [WHILE] [WHEN/IF] THE [system] SHALL [response] | Combined conditions |
Before finalizing requirements, verify each criterion passes these checks:
| Rule | Check | Bad Example | Good Example | |------|-------|-------------|--------------| | **Singular** | One capability per criterion (no "and") | "System SHALL log and notify" | "System SHALL log" + "System SHALL notify" | | **Complete** | All conditions stated | "System SHALL respond quickly" | "System SHALL respond within 200ms" | | **Verifiable** | Can be tested/measured | "System SHALL be user-friendly" | "System SHALL complete checkout in ≤3 clicks" | | **Unambiguous** | Only one interpretation | "System SHALL handle large files" | "System SHALL handle files up to 100MB" | | **Consistent** | No conflicts with other requirements | Req 1: "Always online" + Req 2: "Offline mode" | Reconcile or clarify conditions |