hermes

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.

context

A user story is a small promise of value to a specific user, sized to finish in a few days and testable on its own. Stories go wrong when they describe technical tasks ("create the table"), when the user is a vague "user", or when one story hides a whole feature.

task

Write user stories for: Only if [USERS] is given: Users involved: Format: .

  1. Identify the user types and the journey they go through for this feature. Group the stories by journey step.
  2. Write one story per piece of user-visible value. Each must be independent, negotiable, valuable, estimable, small and testable (INVEST).
  3. Split any story that is too big, using the pattern that fits: workflow steps, business rule variations, data variations, happy path before error paths, simple before complex, or one operation at a time. Note which pattern you used.
  1. Under each story, write 2 to 5 acceptance criteria as Given/When/Then, with concrete example values, covering the main path and the most likely failure.
constraints
  • Name a specific user type in every story. Use "user" only if there truly is a single kind of user.
  • No technical tasks as stories. If technical work is needed, mention it in the story's notes.
  • Do not invent business rules (limits, prices, permissions). Turn each one you need into an open question.
  • At most 15 stories. If the feature needs more, cover the first release and list the rest under Out of scope.
output format

Stories

For each journey step, a ### heading, then per story: [ID] [Short title] The story sentence. Acceptance criteria (when requested), then Notes if any.

Split notes

Which stories you split and the pattern used.

Open questions

Numbered.

Out of scope

Bullets.

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, Business analyst, Tech lead / staff 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-user-stories --target claude-code
Agent Skills
npx skills add hermes-hq/hodios-dist --skill write-user-stories -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
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
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