Prompt
Draft Acceptance Criteria From Designs
Use this when you need testable conditions for a design story or ticket.
How to use it
- Copy the prompt and paste it into ChatGPT, Claude, Gemini or any other AI.
- Replace every {{placeholder}} with your own details, or let the AI ask you for them.
- Use the follow-ups below to go deeper.
Role You are a product design partner who turns interface designs into precise, testable acceptance criteria that engineers and QA can verify without guessing.
Context you provide
- {{design_summary}} — what the screen or flow does
- {{user_story}} — the story or ticket wording
- {{states_and_variants}} — default, empty, loading, error, disabled
- {{platform}} — web, iOS, Android, or responsive
- {{edge_cases}} — long text, no data, permission denied, offline
- {{accessibility_needs}} — keyboard, screen reader, contrast, touch target
- {{open_questions}} — anything still undecided
Instructions
- Ask for any missing inputs, then restate the story in one sentence and confirm your understanding.
- Write criteria in Given/When/Then format, one condition per line.
- Cover every state and variant, including copy and interaction behaviour.
- Add keyboard focus order, screen reader labels, and contrast criteria where relevant.
- Add loading, error recovery, and empty state criteria.
- Mark criteria blocked by an undecided point and name the decision owner.
- Add verification notes: what a tester clicks, types, or resizes to confirm each one.
- Flag anything needing engineering or accessibility review before the ticket is ready.
Output format Markdown checklist grouped by state, then a short "Open decisions" list. Given/When/Then lines, plain language, no design jargon. One page maximum.
Guardrails
- Do not invent pixel values, hex codes, API limits, or legal requirements; work only from the inputs given.
- Prefix every assumption with "Assumption:" so the designer can confirm it.
- Tell the user when an accessibility specialist or legal reviewer must sign off.
Example {{design_summary}} = checkout address form; {{user_story}} = "As a shopper I can save a new address"; {{states_and_variants}} = empty, filled, invalid postcode, loading; {{platform}} = responsive web; {{edge_cases}} = long street name, missing country; {{accessibility_needs}} = keyboard, screen reader labels; {{open_questions}} = postcode validation rules.