deliver-acceptance-criteria — Claude Code skill: what it does
Turns a user story or feature slice into testable Given/When/Then scenarios: the happy path, failure cases and non-functional expectations.
npx skills add product-on-purpose/pm-skills --skill deliver-acceptance-criteria -a claude-codeWhat deliver-acceptance-criteria does
The skill takes feature context and writes acceptance criteria as Given/When/Then statements. Each one is independently testable, so engineers and QA read the same pass/fail conditions instead of guessing intent.
Seven steps sit behind it: confirm the story scope, split the happy path from exceptions, spell out what happens when validation fails or a dependency is down, add performance, accessibility, security and reliability criteria where they matter, merge duplicates, then check every line for measurability. Output follows references/TEMPLATE.md; a worked example built on an e-commerce checkout flow lives in references/EXAMPLE.md.
It stays inside one story. For a systematic sweep of boundary conditions and recovery paths across a whole feature, reach for deliver-edge-cases; the stories themselves come from deliver-user-stories. A rate over model output, such as answers faithful to their sources, is out of scope here — that needs a designed sample, and the AI Behavior and Evaluation section of deliver-prd covers it.
What it helps with
- pin down pass/fail conditions for a story before sprint planning
- describe what the user sees when a save action cannot complete
- pull edge cases out of people's heads into explicit scenarios
- add verifiable accessibility and performance criteria
- hand QA criteria that need no interpretation
Example prompts for the agent
- Write acceptance criteria for the checkout user story
- Break this feature into Given/When/Then: happy path, errors, recovery
- Review my acceptance criteria for testability and merge duplicates
How to install deliver-acceptance-criteria
1Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill deliver-acceptance-criteria -a claude-code2Manually: put the files in place
~/.claude/skills/deliver-acceptance-criteria/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/deliver-acceptance-criteria/
1Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill deliver-acceptance-criteria -a codex2Manually: put the files in place
.agents/skills/deliver-acceptance-criteria/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill deliver-acceptance-criteria -a cursor2Manually: put the files in place
.cursor/skills/deliver-acceptance-criteria/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install product-on-purpose/pm-skills deliver-acceptance-criteria2Manually: put the files in place
.github/skills/deliver-acceptance-criteria/SKILL.md1Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill deliver-acceptance-criteria -a gemini-cli2Platform CLI
gemini skills install https://github.com/product-on-purpose/pm-skills --path skills/deliver-acceptance-criteriaManually: put the files in place
.devin/skills/deliver-acceptance-criteria/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add product-on-purpose/pm-skills --skill deliver-acceptance-criteria -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about deliver-acceptance-criteria
How do I install deliver-acceptance-criteria in Claude?
Run npx skills add product-on-purpose/pm-skills --skill deliver-acceptance-criteria -a claude-code. The skill lands at ~/.claude/skills/deliver-acceptance-criteria/SKILL.md.
What does deliver-acceptance-criteria do?
It writes Given/When/Then acceptance criteria for a single user story or feature slice, covering the happy path, key failure scenarios and non-functional expectations. Every criterion tests one outcome.
How is it different from deliver-edge-cases and deliver-user-stories?
This skill deepens a story that already exists and stays story-scoped. deliver-edge-cases catalogs boundary conditions and recovery paths across a feature, while deliver-user-stories writes the stories themselves.
Source text
SKILL.md · Apache-2.0
--- name: deliver-acceptance-criteria description: Generates structured Given/When/Then acceptance criteria for a user story or feature slice, covering the happy path, key failure scenarios, and non-functional expectations in testable form. Use when turning requirements into verifiable scenarios for engineering handoff and QA sign-off. For a dedicated catalog of boundary conditions, error states, and recovery paths across a feature, use deliver-edge-cases; to write the stories themselves, use deliver-user-stories. license: Apache-2.0 metadata: phase: deliver version: "1.1.1" updated: 2026-10-16 category: specification frameworks: [triple-diamond, lean-startup, design-thinking] author: product-on-purpose --- <!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 --> # Acceptance Criteria Acceptance criteria define the observable behavior that must be true for a story or feature to be considered done. This skill turns feature context into concise, testable Given/When/Then scenarios that engineers and QA can verify without guessing intent. ## When to Use - After a user story, PRD section, or feature slice is defined - When a team needs clear pass/fail conditions for implementation - When writing QA-ready criteria for sprint planning or handoff - When a story has edge cases, error paths, or non-functional expectations that should be explicit ## When NOT to Use - You need the user stories themselves -> use `deliver-user-stories`; this skill deepens a story that already exists - You need systematic failure coverage across a whole feature -> use `deliver-edge-cases`; this skill stays story-scoped - There is no story or slice to bind criteria to yet -> use `deliver-prd` or `deliver-user-stories` first - You are defining success metrics for an experiment, not done-ness for a story -> use `measure-experiment-design` - The criterion is a rate over model output, such as "90% of answers are faithful to their sources" -> use the AI Behavior and Evaluation section of `deliver-prd`, which says a rate needs a designed sample to verify it, and what to record until one exists ## Instructions When asked to create acceptance criteria, follow these steps: 1. **Confirm the story or feature scope** Identify the exact slice of work. If the scope is unclear, ask for the user story, PRD section, or feature description before drafting criteria. 2. **Separate the happy path from exceptions** Start with the primary success flow, then add edge cases and error states that are likely or costly if missed. 3. **Write each criterion as an observable scenario** Use Given/When/Then language only. Keep each criterion independently testable and avoid implementation details. 4. **Cover recovery and failure behavior** Describe what the user sees or can do when validation fails, a dependency is unavailable, or a save action cannot complete. 5. **Include non-functional expectations** Add criteria for performance, accessibility, security, reliability, or auditability when they matter to the story. 6. **Avoid duplication and overlap** Each criterion should test one outcome. If two criteria describe the same behavior, merge or split them until the intent is clear. 7. **Review for testability** Ensure a reviewer can pass or fail each criterion without interpretation. If a statement is subjective, rewrite it into a measurable outcome. ## Output Contract Use `references/TEMPLATE.md` as the output format. A complete response should: - Restate the feature or story context - Group criteria into happy path, edge cases, error states, and non-functional criteria - Use explicit Given/When/Then statements for each criterion - Note assumptions or open questions when context is incomplete ## Quality Checklist Before finalizing, verify: - [ ] The criteria map to a specific story or feature slice - [ ] The happy path is covered first - [ ] Edge cases are explicit, not implied - [ ] Error states include user-visible recovery behavior - [ ] Non-functional criteria are included when relevant - [ ] Each criterion is testable and has one clear outcome - [ ] No implementation details leak into the acceptance criteria ## Examples See `references/EXAMPLE.md` for a completed example based on a realistic e-commerce checkout flow.
© product-on-purpose · Apache-2.0 · product-on-purpose/pm-skills