Phase 1: Define feature requirements and acceptance criteria
Creates a structured requirements document with user stories, acceptance criteria, and verified assumptions. Use this when planning new features to define what to build before designing how to build it.
/plugin marketplace add kenotron-ms/amplifier-setup/plugin install dev-kit@amplifier-setupnew-feature/Define what to build: user stories, acceptance criteria, scope, and constraints.
This template MUST be followed when creating 01-requirements.md.
# Feature Requirements: [Name]
**Source**: [New / Based on docs/specs/file.md / User-provided / Issue #123]
**Created**: YYYY-MM-DD
## Problem Statement
[What problem are we solving and why it matters]
## User Stories
- As a [user type], I want [capability] so that [benefit]
- As a [user type], I want [capability] so that [benefit]
## Acceptance Criteria
- [ ] Criterion 1: [measurable, testable criterion]
- [ ] Criterion 2: [measurable, testable criterion]
- [ ] Criterion 3: [measurable, testable criterion]
## Success Metrics
- [Metric 1]: [Target value]
- [Metric 2]: [Target value]
## Functional Requirements
1. [Specific requirement]
2. [Specific requirement]
## Non-Functional Requirements
- Performance: [requirements]
- Security: [requirements]
- Scalability: [requirements]
## Constraints
- Technical: [constraints]
- Business: [constraints]
- Timeline: [constraints]
## Dependencies
- [System/Feature 1]: [how it's needed]
- [System/Feature 2]: [how it's needed]
## Out of Scope
[What we're explicitly NOT doing in this iteration]
## Assumptions & Verified Facts
**IMPORTANT**: Search for answers before assuming. Mark each item with status.
**Status Markers:**
- ✅ DISCOVERED = Found in 00-discovery.md
- ✅ USER CONFIRMED = User explicitly confirmed
- ✅ CONFIRMED BY CODE = Found in codebase
- ❓ ASSUMPTION = True assumption (no answer found, needs verification)
### Technical Assumptions
#### [Status] Item 1: [Topic]
**What**: [What we believe/discovered]
**Source**: [Discovery doc / Codebase / User confirmation / Educated guess]
**Impact if wrong**: [What would change]
**Verification**: [How to verify if marked ❓]
### User Behavior Assumptions
#### [Status] Item: [Topic]
**What**: [Behavior assumption]
**Source**: [Where confirmed / why assumed]
**Impact if wrong**: [What changes]
### Business Assumptions
#### [Status] Item: [Topic]
**What**: [Business logic]
**Source**: [Where confirmed / why assumed]
**Impact if wrong**: [What changes]
### Data Assumptions
#### [Status] Item: [Topic]
**What**: [Data format/structure]
**Source**: [Where confirmed / why assumed]
**Impact if wrong**: [What changes]
### Integration Assumptions
#### [Status] Item: [Topic]
**What**: [External system/API]
**Source**: [Where confirmed / why assumed]
**Impact if wrong**: [What changes]
### Scope Assumptions
#### [Status] Item: [Topic]
**What**: [Included/excluded]
**Source**: [Where confirmed / why assumed]
**Impact if wrong**: [What changes]
**Review all items. Items marked ❓ need verification before design phase.**
## References
[If based on existing documents, link them here]
- Original spec: docs/specs/feature.md
- Related issue: #123
- Previous discussion: link
ai_working/<feature>-<date>/00-discovery.mdai_working/<feature>-<date>/progress.mdUse TodoWrite to track all steps:
- [ ] Check for existing requirements documents
- [ ] Requirements gathering complete
- [ ] User stories defined
- [ ] Acceptance criteria documented
- [ ] Scope boundaries clear
- [ ] Dependencies identified
- [ ] Assumptions documented
- [ ] Requirements approved
REQUIRED: Must use knowledge-archaeologist agent to search for existing requirements.
Task knowledge-archaeologist: "Search for existing requirements documents,
specifications, or RFCs related to [feature name]. Look in:
- docs/ directory
- specs/ or requirements/ directories
- Issue tracker references
- Previous planning documents
- Architecture decision records (ADRs)
Extract any relevant requirements already documented."
Wait for agent to complete. Review findings.
If existing documents found:
Found potential requirements documents:
- docs/specs/user-authentication-RFC.md
- issues/#123 - User authentication feature request
Would you like to:
1. Use existing document as basis (I'll extract requirements)
2. Reference existing document but create new requirements
3. Ignore and start fresh
Your choice: _
If user chooses option 1 (Use existing):
If user provided a requirements document via $ARGUMENTS or in chat:
I see you've provided requirements documentation.
Let me analyze it and ask clarifying questions for any gaps.
Use the provided document to answer initial questions before asking user.
CRITICAL: Before gathering requirements or making assumptions, read and review the discovery document.
Read ai_working/<feature>-<date>/00-discovery.md to understand:
When making assumptions later, explicitly reference discovery findings:
CRITICAL - Requirements Focus on WHAT (User Needs), Not HOW (Implementation):
Examples:
CORRECT (product/user questions):
WRONG (technical questions):
If no existing requirements found, gather user/business needs:
If existing requirements found, validate and fill gaps:
REQUIRED: Must use ambiguity-guardian agent.
Task ambiguity-guardian: "Review feature requirements for [feature], identify
ambiguities, contradictions, missing information, and areas needing clarification.
CRITICAL: Focus on PRODUCT/BUSINESS ambiguities, NOT technical implementation:
- ✅ Clarify user needs and expected behavior
- ✅ Clarify business rules (persist? sync? scope?)
- ✅ Clarify acceptance criteria
- ❌ Do NOT ask technical questions (storage mechanism, API choice, etc.)
- ❌ Technical decisions belong in Phase 2 (Design)
Map what we know and what we need to clarify about WHAT users need."
Wait for agent to complete. Address identified PRODUCT/BUSINESS ambiguities with user (not technical ones).
CRITICAL: Before documenting ANY assumption, search for answers first.
For each potential assumption (technical, business, data, integration, scope):
Search order:
grep -r "[assumption topic]" docs/ README.md ARCHITECTURE.md
grep -r "[assumption topic]" --include="*.ts" --include="*.py" src/ backend/
Document results:
Examples:
Before assuming "No settings system exists":
Before assuming "Default state should be expanded":
REQUIRED: Must create 01-requirements.md following the TEMPLATE section above.
ai_working/<feature>-<date>/01-requirements.mdSections to complete:
When documenting "assumptions":
Don't call something an assumption if you already found the answer!
Update progress.md to mark Phase 1 as PENDING APPROVAL:
1. [✓] Phase 0: Discovery (100%)
2. [⏸] Phase 1: Requirements - PENDING APPROVAL
Update session notes:
Present summary to user highlighting:
WAIT for user response:
Are the requirements and assumptions correct?
1. Yes, approved - proceed to design phase
2. No, I need to correct some assumptions
3. Let me review the document first
Your choice: _
ONLY after user approves (option 1):
Update progress.md:
2. [✓] Phase 1: Requirements (100%) - APPROVED
3. [→] Phase 2: Design (0%) - Starting
Update completion: 15%
Then suggest:
✓ Phase 1 approved!
Next: /new-feature:2-design
ai_working/<feature>-<date>/01-requirements.md - Requirements with assumptionsprogress.md (updated) - Progress trackerAfter requirements and assumptions are approved:
/new-feature:2-design