ع
Learn Tracks Reference Guides Saved
playbook

Break requirements into a traceable backlog

Turn the requirements doc's functional requirements into epics and user stories with clear acceptance criteria — every story traced back to the specific requirement and stakeholder need it satisfies, so nothing in the backlog exists without a reason.

medium ~40 min
when to reach for this

The requirements doc is signed off, but delivery works in stories, not requirements paragraphs — and the gap between the two is where scope quietly drifts. A requirement gets split into three stories and one drops the original intent; a developer adds a 'nice to have' story that traces to nothing. This system converts requirements into a backlog where every epic and story carries a visible link back to its source requirement, so a reviewer can always answer 'why does this story exist?' with a name and a line from the requirements doc, not a shrug.

gather this first
  • The signed-off requirements doc (from Write the requirements doc) — this is the only source stories should trace back to.
  • The stakeholder map, if you have one, so you know which named stakeholder each requirement serves.
  • Any existing backlog or ticket format your delivery team already uses, so the output slots into their tool instead of needing reformatting.
the workflow
  1. Group requirements into epics

    Open the requirements doc in Claude Desktop and ask for a first pass at grouping, not writing stories yet. Getting the epic boundaries right first stops stories from being scattered across the wrong groupings later.

    you ask
    Read requirements-doc.md. Group the functional requirements into epics — logical chunks of related capability a delivery team could plan and estimate together. For each epic, list which requirement IDs it covers and give it a short, plain-language name. Flag any requirement that doesn't cleanly fit an epic on its own.

    what you get back A proposed epic grouping with requirement IDs mapped under each — e.g. 'Epic: Invoice approval routing → covers R3, R4, R7' — plus a flag on any orphan requirement that needs its own epic or a home in an existing one.

    Review the grouping yourself before moving on — Claude can group requirements that read similarly but serve different stakeholders. You know the org; catch that before it becomes ten stories.

  2. Draft user stories under each epic

    Now break each epic into stories, in the standard user-story shape, with the traceability link built into the story itself rather than left implicit.

    you ask
    For the epic '[epic name]', draft user stories in the form 'As a [role], I want [capability], so that [reason]'. For each story, add a line: 'Traces to: [requirement ID] — [stakeholder name]'s need].' Keep each story small enough to build and test independently. Don't invent capability that isn't in the requirement.

    what you get back A set of stories, each with the standard shape plus a visible traceability line naming both the requirement ID and the stakeholder — so no story floats free of a documented need.

  3. Write acceptance criteria that are actually testable

    A story without testable acceptance criteria invites scope debates at review time. Ask for criteria phrased so a tester can check them without asking what 'done' means.

    you ask
    For each story above, write 3–5 acceptance criteria in Given/When/Then form. Make each one specific enough that a tester could verify it without asking a follow-up question. Include at least one criterion covering an edge case or failure path, not just the happy path.

    what you get back Given/When/Then criteria per story, including an edge case each — e.g. 'Given an invoice over the approval threshold, When it's submitted, Then it routes to the named approver, not the default queue' — concrete enough to build a test from directly.

  4. Run the traceability audit both directions

    Check the backlog against the requirements doc in both directions: every story traces to a real requirement, and every requirement has at least one story covering it. This is the step that catches silent scope drift.

    you ask
    Audit this backlog against requirements-doc.md in both directions: (1) list any story whose 'Traces to' requirement doesn't actually match what that requirement says, and (2) list any requirement from the doc that has zero stories covering it. Don't fix anything yet — just report the gaps.

    what you get back A two-sided gap report — mismatched traces and uncovered requirements — so you can close both kinds of drift before the backlog goes to planning, not discover them mid-sprint.

    An uncovered requirement is often the more dangerous gap — it means a signed-off stakeholder need is quietly not being built at all.

  5. Prioritize with the trace visible, and package for delivery

    Add a priority pass and format the backlog for whatever tool your delivery team actually uses, keeping the traceability line intact through the export.

    you ask
    Add a suggested priority (Must/Should/Could) to each story based on which stakeholder need it serves and any dependency between stories. Then format the full backlog as [Jira-importable CSV / a Markdown table / plain numbered list — say which], keeping the 'Traces to' field as its own column so it survives into the delivery tool.

    what you get back A prioritized, tool-ready backlog export with the traceability column intact, ready to hand to delivery — every story still answers 'why does this exist' after the handoff.

make it your own
  • Requirement changes mid-build: re-run the traceability audit (step 4) whenever the requirements doc gets a signed-off change — it will surface exactly which stories need updating or retiring, instead of a manual hunt through the backlog.
  • Large program, many epics: run steps 2–3 epic-by-epic in separate conversations once the grouping (step 1) is agreed, so each epic gets focused attention instead of one giant story dump.
  • Non-functional requirements: if the requirements doc has non-functional requirements (performance, security, access control), ask Claude to convert those into acceptance criteria attached to the relevant stories rather than orphan stories with no clear 'as a user' framing.
  • Feeds the business case: a backlog with clear epics makes the cost side of Build the business case far easier to estimate — point that playbook's cost step at this backlog's epic groupings.
watch out for
  • A story with no 'Traces to' line doesn't ship. If Claude drafts a story you can't trace to a specific requirement and stakeholder, that's invented scope — cut it or get the requirements doc amended first, don't let it ride into planning silently.
  • Claude will happily group requirements that sound similar but come from different stakeholders with different urgency. Review the epic grouping yourself in step 1 — that's the review that catches it, not the traceability audit later.
  • Acceptance criteria that only cover the happy path look complete and aren't. Insist on at least one edge-case or failure-path criterion per story — that's usually where the real disagreement about 'done' surfaces.
  • The traceability audit (step 4) is not optional cleanup — it's the guardrail. Skipping it is exactly how a backlog quietly stops matching the signed-off requirements doc it's supposed to implement.

you'll end up with A prioritized, delivery-ready backlog where every epic and story carries a visible line back to its source requirement and stakeholder, plus a completed two-way traceability audit confirming nothing was invented and nothing was dropped.

Questions people ask

What does 'Traces to' actually mean in a story?
It's a line on every story naming the exact requirement ID from the requirements doc and the stakeholder whose need it serves — e.g. 'Traces to: R4 — Finance's need to auto-route high-value invoices.' It's what lets anyone reviewing the backlog answer 'why does this exist' without asking around.
What if a requirement doesn't map cleanly to any story?
That's exactly what the traceability audit in step 4 is for — it lists every requirement with zero covering stories. Treat that as a gap to close before planning, not a detail to fix later; an uncovered requirement usually means a stakeholder need is quietly not getting built.
Can I use this without a formal requirements doc?
You can, but the traceability guardrail is weaker without one — you'd be tracing stories to informal notes instead of a signed-off source. It's worth running *Write the requirements doc* first, even briefly, so the backlog has something solid to trace to.
How do I keep the backlog in sync when requirements change?
Re-run the two-way traceability audit (step 4) whenever the requirements doc gets a signed-off change. It surfaces exactly which existing stories now mismatch their source and which new requirements have no story yet, instead of relying on someone remembering to update the backlog by hand.