Acceptance Criteria
Try it: /pm-skills:deliver-acceptance-criteria "Your context here"
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
Section titled “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
Section titled “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-prdordeliver-user-storiesfirst - You are defining success metrics for an experiment, not done-ness for a story -> use
measure-experiment-design
How to Use
Section titled “How to Use”Invoke the skill by name (/pm-skills:deliver-acceptance-criteria on Claude Code, $deliver-acceptance-criteria on Codex):
/pm-skills:deliver-acceptance-criteria "Your context here"Or reference the skill file directly: skills/deliver-acceptance-criteria/SKILL.md
Instructions
Section titled “Instructions”When asked to create acceptance criteria, follow these steps:
-
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.
-
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.
-
Write each criterion as an observable scenario Use Given/When/Then language only. Keep each criterion independently testable and avoid implementation details.
-
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.
-
Include non-functional expectations Add criteria for performance, accessibility, security, reliability, or auditability when they matter to the story.
-
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.
-
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
Section titled “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
Examples
Section titled “Examples”See references/EXAMPLE.md for a completed example based on a realistic e-commerce checkout flow.
Output Template
Section titled “Output Template”Acceptance Criteria: [Feature or Story Title]
Section titled “Acceptance Criteria: [Feature or Story Title]”Story Context
Section titled “Story Context”[Describe the user need, scope boundary, and any assumptions that matter for testing.]
Happy Path
Section titled “Happy Path”AC-1: [Happy Path Title]
Section titled “AC-1: [Happy Path Title]”Given [initial context or precondition]
When [user action or trigger]
Then [expected observable outcome]
AC-2: [Happy Path Title]
Section titled “AC-2: [Happy Path Title]”Given [initial context or precondition]
When [user action or trigger]
Then [expected observable outcome]
Edge Cases
Section titled “Edge Cases”AC-3: [Edge Case Title]
Section titled “AC-3: [Edge Case Title]”Given [boundary condition or alternate state]
When [user action or trigger]
Then [expected observable outcome]
Error States
Section titled “Error States”AC-4: [Error State Title]
Section titled “AC-4: [Error State Title]”Given [failure condition]
When [user action or trigger]
Then [expected observable outcome and recovery path]
Non-Functional Criteria
Section titled “Non-Functional Criteria”AC-5: [Non-Functional Title]
Section titled “AC-5: [Non-Functional Title]”Given [relevant system or user context]
When [measurement or action]
Then [expected measurable constraint or guarantee]
- [Assumption or dependency]
- [Open question if the source story is incomplete]
Example Output
Section titled “Example Output”Acceptance Criteria: Guest Checkout
Acceptance Criteria: Guest Checkout
Section titled “Acceptance Criteria: Guest Checkout”This example describes the acceptance criteria for a guest checkout flow that lets shoppers buy items without creating an account.
Story Context
Section titled “Story Context”The checkout experience must let a shopper complete an order as a guest, enter shipping and payment details, and receive a confirmation after payment succeeds. The criteria below focus on the behavior a reviewer can observe in the UI and system responses.
Happy Path
Section titled “Happy Path”AC-1: Guest Checkout Form Loads
Section titled “AC-1: Guest Checkout Form Loads”Given I have items in my cart and I am not signed in
When I open the checkout page
Then I can enter shipping information, delivery method, and payment details without being prompted to create an account
AC-2: Order Completes Successfully
Section titled “AC-2: Order Completes Successfully”Given I have entered valid shipping and payment details
When I submit the order
Then I see an order confirmation page with an order number and estimated delivery date
Edge Cases
Section titled “Edge Cases”AC-3: Promo Code Can Be Applied
Section titled “AC-3: Promo Code Can Be Applied”Given I am on checkout and my cart qualifies for a discount
When I enter a valid promo code and apply it
Then the order summary updates to show the discount before I submit payment
AC-4: Shipping Address Validation Supports International Formats
Section titled “AC-4: Shipping Address Validation Supports International Formats”Given I enter a shipping address for a supported non-US destination
When I continue to the next step
Then the form accepts the address if it matches the country-specific validation rules
Error States
Section titled “Error States”AC-5: Invalid Card Is Rejected
Section titled “AC-5: Invalid Card Is Rejected”Given I have entered shipping information but the payment card is invalid
When I attempt to place the order
Then I see a clear inline error message and the order is not created
AC-6: Inventory Changes During Checkout
Section titled “AC-6: Inventory Changes During Checkout”Given an item in my cart becomes out of stock before I submit payment
When I place the order
Then I am shown which item failed, my cart remains available, and I can remove the item or choose a different variant
Non-Functional Criteria
Section titled “Non-Functional Criteria”AC-7: Checkout Responds Within the Performance Budget
Section titled “AC-7: Checkout Responds Within the Performance Budget”Given I submit a valid order during normal operating conditions
When the checkout request is processed
Then the confirmation response is returned within 3 seconds for at least 95 percent of requests
AC-8: Checkout Errors Are Accessible
Section titled “AC-8: Checkout Errors Are Accessible”Given a validation or payment error occurs
When the error message is shown
Then the message is announced by screen readers and the field with the error receives focus when applicable
- Payment processor and inventory service availability are external dependencies.
- Fraud review and manual review flows are out of scope for this example.
Real-World Examples
Section titled “Real-World Examples”See this skill applied to three different product contexts:
Storevine (B2B): Storevine B2B ecommerce platform . acceptance criteria for the Campaigns email template builder
Prompt:
deliver-acceptance-criteria
Feature: Campaigns . email template builderThe template builder lets merchants drag-and-drop content blocks (text, image, button, divider, product card) onto a canvas, customize styling, preview on desktop and mobile, and save templates for reuse across campaigns. Templates are stored per-merchant and can be duplicated.Output:
artifact: acceptance-criteria version: “1.0” created: 2026-04-11 status: draft
Section titled “artifact: acceptance-criteria version: “1.0” created: 2026-04-11 status: draft”Acceptance Criteria: Campaigns Email Template Builder
Section titled “Acceptance Criteria: Campaigns Email Template Builder”Quality Checklist
Section titled “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