prd-writer
产品需求文档(PRD)撰写工具。引导用户从模糊想法到完整PRD,通过递归追问深挖需求细节,输出专业的.docx格式文档。当用户提到写PRD、需求文档、产品需求、功能设计、需求规格说明书、方案文档时使用。也适用于用户有半成品文档需要补全、或需要整理散乱需求时。即使用户只说'帮我整理一下这个需求'也应触发。
Source facts
- Repository
- GarrusHuang/prd-writer
- Last source activity
- April 9, 2026 at 08:34
- Detected SKILL.md language
- Chinese
- Stars
- 1
- Forks
- 0
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
- prd-writer
- description
- 产品需求文档(PRD)撰写工具。引导用户从模糊想法到完整PRD,通过递归追问深挖需求细节,输出专业的.docx格式文档。当用户提到写PRD、需求文档、产品需求、功能设计、需求规格说明书、方案文档时使用。也适用于用户有半成品文档需要补全、或需要整理散乱需求时。即使用户只说'帮我整理一下这个需求'也应触发。
# PRD 撰写指南
## 依赖 Skills
本 skill 需要配合以下 skill 使用:
- **docx** — Word 文档生成能力(生成 .docx 文件必需)
- **docx-chinese-fix** — 中文文档生成防护规则(中文 PRD 必需,防止中文引号导致 JS 语法错误)
如果这两个 skill 未安装,Phase 5 输出 .docx 时可能失败或出现编码问题。
## 核心理念
PRD 的本质是把用户脑中的产品想法转化为开发团队可执行的需求文档。这意味着:
1. **所有需求必须来自用户,不替用户做业务假设。** 你不知道用户的业务规则——猜出来的需求上线必出错。
2. **站在产品经理的位置。** 定义"做什么"和"为什么",不定义"怎么实现"。接口的 URL、数据库表结构、前端组件选型留给开发团队。
3. **输出 .docx 文件。** 最终交付物是专业排版的 Word 文档,不是 Markdown。
## 模式判断
| 用户意图 | 模式 |
|---------|------|
| "我要写一个新的 PRD" / 从零开始描述产品想法 | **新建模式** |
| "帮我补全/整理这个需求文档" / 已有半成品 | **补全模式** |
| "帮我收集一下这个领域的背景资料" / 先调研 | **调研模式** |
判断不了就问:"你是要从零写 PRD、补全已有文档、还是先做领域调研?"
---
## 新建模式
### Phase 0: 领域背景收集
写 PRD 前先确保理解业务领域。纯工具类产品(计算器、文件转换)可跳过。
**0.1** 问用户一句话描述要做什么产品/功能,判断涉及哪个业务领域。
**0.2** 检查是否已有该领域的知识:
- 查看 `<当前工作目录>/docs/prd-knowledge/` 下是否有对应领域文件
- 用户是否提供了竞品文档、行业报告、现有系统文档?
- 是否有 MCP 工具可以搜索相关知识库?
- 当前对话中是否已包含业务上下文?
如果已有领域知识文件,读取后直接进入 Phase 1。
**0.3** 如果背景不足,向用户要:
- 相关的竞品截图或文档
- 现有系统的业务流程说明
- 目标用户群体的描述
从提供的资料中提取:业务对象和概念、专业术语、关联模块、用户角色。记录到当前项目的 `docs/prd-knowledge/<领域名>/<模块名>.md`,后续追问时参考。
**知识存储结构:**
```
docs/prd-knowledge/
├── 财务一体化/ # 领域目录
│ ├── _index.md # 领域总览(模块清单、通用术语、模块间关联)
│ ├── 财务报表.md # 模块知识
│ └── 总账管理.md
├── 供应链/
│ ├── _index.md
│ └── 采购管理.md
└── ...
```
- 按领域分目录,领域下按模块分文件
- 每个领域有 `_index.md` 记录模块清单、通用术语和模块间关联
- 目录不存在时自动创建
- 知识跟着项目走,换项目时是干净的
**不提取具体业务规则**——规则在 Phase 1 中通过追问获取。
---
### Phase 1: 需求深挖
目标:把模糊的产品想法拆解到每个功能点都有明确的用户故事、数据来源和异常处理。
**1.1 启动问题(必问):**
1. **这个产品/功能要解决什么问题?** 用户痛点是什么?不解决会怎样?
2. **目标用户是谁?** 有几类角色?各自的核心诉求?
3. **给一个最典型的使用场景** —— 从用户打开到完成任务,端到端走一遍
4. **成功长什么样?** 上线后怎么衡量这个功能成功了?(引导用户想指标)
5. **明确不做什么?** 哪些看起来相关但这次不做的?(越早划清边界越好,避免做着做着范围膨胀)
注意:不要一次性把所有问题倒给用户。先问最重要的 1-2 个,根据回答追问,像对话而不是填表。
**1.2 递归追问 —— 三维度结构化:**
对每个功能点/流程步骤,必须明确回答以下三个问题后才算完成:
| 维度 | 追问 | 完成标准 |
|------|------|----------|
| **数据来源** | 这个信息从哪来? | 已明确为:用户输入 / 系统查询 / 第三方接口 / 固定配置 |
| **业务规则** | 怎么判断/怎么计算/怎么流转? | 已明确为:固定规则(列出规则)/ 用户选择 / 系统自动(说明依据) |
| **异常处理** | 数据缺失/冲突/超限怎么办? | 已明确为:默认值 / 报错提示 / 降级方案 / 人工介入 |
**追问方式:**
- 每轮列出当前已识别的功能点,标注哪些维度已明确 ✅、哪些待追问 ❓
- 只问待追问的,已明确的不重复
- 用户说"AI 自行判断"的,在 PRD 中标注"系统根据上下文自动判断",不编造具体规则
**1.3 识别子模块:** 如果某个功能点足够独立且复杂(如审批流程、权限体系),标记为子模块,同样执行三维度追问。
**1.4 终止检查:** 结束 Phase 1 前输出完整的功能点检查表:
```
## 需求完整性检查
| # | 功能点 | 数据来源 | 业务规则 | 异常处理 |
|---|--------|---------|---------|---------|
| 1 | 用户注册 | ✅ | ✅ | ✅ |
| 2 | 订单创建 | ✅ | ❓待确认计价规则 | ✅ |
| 3 | 支付流程 | ✅ | ✅ | ❓待确认超时处理 |
```
所有功能点三个维度都 ✅ 后,才进入 Phase 2。
---
### Phase 2: PRD 结构设计
根据深挖结果,确定 PRD 的章节结构。给用户看目录大纲,确认后再写正文。
**标准章节(通用):**
| 章节 | 内容 | 必须 |
|------|------|------|
| 一、文档信息 | 版本号、作者、日期、审批人、变更记录 | ✅ |
| 二、产品概述 | 背景、目标(Goals)、**非目标(Non-Goals)**、定位、目标用户 | ✅ |
| 三、用户角色与权限 | 角色定义、权限矩阵 | ✅ |
| 四、功能需求 | 用户故事、需求优先级(P0/P1/P2)、**验收标准(Given/When/Then)**、业务规则 | ✅ |
| 五、业务流程 | 核心流程图(文字描述)、状态流转 | ✅ |
| 六、数据需求 | 核心数据对象、字段定义(业务含义)、数据来源 | ✅ |
| 七、接口需求 | 接口名称(业务含义)、调用方向、输入输出(业务字段)、调用场景 | 视情况 |
| 八、非功能需求 | 性能、安全、兼容性、可用性 | ✅ |
| 九、效果度量 | **领先指标**(上线后快速验证)+ **滞后指标**(长期观察)、具体目标值 | ✅ |
| 十、风险与约束 | 已知风险、技术约束、依赖项、**范围管理**(防止需求蔓延的规则) | ✅ |
| 十一、**待决事项** | 未解决的问题,标注**责任人**(产品/设计/开发/法务/数据) | ✅ |
| 附录 | 术语表、竞品参考、原型链接 | 建议 |
**新增章节说明:**
- **Non-Goals(非目标)** 和 Goals 同等重要——明确不做什么,防止做着做着范围膨胀。每个非目标要说明为什么不做。
- **验收标准用 Given/When/Then 格式**——比"预期结果"更精确,开发和测试直接可用。
- **效果度量分领先/滞后指标**——领先指标(采纳率、任务完成率)上线后几天就能看,滞后指标(留存、满意度)需要几周。两者都要设具体目标值。
- **待决事项带责任人**——不是笼统的"待确认",而是"谁来确认、什么时候需要答案"。
**根据产品类型调整:**
- **AI/智能体产品**:增加"模型能力边界"、"效果评估指标"章节
- **To B 企业应用**:增加"审批流程"、"组织架构适配"章节
- **数据产品**:增加"数据源说明"、"指标定义"、"看板设计"章节
- **移动端产品**:增加"离线策略"、"推送策略"章节
**小需求简化规则:** 如果功能点 ≤3 个且不涉及多角色/多系统交互,以下章节可省略:
- 三、用户角色与权限(只有一种角色时)
- 六、数据需求(无新数据对象时)
- 七、接口需求(无外部接口时)
- 十一、待决事项(无遗留问题时)
省略前问用户确认:"这个需求比较小,我建议省略 XX 章节,你觉得呢?"
**必须等用户确认目录结构后再写正文。**
---
### Phase 3: 撰写 PRD
按确认的目录结构逐章撰写。撰写时读取 `references/chapter-templates.md` 获取各章节的详细模板。
**撰写原则:**
1. **产品经理边界:** 定义"做什么",不定义"怎么实现"
- ✅ 写:接口名称(业务含义)、调用场景、输入输出(业务字段)、性能要求
- ❌ 不写:URL 路径、HTTP 方法、数据库表名、字段类型、CSS 样式、代码实现
2. **判断原则:** 写 PRD 时问自己——"这个信息换一个开发团队来做,他们需要知道吗?"
- 如果是"业务上必须这样" → 应该写
- 如果是"技术上可以这样也可以那样" → 不该写
3. **不超出 Phase 1 收集范围:** Phase 1 没问到的需求,不在 Phase 3 自行补充。发现遗漏时回到 Phase 1 追问。
**撰写完成后执行自评审(见 Phase 4)。**
---
### Phase 4: 自评审
以资深产品经理角度评审初稿,输出评审报告:
| 维度 | 检查要点 |
|------|----------|
| **需求完整性** | 所有功能点是否都有用户故事?异常场景是否覆盖? |
| **逻辑一致性** | 流程是否自洽?数据流转是否闭环?权限是否匹配? |
| **可落地性** | 开发团队能否直接基于此文档排期?是否有歧义? |
| **用户体验** | 操作流程是否顺畅?异常提示是否友好? |
| **验收可测** | 每个功能是否有明确的验收标准? |
| **边界清晰** | 功能范围是否明确?不做什么是否说清? |
评审发现的问题分级:
- **P0 必须修复**:逻辑缺陷、需求遗漏
- **P1 建议补充**:体验优化、边界说明
- **P2 后续迭代**:锦上添花的内容
将 P0 问题修复后,将评审报告和问题清单呈现给用户确认。
---
### Phase 5: 输出 .docx
用户确认内容无误后,使用 docx-js(Node.js `docx` 库)生成 .docx 文件。
**生成前必须执行:**
1. 读取 `docx` skill 获取 docx-js 的完整 API 和排版规范
2. 读取 `docx-chinese-fix` skill 获取中文字符串处理规则(核心:所有中文字符串必须用反引号 `` ` `` 而非双引号 `"`)
**排版要求:**
- 封面页:标题居中,深蓝主色调,包含版本号和日期
- 目录:使用 `TableOfContents`,用户在 Word 中右键可更新
- 字体:正文 Arial/微软雅黑 12pt,标题层级用颜色区分(H1 深蓝 / H2 蓝 / H3 灰)
- 行距:1.5 倍(段后间距 120)
- 页边距:上下 2.54cm(1440 DXA),左右 3.17cm(1800 DXA)
- 表格:三线表风格(上下粗线 `size:6` + 表头下细线 `size:2`,无左右竖线,表头灰底 `D9D9D9`)
- 页眉:右对齐文档标题,底部细线分隔
- 页脚:居中页码
**交付物清单:**
- [ ] PRD 文档(.docx)
- [ ] 评审报告(在对话中呈现,不单独出文件)
- [ ] 需求追溯表(功能点 ↔ 用户故事 ↔ 验收标准,包含在 PRD 内)
---
## 补全模式
用户已有半成品文档时:
1. **导入文档**:读取用户提供的文件(.docx / .md / 粘贴的文本)
2. **差距分析**:对照标准章节结构,标注哪些章节已有、哪些缺失、哪些不够详细
3. **定向追问**:只针对缺失和不足的部分执行 Phase 1 的三维度追问
4. **补写内容**:补全后执行 Phase 4 自评审
5. **输出 .docx**:整合原有内容和新补充内容,统一格式输出
---
## 调研模式
只收集领域背景,不写 PRD。适用于产品规划早期。
1. 了解用户要调研的领域和方向
2. 收集资料(用户提供的文档 + MCP 搜索 + 对话中的信息)
3. 输出调研摘要:行业现状、竞品分析、用户痛点、机会点
4. 保存到 `<当前工作目录>/docs/prd-knowledge/<领域名>/<模块名>.md`,后续写 PRD 时直接复用
View on GitHub