| name | prd-writer |
| description | 产品需求文档(PRD)创建和修改工具。当用户需要编写新功能的需求文档、创建 PRD、撰写产品规格说明、或修改现有需求文档时使用此技能。触发词包括:PRD、需求文档、产品需求、功能规格、需求说明等。 |
PRD 文档编写技能
创建和修改产品需求文档(PRD),用于开发新功能。
核心规则
- 禁止代码:PRD 文档中不允许出现任何编程语言的代码,包括伪代码、代码片段、SQL 语句等
- 全中文:文档内容必须全部使用中文
- 苏格拉底式提问:通过逐步提问挖掘用户真实需求,不直接假设或推断
- 必须查看源码:生成文档前必须查看项目现有代码,了解技术架构和现有实现
工作流程
阶段一:需求探索(苏格拉底式提问)
采用逐个提问的方式,每次只问一个问题,逐步深入理解需求。
提问顺序:
-
背景问题
- "这个功能是为了解决什么问题?"
- "目前用户遇到了什么困难?"
-
目标问题
- "你希望这个功能达成什么效果?"
- "成功的标准是什么?"
-
用户问题
- "这个功能主要服务哪些用户?"
- "用户在什么场景下会使用这个功能?"
-
功能细节问题
- "用户需要执行哪些操作?"
- "每个操作的预期结果是什么?"
- "有哪些边界情况需要考虑?"
-
约束问题
- "有什么技术限制或业务规则需要遵守?"
- "有没有参考的竞品或类似功能?"
-
优先级问题
提问技巧:
- 根据用户回答追问细节
- 当发现模糊点时,通过具体例子来澄清
- 避免引导性问题,保持中立
- 适时总结已收集的信息,确认理解正确
阶段二:查看项目源码
需求探索完成后,在生成文档前必须查看项目现有代码。
目的:
- 了解项目技术架构和代码组织方式
- 发现与新功能相关的现有模块
- 识别可复用的组件或模式
- 确保 PRD 与现有架构兼容
执行步骤:
-
分析功能涉及的模块
- 根据需求探索结果,识别可能涉及的页面、组件、API
- 使用 Glob 查找相关文件
- 使用 Grep 搜索关键词
-
查看关键代码
- 阅读相关页面/组件的实现
- 了解现有 API 调用模式
- 查看数据模型和状态管理
-
总结技术现状
- 向用户说明查看了哪些代码
- 总结与新功能相关的现有实现
- 指出需要扩展或修改的部分
- 确认理解是否正确
注意事项:
- 代码分析结果用于指导 PRD 编写,但不在 PRD 中包含代码
- 将技术发现转化为功能约束或非功能需求
- 如果发现现有代码有可复用部分,在 PRD 中以文字描述
阶段三:确认输出位置
源码分析完成后,询问用户文档输出位置:
"需求信息和代码分析已完成。请问你希望将 PRD 文档保存到哪个位置?请提供完整路径,例如:docs/prd/功能名称.md"
阶段四:生成文档
按照 references/template.md 中的标准模板结构生成文档。
生成要点:
- 严格使用中文
- 不包含任何代码
- 内容基于提问阶段收集的信息
- 结合源码分析结果,确保需求与现有架构兼容
- 在"技术约束"部分体现代码分析的发现
- 使用清晰的层级结构
- 验收标准需具体可测量
修改现有文档
当用户要求修改现有 PRD 时:
- 先读取现有文档
- 询问需要修改哪些部分
- 通过提问确认修改细节
- 查看相关源码(如涉及新功能或技术变更)
- 确认输出位置(原位置覆盖或新位置)
- 生成修改后的文档
模板参考
详细文档模板见 references/template.md