No ambiguous language ("should", "might", "could")
Edge cases are covered
Error states are defined
Performance expectations stated (if relevant)
Key Rules
ALWAYS use Given/When/Then structure
MUST make each criterion independently testable
ALWAYS include edge cases and error scenarios
NEVER use vague language - be specific
Common Mistakes
❌ Vague criteria ("works correctly") → ✅ Specific conditions
❌ Missing edge cases → ✅ Include boundary conditions
❌ Implementation details → ✅ Focus on observable behavior
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: yellinzero-aico-aico-pm-acceptance-criteria3description: Acceptance Criteria4---56# Acceptance Criteria78## ⚠️ CRITICAL RULES - READ FIRST9101. **READ STORY FIRST**: Always read the story file from `docs/reference/pm/stories/` before writing criteria112. **USE GIVEN/WHEN/THEN**: All criteria must follow this format123. **UPDATE STORY FILE**: Add criteria to existing story file, don't create new files1314## Language Configuration1516Before generating any content, check `aico.json` in project root for `language` field to determine the output language. If not set, default to English.1718## Process19201. **Review story/feature**: Understand what needs to be done212. **Identify success scenarios**: Happy paths first223. **Write Given/When/Then**: For each scenario234. **Add edge cases**: Boundary conditions and errors245. **Verify testability**: Each criterion must be independently verifiable2526## Acceptance Criteria Template2728```markdown29### Acceptance Criteria for [Story/Feature]3031#### Scenario 1: [Scenario Name]3233- **Given** [precondition/context]34- **When** [action/trigger]35- **Then** [expected outcome]3637#### Scenario 2: [Scenario Name]3839- **Given** [precondition/context]40- **When** [action/trigger]41- **Then** [expected outcome]4243#### Edge Cases4445- **Given** [edge case condition]46- **When** [action]47- **Then** [expected behavior]48```4950## Criteria Categories5152| Category | Examples |53| -------------- | --------------------------- |54| Functional | Feature works as specified |55| Validation | Input validation rules |56| Error handling | Error messages and recovery |57| Performance | Response time expectations |58| Accessibility | A11y requirements |5960## Quality Checklist6162- [ ] Each criterion is independently testable63- [ ] No ambiguous language ("should", "might", "could")64- [ ] Edge cases are covered65- [ ] Error states are defined66- [ ] Performance expectations stated (if relevant)6768## Key Rules6970- ALWAYS use Given/When/Then structure71- MUST make each criterion independently testable72- ALWAYS include edge cases and error scenarios73- NEVER use vague language - be specific7475## Common Mistakes7677- ❌ Vague criteria ("works correctly") → ✅ Specific conditions78- ❌ Missing edge cases → ✅ Include boundary conditions79- ❌ Implementation details → ✅ Focus on observable behavior8081---82> Converted and distributed by [TomeVault](https://tomevault.io/claim/yellinzero) — claim your Tome and manage your conversions.83<!-- tomevault:4.0:skill_md:2026-04-13 -->
Run npx skillmds@latest add tomevault-io/yellinzero-aico-aico-pm-acceptance-criteria in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Acceptance Criteria It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
tomevault-io (@tomevault-io) published this skill. Their other Agent Skills are listed on their SkillMD profile.