# 产品需求文档(PRD)规范 > 本规范用于约束 ForcePilot 平台产品需求文档(Product Requirements Document,简称 PRD)的编写、评审与维护,确保需求表达清晰、可追溯、可验收。 --- ## 1. 目的与适用范围 ### 1.1 目的 - 统一 PRD 的结构、粒度与写作风格,降低沟通成本 - 明确需求从提出到交付的文档化要求,支撑研发、测试、设计协同 - 为后续的需求变更管理、验收与回溯提供基线 ### 1.2 适用范围 - 适用于 ForcePilot 平台所有新增功能、功能优化、重构类需求 - Bug 修复、文案调整等小改动可使用精简版 PRD(见第 7 节) - 紧急线上故障修复可先口头/IM 沟通,事后补齐文档 --- ## 2. 文档基本信息 每份 PRD 必须包含以下元信息: | 字段 | 说明 | | --- | --- | | 文档标题 | 简洁明确,体现功能主体与意图 | | 文档版本 | 采用 `v主版本.次版本`,如 v1.0、v1.1 | | 作者 | 姓名 + 工号/账号 | | 创建日期 | YYYY-MM-DD | | 最后更新日期 | YYYY-MM-DD | | 状态 | 草稿 / 评审中 / 已确认 / 已归档 | | 关联需求 | 关联的需求 ID、Issue 链接或 PR 链接 | | 评审人 | 产品、研发、测试、设计等关键评审人 | --- ## 3. PRD 标准结构 一份完整的 PRD 应按以下顺序组织章节,无内容的章节标注「不涉及」并保留标题: 1. 背景与目标 2. 名词解释 3. 用户与场景 4. 功能需求 5. 非功能需求 6. 交互与设计要求 7. 数据与接口需求 8. 验收标准 9. 排期与里程碑 10. 风险与依赖 11. 变更记录 --- ## 4. 各章节编写规范 ### 4.1 背景与目标 - **背景**:说明需求来源(用户反馈、业务目标、技术债等),避免空泛描述 - **目标**:使用可度量的指标或明确的终态描述,避免「提升体验」这类无法验证的表述 - **非目标**:明确本次不做的事项,防止范围蔓延 ### 4.2 名词解释 - 列出文档中出现的领域术语、缩写、业务概念 - 与既有文档/代码中的术语保持一致,避免同义多词 ### 4.3 用户与场景 - 明确目标用户角色(如:知识库管理员、普通使用者、API 调用方) - 描述典型使用场景,采用「作为…我希望…以便…」的用户故事格式 - 复杂流程需配流程图或时序图 ### 4.4 功能需求 - 采用**需求项编号**(如 FR-01、FR-02),便于评审与追溯 - 每个需求项包含: - 需求描述 - 输入 / 输出 - 业务规则 - 异常与边界情况 - 优先级(P0 / P1 / P2) - 禁止将多个独立功能合并为一个需求项 - 涉及权限的需求需明确角色与权限矩阵 ### 4.5 非功能需求 按需覆盖以下维度,无要求时显式标注「不涉及」: - 性能(响应时间、吞吐量、并发数) - 可用性(SLA、容灾) - 安全性(鉴权、数据加密、审计) - 兼容性(浏览器、API 版本、依赖服务版本) - 可观测性(日志、指标、告警) - 国际化与无障碍 ### 4.6 交互与设计要求 - 引用原型图/设计稿链接,避免在 PRD 中重复描述视觉细节 - 明确关键交互逻辑(如:loading 态、空态、错误态、确认弹窗) - 与设计规范文档保持一致 ### 4.7 数据与接口需求 - 涉及新增/变更的数据模型需列出字段说明 - 接口需求需说明:路径、方法、入参、出参、错误码 - 与既有 API 规范保持一致,避免破坏性变更;如必须破坏需显式标注并给出迁移方案 ### 4.8 验收标准 - 每个 P0/P1 功能需求必须对应至少一条可执行的验收标准 - 验收标准应可被测试用例直接覆盖,避免主观表述 - 推荐使用 Given-When-Then 格式 ### 4.9 排期与里程碑 - 列出关键节点:设计完成、开发完成、联调完成、测试完成、上线 - 标注负责人与预期日期,日期变更需同步更新变更记录 ### 4.10 风险与依赖 - 识别技术依赖、外部服务依赖、资源依赖 - 识别潜在风险并给出应对策略 ### 4.11 变更记录 - 每次文档修订需追加一行:版本、日期、修改人、修改内容摘要 - 已确认状态的文档变更需重新触发评审 --- ## 5. 写作与格式规范 ### 5.1 语言风格 - 使用简洁的书面中文,避免口语化与歧义 - 使用「必须 / 应当 / 可以」区分强制、推荐、可选级别 - 术语统一,避免中英文混用造成的歧义 ### 5.2 Markdown 格式 - 标题层级不超过四级(`####`) - 表格用于结构化数据,列表用于步骤或枚举 - 代码、字段名、接口路径使用反引号包裹 - 流程图、时序图使用 Mermaid 语法,确保可渲染 ### 5.3 图表规范 - 所有图表需有图题与编号(如:图 1 用户登录流程) - 截图需标注来源与版本,避免使用过期截图 - 图表中的文字应可被复制检索,关键流程图优先使用 Mermaid ### 5.4 链接规范 - 引用内部文档使用相对路径 - 引用代码位置使用可点击的文件链接 - 外部链接需注明访问日期或版本 --- ## 6. 优先级定义 | 级别 | 含义 | 验收要求 | | --- | --- | --- | | P0 | 必须完成,阻塞上线 | 必须有验收标准与测试用例 | | P1 | 应当完成,影响主流程 | 必须有验收标准 | | P2 | 可以完成,体验优化 | 可简化验收 | --- ## 7. 精简版 PRD 适用于改动范围小、影响面有限的需求,至少包含: 1. 背景与目标(1-2 句) 2. 功能需求(编号 + 描述 + 优先级) 3. 验收标准 4. 排期 --- ## 8. 评审与维护流程 ### 8.1 评审流程 1. 作者完成草稿,状态置为「评审中」 2. 产品、研发、测试、设计分别评审,提出问题在文档中批注 3. 作者汇总意见并修订,更新版本号 4. 全部意见 resolved 后,状态置为「已确认」,进入开发 ### 8.2 变更管理 - 已确认的 PRD 如需变更,必须更新「变更记录」并通知相关方 - 涉及范围、排期、验收标准的变更需重新评审 - 开发过程中发现的需求偏差,应在变更记录中记录并同步 ### 8.3 归档 - 功能上线且验收通过后,PRD 状态置为「已归档」 - 归档文档不再修改,后续迭代新建版本或新文档 --- ## 9. 存放与命名规范 ### 9.1 存放位置 - PRD 文档统一存放于 `docs/vibe/<版本号>/需求文档/` 目录下 - 关联的设计稿、原型图链接至 `docs/vibe/<版本号>/原型图/` 目录 ### 9.2 命名规范 - 文件名格式:`<模块>-<功能>-PRD-v<版本>.md` - 示例:`knowledgebase-import-PRD-v1.0.md` - 全部使用小写英文与连字符,避免空格与中文文件名 --- ## 10. 模板速查 ```markdown # <功能名称> 产品需求文档 | 字段 | 内容 | | --- | --- | | 文档版本 | v1.0 | | 作者 | | | 创建日期 | | | 最后更新日期 | | | 状态 | 草稿 | | 关联需求 | | | 评审人 | | ## 1. 背景与目标 ### 1.1 背景 ### 1.2 目标 ### 1.3 非目标 ## 2. 名词解释 ## 3. 用户与场景 ## 4. 功能需求 ### FR-01 <需求标题> - 描述: - 输入: - 输出: - 业务规则: - 异常与边界: - 优先级:P0 ## 5. 非功能需求 ## 6. 交互与设计要求 ## 7. 数据与接口需求 ## 8. 验收标准 - AC-01:Given… When… Then… ## 9. 排期与里程碑 ## 10. 风险与依赖 ## 11. 变更记录 | 版本 | 日期 | 修改人 | 摘要 | | --- | --- | --- | --- | | v1.0 | | | 初稿 | ``` --- ## 11. 检查清单 PRD 提交评审前,作者需逐项确认: - [ ] 文档元信息完整 - [ ] 目标可度量,非目标已明确 - [ ] 功能需求已编号且粒度合理 - [ ] 每个 P0/P1 需求有对应验收标准 - [ ] 非功能需求已逐项确认或标注「不涉及」 - [ ] 接口与数据变更已标注破坏性影响 - [ ] 图表可渲染、链接可访问 - [ ] 命名与存放符合本规范