From super-pm
Generates user stories, Epics, and acceptance criteria from PRD and requirement docs for agile development, sprint planning, and task preparation.
npx claudepluginhub konglong87/superpm --plugin super-pmThis skill is limited to using the following tools:
```bash
Activate for: user stories, write user stories, story, as a user I want, user story map, story mapping, epic, story breakdown, story splitting, acceptance criteria for stories, BDD, given when then, story refinement, sprint stories, story writing, feature to stories, spec to stories, decompose requirements, break down PRD. NOT for: feature specifications (use official /write-spec), sprint planning (use official /sprint-planning), roadmap planning (use official /roadmap-update).
Generates prioritized user stories with Given/When/Then acceptance criteria, story point estimates, epic story mapping, and MoSCoW prioritization for sprint planning and backlogs.
Use this skill when the user asks to "write user stories", "decompose this into user stories", "break this into stories", "write acceptance criteria for this feature", "turn this PRD into stories", "create a story map", "help me write stories for sprint planning", or has a feature or PRD and wants to decompose it into shippable units for engineering. Do NOT use this skill to write a full PRD — use prd-authoring for that.
Share bugs, ideas, or general feedback.
# 检查方案设计目录
mkdir -p docs/02-方案设计
# 检查前置文档
echo "📊 正在检查前置文档..."
if [ -f "docs/02-方案设计/PRD产品需求文档.md" ]; then
echo "✅ PRD文档 - 已找到"
else
echo "⏳ PRD文档 - 未找到"
fi
if [ -f "docs/02-方案设计/功能细节拆解.md" ]; then
echo "✅ 功能细节拆解 - 已找到"
else
echo "⏳ 功能细节拆解 - 未找到"
fi
使用 AskUserQuestion 询问:
用户故事是敏捷开发中描述需求的标准方式。
您需要编写哪方面的用户故事?
A) 全部功能用户故事(基于PRD功能列表) B) 单个模块的用户故事(请指定模块) C) 单个功能的用户故事(请指定功能) D) Epic级用户故事(高层次需求) E) 其他(请手动输入)
💡 提示:
- Sprint规划 → 推荐单个模块的用户故事
- 产品规划 → 推荐Epic级用户故事
- 开发准备 → 推荐全部功能用户故事
记录到变量 STORY_SCOPE
根据范围读取相应文档:
必需文档:
可选文档:
读取失败处理:
如果 PRD 文档不存在:
⚠️ 未找到 PRD 文档
用户故事需要明确的功能需求作为输入。
您可以选择:
A) 执行 /pm-docs 生成 PRD
B) 使用功能细节拆解作为输入
C) 手动输入功能需求(快速模式)
是否继续?
📝 用户故事标准格式:
格式:
` 作为 <角色> 我想要 <功能> 以便于 <价值>
>
> **示例**:
> ```
作为 买家用户
我想要 搜索商品
以便于 快速找到我需要的商品
验收标准(Acceptance Criteria):
- GIVEN(前置条件)
- WHEN(触发操作)
- THEN(预期结果)
示例:
GIVEN 用户已登录 WHEN 用户输入"苹果"并点击搜索 THEN 显示包含"苹果"关键词的商品列表
>
> 是否继续编写用户故事?
>
> A) 理解了,开始编写
> B) 我需要更多示例
> C) 我有特定的编写规范
---
### 步骤 4: Epic级用户故事
#### 4.1 识别Epic
> 🎯 Epic级用户故事(高层次需求):
>
> 基于PRD,识别出以下Epic:
>
> | Epic ID | Epic名称 | 描述 | 包含Story数 |
> |---------|---------|------|------------|
> | E001 | 用户管理 | 用户注册、登录、信息管理 | 5 |
> | E002 | 商品浏览 | 商品列表、搜索、详情 | 4 |
> | E003 | 购物车管理 | 加入购物车、编辑、结算 | 3 |
> | E004 | 订单管理 | 订单创建、支付、查看 | 6 |
> | ... | ... | ... | ... |
>
> 是否需要调整Epic划分?
>
> A) Epic划分合理,继续编写Story
> B) 需要调整Epic
> C) 我有其他Epic划分方式
#### 4.2 Epic详细描述
> 📝 Epic详细描述:
>
> **Epic: E001 用户管理**
>
> **作为** 产品系统
> **我想要** 提供用户管理功能
> **以便于** 用户可以注册登录,管理个人信息
>
> **业务价值**:
> - 用户可以拥有个人账号
> - 支持个性化服务
> - 提供用户数据用于数据分析
>
> **包含Story**:
> - US001: 用户注册
> - US002: 用户登录
> - US003: 找回密码
> - US004: 个人信息管理
> - US005: 账号注销
>
> **优先级**:P0
> **预估工时**:5人天
>
> 是否继续编写其他Epic?
---
### 步骤 5: Story级用户故事
#### 5.1 Story编写模板
对每个功能编写用户故事:
> 📝 用户故事:US001 用户注册
>
> **基本信息**:
>
> **Story ID**:US001
> **Epic**:E001 用户管理
> **优先级**:P0
> **预估Story Point**:3
>
> **用户故事**:
> ```
作为 新用户
我想要 通过手机号注册账号
以便于 拥有个人账号,享受个性化服务
验收标准:
场景1:正常注册
GIVEN 用户未注册过 AND 用户打开注册页面 WHEN 用户输入手机号 "13800138000" AND 用户获取验证码 "123456" AND 用户设置密码 "Password123" AND 用户点击"注册" THEN 系统创建账号成功 AND 用户自动登录 AND 跳转到首页
>
> **场景2:手机号已注册**
> ```
GIVEN 手机号 "13800138000" 已注册
WHEN 用户输入该手机号
THEN 提示"该手机号已注册,请直接登录"
AND 提供"去登录"按钮
场景3:验证码错误
GIVEN 用户输入手机号并获取验证码 WHEN 用户输入错误的验证码 THEN 提示"验证码错误" AND 允许重新输入
>
> **技术备注**:
> - 使用短信服务发送验证码(阿里云短信)
> - 密码使用bcrypt加密
> - 验证码有效期5分钟
>
> **依赖**:
> - 无前置依赖
>
> **风险**:
> - 验证码发送可能失败 → 提供多种注册方式(邮箱注册)
>
> 这个用户故事是否完整?
>
> A) 完整,继续下一个Story
> B) 需要调整
> C) 需要补充更多场景
#### 5.2 逐个编写Story
基于PRD功能列表,逐个编写用户故事:
> 📝 用户故事:US002 用户登录
>
> **基本信息**:
>
> **Story ID**:US002
> **Epic**:E001 用户管理
> **优先级**:P0
> **Story Point**:2
>
> **用户故事**:
> ```
作为 已注册用户
我想要 使用手机号和密码登录
以便于 访问我的个人账号
验收标准:
场景1:正常登录
GIVEN 用户已注册 WHEN 用户输入正确的手机号和密码 THEN 登录成功 AND 跳转到首页
>
> **场景2:密码错误**
> ```
GIVEN 用户已注册
WHEN 用户输入错误的密码
THEN 提示"手机号或密码错误"
场景3:账号不存在
GIVEN 手机号未注册 WHEN 用户输入该手机号 THEN 提示"账号不存在,请先注册"
>
> 是否继续下一个Story?
---
### 步骤 6: Story拆分
对于复杂的Story,需要进行拆分:
> 🔍 Story拆分判断:
>
> **当前Story**:US004 购物车管理
>
> **Story描述**:
> ```
作为 买家用户
我想要 管理购物车
以便于 准备购买的商品
判断标准:
- Story Point > 8 → 需要拆分
- 包含多个独立功能 → 需要拆分
- 验收标准过多 → 需要拆分
拆分建议:
- US004-1: 加入购物车
- US004-2: 查看购物车
- US004-3: 编辑购物车商品数量
- US004-4: 删除购物车商品
是否接受拆分?
A) 接受拆分 B) 我有其他拆分方式 C) 不需要拆分
🎯 Story优先级排序:
基于业务价值和依赖关系,对Story进行排序:
P0(必须有):
- US001: 用户注册
- US002: 用户登录
- US005: 商品列表
- US006: 商品详情
- US010: 加入购物车
- US012: 订单创建
- US013: 订单支付
P1(应该有):
- US003: 找回密码
- US004: 个人信息管理
- US007: 商品搜索
- US011: 购物车编辑
P2(可以有):
- US008: 商品收藏
- US009: 商品评价
- US014: 订单取消
P3(暂不实现):
- US015: 商品分享
- US016: 商品推荐
是否需要调整优先级?
使用 Write 工具创建 docs/02-方案设计/用户故事清单.md:
# {产品名称} 用户故事清单
## 文档信息
- **产品名称**: {从PRD提取}
- **文档版本**: v1.0
- **创建时间**: {当前时间}
- **生成工具**: super-pm v1.0.0
---
## 一、用户故事总览
### 1.1 Epic清单
| Epic ID | Epic名称 | 描述 | Story数量 | 优先级 | 预估工时 |
|---------|---------|------|----------|--------|---------|
| E001 | 用户管理 | 用户注册、登录、信息管理 | 5 | P0 | 5人天 |
| E002 | 商品浏览 | 商品列表、搜索、详情 | 4 | P0 | 4人天 |
| E003 | 购物车管理 | 加入购物车、编辑、结算 | 4 | P0 | 3人天 |
| E004 | 订单管理 | 订单创建、支付、查看 | 6 | P0 | 6人天 |
| E005 | 支付管理 | 支付集成、支付回调 | 3 | P1 | 3人天 |
| **总计** | | | **22** | | **21人天** |
---
## 二、Epic 1: 用户管理
### Epic描述
**作为** 产品系统
**我想要** 提供用户管理功能
**以便于** 用户可以注册登录,管理个人信息
**业务价值**:
- 用户可以拥有个人账号
- 支持个性化服务
- 提供用户数据用于数据分析
---
### US001: 用户注册
**基本信息**:
- **Story ID**: US001
- **Epic**: E001 用户管理
- **优先级**: P0
- **Story Point**: 3
- **预估工时**: 1天
**用户故事**:
作为 新用户 我想要 通过手机号注册账号 以便于 拥有个人账号,享受个性化服务
**验收标准**:
**场景1:正常注册**
GIVEN 用户未注册过 AND 用户打开注册页面 WHEN 用户输入手机号 "13800138000" AND 用户获取验证码 "123456" AND 用户设置密码 "Password123" AND 用户点击"注册" THEN 系统创建账号成功 AND 用户自动登录 AND 跳转到首页
**场景2:手机号已注册**
GIVEN 手机号 "13800138000" 已注册 WHEN 用户输入该手机号 THEN 提示"该手机号已注册,请直接登录" AND 提供"去登录"按钮
**场景3:验证码错误**
GIVEN 用户输入手机号并获取验证码 WHEN 用户输入错误的验证码 THEN 提示"验证码错误" AND 允许重新输入
**场景4:密码强度不足**
GIVEN 用户在注册页面 WHEN 用户输入密码 "123" THEN 实时提示"密码至少8位,需包含数字和字母" AND 密码强度指示器显示"弱"
**技术备注**:
- 使用阿里云短信服务发送验证码
- 验证码有效期5分钟
- 密码使用bcrypt加密,强度等级10
- 同一手机号每天最多发送5次验证码
**依赖**:
- 无前置依赖
**风险**:
- 验证码发送可能失败 → 提供邮箱注册备选方案
---
### US002: 用户登录
**基本信息**:
- **Story ID**: US002
- **Epic**: E001 用户管理
- **优先级**: P0
- **Story Point**: 2
- **预估工时**: 0.5天
**用户故事**:
作为 已注册用户 我想要 使用手机号和密码登录 以便于 访问我的个人账号
**验收标准**:
**场景1:正常登录**
GIVEN 用户已注册 WHEN 用户输入正确的手机号和密码 THEN 登录成功 AND 跳转到首页
**场景2:密码错误**
GIVEN 用户已注册 WHEN 用户输入错误的密码 THEN 提示"手机号或密码错误"
**场景3:账号不存在**
GIVEN 手机号未注册 WHEN 用户输入该手机号 THEN 提示"账号不存在,请先注册"
**技术备注**:
- 密码错误次数限制:5次,超过后锁定30分钟
- 登录成功后生成JWT Token,有效期7天
---
### US003: 找回密码
**基本信息**:
- **Story ID**: US003
- **Epic**: E001 用户管理
- **优先级**: P1
- **Story Point**: 2
- **预估工时**: 0.5天
**用户故事**:
作为 忘记密码的用户 我想要 通过手机验证码重置密码 以便于 重新获得账号访问权限
**验收标准**:
**场景1:正常重置密码**
GIVEN 用户已注册 WHEN 用户输入手机号并验证成功 AND 用户设置新密码 THEN 密码重置成功 AND 跳转到登录页
---
### US004: 个人信息管理
**基本信息**:
- **Story ID**: US004
- **Epic**: E001 用户管理
- **优先级**: P1
- **Story Point**: 3
- **预估工时**: 1天
**用户故事**:
作为 登录用户 我想要 查看和编辑个人信息 以便于 保持信息准确和完整
**验收标准**:
**场景1:查看个人信息**
GIVEN 用户已登录 WHEN 用户进入"个人中心" THEN 显示用户头像、昵称、手机号、邮箱等信息
**场景2:编辑个人信息**
GIVEN 用户已登录 WHEN 用户修改昵称为"小明" AND 点击"保存" THEN 昵称更新成功 AND 显示成功提示
---
### US005: 账号注销
**基本信息**:
- **Story ID**: US005
- **Epic**: E001 用户管理
- **优先级**: P2
- **Story Point**: 2
- **预估工时**: 0.5天
**用户故事**:
作为 用户 我想要 注销我的账号 以便于 不再使用产品并删除个人数据
---
## 三、Epic 2: 商品浏览
### Epic描述
**作为** 产品系统
**我想要** 提供商品浏览功能
**以便于** 用户可以浏览和搜索商品
---
### US006: 商品列表
**基本信息**:
- **Story ID**: US006
- **Epic**: E002 商品浏览
- **优先级**: P0
- **Story Point**: 3
- **预估工时**: 1天
**用户故事**:
作为 买家用户 我想要 浏览商品列表 以便于 查看所有可购买的商品
**验收标准**:
**场景1:正常浏览**
GIVEN 用户进入商品列表页 WHEN 页面加载完成 THEN 显示商品列表(图片、名称、价格) AND 支持分页加载(每页20个)
**场景2:筛选商品**
GIVEN 用户在商品列表页 WHEN 用户选择分类"水果" THEN 只显示水果类商品
**场景3:排序商品**
GIVEN 用户在商品列表页 WHEN 用户选择"价格从低到高" THEN 商品按价格升序排列
---
### US007: 商品搜索
**基本信息**:
- **Story ID**: US007
- **Epic**: E002 商品浏览
- **优先级**: P1
- **Story Point**: 3
- **预估工时**: 1天
**用户故事**:
作为 买家用户 我想要 搜索商品 以便于 快速找到我需要的商品
**验收标准**:
**场景1:搜索成功**
GIVEN 用户在搜索框 WHEN 用户输入"苹果"并搜索 THEN 显示包含"苹果"关键词的商品列表
**场景2:搜索历史**
GIVEN 用户搜索过"苹果"、"香蕉" WHEN 用户点击搜索框 THEN 显示搜索历史:"苹果"、"香蕉"
---
### US008: 商品详情
**基本信息**:
- **Story ID**: US008
- **Epic**: E002 商品浏览
- **优先级**: P0
- **Story Point**: 3
- **预估工时**: 1天
**用户故事**:
作为 买家用户 我想要 查看商品详情 以便于 了解商品详细信息并决定购买
---
### US009: 商品收藏
**基本信息**:
- **Story ID**: US009
- **Epic**: E002 商品浏览
- **优先级**: P2
- **Story Point**: 2
- **预估工时**: 0.5天
**用户故事**:
作为 买家用户 我想要 收藏商品 以便于 后续快速找到感兴趣的商品
---
## 四、Epic 3: 购物车管理
### Epic描述
**作为** 产品系统
**我想要** 提供购物车功能
**以便于** 用户可以管理准备购买的商品
---
### US010: 加入购物车
**基本信息**:
- **Story ID**: US010
- **Epic**: E003 购物车管理
- **优先级**: P0
- **Story Point**: 2
- **预估工时**: 0.5天
**用户故事**:
作为 买家用户 我想要 将商品加入购物车 以便于 后续统一结算
**验收标准**:
**场景1:成功加入**
GIVEN 用户在商品详情页 WHEN 用户选择规格和数量,点击"加入购物车" THEN 商品加入购物车成功 AND 显示成功提示 AND 购物车角标数量+1
---
### US011: 查看购物车
**基本信息**:
- **Story ID**: US011
- **Epic**: E003 购物车管理
- **优先级**: P0
- **Story Point**: 2
- **预估工时**: 0.5天
**用户故事**:
作为 买家用户 我想要 查看购物车 以便于 确认要购买的商品
---
### US012: 编辑购物车
**基本信息**:
- **Story ID**: US012
- **Epic**: E003 购物车管理
- **优先级**: P1
- **Story Point**: 2
- **预估工时**: 0.5天
**用户故事**:
作为 买家用户 我想要 编辑购物车中的商品数量 以便于 调整购买数量
---
### US013: 删除购物车商品
**基本信息**:
- **Story ID**: US013
- **Epic**: E003 购物车管理
- **优先级**: P1
- **Story Point**: 1
- **预估工时**: 0.25天
**用户故事**:
作为 买家用户 我想要 删除购物车中的商品 以便于 不再购买该商品
---
## 五、Epic 4: 订单管理
### Epic描述
**作为** 产品系统
**我想要** 提供订单管理功能
**以便于** 用户可以创建订单、支付、查看订单状态
---
### US014: 订单创建
**基本信息**:
- **Story ID**: US014
- **Epic**: E004 订单管理
- **优先级**: P0
- **Story Point**: 5
- **预估工时**: 2天
**用户故事**:
作为 买家用户 我想要 创建订单 以便于 完成购买
**验收标准**:
**场景1:正常创建订单**
GIVEN 用户已登录 AND 购物车有商品 WHEN 用户选择收货地址和支付方式 AND 点击"提交订单" THEN 订单创建成功 AND 生成订单号 AND 扣减库存 AND 跳转到支付页
**场景2:库存不足**
GIVEN 商品库存为5件 WHEN 用户购买10件 THEN 提示"库存不足,当前库存5件"
---
### US015: 订单支付
**基本信息**:
- **Story ID**: US015
- **Epic**: E004 订单管理
- **优先级**: P0
- **Story Point**: 5
- **预估工时**: 2天
**用户故事**:
作为 买家用户 我想要 支付订单 以便于 完成购买
---
### US016: 查看订单列表
**基本信息**:
- **Story ID**: US016
- **Epic**: E004 订单管理
- **优先级**: P0
- **Story Point**: 2
- **预估工时**: 0.5天
**用户故事**:
作为 买家用户 我想要 查看我的订单列表 以便于 了解所有订单状态
---
### US017: 查看订单详情
**基本信息**:
- **Story ID**: US017
- **Epic**: E004 订单管理
- **优先级**: P0
- **Story Point**: 2
- **预估工时**: 0.5天
**用户故事**:
作为 买家用户 我想要 查看订单详情 以便于 了解订单详细信息
---
### US018: 取消订单
**基本信息**:
- **Story ID**: US018
- **Epic**: E004 订单管理
- **优先级**: P1
- **Story Point**: 3
- **预估工时**: 1天
**用户故事**:
作为 买家用户 我想要 取消订单 以便于 不再购买该订单商品
---
### US019: 申请退款
**基本信息**:
- **Story ID**: US019
- **Epic**: E004 订单管理
- **优先级**: P1
- **Story Point**: 5
- **预估工时**: 2天
**用户故事**:
作为 买家用户 我想要 申请退款 以便于 退回不满意的商品
---
## 六、Story依赖关系图
US001(注册) → US002(登录) → US004(个人信息) ↓ ↓ └────────────────┴→ US006(商品列表) → US008(商品详情) → US010(加入购物车) ↓ US011(查看购物车) ↓ US014(创建订单) → US015(支付)
---
## 七、Sprint规划建议
### Sprint 1(2周)
**目标**:用户基础功能
**Story清单**:
- US001: 用户注册
- US002: 用户登录
- US006: 商品列表
- US008: 商品详情
**预估工时**:3.5天
---
### Sprint 2(2周)
**目标**:购物车和订单
**Story清单**:
- US010: 加入购物车
- US011: 查看购物车
- US014: 订单创建
- US015: 订单支付
**预估工时**:5天
---
### Sprint 3(2周)
**目标**:订单管理和优化
**Story清单**:
- US016: 订单列表
- US017: 订单详情
- US007: 商品搜索
- US003: 找回密码
**预估工时**:4天
---
## 八、下一步建议
### 8.1 用户故事编写完成后
建议执行:
1. **Sprint规划** - 选择Story进入Sprint
2. **任务拆分** - 将Story拆分为开发任务
3. **工时评估** - 详细评估开发工时
4. **开始开发** - 按Sprint执行开发
### 8.2 用户故事维护
- 定期回顾用户故事
- 根据反馈调整优先级
- 新增用户故事及时补充
- 完成的用户故事归档
---
## 附录
### A. 用户故事模板
```markdown
### US{编号}: {功能名称}
**基本信息**:
- **Story ID**: US{编号}
- **Epic**: E{编号} {Epic名称}
- **优先级**: P{0-3}
- **Story Point**: {1-10}
- **预估工时**: {天数}
**用户故事**:
作为 {角色} 我想要 {功能} 以便于 {价值}
**验收标准**:
**场景1:{场景名称}**
GIVEN {前置条件} WHEN {操作} THEN {预期结果}
**技术备注**:
- {技术细节}
**依赖**:
- {前置Story}
**风险**:
- {风险项} → {应对方案}
| Story Point | 复杂度 | 工时估算 |
|---|---|---|
| 1 | 非常简单 | 0.25天 |
| 2 | 简单 | 0.5天 |
| 3 | 中等 | 1天 |
| 5 | 复杂 | 2天 |
| 8 | 非常复杂 | 3天 |
| 13 | 极其复杂 | 需拆分 |
文档状态: 用户故事清单完成 生成时间: {时间戳} 生成工具: super-pm v1.0.0