用户故事映射Skill story-map

用户故事映射技能用于从启发出的需求中创建用户故事地图,帮助团队可视化用户旅程的骨干活动、定义行走骨架(最小可行实现)并规划发布切片。它支持敏捷开发、产品管理和需求分析,提高产品规划和迭代效率。关键词:用户故事映射、需求分析、敏捷开发、产品管理、用户旅程、发布规划、故事地图。

需求分析 0 次安装 0 次浏览 更新于 3/11/2026

名称: 故事地图 描述: “从启发出的需求中创建用户故事地图。通过骨干活动、行走骨架和发布切片可视化用户旅程。输出Mermaid图表。” 参数提示: “[–domain <域名>] [–releases <数量>] [–format mermaid|yaml|markdown]” 允许工具: Task, Read, Write, Glob, Grep, Skill

故事地图命令

使用Jeff Patton的方法从启发出的需求中创建用户故事地图。

用法

/requirements-elicitation:story-map
/requirements-elicitation:story-map --domain "e-commerce"
/requirements-elicitation:story-map --domain "checkout" --releases 3
/requirements-elicitation:story-map --domain "user-auth" --format mermaid

参数

参数 必需 描述
–domain 要映射的领域(默认:当前/最近的)
–releases 要创建的发布切片数量(默认:3)
–format 输出格式:mermaidyamlmarkdown(默认:mermaid

工作流程

步骤1: 加载综合需求

.requirements/{domain}/synthesis/文件夹读取以获取整合的需求。

步骤2: 识别骨干活动

分析需求以提取高级用户活动:

backbone_extraction:
  approach:
    - 按用户目标分组相关需求
    - 识别主要的"用户做什么"
    - 按典型序列从左到右排序
    - 目标5-10个骨干活动

  questions:
    - "用户首先做什么?"
    - "哪些活动对完成旅程至关重要?"
    - "什么是自然序列?"

步骤3: 定义行走骨架

对于每个骨干活动,识别最小可行实现:

walking_skeleton_criteria:
  - "完成此活动的最简单方式是什么?"
  - "用户是否仅凭此就能完成目标?"
  - "这是否通过系统的端到端?"
  - "我们可以部署和测试这个吗?"

步骤4: 将需求映射到活动

将每个需求放置在适当的骨干活动下:

mapping_rules:
  - 将需求匹配到它支持的活动
  - 按优先级垂直排序(最高在顶部)
  - 标记跨多个活动的需求
  - 注意需求之间的依赖关系

步骤5: 创建发布切片

绘制水平线将故事分组到发布中:

release_slicing:
  mvp:
    - 行走骨架故事
    - 关键必须有的(来自MoSCoW)
    - "什么验证了核心价值主张?"

  release_1:
    - 高优先级增强
    - "应该有"的需求
    - "基于MVP反馈改进什么?"

  future:
    - 可有可无的功能
    - "可能有的"需求
    - 边缘情况和优化

步骤6: 生成输出

以请求的格式创建故事地图。

输出格式

Mermaid图表(默认)

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#e1f5fe'}}}%%
flowchart TB
    subgraph BB["用户旅程(骨干)"]
        direction LR
        A1["🔍 搜索"] --> A2["📋 浏览"] --> A3["🛒 购买"] --> A4["📦 跟踪"]
    end

    subgraph WS["行走骨架(MVP基础)"]
        A1 --- S1["基本关键词搜索"]
        A2 --- S2["产品列表视图"]
        A3 --- S3["购物车 + 结账"]
        A4 --- S4["订单状态页面"]
    end

    subgraph R1["发布1"]
        S1 --- R1A["按类别筛选"]
        S1 --- R1B["排序选项"]
        S2 --- R1C["产品详情页面"]
        S3 --- R1D["多种支付方式"]
        S4 --- R1E["电子邮件通知"]
    end

    subgraph R2["发布2"]
        R1A --- R2A["保存的搜索"]
        R1C --- R2B["产品比较"]
        R1D --- R2C["愿望清单"]
        R1E --- R2D["短信通知"]
    end

    subgraph R3["未来"]
        R2A --- R3A["AI推荐"]
        R2B --- R3B["AR预览"]
        R2C --- R3C["一键购买"]
    end

YAML导出

story_map:
  title: "电子商务平台"
  domain: "e-commerce"
  created: "2025-12-26"
  source_synthesis: "SYN-20251226-120000.yaml"

  backbone:
    - id: search
      name: "搜索产品"
      walking_skeleton: "基本关键词搜索"
      emoji: "🔍"

    - id: browse
      name: "浏览目录"
      walking_skeleton: "产品列表视图"
      emoji: "📋"

    - id: purchase
      name: "购买"
      walking_skeleton: "购物车 + 结账"
      emoji: "🛒"

    - id: track
      name: "跟踪订单"
      walking_skeleton: "订单状态页面"
      emoji: "📦"

  releases:
    - name: "MVP"
      value_statement: "用户可以在线查找和购买产品"
      stories:
        - activity: search
          items: ["基本关键词搜索"]
        - activity: browse
          items: ["产品列表视图"]
        - activity: purchase
          items: ["购物车 + 结账"]
        - activity: track
          items: ["订单状态页面"]

    - name: "发布1"
      value_statement: "用户可以通过更好的选项更快地找到产品"
      stories:
        - activity: search
          items: ["按类别筛选", "排序选项"]
        - activity: browse
          items: ["产品详情页面"]
        - activity: purchase
          items: ["多种支付方式"]
        - activity: track
          items: ["电子邮件通知"]

    - name: "发布2"
      value_statement: "用户可以更高效地购物"
      stories:
        - activity: search
          items: ["保存的搜索"]
        - activity: browse
          items: ["产品比较"]
        - activity: purchase
          items: ["愿望清单"]
        - activity: track
          items: ["短信通知"]

Markdown导出

# 故事地图: 电子商务平台

## 骨干(用户旅程)

| 搜索 | 浏览 | 购买 | 跟踪 |
|------|------|------|------|
| 🔍 查找产品 | 📋 探索目录 | 🛒 购买物品 | 📦 跟踪订单 |

## MVP(行走骨架)

| 搜索 | 浏览 | 购买 | 跟踪 |
|------|------|------|------|
| 基本关键词搜索 | 产品列表视图 | 购物车 + 结账 | 订单状态页面 |

## 发布1

| 搜索 | 浏览 | 购买 | 跟踪 |
|------|------|------|------|
| 按类别筛选 | 产品详情页面 | 多种支付方式 | 电子邮件通知 |
| 排序选项 | | | |

## 发布2

| 搜索 | 浏览 | 购买 | 跟踪 |
|------|------|------|------|
| 保存的搜索 | 产品比较 | 愿望清单 | 短信通知 |

示例会话

/requirements-elicitation:story-map --domain "inventory-management" --format mermaid

加载综合: .requirements/inventory-management/synthesis/SYN-20251226-143000.yaml
找到需求: 28

分析用户旅程...
识别的骨干活动: 5
  1. 监控库存
  2. 重新订购物品
  3. 接收货物
  4. 管理位置
  5. 生成报告

创建行走骨架...
  - 监控库存 → "查看当前库存水平"
  - 重新订购物品 → "创建采购订单"
  - 接收货物 → "标记物品已接收"
  - 管理位置 → "查看仓库列表"
  - 生成报告 → "基本库存报告"

将28个需求映射到活动...
  - 监控库存: 8个故事
  - 重新订购物品: 7个故事
  - 接收货物: 5个故事
  - 管理位置: 4个故事
  - 生成报告: 4个故事

创建发布切片...
  - MVP: 5个故事(行走骨架)
  - 发布1: 12个故事
  - 发布2: 8个故事
  - 未来: 3个故事

生成Mermaid图表...

[Mermaid图表输出]

保存到: .requirements/inventory-management/story-map/
  - story-map.mmd (Mermaid源)
  - story-map.yaml (结构化数据)

输出位置

output_locations:
  mermaid: ".requirements/{domain}/story-map/story-map.mmd"
  yaml: ".requirements/{domain}/story-map/story-map.yaml"
  markdown: ".requirements/{domain}/story-map/story-map.md"

与其他命令的集成

启发后

# 首先启发需求
/requirements-elicitation:discover "inventory management"

# 然后创建故事地图
/requirements-elicitation:story-map --domain "inventory-management"

导出前

# 为优先级创建故事地图
/requirements-elicitation:story-map --domain "checkout"

# 使用故事地图指导过滤导出
/requirements-elicitation:export --domain "checkout" --filter "release:mvp"

使用的技能

此命令使用user-story-mapping技能用于:

  • 骨干识别技术
  • 行走骨架定义
  • 发布切片策略
  • 输出格式指导

错误处理

error_handling:
  no_synthesis:
    message: "未找到该领域的综合需求"
    action: "首先运行/discover以启发需求"

  insufficient_requirements:
    message: "需求太少,无法创建有意义的故事地图(最少5个)"
    action: "继续启发或合并领域"

  ambiguous_activities:
    message: "无法确定清晰的骨干活动"
    action: "提示用户澄清主要用户目标"