Acceptance Criteria
Acceptance criteria define when a goal or task is complete. Well-written criteria are essential for effective planning.
What Makes Good Criteria
Specific and Measurable
Criteria should be concrete enough to verify objectively.
yaml
# Good: Specific
acceptanceCriteria:
- API responds within 200ms for 95th percentile
- All endpoints return JSON with Content-Type header
# Avoid: Vague
acceptanceCriteria:
- API is fast
- Responses are properly formatted
Testable
Each criterion should be verifiable, ideally through automated tests.
yaml
acceptanceCriteria:
- Unit tests cover 80% of code
- Integration tests pass for all endpoints
- No TypeScript errors in strict mode
Independent
Criteria should be evaluatable independently of each other.
yaml
# Good: Independent criteria
acceptanceCriteria:
- Users can upload files up to 10MB
- Uploaded files are scanned for viruses
- File metadata is stored in database
# Avoid: Dependent criteria
acceptanceCriteria:
- Upload works
- And scanning works on uploaded files
Writing Criteria at Different Levels
Goal-Level Criteria
High-level outcomes that define success for the entire goal.
yaml
kind: Goal
spec:
acceptanceCriteria:
- Users can complete checkout flow
- Payment processing handles errors gracefully
- Order confirmation emails are sent
Task-Level Criteria
Specific, detailed criteria for individual tasks.
yaml
tasks:
- id: payment-integration
acceptanceCriteria:
- Stripe API client is configured
- Test mode works in development
- Production keys loaded from environment
Common Patterns
Functional Criteria
yaml
acceptanceCriteria:
- Form validates required fields
- Error messages display inline
- Submit button disabled during processing
Non-Functional Criteria
yaml
acceptanceCriteria:
- Page loads in under 3 seconds
- Works on mobile viewports (320px+)
- Supports keyboard navigation
Documentation Criteria
yaml
acceptanceCriteria:
- README explains setup steps
- API endpoints are documented
- Environment variables are listed
Next Steps
- CLI Commands — Validate and work with plans
- Schema Reference — Full specification details