| name | rpiv-loop:brainstorm |
| description | 通过访谈对话澄清产品需求 |
| argument-hint | [需求主题] |
| allowed-tools | Read, Write, Bash, AskUserQuestion, Skill |
| version | 2.17.14 |
<rpiv-loop-root> 解析顺序:环境变量 RPIV_LOOP_ROOT -> CLAUDE_PLUGIN_ROOT -> 当前插件根目录;均不存在时停止并请用户配置 RPIV_LOOP_ROOT 或 CLAUDE_PLUGIN_ROOT。
Brainstorm: 产品需求访谈
前置初始化
首次执行前调用(幂等,已存在则静默跳过):
uv run --no-project python <rpiv-loop-root>/tools/ensure_project_dod.py
该脚本若发现 rpiv/dod.yaml 缺失则从 <rpiv-loop-root>/tools/dod_template.yaml 拷贝初始化;已存在则静默跳过。确保项目级 DoD 通用门在后续 RPIV 各阶段可用。
概述
通过结构化的访谈对话,与用户进行头脑风暴,分层、全面地澄清产品需求。对话上下文将作为 /rpiv-loop:create-prd 的输入,也可选择将需求摘要保存为文件供 /rpiv-loop:biubiubiu 等后续流程使用。
核心原则
- 只谈需求,不谈技术方案:聚焦于"做什么"和"为什么做",不涉及"怎么实现"
- 访谈式对话:以提问引导为主,帮助用户系统化思考,发现遗漏
- 分层深入:从顶层愿景到具体细节,层层递进,确保完整性
- 自然流转:层次之间不做刻意的阶段确认,保持对话的自然节奏
输入
用户提供的产品想法或方向:$ARGUMENTS
如果 $ARGUMENTS 为空,直接询问用户想要讨论的产品方向。
访谈流程
第一层:愿景(Why & What)
围绕以下四个维度展开,每个维度通过 1-3 个关键问题引导:
1. 要解决的问题
- 当前用户面临什么痛点或不便?
- 这个问题有多普遍、多紧迫?
- 现有的替代方案是什么?为什么不够好?
2. 核心价值
- 这个产品最独特的价值是什么?
- 用户使用后会获得什么核心收益?
- 一句话描述这个产品的价值主张
3. 目标用户
- 谁是主要用户?(角色、特征、技术水平)
- 是否有次要用户群体?
- 用户在什么情境下会想到使用这个产品?
4. 产品形态
- 期望的产品载体是什么?(Web应用、桌面软件、CLI工具、移动App、浏览器插件等)
- 是否有特定的平台偏好或限制?
- 期望的交互方式是怎样的?(GUI、命令行、API等)
引导方式:不要一次性抛出所有问题。根据用户的初始描述,识别哪些维度已经隐含回答,只针对模糊或缺失的部分提问。每轮最多问 2-3 个问题,使用 AskUserQuestion 工具以选项形式呈现关键决策点。
第二层:场景(Who & Where)
在愿景明确后,自然过渡到场景梳理:
1. 核心场景枚举
- 梳理用户使用产品的主要场景(通常 3-7 个)
- 每个场景用一句话描述:"用户在 [情境] 下,需要 [做什么],期望 [什么结果]"
- 确认场景的优先级排序
2. 产品边界
- 明确哪些是 MVP 必须包含的
- 明确哪些明确不做(至少在第一版不做)
- 识别需要推迟到后续版本的功能
3. 已知约束
- 是否有资源限制?(时间、人力、预算)
- 是否有外部依赖?(第三方API、数据源、合规要求)
- 是否有已确定的非功能需求?(性能、安全、可用性)
引导方式:基于愿景层的讨论结果,主动提出可能的场景让用户确认或补充。对于边界问题,可以用"这个功能是否在第一版考虑?"的形式逐项确认。
第三层:细节(How it works)
对第二层梳理出的每个核心场景,逐一深入:
针对每个场景讨论:
1. 功能细节
- 这个场景包含哪些具体的功能点?
- 每个功能点的输入是什么?输出是什么?
- 是否有配置项或可选参数?
2. 交互流程
- 用户的操作步骤是怎样的?(步骤1 → 步骤2 → ...)
- 关键的交互节点(如确认、选择、输入)
- 是否需要反馈或提示?
3. 异常情况
- 可能出错的地方有哪些?
- 异常情况下用户期望看到什么?
- 边界条件:空输入、超大输入、并发操作等
引导方式:按场景优先级逐个讨论。每个场景讨论完毕后自然进入下一个。对于用户描述中明显遗漏的异常情况,主动提出"如果发生 X 情况,你期望怎么处理?"
访谈技巧
提问策略
- 开放式引导:先让用户自由描述,再针对性追问
- 具体化追问:当回答模糊时,用"能举个具体的例子吗?"引导
- 反向验证:用"所以你的意思是...对吗?"确认理解
- 补盲提醒:主动提出用户可能忽略的维度("你有没有考虑过...的情况?")
对话节奏
- 每轮对话聚焦 1-2 个主题,避免信息过载
- 用户回答简短时,适当追问以获取更多细节
- 用户回答详细时,帮助提炼要点并确认
- 当某个话题讨论充分后,自然引入下一个话题
使用 AskUserQuestion 的场景
以下情况必须使用 AskUserQuestion 工具:
- 需要用户在多个方案中做选择时
- 需要确认产品边界(做/不做)时
- 需要确认场景优先级时
结束条件
当以下条件全部满足时,结束访谈:
- 愿景层四个维度(问题、价值、用户、形态)均已明确
- 核心场景已枚举并确认优先级
- 产品边界(做什么/不做什么)已明确
- 每个核心场景的功能细节、交互流程、异常处理均已讨论
- 没有明显的遗漏或模糊点
结束输出
访谈完成后,输出结构化的需求摘要(仅展示在对话中,不保存文件):
## 需求摘要
### 产品愿景
- **核心问题**:[一句话描述]
- **价值主张**:[一句话描述]
- **目标用户**:[用户画像]
- **产品形态**:[载体 + 交互方式]
### 核心场景(按优先级排序)
1. [场景名]:[一句话描述]
2. [场景名]:[一句话描述]
...
### 产品边界
- **MVP 范围内**:[列表]
- **明确不做**:[列表]
- **后续版本考虑**:[列表]
### 已知约束
- [约束条件列表]
### 各场景功能要点
#### 场景1:[名称]
- 功能点:...
- 关键交互:...
- 异常处理:...
(每个场景重复)
输出摘要后:
- 询问用户是否有遗漏或需要补充的内容
- 确认无遗漏后,使用 AskUserQuestion 询问下一步:
- 直接创建 PRD:在当前会话中执行
/rpiv-loop:create-prd,从对话上下文提取需求(适合传统 human-in-the-loop 流程)
- 保存摘要文件:将需求摘要保存到
rpiv/brainstorm-summary-{feature-name}.md(适合后续使用 /rpiv-loop:biubiubiu 全自主开发,或需要跨会话保留需求记录的场景)
- 两者都做:先保存文件,再继续创建 PRD
如果用户选择保存文件,使用以下格式:
---
description: "需求摘要: {feature-name}"
status: pending
created_at: {YYYY-MM-DDTHH:MM:SS}
updated_at: {YYYY-MM-DDTHH:MM:SS}
archived_at: null
---
文件内容使用上方「结束输出」中的需求摘要结构。保存路径:rpiv/brainstorm-summary-{feature-name}.md。