界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
设计与创意 · SKILL.md

story-map-builder

story-map-builder

【设计与创意】Generates an interactive HTML user story map visualizing product requirements in an Epic → Feature → Story structure, with MoSCoW priority tagging and Release swimlane grouping. Trigger when the user mentions story mapping, backlog visualization, MoSCoW priority, release planning, or asks to organize requirements into a story map.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: story-map-builder description: "Generates an interactive HTML user story map visualizing product requirements in an Epic → Feature → Story structure, with MoSCoW priority tagging and Release swimlane grouping. Trigger when the user mentions story mapping, backlog visualization, MoSCoW priority, release planning, or asks to organize requirements into a story map." license: MIT

User Story Map Builder — Interactive HTML Story Map Generator

Visualizes product requirements as an interactive HTML page using the Epic → Feature → Story three-tier structure, with MoSCoW priority color coding and Release version swimlanes.


Quick Start

The user only needs to provide product requirements — the Agent handles the rest:

  1. Guides the user through organizing Epics / Features / Stories
  2. Confirms MoSCoW priorities and Release assignments
  3. Builds the JSON data and invokes the script to generate HTML
  4. Outputs a self-contained HTML file that opens directly in any browser

The user simply says:

"Build me a story map — I have 3 Epics: user registration, product browsing, and checkout"

The Agent will walk the user through the entire story map construction step by step.


1. Core Concepts

Three-Tier Structure

TierMeaningExample
EpicMajor value theme / user activityUser Registration & Login
FeatureFunctional module under an EpicPhone signup, Email signup, SSO login
StorySmallest deliverable user storyAs a user, I can register with my phone number and a verification code

MoSCoW Priorities

LevelMeaningColor
MustEssential — product is unusable without it🔴 Red
ShouldImportant — significantly increases value🟠 Orange
CouldNice to have — adds polish🔵 Blue
WontNot this time — recorded for future reference⚪ Gray

Release Swimlanes

Horizontal divider lines group story cards by version:

  • Above the Release 1 (MVP) line = must ship in the first version
  • Above the Release 2 line = planned for the second version
  • And so on

2. Workflow

Step 1: Gather Requirements

Collect the following from the user:

ItemRequiredNotes
Project name✅Displayed in the map title
Epic list✅2–8 Epics
Features per Epic✅1–6 Features per Epic
Stories per Feature✅1–10 Stories per Feature
Priority per Story✅must / should / could / wont
Release per Story✅Which version it belongs to
Release list✅Version names and descriptions
Story Points (optional)❌Effort estimate
Story description (optional)❌Additional details

Step 2: Build the JSON Data

Organize the data in the following format:

{
  "project": "E-Commerce Platform MVP",
  "releases": [
    {"name": "Release 1", "description": "MVP core features"},
    {"name": "Release 2", "description": "UX improvements"},
    {"name": "Release 3", "description": "Growth features"}
  ],
  "epics": [
    {
      "name": "User System",
      "features": [
        {
          "name": "Registration & Login",
          "stories": [
            {
              "name": "Phone number signup",
              "priority": "must",
              "release": "Release 1",
              "points": 3,
              "description": "User can register with phone number and verification code"
            },
            {
              "name": "WeChat login",
              "priority": "should",
              "release": "Release 2",
              "points": 5
            }
          ]
        }
      ]
    }
  ]
}

Field Reference

FieldTypeRequiredDescription
projectstring✅Project name
releasesarray✅Release list (in order)
releases[].namestring✅Version name — must match the release field in Stories
releases[].descriptionstring❌Version description
epicsarray✅Epic list
epics[].namestring✅Epic name
epics[].featuresarray✅Feature list
epics[].features[].namestring✅Feature name
epics[].features[].storiesarray✅Story list
stories[].namestring✅Story name
stories[].prioritystring✅must / should / could / wont
stories[].releasestring✅Assigned version name
stories[].pointsnumber❌Story Points
stories[].descriptionstring❌Additional description

Step 3: Generate the HTML

# Generate from a JSON file
python3 scripts/generate_story_map.py --input data.json --output story_map.html

# Read JSON from stdin
echo '{"project":"demo",...}' | python3 scripts/generate_story_map.py --output story_map.html

Command Arguments

ArgumentRequiredDescription
--input❌Input JSON file path (reads from stdin if omitted)
--output✅Output HTML file path

Step 4: Deliver the HTML

The script produces a self-contained HTML file (no external dependencies) with these features:

  • 📊 Three-tier card layout: Epic → Feature → Story
  • 🎨 MoSCoW priority color coding
  • 📏 Release version swimlane grouping
  • 📱 Responsive design with horizontal scrolling
  • 🖨️ Print-friendly (auto-fits A3 landscape)
  • 💡 Hover tooltips showing Story details
  • 📈 Stats panel (Story counts and Points totals by priority and release)

3. Conversation Guide

Opening

I'll help you build a user story map. First, let me know:

  1. What's the project name?
  2. What are the major functional areas (Epics)?
  3. How many releases are you planning?

Step-by-Step Walkthrough

Great, let's flesh out the "{Epic name}" Epic:

  • What specific features does it include?
  • What user stories fall under each feature?

Confirming Priorities

Here are the stories under "{Feature name}" — please confirm each one's priority:

StorySuggested PriorityYour Call
...Must

Confirming Release Assignments

Please confirm which Release each Story belongs to:

  • Release 1 (MVP): Core essentials
  • Release 2: UX improvements
  • Release 3: Growth features

4. Notes

  1. Data validation: The script automatically checks that each Story's Release reference exists in the releases list
  2. Priority validation: priority only accepts must / should / could / wont
  3. Empty data handling: If a Feature has no Stories, the column shows an empty placeholder
  4. Multilingual support: Project names, Epic names, etc. support mixed CJK and Latin characters
  5. Large map advisory: If total Stories exceed 50, consider splitting into multiple sub-maps
我的收藏