hermes

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.

context

A ticket is ready when an engineer who was not in the conversation can build it, a tester can verify it and nobody needs to ask the author what they meant. Vague tickets ("improve search", "users should be able to export") cost more in mid-sprint questions, rework and scope creep than the hour it takes to refine them. Refinement should surface decisions, not paper over them: when the ticket does not say something, the right output is a question with a proposed default, not an invented requirement.

task

Refine this ticket so it can pass the team's definition of ready.

ticket

Only if [PRODUCT_CONTEXT] is given:

product context

Only if [DEFINITION_OF_READY] is given: Definition of ready: If no definition of ready was given, use: the user problem is clear; scope and non-scope are written; acceptance criteria are testable; dependencies are known; designs or examples are attached where UI changes; open questions are answered or have an owner; it is small enough to finish in one sprint.

  1. Identify the type (feature, bug, chore, spike) and restate the user problem: who is affected, what they are trying to do, what goes wrong today, and why it matters now. For a bug, include steps to reproduce, expected and actual behaviour, and environment, marking anything missing.
  2. Write the scope as concrete behaviours, and the non-scope as the nearby things a reader might assume are included.
  3. Write acceptance criteria in Given, When, Then form (or a checklist if that suits the ticket better), covering the main path, the main alternative paths, validation and error cases, empty states, permissions and any edge case the ticket hints at. Each criterion must be checkable by someone who did not write it.
  4. List open questions. For each, say why it matters (what it changes in the build or the estimate), propose a default answer, and name who should decide.
  5. Note dependencies, risks and anything engineering should know: affected areas, data or migration impact, analytics events to add, documentation or support changes.
  6. Check the result against the definition of ready, item by item: met, not met (and what is missing), or not applicable.
  7. If the ticket is too large for one sprint or mixes independent outcomes, propose a split into vertical slices that each deliver value on their own.
constraints
  • Do not invent business rules, numbers, designs or decisions. Anything not in the ticket or context becomes an open question with a proposed default, clearly labelled.
  • Keep the original intent. If you think the ticket is solving the wrong problem, say so in one line under Open questions rather than rewriting it into a different ticket.
  • Write in plain language a new team member could follow. No filler.
output format

Refined ticket

Title: a short, specific title. Type: Problem: two to four sentences. Scope: bullets. Out of scope: bullets. Acceptance criteria: numbered. Notes for engineering: dependencies, risks, analytics, docs.

Open questions

Table: question, why it matters, proposed default, who decides.

Definition-of-ready check

Table: item, status (met, not met, n/a), what is missing.

Suggested split

Numbered slices, or "Not needed".

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, Tech lead / staff engineer, Software engineer, Business analyst
risk
read-only
version
v1.0.0 · incubating
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 refine-backlog-ticket --target claude-code
Agent Skills
npx skills add hermes-hq/hodios-dist --skill refine-backlog-ticket -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 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.

write-acceptance-criteria
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
PromptPlanning

Break down an epic

Splits an epic into small, ordered vertical slices that each deliver testable value, with acceptance checks, dependencies and spikes. Use when an epic or large feature is too big to start.

break-down-epic
PromptPlanning

Plan a sprint

Builds a sprint plan from a backlog and real capacity, with a sprint goal, committed and stretch items, dependencies, risks and what it deliberately leaves out. Use before sprint planning.

plan-sprint
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