home / skills / melodic-software / claude-code-plugins / user-story-mapping

npx playbooks add skill melodic-software/claude-code-plugins --skill user-story-mapping

Review the files below or copy the command above to add this skill to your agents.

Files (3)
SKILL.md
7.5 KB
---
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

```text
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:

```yaml
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?

```yaml
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:

```yaml
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:

```yaml
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:

```mermaid
%%{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

```yaml
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

```text
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

```bash
# 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](references/mapping-techniques.md) - Detailed mapping workflows
- [Release Planning](references/release-planning.md) - Slicing strategies and MVP definition

**External:**

- Jeff Patton's "User Story Mapping" book
- [jpattonassociates.com](https://jpattonassociates.com)

## Version History

- v1.0.0 (2025-12-26): Initial release - User Story Mapping skill

---

**Last Updated:** 2025-12-26