story-mapping
Jeff Patton-style user story mapping for visualizing user journeys and translating product strategy into prioritized, deliverable work. Use for release planning, MVP definition, backlog sequencing, and cross-team alignment on what to build and in what order.
What this skill does
# User Story Mapping Expert
## Overview
Visualize the user journey and translate strategy into prioritized, deliverable work using Jeff Patton's user story mapping technique. Story maps shift teams from feature-first thinking to flow-first thinking -- understanding the complete user experience before deciding what to build and in what order.
### When to Use
- **MVP definition** -- When you need to draw a clear line between "must ship" and "can wait."
- **Release planning** -- When sequencing work across multiple releases or sprints.
- **Cross-team alignment** -- When multiple teams need a shared understanding of the user journey.
- **Backlog reorganization** -- When a flat backlog has lost context and priority clarity.
- **New product kickoff** -- When starting from scratch and need to decompose a vision into work.
### When NOT to Use
- When work is purely technical infrastructure with no user journey (use technical spikes instead).
- When the team already has a well-prioritized, context-rich backlog.
- For single-feature work that doesn't span multiple user activities.
## Story Map Anatomy
A story map has three layers arranged in a 2D grid:
```
USER JOURNEY (left to right) →
┌──────────────────────────────────────────────────┐
│ Activities Activity 1 Activity 2 Act 3 │ ← Backbone
├──────────────────────────────────────────────────┤
│ Steps Step 1.1 Step 2.1 Step │ ← Backbone
│ Step 1.2 Step 2.2 3.1 │
├──────────────────────────────────────────────────┤
│ Tasks Task A Task D Task G │ ← Body
│ (Release 1) Task B Task E │ ← MVP line
│ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │
│ Tasks Task C Task F Task H │ ← Body
│ (Release 2) │ ← Follow-up
└──────────────────────────────────────────────────┘
PRIORITY (top to bottom) ↓
```
| Layer | What It Contains | Granularity |
|---|---|---|
| **Activities** | High-level user goals (what are they trying to accomplish?) | Epic-level |
| **Steps** | Sequential actions within each activity | Feature-level |
| **Tasks** | Specific implementation items for each step | Story-level |
### Key Principle: Flow First, Then Priority
- **Horizontal axis (left to right):** The user's journey through time -- activities and steps in the order users experience them.
- **Vertical axis (top to bottom):** Priority -- most critical tasks at the top, nice-to-haves at the bottom.
- **MVP line:** A horizontal line drawn across the map separating "Release 1" from "Later."
## Building a Story Map
### Step 1: Define Who and What
| Element | Description |
|---|---|
| **Segment** | The target user segment for this map |
| **Persona** | The specific persona experiencing this journey |
| **Narrative/JTBD** | The job or goal the user is trying to accomplish |
| **Decision** | What this map should inform (MVP scope, release plan, sequencing) |
### Step 2: Map the Backbone (Activities)
Walk through the user's journey and identify 3-7 high-level activities:
```markdown
#### Activities:
1. [Discover the product]
2. [Sign up and onboard]
3. [Complete core task]
4. [Review results]
5. [Share with team]
```
**Tips:**
- Use active verbs ("Discover," "Configure," "Review") not nouns.
- Keep to 3-7 activities -- more means you need to zoom out.
- Arrange left to right in the order users experience them.
### Step 3: Break Activities into Steps
For each activity, identify 3-5 sequential steps:
```markdown
#### Steps for "Sign up and onboard":
- Step 1: Create account
- Step 2: Verify email
- Step 3: Set up profile
- Step 4: Complete tutorial
- Step 5: Invite team members
```
### Step 4: Decompose Steps into Tasks
For each step, list specific implementation tasks:
```markdown
#### Tasks for "Create account":
- Email/password registration
- Social login (Google, GitHub)
- SSO integration
- Terms acceptance
- Password strength validation
```
### Step 5: Prioritize Vertically
Arrange tasks within each column from top (highest priority) to bottom (lowest):
- **Top:** Must-have for the journey to work at all.
- **Middle:** Important for a good experience.
- **Bottom:** Nice-to-have, can defer.
### Step 6: Draw Release Lines
Draw horizontal lines across the map to define releases:
```
═══════════════════════════ Release 1 (MVP) ═══════════
- Email/password registration
- Verify email
- Basic profile setup
- Core task (minimal)
- View results
═══════════════════════════ Release 2 ═══════════════════
- Social login
- Team invitations
- Advanced tutorial
- Share results
- Export results
═══════════════════════════ Release 3 (Polish) ══════════
- SSO integration
- Custom branding
- Advanced analytics
- API access
```
## Story Map Template
```markdown
## User Story Map
### Context
- **Segment:** [Target segment]
- **Persona:** [Persona name and key characteristics]
- **Narrative:** [The job or goal being mapped]
- **Decision:** [What this map informs]
### Backbone
#### Activities:
1. [Activity 1]
2. [Activity 2]
3. [Activity 3]
4. [Activity 4]
5. [Activity 5]
#### Steps:
**[Activity 1]:**
- Step 1: [Description]
- Step 2: [Description]
- Step 3: [Description]
**[Activity 2]:**
- Step 1: [Description]
- Step 2: [Description]
- Step 3: [Description]
[Continue for each activity]
#### Tasks:
**[Activity 1, Step 1]:**
- Task 1: [Description]
- Task 2: [Description]
- Task 3: [Description]
[Continue for each step]
### Release Slices
**Release 1 (MVP):**
- [Task list -- minimum viable journey]
**Release 2:**
- [Task list -- improved experience]
**Release 3:**
- [Task list -- full vision]
### Assumptions to Validate
- [Assumption 1]
- [Assumption 2]
- [Assumption 3]
### Risks and Dependencies
- [Risk or dependency 1]
- [Risk or dependency 2]
```
## Common Story Map Patterns
### Pattern 1: Walking Skeleton
Map the thinnest possible end-to-end journey first:
```
Activity 1 → Activity 2 → Activity 3 → Activity 4
↓ ↓ ↓ ↓
1 task 1 task 1 task 1 task
```
One task per activity, proving the full flow works. Then add depth.
### Pattern 2: Thick Slice
When one activity is the core value, go deep there first:
```
Activity 1 → Activity 2 → Activity 3 → Activity 4
↓ ↓ ↓ ↓
1 task 5 tasks 1 task 1 task
(core)
```
### Pattern 3: Progressive Enhancement
Layer capabilities across releases:
```
Release 1: Basic flow (all activities, minimum tasks)
Release 2: Error handling (edge cases, validation)
Release 3: Power features (automation, customization)
Release 4: Scale (performance, enterprise)
```
## Facilitation Guide
### Running a Story Mapping Workshop
| Phase | Duration | Activity |
|---|---|---|
| **Setup** | 10 min | Define persona, narrative, and decision scope |
| **Backbone** | 20 min | Map activities and steps (sticky notes on wall or Miro) |
| **Body** | 30 min | Decompose into tasks (everyone contributes) |
| **Prioritize** | 15 min | Arrange vertically by priority |
| **Slice** | 15 min | Draw release lines; debate MVP scope |
| **Review** | 10 min | Identify risks, dependencies, and assumptions |
**Total:** ~100 minutes for a focused session.
**Materials:** Sticky notes (3 colors: activities, steps, tasks), markers, large wall or whiteboard, or Miro/FigJam for remote.
**Key facilitation rules:**
- Keep each sticky note to 4-8 words.
- Activities and steps first; resist jumping to tasks.
- Everyone writes, not just the PM.
- Debate the MVP line, not individual task priority.
## Integration with Other Skills
- Use `job-stories/` JTBD discovery canvas to define the narrative before mapping.
- Feed Release 1 tasks into `create-prd/` for detailed requirements.
- Use `prioritization-frameworks/` RICE Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.