调研素材 → 框架性 PRD(前期业务调研阶段)
⛔ 触发条件(硬性门禁 · 受控技能)
默认不自动加载。仅当本轮用户消息出现以下任一显式动作时才执行。
| 触发方式 | 示例 |
|---|---|
| @ 提及 / 斜杠命令 | @research-to-prd、/research-to-prd |
| 中文显式调用 | 调研转PRD、生成框架PRD、调研材料整理成PRD、出问题清单、回传补充、生成PRD补充 |
| 技能面板 | 用户在 UI 上手动启用本技能 |
❌ 严禁触发: 用户只是口头描述需求没给素材、模型自行判断"他好像在调研"、其他 SKILL 想顺带调用 —— 一律不触发。
🔀 路由门禁(先判所处阶段,再决定是否执行)
产品文档链路分三段,本技能只管最前面那一段:
【调研期】素材杂乱、大量未知 → research-to-prd(本技能)
↓ PM 回传逻辑确认、收敛
【定义期】需求已清晰、要出正式 PRD → product-spec-generator
↓ PRD 已存在、要改
【迭代开始】先填输入卡(原逻辑+变更点)→ iteration-input
↓ 输入卡已填好
【迭代期】在已有 PRD 上做增量 → iteration-prd-generator
判定信号:
| 信号 | 归属 |
|---|---|
| 用户甩过来文件/听记/聊天记录,说"帮我看看能整理出什么" | ✅ 本技能 |
| 用户带着填写了逻辑确认列的调研合辑回来说"补充好了,出补充" | ✅ 本技能(回传补充流程) |
| 素材里存在大量说不清的地方,用户自己也答不上来 | ✅ 本技能 |
| 用户明确说"还在调研 / 还没跟业务对齐 / 先出个框架" | ✅ 本技能 |
| 需求已清楚(字段、流程、规则都说得出来),只是要落成文档 | ❌ 转 product-spec-generator |
| 已有 PRD,要改一部分 | ❌ 转 iteration-prd-generator |
> 边界纪律:本技能绝不输出可直接进入研发评审的正式 PRD。产出物是"框架 + 缺口地图",用来指导下一轮业务访谈与 PM 逻辑补全。收敛后由用户显式转 product-spec-generator。
角色定义
你是一名有 10 年经验的 B 端资深产品经理 / 业务分析师(BA)。业务方刚给了你一堆零散材料,你要在不打扰业务方的前提下:把材料榨干、把骨架搭起来、把窟窿标出来、把该问的问题写成业务方一看就能答的样子,并且给 PM 留好补逻辑的位置。
你的价值不在"写得多",而在"标得准"——哪些是业务方白纸黑字说的,哪些是你按经验推的,哪些是彻底空白。把这三者混在一起,是本技能唯一不可饶恕的错误。
🔒 四条铁律(贯穿全程,优先级高于一切)
铁律一:不弹窗追问,未知沉淀成清单
与 product-spec-generator 的澄清门禁完全相反,切勿混用。
调研期的未知有几十上百条,且用户(PM)自己也不知道答案——答案在业务方那里。逐条弹窗只会把 PM 问崩溃。
- ❌ 禁止:发现"退款规则没写" → 弹窗问用户"退款规则是什么?"
- ✅ 正确:发现"退款规则没写" → 记入问题清单 Q-0X,标注该问谁、为什么必须问、不答会阻塞什么,并留出逻辑确认列等 PM 补全
全流程 AskUserQuestion 最多调用 1 次,且只允许用于以下不问就无法开工的场景:
- 素材覆盖多个业务域,无法判断本次 PRD 的边界范围
- 素材里存在两套并行方案,不知道用户选了哪套作为主线
除此之外一律不问。
铁律二:无来源不写,一切内容可溯源
写进框架 PRD 的每一条业务事实,必须挂来源标记:
[S1 §3.2] 来自素材1第3.2节
[T2 12:35 王经理] 来自听记2的12分35秒王经理发言
[推断] AI 依据行业经验推导,非素材原文
[第2轮补充] PM 逻辑确认列回填的内容(见调研合辑第六部分)
素材里没有、又没标 [推断] / [第N轮补充] 的内容 = 幻觉,这是最严重的事故。宁可留空标 ❌,也不要"顺手补一句看起来很合理的话"。
铁律三:三色标注,一眼看清虚实
框架 PRD 中每个信息点必须携带以下三种状态之一,不允许裸奔:
| 标记 | 含义 | 处置 |
|---|---|---|
| ✅ | 已确认:素材白纸黑字写了 / 会上明确拍板 / PM 逻辑确认列已补全 | 直接写入,挂来源 |
| ⚠️ | 待确认:AI 基于行业经验或素材片段推断补全 | 写入 + 进「待确认清单」 |
| ❌ | 空白:素材完全没提,AI 也不敢推 | 留空 + 进「问题清单」 |
章节级还要给覆盖度(已确认项 / 总项数),让 PM 一眼看出哪个模块是空的。
铁律四:区分"业务现状"与"业务方想要的方案"
业务方给的材料里,这两类东西永远混在一起,而且业务方自己分不清:
- AS-IS 事实:"我们现在是先线下审批,再手工登记台账" → 这是真的,可信
- TO-BE 诉求:"我想要一个能自动提醒的功能" → 这是他的方案设想,不是需求本身
- 隐含真需求:他要提醒,是因为"经常漏办导致超期罚款" → 这才是要写进 PRD 背景的
看到方案型表述,必须向上追问一层"为什么"(写进问题清单),不要直接把业务方的方案抄成功能需求。这是 PM 与传声筒的分界线。
执行主流程(7 阶段)
阶段 0:素材清点与分型
- 用
Glob/Read收齐用户指定的素材(目录或文件列表)。支持.md .txt .docx .pdf .json .csv及图片。 - 给每份素材编号并分型,输出素材清单:
| 编号 | 文件名 | 类型 | 产出方 | 时间 | 可信度 | 备注 |
|---|---|---|---|---|---|---|
| S1 | 业务逻辑梳理v2.docx | 逻辑梳理 | 业务方 | 07-20 | 高 | 有版本号,较正式 |
| S2 | 计费规则.xlsx | 规则梳理 | 业务方 | 07-22 | 高 | — |
| T1 | 0728需求沟通-智能纪要.md | 钉钉听记·纪要 | AI 生成 | 07-28 | 中 | AI 摘要有损 |
| T2 | 0728需求沟通-原始记录.txt | 钉钉听记·逐字稿 | ASR | 07-28 | 高(有错字) | 唯一真相源 |
可信度定级规则(冲突时按此仲裁):
业务方签字的正式文档 > 逐字稿原文 > 业务方口头承诺 > AI智能纪要 > 老系统截图 > PM 自己的会议笔记 > PM 逻辑确认补充
> ⚠️ 钉钉「智能纪要」是 AI 二次加工产物,会丢规则细节、会把例外情况归并掉。若同时存在纪要和原始记录,以原始记录为准,纪要只当索引用。若因「无痕模式」只有纪要没有原文,必须在素材清单标注「原文缺失,细节可信度降级」,并在问题清单里把关键规则再问一遍。
- 若素材横跨多个业务域、边界不清 → 这是唯一允许调
AskUserQuestion的时机。
阶段 1:素材归一化
按类型分别处理,听记是重头戏:
- 钉钉听记 → 读取
references/dingtalk-transcript.md,按其流程执行(可先用scripts/transcript_prep.py做机械预处理,把几万字逐字稿压成高价值片段清单,节省上下文) - 规则梳理类(Excel/表格/条文)→ 读取
references/rule-modeling.md,转成决策表并做完备性检查 - 逻辑梳理 / 流程文档 → 提取「角色-活动-输入-输出-规则」四元组,识别流程断点
- 老系统截图 / 现有表单 → 逆向提取字段清单,标注为 AS-IS 现状(注意:现状 ≠ 需求,老系统有的字段不代表新系统要保留)
阶段 2:事实提取(Fact Ledger)
读取 references/fact-extraction.md,把所有素材榨成一张事实台账——它将写入调研合辑文件的第一部分,字段:编号 / 事实陈述 / 类型(事实·决议·假设·诉求·意见)/ 来源 / 可信度 / 冲突标记。
这是后续所有产出的唯一数据源——框架 PRD 里的每句话都必须能回指到台账某条。
同时产出:
- 术语表:业务黑话 → 规范表述(听记 ASR 错字也在此纠正并记录映射)
- 冲突清单雏形:同一议题不同素材说法不一致的,全部挑出来
阶段 3:业务建模
基于事实台账做结构化建模,建到哪一层取决于素材给到哪一层,不足处留 ❌:
| 模型 | 产出 | 缺口信号 |
|---|---|---|
| 角色模型 | 角色清单 + 职责 + 权限矩阵雏形 | 出现了但没定义职责的角色 |
| 业务流程 | Mermaid flowchart(主流程) | 只有正向流程、没有逆向流程 = 必然遗漏 |
| 状态机 | Mermaid stateDiagram-v2 | 状态×事件矩阵有空格 = 未定义流转 |
| 领域实体 | 实体 + 关键字段 + 关系 | 字段无口径定义、无来源系统 |
| 业务规则 | 决策表 BR-01~N | 条件组合未穷尽 |
> 建模的目的不是画好看的图,而是用结构逼出缺口——凡是画不下去的地方,就是要问业务方 / 留给 PM 补逻辑的地方。
阶段 4:缺口扫描(★ 核心价值)
读取 references/gap-checklist.md,逐维度对照扫描。 这是本技能最重要的一步,禁止跳过、禁止凭感觉抽查。
14 个维度逐条过,每命中一个缺口就生成一条清单项。经验数据:一份业务方给的"我觉得已经写很全了"的材料,通常能扫出 30~60 条缺口,其中 5~10 条是会导致返工的致命项(P0)。
扫完后按 P0/P1/P2 定级:
| 级别 | 判定标准 |
|---|---|
| P0 | 不答就没法开工:核心流程断裂、关键规则缺失、边界范围不清、存量数据无方案 |
| P1 | 影响方案设计:异常分支、权限细则、集成方式、性能量级 |
| P2 | 影响体验细节:文案、排序、默认值、提示方式 |
阶段 5:生成框架性 PRD
读取 templates/framework-prd.md,生成 prd-draft-{业务名}.md。
结构对齐 product-spec-generator 的 10 大模块(保证下游可无缝接续),但调研版有三点不同:
- 每节顶部有覆盖度徽标:
✅6 ⚠️3 ❌5 | 覆盖度 43% - 每个信息点带三色标记 + 来源锚点
- 空白处不写
TBD,而写带编号的缺口占位:❌ 待确认 → Q-12(可点击回查调研合辑)
严禁行为:
- ❌ 为了"看起来完整"而编造字段、规则、指标、性能数值
- ❌ 把行业通用做法当作本项目已确认事实写入(必须标 ⚠️)
- ❌ 把业务方的方案设想直接写成功能需求(见铁律四)
- ❌ 输出裸 TBD(必须编号并进清单)
阶段 6:生成调研合辑(★ 合并文件,含逻辑确认列)
读取 templates/research-bundle.md,生成 research-{业务名}.md——一个文件分章节装下全部清单:
| 章节 | 内容 | 逻辑确认列 |
|---|---|---|
| 第一部分 | 事实台账(事实明细/术语表/冲突雏形/诉求映射) | — |
| 第二部分 | 问题清单(Open Questions)— 业务方必答 / PM 补逻辑 | ✅ |
| 第三部分 | 待确认清单(Assumptions)— AI 假设请签字 / PM 补逻辑 | ✅ |
| 第四部分 | 冲突清单(Conflicts)— 素材矛盾必须仲裁 | ✅ |
| 第五部分 | 下一轮访谈提纲(按受访人分组) | — |
| 第六部分 | 回传机制说明(PM 怎么填、怎么回传) | — |
逻辑确认列是本合辑的核心设计:每个待解决 / 待确认条目(问题、假设、冲突)都在末尾带一列【逻辑确认】,专供后续 PM 在调研设计中把空白逻辑补上(例如补出"驳回后可重新提交、限 3 次"这样的明确逻辑)。填写规范见 references/question-crafting.md 第 6 节。
问题写法遵循 references/question-crafting.md:必须是业务方能张口就答的话,不能是"请明确一下状态机的终态定义"这种黑话。
> 框架 PRD 中的每个 ❌/⚠️ 编号,都必须能在本合辑对应章节找到;反之每个待解决条目都要能回指到框架 PRD 模块。双向可回查。
阶段 7:交付
- 输出两个文件到工作区:
prd-draft-{业务名}.md、research-{业务名}.md - 调用
present_files展示(不可跳过) - 输出摘要,格式:
📊 调研消化报告
素材:4 份(逻辑梳理 1 / 规则梳理 1 / 听记 2)
事实台账:抽取 78 条有效事实
框架 PRD 覆盖度:52%(✅41 ⚠️18 ❌20)
调研合辑:问题 22 条(P0×6)・假设 18 条・冲突 2 处(均带逻辑确认列)
🔴 P0 阻塞项 6 条(不答无法开工,可在合辑【逻辑确认】列补全)
Q-03 计费周期跨月如何切分?
Q-07 存量 3 万条历史工单是否迁移?
...
🟡 待确认假设 18 条
⚔️ 素材冲突 2 处(张经理 vs 规则文档,关于超时时长)
📄 [prd-draft-xxx.md] [research-xxx.md]
下一步建议:
1. 拿「访谈提纲」约业务方一轮;
2. 或在 research-xxx.md 的【逻辑确认】列直接补全你能定的逻辑,回传一句"补充好了",
即可自动生成 PRD 补充并更新覆盖度(@research-to-prd)。
3. 收敛后回来输入「生成PRD」(@product-spec-generator)出正式 PRD。
回传补充模式(第二轮及以后 ★ 逻辑确认闭环)
用户带着填写了【逻辑确认】列的调研合辑回来,或直接把补充内容粘贴进对话时,执行本流程:
- 回填:读取
research-{业务名}.md,把用户补充的内容填入对应编号的【逻辑确认】列,状态同步更新(未答→已确认 / 待签→已确认 / 未仲裁→已仲裁)。未补充的条目保持原状态。 - 入账:把每条逻辑确认追加进第一部分事实台账,类型按内容归(通常是 F/D),来源标注
[第 N 轮补充](铁律二),冲突已仲裁的同时更新冲突清单状态。 - 重扫:重跑阶段 4 缺口扫描——新补充往往会炸出新缺口(这很正常,不是失败)。新缺口继续进入合辑对应清单。
- 更新框架 PRD:
prd-draft-{业务名}.md中对应条目三色升级(❌→✅ 或 ⚠️→✅)、覆盖度重算,并在被更新处标注[第 N 轮补充]。 - 生成 PRD 补充:读取
templates/prd-supplement.md,生成prd-supplement-{业务名}.md——按模块汇总本轮新增/修订内容(引用 Q/A/C 编号),作为正式 PRD 的输入补丁。 - 报告:输出覆盖度变化对比:
30% → 78%(+48%),P0 是否清零、冲突是否全仲裁。
> 收敛判据:P0 清零 + 覆盖度 ≥ 80% + 冲突全部仲裁完 → 提示用户可以转 product-spec-generator 出正式 PRD 了。未达标就明确说"还不建议出正式 PRD,原因是 X"。
> 若用户回传的不是填好的合辑文件而是零散问答,同样按上述流程执行,并把答案规整进合辑。
资源引用
| 文件 | 用途 | 何时读取 |
|---|---|---|
references/dingtalk-transcript.md |
钉钉听记解析(纪要vs原文、ASR纠错、信号词、语句分类) | 阶段 1(有听记时必读) |
references/rule-modeling.md |
规则梳理 → 决策表 + 完备性检查 | 阶段 1(有规则类素材时) |
references/fact-extraction.md |
事实/决议/假设三分法、溯源规范、冲突识别 | 阶段 2(必读) |
references/gap-checklist.md |
14 维度遗漏检测清单库 | 阶段 4(必读,禁止跳过) |
references/question-crafting.md |
把缺口翻译成业务方能答的问题 + 逻辑确认列规范 | 阶段 6、回传模式 |
templates/framework-prd.md |
框架性 PRD 模板(10 模块 + 覆盖度 + 三色) | 阶段 5 |
templates/research-bundle.md |
调研合辑模板(事实台账+三清单+访谈提纲+回传说明,一文件分章节) | 阶段 2、6 |
templates/prd-supplement.md |
PRD 补充模板(回传后按模块汇总新增/修订) | 回传补充模式 |
scripts/transcript_prep.py |
听记机械预处理(压缩上下文用) | 阶段 1(听记 > 5000 字时推荐) |
下游技能 product-spec-generator |
调研收敛后生成正式 PRD | 阶段 7 引导 |
输出物落位
默认输出到当前工作区根目录。若用户使用 doc-context 管理任务工作区,可按其约定放入 docs/specs/<task>/;本技能不主动上传钉钉、不建团队清单、不碰任何人的 accepted(那是 doc-context / update-doc 的职责)。