Files
ks-prd-draft/references/prd-draft-format-template.md

13 KiB
Raw Blame History

PRD 草案格式模板

创建新需求草案、重建正文结构或需要参考需求项写法时使用本文件。项目已有模板时优先使用项目模板;本文件只作为通用兜底模板和写法示例。硬性规则以 prd-draft-document-spec.md 为准。

草案包目录模板

适用场景:目标落点是 .ai-transition/prd-draft,且需求包含复杂业务闭环、外部协议、客户材料、非业务方案、性能建议或多轮决策记录。

.ai-transition/prd-draft/<capability-domain>/<slug>/
  <topic-slug>-prd.md
  decisions.md
  acceptance.md
  references/
  • <topic-slug>-prd.md:唯一主需求草案,文件名应包含可检索的业务主题;目录名过宽时使用更具体的业务短横线名,例如 erp-integration-prd.md
  • decisions.md:确认结论、冲突、取舍、待确认事项和覆盖记录。
  • acceptance.md:验收补充和边界补充;简单需求可写“以主草案为准”。
  • references/:外部协议、客户材料、历史说明、性能建议、接口草稿、来源摘录等强依赖参考材料。
  • 默认不创建 flows/rules/ 等额外目录;确需拆分时,在同一草案包内新增辅助文档,并从主草案使用相对路径引用。

草案包配套文件模板

decisions.md

# decisions

## 已确认
-## 待确认事项
-## 冲突与取舍
- 状态none
- 冲突:无
- 影响:无
- 当前结论:无

## 覆盖记录
- 允许覆盖:否
- 确认人:无
- 确认时间:无
- 覆盖范围:无
- 确认依据:无

acceptance.md

# acceptance

## 验收补充
- 无;以主草案的验收或业务闭环要求为准。

## 边界补充
-

references/README.md

# references

本目录存放当前需求草案强依赖的外部协议、客户材料、历史说明、性能建议、接口草稿或来源摘录。

- 材料必须脱敏、裁剪或摘要化。
- 不把用户机器绝对路径作为唯一依据。
- 非业务方案只能作为参考来源,不代表 `../<topic-slug>-prd.md` 已确认对应实现。

references/performance-notes.md

# performance-notes

## 来源摘要
- 来源:<客户材料、历史说明、评审结论或会话讨论>
- 背景:<为什么提出性能、容量、稳定性或恢复要求>

## 可转译业务约束
- <响应时限、同步完成时限、高峰期可用性、一致性、重复提交处理或异常恢复结果>

## 非确定实现参考
- <方案名称或来源摘录><只保留逻辑思路、适用前提和主要取舍,不扩写成技术设计>
- 本节不代表主草案已确认具体实现;主草案只引用已转译的业务目标、约束或验收口径。

通用正文骨架

# <主题> 需求草案

- **阶段** 需求草案阶段
- **状态** 制定中
- **锚点** <需求文档路径或需求主题>
- **关联文档** <如需要引用其他文档,使用相对当前文档的路径,例如 `./protocol.md``../main-flow.md`;不要写用户机器绝对路径>
- **关联材料** <草案包中优先写 `./references/<file>.md`;没有则写“无”>

## 目标与范围
- 目标:<本需求要解决的业务问题和成功状态>
- 范围内:<明确包含的业务对象、流程、角色或场景>
- 范围外:<明确不处理的内容,避免需求外溢;不记录同一轮未确认推演中被否定的临时方案>

## 业务闭环
- 参与方:<用户、管理员、系统、外部方等>
- 触发条件:<什么情况下开始>
- 输入或前置条件:<需要什么信息或状态>
- 处理规则:<业务判断、校验、流转和限制>
- 输出结果:<成功、失败、取消、异常后的结果>
- 状态和生命周期:<状态变化、结束条件、历史保留>
- 权限和可见范围:<谁能看、谁能改、谁能触发>
- 边界和异常:<空数据、重复、失败、撤销、兼容等>

## 需求项
- <需求项名称><已确认需求内容>
- 数据项 <名称><业务含义、来源、生成方式、使用规则>
- 业务约束 <名称><由外部非业务方案转译来的业务目标、响应时限、一致性或可用性要求;不写 Redis、MQ、缓存等实现方案>
- 待确认:<不阻塞主链路但后续需要确认的问题>

整篇文档模板

流程文档模板

