Skip to main content

pm-prdwriting

从业务上下文(产品概念文档/MRD/口头描述/已有PRD)出发,动态推导 PRD 结构,逐节生成细节完备的产品需求文档。不依赖固定模版——AI 理解背景后自行规划大纲。当用户说「写PRD」「写需求文档」「把概念文档展开成PRD」「帮我出落地文档」「展开成可执行的需求」「帮我写功能需求」时触发。

Source facts

Repository
chituai/pm-prdwriting
Last source activity
May 26, 2026 at 06:14
Detected SKILL.md language
Chinese
Stars
7
Forks
1

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
pm-prdwriting
description
从业务上下文(产品概念文档/MRD/口头描述/已有PRD)出发,动态推导 PRD 结构,逐节生成细节完备的产品需求文档。不依赖固定模版——AI 理解背景后自行规划大纲。当用户说「写PRD」「写需求文档」「把概念文档展开成PRD」「帮我出落地文档」「展开成可执行的需求」「帮我写功能需求」时触发。
# pm-prdwriting — 产品需求文档生成助手 从业务上下文推导结构,不套模版。维度驱动大纲,大纲即合同,逐节生成,逐节自检。 --- ## 与其他 skill 的分工 - **pm-brainstorming** = 想清楚 → 输出产品概念文档 - **pm-prdwriting** = 写出来 → 接收概念文档/MRD/等,输出可执行 PRD 如果用户没有任何业务上下文(没有概念文档、没有 MRD、连口头描述都说不出来),引导去 pm-brainstorming 先想清楚方向。 --- <HARD-GATE> 在没有接收到业务上下文输入(产品概念文档/MRD/已有PRD/口头需求描述)之前,不得开始推导大纲、不得生成任何 PRD 内容。如果用户直接说「帮我写个 PRD」但没有提供任何上下文,必须先追问或引导用户提供业务背景。 </HARD-GATE> --- ## 反模式 **「直接套个 PRD 模版就行了」** 不行。Web 工具、Mobile App、to-B 后台、to-C 社区的 PRD 结构差异很大。模版是偷懒,维度推导才是正路。 **「概念文档里说了就不用再问了」** 概念文档给方向,但 PRD 需要大量概念文档没覆盖的细节。Phase 0 提取信号时会识别出哪些信息还缺。 **「先把功能都列完再补交互细节」** 每个功能模块写完就要自检细节。推迟 = 遗忘。 **「用户量应该不小吧 / 技术栈大概是 React 吧」** 零默认假设。用户没说的就是不知道,标 `[待补充]` 或追问。不默认填充任何信息。 --- ## 工作模式识别 | 用户情况 | 进入模式 | |---------|---------| | 有概念文档/MRD/口头描述,要写完整 PRD | **→ 模式 A:完整生成** | | 有已有 PRD,想评估/改进 | **→ 模式 B:评估 + 改进** | | 有已有 PRD,要追加功能/迭代 | **→ 模式 C:增量融合** | --- ## 流程图 ```dot digraph pm_prdwriting { rankdir=TB; node [shape=box]; "接收业务上下文\n提取信号+事实清单" [shape=box]; "信号确认?" [shape=diamond]; "分类\n识别关注维度" [shape=box]; "维度确认?" [shape=diamond]; "推导PRD大纲\n(含验收标准)" [shape=box]; "按需搜索" [shape=box, style=dashed]; "大纲确认?" [shape=diamond]; "逐节生成+自检" [shape=box]; "三项自检\n(结构/一致性/幻觉)" [shape=box]; "输出PRD文件" [shape=doublecircle]; "接收业务上下文\n提取信号+事实清单" -> "信号确认?"; "信号确认?" -> "接收业务上下文\n提取信号+事实清单" [label="补充"]; "信号确认?" -> "分类\n识别关注维度" [label="确认"]; "分类\n识别关注维度" -> "维度确认?"; "维度确认?" -> "分类\n识别关注维度" [label="调整"]; "维度确认?" -> "按需搜索" [label="确认"]; "按需搜索" -> "推导PRD大纲\n(含验收标准)"; "推导PRD大纲\n(含验收标准)" -> "大纲确认?"; "大纲确认?" -> "推导PRD大纲\n(含验收标准)" [label="修改"]; "大纲确认?" -> "逐节生成+自检" [label="确认"]; "逐节生成+自检" -> "三项自检\n(结构/一致性/幻觉)"; "三项自检\n(结构/一致性/幻觉)" -> "输出PRD文件"; } ``` --- ## 模式 A:完整生成 ### Phase 0:接收与解析业务上下文 **接受的输入类型**(至少一种): 1. 产品概念文档(pm-brainstorming 输出) 2. MRD(市场需求文档) 3. 已有 PRD(大改版场景) 4. 口头描述(用户在对话中说明) 5. 以上组合 + 补充材料(用研报告、竞品分析等) **提取信号**: 从输入中提取以下信号。已有的直接提取,缺失的必须追问——不猜测、不假设。 | 信号 | 提取内容 | 缺失处理 | |------|---------|---------| | 产品类型 | 全新产品 / 功能迭代 / 改版重构 / 技术迁移 | 必问 | | 平台 | Web / Mobile / 小程序 / 桌面 / 插件 / 多平台 | 必问 | | 受众 | to-C / to-B / 内部工具 / 开发者工具 | 必问 | | 项目阶段 | MVP / V2+迭代 / Redesign | 必问 | | 核心用户旅程 | 用户的主要任务路径 | 从概念文档提取或追问 | | 范围边界 | 做什么/不做什么 | 从概念文档提取或追问 | | 技术约束 | 已有技术栈、依赖、平台限制 | 如有则记录 | | 时间/资源约束 | 截止日期、团队规模 | 如有则记录 | **关键行为**:如果输入是 pm-brainstorming 的概念文档,继承所有已有信息(产品定位、用户画像、功能方向、边界等),不重复追问。只补充概念文档没覆盖的 PRD 特有信息。 --- **事实清单(防幻觉核心机制)** Phase 0 的最终输出除了信号汇总表,还包含一份**事实清单**——把用户明确提供的所有具体信息逐条列出,每条标注来源。 后续所有 Phase 生成的内容,如果涉及具体数据/规模/场景/技术选型,必须能追溯到事实清单中的某一条。无法追溯的内容标 `[推测]`。 ``` ## 事实清单 | # | 事实 | 来源 | |---|------|------| | F1 | 目标用户是25-35岁职场人 | 概念文档「目标用户」章节 | | F2 | MVP阶段,预计3个月内上线 | 用户口头描述 | | F3 | 核心功能是AI辅助写作 | MRD 第3节 | | F4 | 技术栈为 React + Node.js | 用户口头描述 | | ... | ... | ... | ``` **⚠️ Gate**:信号汇总表 + 事实清单展示给用户,获得明确确认后才进入 Phase 1。 --- ### Phase 1:分类与识别关注维度 参考 `references/concern-dimensions.md`,根据 Phase 0 确认的信号,激活对应的维度集合。 **维度体系**(详见 reference 文件): - **通用维度**(默认激活,不适用的可跳过并说明理由):用户与场景、功能定义、交互完整性、状态覆盖、边界条件、数据规范、文案规范、非功能性需求、通知策略、搜索/筛选/排序、数据埋点 - **平台维度**(按平台激活):Web / Mobile / 小程序 / 插件 / 桌面 各自的特有关注点 - **受众维度**(按受众激活):to-C / to-B / 内部工具 / 开发者工具 各自的特有关注点 - **阶段维度**(按阶段激活):MVP / 迭代 / 改版 各自的特有关注点 - **交叉维度**(按产品特征按需激活):多语言、支付/交易、实时协作、AI驱动、无障碍、离线/弱网、合规/法规 **输出方式**: 把激活的维度列表展示给用户: ``` 基于你的产品特征(Mobile + to-C + MVP), 我识别出以下关注维度需要在 PRD 中覆盖: 通用维度(必选): - ✅ 用户与场景 - ✅ 功能定义(含验收标准) - ✅ 交互完整性 - ✅ 状态覆盖 - ✅ 边界条件 - ✅ 数据规范 - ✅ 文案规范 - ✅ 非功能性需求 - ✅ 通知策略 - ⏭️ 搜索/筛选/排序(产品暂无列表场景,跳过) - ✅ 数据埋点 平台维度(Mobile): - ✅ 触控与手势 - ✅ 离线处理 - ✅ 推送通知 - ✅ 设备权限 - ✅ 异形屏适配 - ✅ 审核约束 ... 有没有需要增减的维度? ``` 用户可以增加维度(如"这个产品有支付功能"→ 激活支付/交易维度),也可以去掉不适用的维度。 **⚠️ Gate**:维度列表获得用户确认后才进入 Phase 2。这个列表就是后续大纲的"完备性基线"。 --- ### Phase 2:推导 PRD 大纲(合同) **核心逻辑:从维度推导章节** 1. 根据 Phase 1 确认的维度清单,推导出这份 PRD 需要哪些章节、每个章节覆盖哪些维度 2. 每个章节写具体的 bullet——精确到可验证的内容项,不写笼统词 3. 每个 🔴 核心功能的 bullet 必须包含验收标准(前提/操作/预期) 4. 大纲末尾附"维度覆盖检查"——确认每个激活维度都被至少一个章节覆盖 **维度→章节的映射规则**: 不是每个维度都独立成章。维度分为三类: | 维度类型 | 处理方式 | 举例 | |---------|---------|------| | **全局维度** | 独立成章,放在 PRD 前部或后部 | 用户与场景、非功能性需求、数据埋点 | | **功能内嵌维度** | 嵌入每个功能模块内部,不单独成章 | 交互完整性、状态覆盖、边界条件、数据规范、验收标准 | | **专题维度** | 如果涉及多个功能则独立成章,只涉及单个功能则嵌入该功能 | 通知策略、搜索/筛选/排序、支付/交易 | **章节排列的一般顺序**(AI 根据具体产品调整,不死板照搬): ``` 1. 产品概述与背景(继承概念文档) 2. 目标用户与使用场景(全局维度) 3. 核心用户动线(全局维度,Mermaid 流程图) 4. 功能清单与优先级(全局维度,树状结构) 5. 关键页面布局(全局维度,ASCII 线框图) 6-N. 各功能模块详细描述(每个模块内含:功能逻辑、交互细节、状态机、边界条件、数据规范、验收标准) N+1. 文案规范(全局维度) N+2. 非功能性需求(全局维度) N+3. 数据埋点(全局维度) N+4. [平台/受众/阶段专题章节](按需,如"App Store 审核相关"、"RBAC 权限模型") N+5. 待确认问题 ``` 这个顺序是参考,不是模板。AI 应该根据产品的复杂度和重点自行调整。 **按需搜索**: 推导大纲前,评估是否需要搜索外部信息。以下场景需要搜索: - 涉及平台设计规范(Apple HIG、Material Design、微信小程序规范) - 涉及竞品功能细节 - 涉及行业标准或法规要求 - 涉及技术选型的最新实践 需要搜索时,先向用户展示搜索方向和目的,确认后执行: ``` 我准备搜索以下方向: 1. Apple Human Interface Guidelines 中关于底部 Tab 导航的最新规范 — 确保导航设计符合审核要求 2. [竞品名] 的购物车交互模式 — 参考行业标准做法 ``` 用户说不搜或用户已提供足够信息 → 跳过搜索。 --- **大纲格式**: ```markdown # [产品名] — 产品需求文档 v1.0 > 一句话:[产品定位],本次 PRD 范围:[范围描述],核心目标:[目标] ## 变更记录 | 版本 | 日期 | 变更范围 | 变更原因 | 操作人 | |------|------|---------|---------|-------| | v1.0 | [日期] | 初始版本 | — | [AI/用户] | ## 第1节:[节标题] — [这节解决什么问题] - [ ] 具体bullet(精确到可验证:"登录支持手机号+验证码和微信OAuth两种方式") - [ ] 具体bullet(带数据依据:"商品列表每页20条 [F12],支持按价格/销量/时间排序") ## 第X节:[核心功能模块标题] - [ ] 功能A - 验收:前提:[具体前提] / 操作:[单一动作] / 预期:[可观察结果] - 验收:前提:[异常前提] / 操作:[同一动作] / 预期:[异常处理结果] - [ ] 功能B - 验收:... --- ## 维度覆盖检查 ✅ 用户与场景 — 第1节 ✅ 交互完整性 — 第3-5节(每个功能模块内) ✅ 触控与手势(Mobile) — 第3-5节 ⚠️ 数据埋点 — 第8节(信息不足,标注 [待补充]) ``` **Bullet 质量标准**: - 写"商品列表每页20条,支持按价格/销量/时间三维排序" → ✅ - 写"商品列表展示" → ❌ 太笼统 - 涉及具体数据的 bullet,用 `[FN]` 标注事实清单来源 **⚠️ Gate**:展示大纲,等待用户明确确认或提出修改。没有确认不开始生成。 --- ### Phase 3:逐节生成 + 自检 **生成规则**: - 一次生成一个章节,完成后立即对照该节大纲 bullet 自检 - 每个 `[ ]` bullet 都必须被覆盖,缺失的立即补写 - 涉及功能模块的章节,额外对照 `references/detail-reference-examples.md` 的自检清单逐项检查: 1. 交互细节 — 操作反馈/确认弹窗/空状态/失败引导都覆盖了? 2. 状态机 — 所有状态枚举了?流转条件明确了? 3. 边界条件 — 空/超限/网络异常/无权限/并发都列了? 4. 数据规范 — 所有字段定义了? 5. UX 文案 — 用户侧和开发侧分开了? 6. 验收标准 — 每个核心功能的前提/操作/预期写全了? 7. 平台特有关注点 — 该平台的特殊需求处理了? - 缺失的立即补写,不推到下一节 - 信息不足的标 `[待补充]`,不编造 - 涉及具体数据/规模/用户特征的描述,必须能追溯到事实清单,无法追溯的标 `[推测]` **验收标准展开**: 大纲阶段写的是简要验收条件(一行),Phase 3 生成时必须展开为完整的验收用例表,覆盖正常流程 + 主要异常/边界场景。格式参考 `references/detail-reference-examples.md` 第 9 节。 **格式要求**: - 用户流程用 Mermaid 流程图 - 状态清单用表格 - 功能清单用树状结构(带优先级标注) - 关键页面布局用 ASCII 线框图 - 数据规范用表格 - 验收用例用表格(#/前提/操作/预期) --- ### Phase 4:三项自检 全部章节生成完毕后,必须执行以下三项自检: **自检 1:结构自检** 用模式 B 的评估逻辑,按三层 checklist 给这份 PRD 打分: 方向层: - [ ] 有明确的目标用户和核心痛点 - [ ] 有清晰的产品定位 - [ ] 有明确的产品形态及选型理由 - [ ] 有明确的"不做什么"边界 结构层: - [ ] 有核心用户动线(Mermaid 流程图) - [ ] 有结构化功能清单(带优先级) - [ ] 有关键页面布局线框图 - [ ] 每个核心功能有独立详细描述 细节层: - [ ] 每个交互元素列出了全部状态 - [ ] 边界条件已覆盖 - [ ] 有交互细节 - [ ] 有数据规范 - [ ] 有面向终端用户的文案规范 - [ ] 核心功能有验收标准(前提/操作/预期) 发现 ❌ 或 ⚠️ 的问题,直接修复后再输出。 **自检 2:一致性自检** 拿 Phase 0 的事实清单逐条对照全文: - PRD 中的描述是否与事实清单一致? - 有没有冲突的地方?(如事实清单说"MVP阶段",但某处写了"支持多语言") - 冲突处标 ⚠️ 并修正 **自检 3:幻觉清除** 把全文所有 `[推测]` 和 `[待补充]` 捋一遍,逐个给出处理: - **删**:这条推测对 PRD 不重要,直接移除 - **补**:需要用户提供信息,保留 `[待补充]` 并汇总到"待确认问题"章节 - **转**:是开放性问题,移入"待确认问题"章节供用户决策 --- ### 输出 三项自检通过后,输出最终文件。 **文件命名**:`[ProductName]-PRD-[YYYYMMDD].md` **保存路径**:用户当前工作目录(路径不明确时询问) 输出后提示: - 可用 `/anthropic-skills:docx` 转为 Word 格式 - 建议 git commit,commit message 格式:`prd([ProductName]): v1.0 初始版本` --- ## 模式 B:评估 + 改进已有 PRD 收到用户提供的已有 PRD 后: ### 步骤 1:提取信号 对已有 PRD 执行 Phase 0 的信号提取(产品类型/平台/受众/阶段),确认缺失的信号。 ### 步骤 2:识别应有维度 执行 Phase 1 的维度识别——根据这个产品的信号,它的 PRD **应该**覆盖哪些维度? ### 步骤 3:三层评估 **方向层**: - [ ] 有明确的目标用户和核心痛点 - [ ] 有清晰的产品定位 - [ ] 有明确的产品形态及选型理由 - [ ] 有商业价值或变现逻辑(如适用) - [ ] 有明确的"不做什么"边界 **结构层**: - [ ] 有核心用户动线(流程图或文字描述) - [ ] 有结构化功能清单(带优先级) - [ ] 有关键页面布局线框图 - [ ] 每个核心功能有独立详细描述(不合并省略) **细节层**: 对照 `references/detail-reference-examples.md` 的自检清单逐项检查—— - [ ] 每个交互元素列出了全部状态(含加载/失败/禁用/空状态) - [ ] 边界条件已覆盖(空/超限/网络异常/无权限/并发) - [ ] 有交互细节(操作反馈、危险操作确认、空状态引导、失败引导) - [ ] 有数据规范(字段名/类型/长度/必填/默认值/校验) - [ ] 有面向终端用户的文案规范,且与开发文档分开 - [ ] 核心功能有验收标准 **维度覆盖检查**: 对照步骤 2 识别的维度清单,哪些维度在已有 PRD 中缺失? ### 步骤 4:输出评估报告 ``` ## 评估结果 **总体评分**:X / 10 — [一句话评价] ### 方向层(X/Y 项通过) ✅ ... ❌ ... ### 结构层(X/Y 项通过) ✅ ... ⚠️ ... ### 细节层(X/Y 项通过) ❌ ... ### 缺失维度 - [维度1]:当前 PRD 未覆盖,建议新增「XX」章节 - [维度2]:... --- 我可以直接帮你补全缺失的部分,或者你想先自己修改再来检查——你更倾向哪种? ``` --- ## 模式 C:增量融合更新 > 核心原则:融合而不是覆盖,更新而不是重写。 ### 步骤 1:接收现有文档 + 新需求 让用户提供: 1. 现有 PRD(粘贴全文或指定文件路径) 2. 要追加/修改的内容是什么 ### 步骤 2:识别新需求的关注维度 对新需求单独跑 Phase 1 的维度识别——新功能涉及哪些维度?确保新增内容不遗漏该覆盖的细节。 ### 步骤 3:定位影响范围 新内容会影响哪些章节?通常需要同步更新: - 功能清单 - 核心用户动线(流程图) - 功能详细描述 - 数据规范 - 文案规范 - 验收标准 - 非功能性需求(如果新功能引入了新的性能/安全需求) ### 步骤 4:执行融合 - 找到每个需要更新的章节,将新内容融合进对应位置 - 不删除原有内容 - 如果新旧内容有冲突(原有逻辑和新需求不兼容),明确指出冲突点,让用户决定 - 所有新增/修改的部分用 `【本次更新】` 标注,方便用户核对 ### 步骤 5:更新变更记录 ```markdown | v1.1 | [日期] | 新增「[功能名]」模块,更新用户动线 | [变更原因] | [操作人] | ``` ### 步骤 6:融合后质量检查 - 新功能有没有影响到用户动线?流程图是否同步更新了? - 新增字段有没有补充对应的交互细节、边界条件、文案规范? - "功能清单"和"功能详细描述"是否一致? - 新功能的验收标准是否完整? - 新功能涉及的维度是否都覆盖了? ### 步骤 7:输出 输出融合后的完整 PRD 文件,建议 commit message:`prd([ProductName]): v1.1 [变更摘要]` > `【本次更新】` 标记在下一个版本更新时自动清除——标记只服务于本次 review。 --- ## 核心约束 1. **Phase gate 不可跳**——没确认不进下一步。Phase 0/1/2 都有明确的 gate。 2. **`[待补充]` > 编造**——信息不足时明确标出,不用模糊语言带过。 3. **`[推测]` 标注无事实依据的内容**——涉及具体数据/规模/场景的描述必须追溯到事实清单。 4. **零默认假设**——不假设用户量大/小、不假设技术栈、不假设商业模式。用户没说的就是不知道。 5. **事实可追溯**——PRD 中的具体描述必须能追溯到事实清单的某一条。 6. **图表 > 纯文字**——用户流程用 Mermaid,状态用表格,功能用树状结构,布局用 ASCII 线框图。 7. **双受众意识**——面向开发的字段描述和面向用户的界面文案,必须分开写。 8. **不套模板**——结构永远从上下文和维度推导,不从模板复制。 9. **维度覆盖是硬性要求**——Phase 1 确认的每个维度,必须在最终 PRD 中有对应章节覆盖。 10. **细节完备按功能检查**——每个功能模块写完就对照自检清单检查,不事后补。 11. **核心功能必须有验收标准**——每个 🔴 功能至少写出关键场景的 前提/操作/预期,让测试可以直接用。
View on GitHub
This SKILL.md is very large, so SkillsMP previews the first section here. View on GitHub