reph

Templates · Product

User stories template

Stories with acceptance criteria in Given/When/Then form

Start with this template →Sign in

Opens on reph with the template ready to start. No account needed; sign in to keep your document.

Use it when

A PRD or epic is agreed and needs breaking into stories engineering can estimate and test against

Who it's for

Product managerEngineer

Filled example

The template filled in for a made-up company, so you can see what good looks like.

User stories: Recurring invoices

Author: Ben Hartley · Date: 2026-09-30

Epic

Freelancers on Tilbury Books can bill retainer clients automatically each month instead of recreating the same invoice by hand.

Story 1

As a freelancer with retainer clients, I want to set an invoice to repeat monthly, so that I stop rebuilding the same invoice on the first of every month.

Acceptance criteria

  • Given a saved invoice, when I choose "Repeat monthly" and pick a start date, then a schedule is created and shown on the invoice with the next send date
  • Given a start date on the 31st, when a month has fewer days, then the invoice is sent on that month's last day
  • Given the client has no email address, when I try to save the schedule, then I see an error asking me to add one, and nothing is scheduled

Notes

Weekly and quarterly cadences are out of scope for now. Design: "Recurring invoice settings" frame in the billing file.

Estimate: 5 points

Story 2

As a freelancer, I want to pause or stop a recurring invoice, so that I can handle a client who goes on hold without deleting their history.

Acceptance criteria

  • Given an active schedule, when I choose Pause, then no invoices are sent until I resume, and the next send date shows "Paused"
  • Given a paused schedule, when I resume it after a send date has passed, then the missed invoice is not sent retroactively and the next one goes out on the following cycle
  • Given an active schedule, when I choose Stop, then the schedule ends and all previously sent invoices remain in the client's history

Notes

Whether to offer "send the missed invoice now" on resume is left open for design; default is skip.

Estimate: 3 points

Definition of done

The template

Show the blank template

User stories

Author: [your name] · Date: [date]

Epic

The larger outcome these stories ladder up to, in one sentence, so a reviewer can tell if a story belongs here.

Story 1

As a [customer], I want what they're trying to do, so that the outcome they actually care about.

Acceptance criteria

  • Given starting state, when action, then observable result
  • Given an edge or error case, when action, then observable result

Notes

Constraints, design links, or things intentionally left ambiguous for the implementer to decide.

Estimate:

Story 2

As a [customer], I want what they're trying to do, so that the outcome they actually care about.

Acceptance criteria

  • Given starting state, when action, then observable result

Notes

Constraints, design links, or things intentionally left ambiguous for the implementer to decide.

Estimate:

Definition of done

What "done" means beyond "code merged": the checklist a story must clear before it counts.

Questions

How big should a story be?
Small enough for one person to finish in a sprint. Split it if not
Who writes the estimate?
The engineers who will build it, during refinement
Do I need Given/When/Then?
It is the easiest form for QA to test against, so use it unless your team has another

Fill it with your agent

Connect Claude to reph over MCP, then paste this. The draft arrives as suggestions you accept or reject section by section. How to connect Claude.

Find my reph doc "User stories" with search_docs, then read it with read_doc. Break the linked PRD requirements and design flows into user stories small enough for one sprint, each with Given/When/Then acceptance criteria covering at least one edge or error case. File it with suggest_edit, one replace_section op per section (heading line kept) so each can be accepted alone. Ask each open question (requirements no story covers yet) with add_comment quoting that section's heading line, then call request_review with a one-line summary.

Related templates

Start with this template →Sign in