适用场景:需求主题以触发、步骤、链路、状态流转、分支异常为核心。只填用户已确认的信息,不带入具体业务、具体页面、具体模块或未经确认的示例。

# <主题>流程需求草案

适用对象:<阅读或执行对象>
关联文档:`./<关联文档>.md`

## 流程目标
- <流程需要达成的业务结果>

## 参与方
- <参与方><职责>

## 前置条件
- <流程开始前必须满足的条件>

## 主流程
1. <步骤 1>
2. <步骤 2>
3. <步骤 3>

## 分支与异常
- <条件或异常><处理结果>

## 状态与生命周期
- <状态或阶段><进入条件、退出条件和结果>

## 边界要求
- <重复、失败、取消、历史、权限或其他边界>

## 禁止事项
- 禁止 <会破坏流程闭环的行为>

## 待确认
- 待确认:<不阻塞主流程但后续需要明确的事项>

要求文档模板

适用场景:需求主题以适用对象、执行约束、交付约束、验收约束、禁止事项为核心。少写背景解释,多写可执行、可判断、可验收的规则。

# <主题>要求

适用对象:<执行或交付对象>
关联文档:`./<关联文档>.md`

## <要求分组 1>
- 必须 <可执行、可判断、可验收的要求>
- 不允许 <不可接受的行为或结果>

## <要求分组 2>
- <要求内容>

## 边界与异常
- <边界或异常场景><要求结果>

## 禁止事项
- 禁止 <明确不允许的行为>

## 待确认
- 待确认:<不影响当前主链路但后续需要确认的事项>

模板选择

用户表达 需求写法 使用模板
需要记录、维护、展示某类信息 业务数据对象和数据项 数据对象
给已有信息增加来源、规则或使用方式 修改既有业务对象 修改数据对象
多值、多对多、明细、记录、绑定关系 独立业务记录或关联关系 关联记录
状态、类型、来源、分类、等级等值域 业务值域和状态含义 值域
唯一、审核、校验、默认值、权限范围 业务规则 规则
触发、步骤、链路、流转、时序、分支异常 从触发到结果的完整链路 流程文档
要求、交付要求、对接要求、执行要求、验收要求 面向执行对象的可验收约束 要求文档
展示、查询、筛选、排序、统计、聚合口径 展示或统计规则 展示统计
跨角色、跨系统或跨模块协作 协作或集成需求 集成

方案分层写法

用户表达 写入位置 写法
定义何时开始、何时结束、何时有效或失效 主草案 写成业务规则、状态生命周期或边界要求
定义异常归类、失败结果、恢复条件、补偿结果 主草案 写成分支异常、失败结果或验收口径
提出响应时限、峰值压力、可用性、一致性目标 主草案 写成业务约束和验收要求
提出 Redis、MQ、缓存、索引、异步任务、部署等做法 references/decisions.md 写成参考来源或决策背景,主草案只保留业务目标
同一方案同时包含业务判定和实现建议 拆分处理 业务判定进主草案,实现建议进参考材料,取舍进决策记录

写法规则

  • 生成的需求草案应优先匹配项目已有结构,不强行使用本模板标题。
  • 不把正文拆成没有内容的固定分区。
  • 选择流程文档或要求文档时,优先保持短、清楚、规则明确;不强行补齐通用正文骨架的所有章节。
  • 模板占位只代表信息类型,不代表真实业务;不得把占位或示例扩展成未经确认的业务内容。
  • 用户说“表、结构体、数据模型、model、字段、列、属性”时先归一为业务需求涉及保存或维护的数据按业务数据对象和数据项表达。
  • 不写 SQL、ORM、字段类型、索引、唯一约束、API path 或 request/response schema。
  • 关联协议、关联主流程、关联文档等引用必须使用可迁移写法;同目录用 ./xxx.md,跨目录用相对当前文档的 ../xxx/yyy.mdMarkdown 路径使用 /
  • 草案包内强依赖材料优先放入 references/,并在主草案中用 ./references/<file>.md 引用。
  • 连接轮次、状态生命周期、重复提交判定、异常恢复条件等业务判定必须写进主草案,但不得绑定具体服务状态、缓存键、队列、任务或代码结构。
  • Redis、MQ、缓存、索引、分库分表、异步任务等非业务方案只能作为参考来源或决策背景正文需求必须转译成可验收的业务约束。
  • 未确认内容写在最相关的需求语境下,标记为 需补待确认

