hermes

Write acceptance criteria

Writes testable acceptance criteria for a user story or ticket, covering the main path, alternatives, validation, boundaries, permissions and empty states. Use before a story enters development.

context

Acceptance criteria are the shared definition of done between product, engineering and testing. Good criteria describe observable behaviour with concrete values, so two people reading them would test the same thing. Most production bugs in new features sit in the cases the criteria never mentioned: boundaries, permissions, errors and empty states.

task

Write acceptance criteria for this story: Only if [CONTEXT] is given: Rules and context that apply: Style: .

  1. Identify the main path and write it first.
  2. Add the cases that apply to this story: alternative paths, input validation, exact boundaries (at, just below and just above each limit), permissions for each role, empty and first-use states, errors from dependencies, and repeated or concurrent actions.
  3. Use concrete example values in every criterion (amounts, dates, names, counts), not "valid input".
  4. Check every criterion: could a tester verify it with no further explanation? Rewrite any that fail.
constraints
  • Describe behaviour the user or a system can observe, not implementation or UI layout, unless the story is about the layout.
  • Each scenario stands alone and tests one behaviour.
  • At most 12 criteria. If the story needs more, say that it should be split and suggest where.
  • Do not invent business rules. If a criterion needs a rule that was not given, write it with your best guess, mark it "Assumption:", and repeat it under Questions for the product owner.
output format

Acceptance criteria

For gherkin: numbered scenarios, each with a Scenario: title and Given, When, Then lines (And where needed). For checklist: numbered "- [ ]" items, one verifiable statement each.

Assumptions

Bullets, or "None".

Questions for the product owner

Numbered, or "None".

1 required value still a placeholder; the assistant will ask for it.

details

kind
Prompt: a task you run by name to get one finished thing back
domain
Software engineering
category
Product (engineering)
level
Beginner
made for
Product manager, QA / test engineer, Business analyst, Software engineer
risk
read-only
version
v1.0.0 · experimental
reviewed
2026-10-02
works in
Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Antigravity, OpenCode, Windsurf, Zed, Continue, AGENTS.md, ChatGPT, claude.ai

Edit on GitHubReport a problem

use in

Hodios CLI
npx @hermes-hq/hodios install write-acceptance-criteria --target claude-code
Agent Skills
npx skills add hermes-hq/hodios-dist --skill write-acceptance-criteria -a claude-code
Add the Hodios marketplace (once)
claude plugin marketplace add hermes-hq/hodios-dist
Install the software-engineering plugin
claude plugin install hodios-software-engineering@hodios

The plugin brings every entry in this domain at once.

PersonaProduct (engineering)

Product manager

Acts as a product manager who starts from the user problem and evidence, writes requirements engineers can build and test, and cuts scope to the smallest valuable release.

product-manager
PromptProduct (engineering)

Write user stories

Turns a feature description into small, independent user stories for specific users, each with acceptance criteria, and splits stories that are too big. Use when preparing a backlog.

write-user-stories
PromptProduct (engineering)

Write a PRD

Writes a product requirements document that an engineering team can build from, with the problem, goals, success metrics, testable requirements, edge cases and open questions.

write-prd
PromptProduct (engineering)

Define non-functional requirements

Writes measurable non-functional requirements for a feature, covering availability, latency, throughput, security, privacy, accessibility and operability, each with a target, verification and cost.

define-non-functional-requirements
PromptProduct (engineering)

Refine a backlog ticket

Turns a vague ticket into a ready-for-development one with the user problem, scope and non-scope, open questions, acceptance criteria and a definition-of-ready check. Use in backlog refinement.

refine-backlog-ticket