Acceptance Criteria Designer
Author: jovd83 | Version: 3.1.1| License: MIT
Use this skill to turn feature intent into clear, testable, reviewable acceptance criteria without inventing unsupported behavior.
Responsibilities
- Generate acceptance criteria from raw requirements.
- Tighten or critique existing acceptance criteria.
- Convert criteria between Gherkin, TDD-style, and sentence-based formats.
- Return a human-readable deliverable plus a schema-aligned JSON contract.
- Surface assumptions, uncovered gaps, and high-risk edge cases.
Inputs
Accept any of the following:
- user stories, PRD excerpts, tickets, use cases, API notes, business rules, or policy text
- draft acceptance criteria that need review, normalization, or conversion
- optional preferred format, terminology, risk focus, or delivery constraints
If the request is too vague to produce reliable criteria, ask only for the smallest missing detail needed to avoid fabricating requirements.
Format Selection
- Honor an explicitly requested format.
- Otherwise use:
Gherkin for user workflows, stateful interactions, or BDD-friendly feature behavior
TDD-style for business rules, API behavior, validations, calculations, and data constraints
Sentence-style for lightweight backlog refinement or quick stakeholder review
- If two formats are equally plausible and the choice would materially change the deliverable, ask one brief clarification. Otherwise choose the best fit and state it.
Workflow
- Read the source material and extract:
- actor or system role
- trigger or action
- business rules and constraints
- success outcomes
- failure paths
- permissions and roles
- boundary values and state transitions
- explicit non-functional expectations
- Separate source facts from inference.
- Keep explicit source behavior authoritative.
- Put reasonable inferred details in
assumptions.
- Put unknown or unsupported items in
coverage_assessment.gaps or ask a short clarification if the gap blocks a reliable answer.
- Choose the working mode:
generate from raw source material
refine weak draft criteria
review existing criteria for gaps and quality issues
convert between supported formats
schema when the user asks for raw JSON schema contents
- Draft atomic criteria.
- Each criterion should cover one observable behavior or one tightly related condition and outcome pair.
- Split compound requirements into multiple criteria.
- Prefer externally observable behavior over implementation detail.
- Add risk-based coverage where it is justified by the source or domain:
- invalid input
- boundary limits
- unauthorized access
- empty or missing data states
- state transitions or idempotency
- failure messaging or fallback behavior
- Revise silently once or twice if obvious gaps remain.
- Do not expose chain-of-thought, hidden scratch work, or private scoring loops.
- Produce the final response in this order:
Scope summary
Assumptions if non-empty
Acceptance criteria
JSON contract
Coverage summary
Output Rules
Human-readable criteria
Gherkin: render a Markdown table with ID | Title | Given | When | Then.
TDD-style: render a Markdown table with ID | Title | Setup | Action | Expected Outcome.
Sentence-style: render a Markdown list as - [ID] [category] criterion.
JSON contract
Always emit a JSON code block after the human-readable criteria.
Use the matching schema from assets/:
assets/acceptance_criteria_gherkin.json
assets/acceptance_criteria_tdd.json
assets/acceptance_criteria_sentences.json
Every contract must include:
schema_version
format
source_summary
assumptions
out_of_scope
coverage_assessment
acceptance_criteria
Coverage summary
Report a concise Coverage Quality Score (CQS) from 0-100 using the rubric in references/criteria-authoring-guide.md. Keep the score honest and explain major remaining gaps if the source was incomplete.
Gotchas
- Format Confusion: Ensure the output format (Gherkin vs TDD vs Sentence) remains consistent throughout the entire response. Mixing them up causes downstream confusion.
- JSON Schema Strictness: The JSON contract must strictly adhere to the schemas in
assets/. Missing mandatory fields like coverage_assessment or schema_version will cause contract validation failures.
- Inference vs. Fact: Avoid silently blurring the line between explicit source facts and inferred behavior, which happens often with vague source texts. Any inferred behavior must be explicitly logged in the
assumptions array.
- Over-Specification: Avoid embedding UI-specific details (e.g., "click the blue submit button") in behavioral criteria unless explicitly present in the source text. Keep criteria focused on observable system behavior.
Guardrails
- Do not invent business rules that conflict with or go beyond the source without labeling them as assumptions or follow-up gaps.
- Do not encode implementation details unless the source explicitly requires them.
- Do not merge unrelated behaviors into a single criterion.
- Do not treat suggested improvements as confirmed requirements.
- When reviewing existing criteria, preserve intent and call out defects before rewriting.
- If the user asks for a raw schema, print the requested schema file contents exactly and do not wrap it in commentary unless the user also asked for explanation.
Memory Model
- Keep extracted behaviors, assumptions, and coverage notes in runtime memory for the current task only.
- Create project-local artifacts only when the user asks to persist criteria, traceability, or review output in the repository.
- Treat cross-project conventions as external shared memory; do not automatically promote local findings into shared memory.
References
Read these only when they help:
references/criteria-authoring-guide.md for format heuristics, quality rubric, edge-case checklist, and anti-patterns
references/output-contract.md for field semantics, ID conventions, and response mapping
tests/fixtures/ for valid example inputs and JSON contracts
tests/forward/ for live forward-test prompts and runtime-facing smoke cases
scripts/validate_repo.py to validate metadata, schemas, and example contracts locally
scripts/forward_test_harness.py to exercise the skill through another agent runtime
1---2name: acceptance-criteria-designer3description: Generate acceptance criteria from user stories, PRDs, requirements, use cases, business rules, or tickets that have none yet — and refine, normalize, critique, or convert existing criteria. Output testable Gherkin, TDD, or sentence-based criteria, identify assumption/coverage gaps, or return a JSON contract.4---56# Acceptance Criteria Designer78> **Author:** jovd83 | **Version:** 3.1.1| **License:** MIT 91011Use this skill to turn feature intent into clear, testable, reviewable acceptance criteria without inventing unsupported behavior.1213## Responsibilities1415- Generate acceptance criteria from raw requirements.16- Tighten or critique existing acceptance criteria.17- Convert criteria between Gherkin, TDD-style, and sentence-based formats.18- Return a human-readable deliverable plus a schema-aligned JSON contract.19- Surface assumptions, uncovered gaps, and high-risk edge cases.2021## Inputs2223Accept any of the following:2425- user stories, PRD excerpts, tickets, use cases, API notes, business rules, or policy text26- draft acceptance criteria that need review, normalization, or conversion27- optional preferred format, terminology, risk focus, or delivery constraints2829If the request is too vague to produce reliable criteria, ask only for the smallest missing detail needed to avoid fabricating requirements.3031## Format Selection3233- Honor an explicitly requested format.34- Otherwise use:35 - `Gherkin` for user workflows, stateful interactions, or BDD-friendly feature behavior36 - `TDD-style` for business rules, API behavior, validations, calculations, and data constraints37 - `Sentence-style` for lightweight backlog refinement or quick stakeholder review38- If two formats are equally plausible and the choice would materially change the deliverable, ask one brief clarification. Otherwise choose the best fit and state it.3940## Workflow41421. Read the source material and extract:43 - actor or system role44 - trigger or action45 - business rules and constraints46 - success outcomes47 - failure paths48 - permissions and roles49 - boundary values and state transitions50 - explicit non-functional expectations512. Separate source facts from inference.52 - Keep explicit source behavior authoritative.53 - Put reasonable inferred details in `assumptions`.54 - Put unknown or unsupported items in `coverage_assessment.gaps` or ask a short clarification if the gap blocks a reliable answer.553. Choose the working mode:56 - `generate` from raw source material57 - `refine` weak draft criteria58 - `review` existing criteria for gaps and quality issues59 - `convert` between supported formats60 - `schema` when the user asks for raw JSON schema contents614. Draft atomic criteria.62 - Each criterion should cover one observable behavior or one tightly related condition and outcome pair.63 - Split compound requirements into multiple criteria.64 - Prefer externally observable behavior over implementation detail.655. Add risk-based coverage where it is justified by the source or domain:66 - invalid input67 - boundary limits68 - unauthorized access69 - empty or missing data states70 - state transitions or idempotency71 - failure messaging or fallback behavior726. Revise silently once or twice if obvious gaps remain.73 - Do not expose chain-of-thought, hidden scratch work, or private scoring loops.747. Produce the final response in this order:75 - `Scope summary`76 - `Assumptions` if non-empty77 - `Acceptance criteria`78 - `JSON contract`79 - `Coverage summary`8081## Output Rules8283### Human-readable criteria8485- `Gherkin`: render a Markdown table with `ID | Title | Given | When | Then`.86- `TDD-style`: render a Markdown table with `ID | Title | Setup | Action | Expected Outcome`.87- `Sentence-style`: render a Markdown list as `- [ID] [category] criterion`.8889### JSON contract9091Always emit a JSON code block after the human-readable criteria.92Use the matching schema from `assets/`:9394- `assets/acceptance_criteria_gherkin.json`95- `assets/acceptance_criteria_tdd.json`96- `assets/acceptance_criteria_sentences.json`9798Every contract must include:99100- `schema_version`101- `format`102- `source_summary`103- `assumptions`104- `out_of_scope`105- `coverage_assessment`106- `acceptance_criteria`107108### Coverage summary109110Report a concise `Coverage Quality Score (CQS)` from 0-100 using the rubric in `references/criteria-authoring-guide.md`. Keep the score honest and explain major remaining gaps if the source was incomplete.111112## Gotchas113114- **Format Confusion**: Ensure the output format (Gherkin vs TDD vs Sentence) remains consistent throughout the entire response. Mixing them up causes downstream confusion.115- **JSON Schema Strictness**: The JSON contract must strictly adhere to the schemas in `assets/`. Missing mandatory fields like `coverage_assessment` or `schema_version` will cause contract validation failures.116- **Inference vs. Fact**: Avoid silently blurring the line between explicit source facts and inferred behavior, which happens often with vague source texts. Any inferred behavior must be explicitly logged in the `assumptions` array.117- **Over-Specification**: Avoid embedding UI-specific details (e.g., "click the blue submit button") in behavioral criteria unless explicitly present in the source text. Keep criteria focused on observable system behavior.118119## Guardrails120121- Do not invent business rules that conflict with or go beyond the source without labeling them as assumptions or follow-up gaps.122- Do not encode implementation details unless the source explicitly requires them.123- Do not merge unrelated behaviors into a single criterion.124- Do not treat suggested improvements as confirmed requirements.125- When reviewing existing criteria, preserve intent and call out defects before rewriting.126- If the user asks for a raw schema, print the requested schema file contents exactly and do not wrap it in commentary unless the user also asked for explanation.127128## Memory Model129130- Keep extracted behaviors, assumptions, and coverage notes in runtime memory for the current task only.131- Create project-local artifacts only when the user asks to persist criteria, traceability, or review output in the repository.132- Treat cross-project conventions as external shared memory; do not automatically promote local findings into shared memory.133134## References135136Read these only when they help:137138- `references/criteria-authoring-guide.md` for format heuristics, quality rubric, edge-case checklist, and anti-patterns139- `references/output-contract.md` for field semantics, ID conventions, and response mapping140- `tests/fixtures/` for valid example inputs and JSON contracts141- `tests/forward/` for live forward-test prompts and runtime-facing smoke cases142- `scripts/validate_repo.py` to validate metadata, schemas, and example contracts locally143- `scripts/forward_test_harness.py` to exercise the skill through another agent runtime