Create or update feature requirements specification using EARS notation with examples and appendices
Create a formal requirements specification for a feature using EARS notation. This translates the concept into testable, specific requirements.
docs/features/NNNN-feature-name/concept.md# Check that concept exists
ls ./docs/features/NNNN-feature-name/concept.md
If it doesn't exist, use propose-feature-concept skill first.
ls ./planning/NNNN-feature-name/idea-honing.md 2>/dev/null
If it exists, review it for insights that inform requirements. The Q&A may reveal edge cases and constraints.
cp ./docs/features/0000-templates/requirements.md ./docs/features/NNNN-feature-name/
Choose a short prefix (2-5 characters) for requirement IDs:
SEM for semantic-search, REG for registry-managementSEM-1, SEM-2, etc.Write a brief description of what this specification covers. Reference the concept document.
For each requirement, use EARS format:
**WHILE** [state or condition]
**WHEN** [trigger or event]
**THEN** the system **SHALL** [required behavior]
Add inline examples only if truly small (1-3 lines):
key = "value"
For larger examples, note them for appendices.
Add performance, usability, security, or other quality requirements:
**WHILE** [operating condition]
**THEN** the system **SHALL** [performance requirement]
Scalability prompts (ask these for each major operation):
These questions surface constraints that will become Critical Constraints in the design phase. If an operation must be O(1) memory or O(log n) time, state it here.
Specify how errors should be handled:
**WHILE** [operation in progress]
**WHERE** [error condition occurs]
**THEN** the system **SHALL** [error handling behavior]
For larger examples that would clutter requirements:
Each appendix should be clearly labeled:
## Appendix A: API Response Schema
## Appendix B: Configuration File Format
Ensure:
Verify the requirements document:
# Check file exists
ls ./docs/features/NNNN-feature-name/requirements.md
# Verify it has content
head -50 ./docs/features/NNNN-feature-name/requirements.md
# Check for EARS keywords
grep -E "WHILE|WHEN|WHERE|THEN|SHALL" ./docs/features/NNNN-feature-name/requirements.md
Missing EARS keywords: Every requirement should use WHILE/WHEN/WHERE/THEN/SHALL.
Too vague: Requirements should be specific enough to test.
Inline examples too large: Move anything over 3 lines to an appendix.
Inconsistent prefix: All requirement IDs should use the same prefix.
After creating requirements:
propose-feature-design skill