# PRD 草案格式模板 创建新需求草案、重建正文结构或需要参考需求项写法时使用本文件。项目已有模板时优先使用项目模板;本文件只作为通用兜底模板和写法示例。硬性规则以 `prd-draft-document-spec.md` 为准。 ## 通用正文骨架 ````md # <主题> 需求草案 - **阶段** 需求草案阶段 - **状态** 制定中 - **锚点** <需求文档路径或需求主题> ## 目标与范围 - 目标:<本需求要解决的业务问题和成功状态> - 范围内:<明确包含的业务对象、流程、角色或场景> - 范围外:<明确不处理的内容,避免需求外溢> ## 业务闭环 - 参与方:<用户、管理员、系统、外部方等> - 触发条件:<什么情况下开始> - 输入或前置条件:<需要什么信息或状态> - 处理规则:<业务判断、校验、流转和限制> - 输出结果:<成功、失败、取消、异常后的结果> - 状态和生命周期:<状态变化、结束条件、历史保留> - 权限和可见范围:<谁能看、谁能改、谁能触发> - 边界和异常:<空数据、重复、失败、撤销、兼容等> ## 需求项 - <需求项名称>:<已确认需求内容> - 数据项 <名称>:<业务含义、来源、生成方式、使用规则> - 待确认:<不阻塞主链路但后续需要确认的问题> ```` ## 模板选择 | 用户表达 | 需求写法 | 使用模板 | |:---|:---|:---| | 需要记录、维护、展示某类信息 | 业务数据对象和数据项 | 数据对象 | | 给已有信息增加来源、规则或使用方式 | 修改既有业务对象 | 修改数据对象 | | 多值、多对多、明细、记录、绑定关系 | 独立业务记录或关联关系 | 关联记录 | | 状态、类型、来源、分类、等级等值域 | 业务值域和状态含义 | 值域 | | 唯一、审核、校验、默认值、权限范围 | 业务规则 | 规则 | | 上传、导入、同步、发布、审核、退款等链路 | 业务流程 | 流程 | | 列表、详情、筛选、排序、统计、聚合口径 | 展示或统计规则 | 展示统计 | | 外部系统、第三方平台、跨模块协作 | 集成需求 | 集成 | ## 写法规则 - 生成的需求草案应优先匹配项目已有结构,不强行使用本模板标题。 - 不把正文拆成没有内容的固定分区。 - 用户说“表、结构体、数据模型、model、字段、列、属性”时,先归一为业务需求;涉及保存或维护的数据,按业务数据对象和数据项表达。 - 不写 SQL、ORM、字段类型、索引、唯一约束、API path 或 request/response schema。 - 未确认内容写在最相关的需求语境下,标记为 `需补` 或 `待确认`。 ## 需求项模板库 ### 数据对象 适用场景:用户提出“需要记录 xxx 信息”“维护 xxx 信息”“新增 xxx model”“需要一个 xxx 表”等创建或维护数据承载对象的需求。 ````md ## <业务对象>信息 - 需要维护 <业务对象> 信息,用于 <业务目的>。 - 数据项 <名称>:来源于 <来源>,用于 <使用场景>。 - 数据项 <业务标识>:由 <生成方> 生成,作为 <业务对象> 的业务唯一标识,不允许重复。 - <名称> 的获取方式、更新时机和来源缺失时的处理方式需补。 - <业务标识> 的生成规则、重复冲突处理方式和生成失败提示需补。 ```` ### 修改数据对象 适用场景:用户提出“给 xxx 增加字段”“调整 xxx 属性”“修改 xxx 数据来源”“删除/停用某个数据项”等变更既有数据承载对象的需求。 ````md ## <业务对象>信息调整 - 需要调整 <业务对象> 信息,变更原因是 <原因>。 - 复用既有 <业务对象> 信息承载。 - 新增数据项 <名称>:来源于 <来源>,用于 <使用场景>。 - 调整数据项 <名称>:来源由原规则改为 <新规则>。 - 停用数据项 <名称>:不再由业务流程使用,历史数据处理方式需补。 - 本次调整对既有数据的兼容、补齐和异常处理方式需补。 ```` ### 关联记录 适用场景:用户描述多值、多对多、明细记录、操作记录、绑定关系等独立存在的数据。 ````md ## <对象A>与<对象B>关联关系 - 需要维护 <对象A> 与 <对象B> 的关联关系,用于 <业务目的>。 - 数据项 <对象A>:关联到 <对象A> 信息,来源于 <来源>。 - 数据项 <对象B>:关联到 <对象B> 信息,来源于 <来源>。 - 同一个 <对象A> 是否允许关联多个 <对象B> 需补。 - 同一个 <对象B> 是否允许关联多个 <对象A> 需补。 - 关联关系的创建、解除、重复提交和历史保留规则需补。 ```` ### 值域 适用场景:用户提出状态、类型、来源、分类、等级、模式等值域需求。 ````md ## <业务值域> - <业务值域> 用于表达 <业务对象> 在 <场景> 中的分类或阶段。 - 已确认值包括:<值 1>、<值 2>。 - 每个值的业务含义、可见范围和是否参与流程分支需补。 - 如果该值域只用于筛选、展示或统计,需明确写明“不参与业务分支和状态流转”。 ```` ### 规则 适用场景:用户提出唯一、审核、校验、默认值、权限范围、状态流转等规则,不一定新增数据承载对象。 ````md ## <业务规则> - <业务对象> 需要满足 <规则内容>。 - 规则触发条件:<触发条件>。 - 规则通过结果:<成功结果>。 - 规则不通过结果:<失败提示、拦截、回退或人工处理>。 - 历史数据、重复提交、异常中断和人工修正方式需补。 ```` ### 流程 适用场景:用户提出上传、导入、同步、发布、审核、退款、重建等有触发、处理、结果的链路需求。 ````md ## <业务流程> - 触发方:<用户、系统、外部方或后台任务>。 - 触发条件:<何时触发>。 - 输入内容:<所需信息、文件、状态或外部结果>。 - 处理规则:<校验、转换、流转、人工介入或系统处理规则>。 - 成功结果:<成功后的业务状态、可见结果和通知>。 - 失败结果:<失败后的状态、提示、重试、保留或回退规则>。 - 重复提交、部分成功、异常中断和历史兼容策略需补。 ```` ### 展示统计 适用场景:用户提出列表展示、详情展示、筛选、排序、统计、聚合口径等查询侧需求。 ````md ## <展示或统计规则> - <对象> 需要展示的数据项包括:<数据项>。 - 支持筛选的数据项包括:<数据项>。 - 支持排序的数据项包括:<数据项>。 - 统计口径:<统计范围、时间口径、去重方式或聚合规则>。 - 默认展示范围、默认排序、空结果和无权限时的处理方式需补。 - 本需求只表达展示和查询口径,不定义 API path、request/response schema 或 SQL 实现。 ```` ### 集成 适用场景:用户提出外部系统、第三方平台、跨模块协作、消息通知、数据同步等集成需求。 ````md ## <集成需求> - 对接方:<外部系统、平台、模块或组织角色>。 - 业务目的:<为什么需要对接>。 - 触发条件:<何时交换信息或触发协作>。 - 交换内容:<业务数据项和业务含义,不写请求响应 schema>。 - 成功结果:<双方状态或业务结果>。 - 失败结果:<失败提示、重试、人工处理、补偿或保留策略>。 - 权限、审计、幂等、重复通知和异常恢复方式需补。 ````