Preamble (run first)
bash "$(dirname "${BASH_SOURCE[0]}")"/check-update.sh 2>/dev/null || true
# 创建需求调研目录
mkdir -p docs/01-需求调研
# 检查是否有需求池
if [ ! -f "docs/01-需求调研/需求池管理表.md" ]; then
echo "⚠️ 未找到需求池管理表"
echo ""
echo "将创建新的需求池"
fi
执行流程
digraph pm_pool {
rankdir=TB;
node [shape=box, style=filled, fillcolor="#e3f2fd"];
subgraph cluster_main {
label="主流程";
style=filled;
fillcolor="#f5f5f5";
"选择操作" [shape=diamond];
"添加新需求" [shape=box, fillcolor="#c8e6c9"];
"查看需求池" [shape=box, fillcolor="#bbdefb"];
"更新需求状态" [shape=box, fillcolor="#fff9c4"];
"删除需求" [shape=box, fillcolor="#f8bbd0"];
"导出需求池" [shape=box, fillcolor="#e1bee7"];
}
subgraph cluster_add {
label="添加流程";
style=filled;
fillcolor="#e8f5e9";
"输入需求名称" [shape=box];
"选择需求类型" [shape=diamond];
"设定优先级" [shape=diamond];
"选择需求来源" [shape=diamond];
"填写详细描述" [shape=box];
}
subgraph cluster_crud {
label="CRUD操作";
style=filled;
fillcolor="#fff3e0";
"格式化展示概览" [shape=box];
"选择要更新的需求" [shape=box];
"选择要删除的需求" [shape=box];
"选择导出格式" [shape=diamond];
}
"更新需求池管理表" [shape=box, fillcolor="#ffccbc"];
"选择操作" -> "添加新需求";
"选择操作" -> "查看需求池";
"选择操作" -> "更新需求状态";
"选择操作" -> "删除需求";
"选择操作" -> "导出需求池";
"添加新需求" -> "输入需求名称";
"输入需求名称" -> "选择需求类型";
"选择需求类型" -> "设定优先级";
"设定优先级" -> "选择需求来源";
"选择需求来源" -> "填写详细描述";
"填写详细描述" -> "更新需求池管理表";
"查看需求池" -> "格式化展示概览";
"格式化展示概览" -> "更新需求池管理表";
"更新需求状态" -> "选择要更新的需求";
"选择要更新的需求" -> "更新需求池管理表";
"删除需求" -> "选择要删除的需求";
"选择要删除的需求" -> "更新需求池管理表";
"导出需求池" -> "选择导出格式";
"选择导出格式" -> "更新需求池管理表";
}
步骤 1: 选择操作
使用 AskUserQuestion 询问:
🎯 您要对需求池进行什么操作?
A) 添加新需求 B) 查看需求池 C) 更新需求状态 D) 删除需求 E) 导出需求池
步骤 2: 执行操作
操作 A: 添加新需求
使用 AskUserQuestion 逐个询问:
问题 1: 需求名称
请输入需求名称:
例如:"用户登录"、"搜索功能"
问题 2: 需求类型
需求类型是什么?
A) 新功能 B) 功能优化 C) Bug修复 D) 技术债务 E) 其他
问题 3: 优先级
需求优先级?
A) P0 - 紧急重要 B) P1 - 重要不紧急 C) P2 - 紧急不重要 D) P3 - 不紧急不重要
问题 4: 来源
需求来源?
A) 用户反馈 B) 业务部门 C) 产品规划 D) 竞品分析 E) 其他(请手动输入)
问题 5: 描述
请详细描述需求:
包括背景、目标、验收标准等
AI 将需求信息添加到需求池管理表。
操作 B: 查看需求池
读取 docs/01-需求调研/需求池管理表.md,格式化输出:
📋 需求池概览
需求总数: {N}个 P0: {N}个 P1: {N}个 P2: {N}个 P3: {N}个
按状态分类:
- 待评估: {N}个
- 已规划: {N}个
- 开发中: {N}个
- 已完成: {N}个
查看详情?
操作 C: 更新需求状态
列出所有需求,让用户选择要更新的需求:
请选择要更新的需求:
A) {需求1} - 当前状态: 待评估 B) {需求2} - 当前状态: 已规划 C) {需求3} - 当前状态: 开发中 ...
用户选择后,询问新状态:
新状态是什么?
A) 待评估 B) 已规划 C) 开发中 D) 测试中 E) 已上线 F) 已关闭
更新需求池管理表。
操作 D: 删除需求
列出所有需求,让用户选择要删除的需求:
请选择要删除的需求:
A) {需求1} B) {需求2} ...
确认后删除。
操作 E: 导出需求池
生成可分享的需求池文档:
选择导出格式:
A) Markdown B) CSV C) JSON
步骤 3: 更新需求池管理表
如果需求池管理表不存在,使用 Write 创建:
# 需求池管理表
## 一、需求概览
- **需求总数**: {N}个
- **更新时间**: {当前时间}
---
## 二、需求列表
| ID | 需求名称 | 类型 | 优先级 | 状态 | 来源 | 创建时间 |
|----|----------|------|--------|------|------|----------|
| R001 | {需求1} | {类型} | {优先级} | {状态} | {来源} | {时间} |
| R002 | {需求2} | {类型} | {优先级} | {状态} | {来源} | {时间} |
---
## 三、需求详情
### R001: {需求名称}
**类型**: {类型}
**优先级**: {优先级}
**状态**: {状态}
**来源**: {来源}
**描述**:
{详细描述}
**验收标准**:
- {标准1}
- {标准2}
**负责人**: {负责人}
**预计完成时间**: {时间}
---
## 四、统计信息
### 4.1 按优先级
- P0: {N}个
- P1: {N}个
- P2: {N}个
- P3: {N}个
### 4.2 按状态
- 待评估: {N}个
- 已规划: {N}个
- 开发中: {N}个
- 已上线: {N}个
---
**最后更新**: {时间戳}
**生成工具**: super-pm v1.0.0
如果需求池已存在,使用 Edit 更新。
步骤 4: 输出完成提示
使用 AskUserQuestion:
✅ 需求池已更新!
📄 需求池管理表:
docs/01-需求调研/需求池管理表.md🎯 下一步:
A) 继续管理需求池 B) 执行 /pm-priority - 对需求排序 C) 执行 /pm-mvp - 规划MVP D) 查看需求池
兜底机制
场景 1: 需求池不存在
自动创建新的需求池。
场景 2: 需求数量过多
提供筛选和搜索功能。
注意事项
- 唯一ID:每个需求分配唯一ID(R001, R002...)
- 状态流转:记录状态变更历史
- 优先级可调整:根据业务变化调整
- Markdown存储:需求池人类可读可编辑
- 定期清理:建议定期清理已完成需求
输出质量对比
✅ Good 示例:
- 有数据引用:「根据 Q4 数据,留存率从 35% 降至 28%」
- 有验证来源:「数据来源:Google Analytics, 2025-12-01」
- 有明确建议:「建议将新手引导步骤从 5 步减少至 3 步」
❌ Bad 示例:
- 模糊结论:「数据表明留存率有所下降」
- 无来源:「根据经验,这个功能很重要」
- 没有行动建议:「留存是个问题」
常见误区 / Red Flags — STOP
出现以下情况立即停止并回溯:
| 误区 | 正确做法 |
|---|---|
| 使用"应该"、"大概"、"看起来"做结论 | 必须基于实际数据和验证 |
| 未运行检查就声称已完成 | 先验证,再陈述 |
| 因时间紧迫跳过关键步骤 | 没有例外,时间紧更要严格 |
| "这次应该没问题"的想法 | 每次都要重新验证 |
产出质量检查 / Verification Checklist
- 前置依赖已满足(输入文档/数据已收集)
- 核心步骤已全部执行
- 输出文档已生成到
docs/目录 - 每个判断都有数据/证据支撑
- 已推荐 2-3 个后续 skill
⚠️ 任何一项未通过 → 补全后再标记完成。