| autoload | true |
|---|---|
| maturity | alpha |
Agent Driven Development requires specifications before code. This is non-negotiable.
Every project follows this chain. No link may be skipped.
PRD (docs/prd.md)
→ Feature Specs (specs/{feature}.md)
→ Implementation Plans (docs/plans/{feature}-plan.md)
→ User Test Cases (embedded in spec)
→ Automated Tests (RED phase)
→ Implementation (GREEN phase)
Before any feature work begins, docs/prd.md must exist and contain:
- Problem Statement — What problem are we solving and for whom
- Success Metrics — How we know the project succeeded
- Scope — What's in and what's explicitly out
- Technical Constraints — Stack, environments, deployment targets
- Environment Strategy — Which environments exist and their purpose
If no PRD exists when a feature spec is requested, stop and run the /add:init interview first.
Before any implementation begins, a spec must exist in specs/ and contain:
- Feature Description — What it does in plain language
- User Story — As [who], I want [what], so that [why]
- Acceptance Criteria — Numbered, testable statements (AC-001, AC-002, etc.)
- User Test Cases — Human-readable test scenarios (TC-001, TC-002, etc.)
- Data Model — Entities, fields, types, relationships
- API Contract — Endpoints, request/response schemas (if applicable)
- Edge Cases — What happens when things go wrong
- Screenshot Checkpoints — What to visually verify in E2E tests
Before coding begins, a plan must exist in docs/plans/ and contain:
- Task Breakdown — Ordered list of implementation steps
- File Changes — Which files are created, modified, or deleted
- Test Strategy — What types of tests cover this feature
- Dependencies — What must be done first
- Spec Traceability — Each task maps to acceptance criteria
- NEVER write implementation code without a spec in
specs/ - NEVER write a spec without a PRD in
docs/prd.md - NEVER start coding without a plan in
docs/plans/ - If asked to "just build it" — create the spec first, then build from it
- Specs ARE the source of truth. If code contradicts the spec, the code is wrong.