| name | user-story-mapping |
| description | Jeff Patton's User Story Mapping technique for Agile discovery. Visualizes user journey as a map, identifies backbone activities, walking skeleton, and release slices. Use when organizing requirements into deliverable increments or defining MVP scope. |
| allowed-tools | Read, Write, Glob, Grep, Task |
User Story Mapping
User Story Mapping is Jeff Patton's technique for organizing user stories into a visual map that shows the complete user experience and helps slice work into releases.
When to Use This Skill
Keywords: story map, user story map, backbone, walking skeleton, MVP, release planning, user journey, story slicing, Jeff Patton, Agile discovery
Use this skill when:
- Organizing elicited requirements into deliverable increments
- Defining MVP scope from a large set of requirements
- Visualizing the user journey across features
- Planning releases with clear user value
- Slicing large epics into shippable stories
- Communicating product vision to stakeholders
Core Concepts
The Map Structure
TIME / USER JOURNEY →
─────────────────────────────────────────────────────────────────
BACKBONE (Activities) │ Search │ Browse │ Purchase │ Track
│ │ │ │
─────────────────────────────────────────────────────────────────
WALKING SKELETON │ Basic │ List │ Cart + │ Order
(Minimum Path) │ Search │ View │ Checkout │ Status
─────────────────────────────────────────────────────────────────
Release 1 │ Filters │ Details │ Payment │ Email
│ │ Page │ Options │ Notify
─────────────────────────────────────────────────────────────────
Release 2 │ Saved │ Compare │ Wishlist │ Tracking
│ Searches │ Items │ │ Map
─────────────────────────────────────────────────────────────────
Release 3 (Nice-to-have)│ AI │ AR │ One-Click │ Delivery
│ Suggest │ Preview │ Buy │ Photos
Key Elements
| Element | Description |
|---|---|
| Backbone | High-level user activities in sequence (left-to-right = time) |
| Walking Skeleton | Minimum functionality for each activity (first viable path) |
| User Tasks | Stories under each activity, ordered by priority (top-to-bottom) |
| Release Slices | Horizontal lines grouping stories into releases |
| Personas | Different user types may have different paths |
Creating a Story Map
Step 1: Define the Backbone
Identify high-level activities the user performs:
backbone_questions:
- "What does the user do first?"
- "What happens next in their journey?"
- "What are all the major activities?"
- "Is there a natural sequence or flow?"
Step 2: Identify the Walking Skeleton
For each backbone activity, what's the minimum viable implementation?
walking_skeleton_criteria:
- Enables the user to complete the activity (barely)
- End-to-end slice through the system
- Testable and demonstrable
- Foundation for incremental enhancement
Step 3: Fill in User Tasks
Under each activity, list user tasks/stories:
task_placement:
vertical_order: "Priority (most important at top)"
horizontal_alignment: "Which activity does this belong to?"
dependencies: "Does this need something from another column?"
Step 4: Draw Release Slices
Group stories into releases with clear user value:
release_criteria:
release_1_mvp:
- Walking skeleton + minimal enhancements
- "What can we build and ship first?"
- Validates core value proposition
release_2:
- Improves on MVP based on feedback
- Adds important but not critical features
future_releases:
- Nice-to-have features
- Competitive differentiation
- Edge cases and polish
Output Formats
Mermaid Diagram (Default)
The /story-map command generates Mermaid flowcharts:
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#e1f5fe'}}}%%
flowchart LR
subgraph Backbone["User Journey (Backbone)"]
A1[Search] --> A2[Browse] --> A3[Purchase] --> A4[Track]
end
subgraph R0["Walking Skeleton"]
A1 --- S1[Basic Search]
A2 --- S2[List View]
A3 --- S3[Cart + Checkout]
A4 --- S4[Order Status]
end
subgraph R1["Release 1"]
S1 --- R1S1[Filters]
S2 --- R1S2[Details Page]
S3 --- R1S3[Payment Options]
S4 --- R1S4[Email Notify]
end
YAML Export
story_map:
title: "E-commerce Platform"
personas: ["shopper", "power-user"]
backbone:
- id: search
name: "Search Products"
walking_skeleton: "Basic keyword search"
- id: browse
name: "Browse Catalog"
walking_skeleton: "List view with thumbnails"
releases:
- name: "MVP"
stories:
- activity: search
stories: ["Basic Search", "Filters"]
- activity: browse
stories: ["List View", "Details Page"]
Integration with Elicitation
From Elicited Requirements
1. Load synthesized requirements from /discover
2. Identify user activities from functional requirements
3. Map requirements to backbone activities
4. Prioritize within each activity
5. Slice into releases
Workflow
# Elicit requirements first
/requirements-elicitation:discover "e-commerce platform"
# Create story map from requirements
/requirements-elicitation:story-map --domain "e-commerce"
# Export map to visualization
/requirements-elicitation:story-map --domain "e-commerce" --format mermaid
Best Practices
DO
- Include stakeholders in mapping sessions
- Keep backbone at 5-10 activities
- Make walking skeleton truly minimal
- Slice releases for user value, not technical convenience
- Revisit and update as you learn
DON'T
- Over-detail the map initially
- Organize by technical layer (UI, API, DB)
- Skip the walking skeleton (it's the foundation)
- Make releases too large
- Treat the map as immutable
Related Commands
/story-map- Generate story maps from elicited requirements/journey-map- Customer journey visualization (complementary)/discover- Elicit requirements before mapping/gaps- Check for missing coverage
References
For detailed guidance:
- Mapping Techniques - Detailed mapping workflows
- Release Planning - Slicing strategies and MVP definition
External:
- Jeff Patton's "User Story Mapping" book
- jpattonassociates.com
Version History
- v1.0.0 (2025-12-26): Initial release - User Story Mapping skill
Last Updated: 2025-12-26