thinkhard.SI

Prompt repository Product

Build a user story map for a release

You are planning a release and want the work laid out as the steps users take, so you can cut a first slice that works end to end.

Registry no.
PRD-039
Collection
Product
Laid out for
Any chat model
Score
10 out of 10
Blanks to fill
5
Added

ProductAny chat

The prompt

Score 10 of 10, Excellent

Use it when You are planning a release and want the work laid out as the steps users take, so you can cut a first slice that works end to end.

  • {{audience}}
  • {{release_goal}}
  • {{users}}
  • {{backlog}}
  • {{constraints}}
Full prompt and why it works
Prompt
Build a user story map for the release below, for {{audience}} to plan from, so that we can see the whole flow users go through and cut a first release that lets them finish it end to end, however thinly, instead of polishing one step while the rest is missing.

Release goal and the outcome it should produce: {{release_goal}}
Users (who they are and what they are trying to get done): {{users}}

Backlog, feature list or flow notes:
"""
{{backlog}}
"""

Constraints (deadline, team, platforms, dependencies): {{constraints}}

How to build the map:
- Backbone: the activities users carry out, left to right in the order they do them. Activities are broad, such as "Set up an account" or "Pay an invoice".
- Steps: under each activity, the steps users take, in order.
- Stories: under each step, the stories that support it, most essential first. Write stories as short verb phrases from the user's side, for example "filter invoices by due date".
- Release slices: horizontal cuts across the map. Slice 1 must cover every step of the backbone in its simplest form. Later slices add depth.

Produce:
1. Backbone: the activities with their steps, as a numbered outline.
2. The map: a table with the columns Activity, Step, Story, Slice, keeping the left-to-right order of the backbone.
3. Slices: for each one, a one-sentence goal, what a user can do end to end after it ships, and how we will know it worked.
4. Gaps: steps the backlog does not cover, marked [GAP], and stories that fit no step.
5. Left out: items in the backlog that do not serve this release goal, with a one-line reason.

Keep it under 800 words outside the table, with up to 8 activities. A good map lets anyone point at a step and see what ships when. Use only the work in the backlog for stories; add a story yourself only to fill a gap in Slice 1, and mark it [ADDED]. Do not estimate effort or assign dates. If the order users go through the steps is unclear from the notes, say which order you assumed and ask me to confirm it.

Variables

{{audience}}
Who plans from the map, for example "the PM, designer and engineers on the billing team".
{{release_goal}}
What the release should let users do and why, for example "let new customers send their first invoice without help".
{{users}}
Who the users are and what they are trying to get done.
{{backlog}}
The backlog items, feature list or notes on the flow, pasted as they are.
{{constraints}}
Deadline, team size, platforms and dependencies, or "none known".

Why it works

  • What good looks like. Slice 1 must cover every step of the backbone, which is the point of a story map: a thin release users can finish, not one polished step.
  • Format. A table of activity, step, story and slice keeps the map's left-to-right order in a shape that pastes into a spreadsheet or a planning board.
  • If unsure. Missing steps are marked [GAP], stories the model adds are marked [ADDED], and an assumed order of steps is stated for you to confirm.

How to use it

  1. Press Fill in blanks and type your details into each blank. What you type stays in this browser.
  2. Copy the filled prompt into the AI tool you already use, such as ChatGPT, Claude or Gemini, or open it in the Grader or the Prompt Tester here.
  3. Before you rely on it, try it on three or four real examples. The Prompt Tester runs them all at once and shows which ones go wrong.
Use it from code

Get this prompt as JSON from the free REST API, with your own text in the blanks, or let an AI assistant fetch it through the MCP server. No key.

curl -s https://thinkhard.si/api/v1/prompts/user-story-map

With the MCP server added to Claude, ChatGPT, Cursor or VS Code, call get_prompt with {"prompt": "user-story-map"}, or just ask for it by name.