{"id":"90b48550-eb1a-4315-8dab-e989034681a8","shortId":"X5CT8w","kind":"skill","title":"deliver-acceptance-criteria","tagline":"Generates structured Given/When/Then acceptance criteria for a user story or feature slice. Use when translating product requirements into testable scenarios that cover the happy path, edge cases, error states, and non-functional expectations for engineering handoff and QA.","description":"<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->\n# Acceptance Criteria\n\nAcceptance 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.\n\n## When to Use\n\n- After a user story, PRD section, or feature slice is defined\n- When a team needs clear pass/fail conditions for implementation\n- When writing QA-ready criteria for sprint planning or handoff\n- When a story has edge cases, error paths, or non-functional expectations that should be explicit\n\n## Instructions\n\nWhen asked to create acceptance criteria, follow these steps:\n\n1. **Confirm the story or feature scope**\n   Identify the exact slice of work. If the scope is unclear, ask for the user story, PRD section, or feature description before drafting criteria.\n\n2. **Separate the happy path from exceptions**\n   Start with the primary success flow, then add edge cases and error states that are likely or costly if missed.\n\n3. **Write each criterion as an observable scenario**\n   Use Given/When/Then language only. Keep each criterion independently testable and avoid implementation details.\n\n4. **Cover recovery and failure behavior**\n   Describe what the user sees or can do when validation fails, a dependency is unavailable, or a save action cannot complete.\n\n5. **Include non-functional expectations**\n   Add criteria for performance, accessibility, security, reliability, or auditability when they matter to the story.\n\n6. **Avoid duplication and overlap**\n   Each criterion should test one outcome. If two criteria describe the same behavior, merge or split them until the intent is clear.\n\n7. **Review for testability**\n   Ensure a reviewer can pass or fail each criterion without interpretation. If a statement is subjective, rewrite it into a measurable outcome.\n\n## Output Contract\n\nUse `references/TEMPLATE.md` as the output format. A complete response should:\n\n- Restate the feature or story context\n- Group criteria into happy path, edge cases, error states, and non-functional criteria\n- Use explicit Given/When/Then statements for each criterion\n- Note assumptions or open questions when context is incomplete\n\n## Quality Checklist\n\nBefore finalizing, verify:\n\n- [ ] The criteria map to a specific story or feature slice\n- [ ] The happy path is covered first\n- [ ] Edge cases are explicit, not implied\n- [ ] Error states include user-visible recovery behavior\n- [ ] Non-functional criteria are included when relevant\n- [ ] Each criterion is testable and has one clear outcome\n- [ ] No implementation details leak into the acceptance criteria\n\n## Examples\n\nSee `references/EXAMPLE.md` for a completed example based on a realistic e-commerce checkout flow.","tags":["deliver","acceptance","criteria","skills","product-on-purpose","agent-skills","ai-skills","claude-code","claude-desktop","openskills","product-management","skill-families"],"capabilities":["skill","source-product-on-purpose","skill-deliver-acceptance-criteria","topic-agent-skills","topic-ai-skills","topic-claude-code","topic-claude-desktop","topic-openskills","topic-product-management","topic-skill-families","topic-triple-diamond"],"categories":["pm-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/product-on-purpose/pm-skills/deliver-acceptance-criteria","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add product-on-purpose/pm-skills","source_repo":"https://github.com/product-on-purpose/pm-skills","install_from":"skills.sh"}},"qualityScore":"0.538","qualityRationale":"deterministic score 0.54 from registry signals: · indexed on github topic:agent-skills · 176 github stars · SKILL.md body (2,850 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-02T12:54:11.116Z","embedding":null,"createdAt":"2026-04-18T22:09:08.626Z","updatedAt":"2026-05-02T12:54:11.116Z","lastSeenAt":"2026-05-02T12:54:11.116Z","tsv":"'1':145 '2':176 '3':203 '4':224 '5':251 '6':272 '7':299 'accept':3,8,44,46,140,431 'access':261 'action':248 'add':190,257 'ask':137,163 'assumpt':365 'audit':265 'avoid':221,273 'base':440 'behavior':51,229,289,407 'cannot':249 'case':31,123,192,349,395 'checklist':374 'checkout':447 'clear':102,298,423 'commerc':446 'complet':250,334,438 'concis':71 'condit':104 'confirm':146 'consid':63 'context':69,342,370 'contract':326 'cost':200 'cover':26,225,392 'creat':139 'criteria':4,9,45,47,112,141,175,258,285,344,356,379,411,432 'criterion':206,217,278,311,363,417 'defin':48,97 'deliv':2 'deliver-acceptance-criteria':1 'depend':242 'describ':230,286 'descript':172 'detail':223,427 'done':64 'draft':174 'duplic':274 'e':445 'e-commerc':444 'edg':30,122,191,348,394 'engin':40,76 'ensur':303 'error':32,124,194,350,400 'exact':154 'exampl':433,439 'except':182 'expect':38,130,256 'explicit':134,358,397 'fail':240,309 'failur':228 'featur':15,60,68,94,150,171,339,386 'final':376 'first':393 'flow':188,448 'follow':142 'format':332 'function':37,129,255,355,410 'generat':5 'given/when/then':7,73,212,359 'group':343 'guess':82 'handoff':41,117 'happi':28,179,346,389 'identifi':152 'implement':106,222,426 'impli':399 'includ':252,402,413 'incomplet':372 'independ':218 'instruct':135 'intent':83,296 'interpret':313 'keep':215 'languag':213 'leak':428 'like':198 'map':380 'matter':268 'measur':323 'merg':290 'miss':202 'must':53 'need':101 'non':36,128,254,354,409 'non-funct':35,127,253,353,408 'note':364 'observ':50,209 'one':281,422 'open':367 'outcom':282,324,424 'output':325,331 'overlap':276 'pass':307 'pass/fail':103 'path':29,125,180,347,390 'perform':260 'plan':115 'prd':91,168 'primari':186 'product':20 'qa':43,78,110 'qa-readi':109 'qualiti':373 'question':368 'readi':111 'realist':443 'recoveri':226,406 'references/example.md':435 'references/template.md':328 'relev':415 'reliabl':263 'requir':21 'respons':335 'restat':337 'review':300,305 'rewrit':319 'save':247 'scenario':24,74,210 'scope':151,160 'section':92,169 'secur':262 'see':234,434 'separ':177 'skill':66 'skill-deliver-acceptance-criteria' 'slice':16,95,155,387 'source-product-on-purpose' 'specif':383 'split':292 'sprint':114 'start':183 'state':33,195,351,401 'statement':316,360 'step':144 'stori':13,58,90,120,148,167,271,341,384 'structur':6 'subject':318 'success':187 'team':100 'test':280 'testabl':23,72,219,302,419 'topic-agent-skills' 'topic-ai-skills' 'topic-claude-code' 'topic-claude-desktop' 'topic-openskills' 'topic-product-management' 'topic-skill-families' 'topic-triple-diamond' 'translat':19 'true':55 'turn':67 'two':284 'unavail':244 'unclear':162 'use':17,86,211,327,357 'user':12,89,166,233,404 'user-vis':403 'valid':239 'verifi':80,377 'visibl':405 'without':81,312 'work':157 'write':108,204","prices":[{"id":"b62028a0-e183-41e8-b343-134c9e5a7f18","listingId":"90b48550-eb1a-4315-8dab-e989034681a8","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"product-on-purpose","category":"pm-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:09:08.626Z"}],"sources":[{"listingId":"90b48550-eb1a-4315-8dab-e989034681a8","source":"github","sourceId":"product-on-purpose/pm-skills/deliver-acceptance-criteria","sourceUrl":"https://github.com/product-on-purpose/pm-skills/tree/main/skills/deliver-acceptance-criteria","isPrimary":false,"firstSeenAt":"2026-04-18T22:09:08.626Z","lastSeenAt":"2026-05-02T12:54:11.116Z"}],"details":{"listingId":"90b48550-eb1a-4315-8dab-e989034681a8","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"product-on-purpose","slug":"deliver-acceptance-criteria","github":{"repo":"product-on-purpose/pm-skills","stars":176,"topics":["agent-skills","ai-skills","claude-code","claude-desktop","openskills","product-management","skill-families","triple-diamond"],"license":"apache-2.0","html_url":"https://github.com/product-on-purpose/pm-skills","pushed_at":"2026-04-24T22:54:13Z","description":"Curated, plug-and-play product management skills for AI agents. 38 skills across Triple Diamond phases plus foundation (lean canvas, persona, meeting lifecycle family) and utility (create, validate, iterate). Templates, workflows, thread-aligned samples, CI-enforced skill-family contracts. Apache 2.0.","skill_md_sha":"eecbdbc8dbc22a58e33f972be452e5b24d239c5b","skill_md_path":"skills/deliver-acceptance-criteria/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/product-on-purpose/pm-skills/tree/main/skills/deliver-acceptance-criteria"},"layout":"multi","source":"github","category":"pm-skills","frontmatter":{"name":"deliver-acceptance-criteria","license":"Apache-2.0","description":"Generates structured Given/When/Then acceptance criteria for a user story or feature slice. Use when translating product requirements into testable scenarios that cover the happy path, edge cases, error states, and non-functional expectations for engineering handoff and QA."},"skills_sh_url":"https://skills.sh/product-on-purpose/pm-skills/deliver-acceptance-criteria"},"updatedAt":"2026-05-02T12:54:11.116Z"}}