需求项模板库

数据对象

适用场景:用户提出创建、记录、维护或使用某类业务信息的需求。

## <业务对象>信息
- 需要维护 <业务对象> 信息,用于 <业务目的>。
- 数据项 <名称>:来源于 <来源>,用于 <使用场景>。
- 数据项 <业务标识>:由 <生成方> 生成,作为 <业务对象> 的业务唯一标识,不允许重复。
- <名称> 的获取方式、更新时机和来源缺失时的处理方式需补。
- <业务标识> 的生成规则、重复冲突处理方式和生成失败提示需补。

修改数据对象

适用场景:用户提出调整既有业务对象、业务属性、数据来源或数据项生命周期的需求。

## <业务对象>信息调整
- 需要调整 <业务对象> 信息,变更原因是 <原因>。
- 复用既有 <业务对象> 信息承载。
- 新增数据项 <名称>:来源于 <来源>,用于 <使用场景>。
- 调整数据项 <名称>:来源由原规则改为 <新规则>。
- 停用数据项 <名称>:不再由业务流程使用,历史数据处理方式需补。
- 本次调整对既有数据的兼容、补齐和异常处理方式需补。

关联记录

适用场景:用户描述多值、多对多、明细记录、操作记录、绑定关系等独立存在的数据。

## <对象A>与<对象B>关联关系
- 需要维护 <对象A> 与 <对象B> 的关联关系,用于 <业务目的>。
- 数据项 <对象A>:关联到 <对象A> 信息,来源于 <来源>。
- 数据项 <对象B>:关联到 <对象B> 信息,来源于 <来源>。
- 同一个 <对象A> 是否允许关联多个 <对象B> 需补。
- 同一个 <对象B> 是否允许关联多个 <对象A> 需补。
- 关联关系的创建、解除、重复提交和历史保留规则需补。

值域

适用场景:用户提出用于分类、阶段、来源、等级或模式判断的值域需求。

## <业务值域>
- <业务值域> 用于表达 <业务对象> 在 <场景> 中的分类或阶段。
- 已确认值包括:<值 1>、<值 2>。
- 每个值的业务含义、可见范围和是否参与流程分支需补。
- 如果该值域只用于筛选、展示或统计,需明确写明“不参与业务分支和状态流转”。

规则

适用场景:用户提出约束、校验、默认规则、权限范围或状态流转规则,不一定新增数据承载对象。

## <业务规则>
- <业务对象> 需要满足 <规则内容>。
- 规则触发条件:<触发条件>。
- 规则通过结果:<成功结果>。
- 规则不通过结果:<失败提示、拦截、回退或人工处理>。
- 历史数据、重复提交、异常中断和人工修正方式需补。

流程

适用场景:用户提出有触发、处理、结果、分支或异常的链路需求。

## <业务流程>
- 触发方:<用户、系统、外部方或后台任务>。
- 触发条件:<何时触发>。
- 输入内容:<所需信息、文件、状态或外部结果>。
- 处理规则:<校验、转换、流转、人工介入或系统处理规则>。
- 成功结果:<成功后的业务状态、可见结果和通知>。
- 失败结果:<失败后的状态、提示、重试、保留或回退规则>。
- 重复提交、部分成功、异常中断和历史兼容策略需补。

展示统计

适用场景:用户提出展示、查询、筛选、排序、统计或聚合口径需求。

## <展示或统计规则>
- <对象> 需要展示的数据项包括:<数据项>。
- 支持筛选的数据项包括:<数据项>。
- 支持排序的数据项包括:<数据项>。
- 统计口径:<统计范围、时间口径、去重方式或聚合规则>。
- 默认展示范围、默认排序、空结果和无权限时的处理方式需补。
- 本需求只表达展示和查询口径,不定义 API path、request/response schema 或 SQL 实现。

集成

适用场景:用户提出跨角色、跨系统、跨模块或跨组织协作需求。

## <集成需求>
- 对接方:<外部系统、平台、模块或组织角色>。
- 业务目的:<为什么需要对接>。
- 触发条件:<何时交换信息或触发协作>。
- 交换内容:<业务数据项和业务含义,不写请求响应 schema>。
- 成功结果:<双方状态或业务结果>。
- 失败结果:<失败提示、重试、人工处理、补偿或保留策略>。
- 权限、审计、幂等、重复通知和异常恢复方式需补。