docs: refine PRD draft layering rules
This commit is contained in:
@@ -2,6 +2,92 @@
|
||||
|
||||
创建新需求草案、重建正文结构或需要参考需求项写法时使用本文件。项目已有模板时优先使用项目模板;本文件只作为通用兜底模板和写法示例。硬性规则以 `prd-draft-document-spec.md` 为准。
|
||||
|
||||
## 草案包目录模板
|
||||
|
||||
适用场景:目标落点是 `.ai-transition/prd-draft`,且需求包含复杂业务闭环、外部协议、客户材料、非业务方案、性能建议或多轮决策记录。
|
||||
|
||||
```text
|
||||
.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
|
||||
|
||||
````md
|
||||
# decisions
|
||||
|
||||
## 已确认
|
||||
- 无
|
||||
|
||||
## 待确认事项
|
||||
- 无
|
||||
|
||||
## 冲突与取舍
|
||||
- 状态:none
|
||||
- 冲突:无
|
||||
- 影响:无
|
||||
- 当前结论:无
|
||||
|
||||
## 覆盖记录
|
||||
- 允许覆盖:否
|
||||
- 确认人:无
|
||||
- 确认时间:无
|
||||
- 覆盖范围:无
|
||||
- 确认依据:无
|
||||
````
|
||||
|
||||
### acceptance.md
|
||||
|
||||
````md
|
||||
# acceptance
|
||||
|
||||
## 验收补充
|
||||
- 无;以主草案的验收或业务闭环要求为准。
|
||||
|
||||
## 边界补充
|
||||
- 无
|
||||
````
|
||||
|
||||
### references/README.md
|
||||
|
||||
````md
|
||||
# references
|
||||
|
||||
本目录存放当前需求草案强依赖的外部协议、客户材料、历史说明、性能建议、接口草稿或来源摘录。
|
||||
|
||||
- 材料必须脱敏、裁剪或摘要化。
|
||||
- 不把用户机器绝对路径作为唯一依据。
|
||||
- 非业务方案只能作为参考来源,不代表 `../<topic-slug>-prd.md` 已确认对应实现。
|
||||
````
|
||||
|
||||
### references/performance-notes.md
|
||||
|
||||
````md
|
||||
# performance-notes
|
||||
|
||||
## 来源摘要
|
||||
- 来源:<客户材料、历史说明、评审结论或会话讨论>
|
||||
- 背景:<为什么提出性能、容量、稳定性或恢复要求>
|
||||
|
||||
## 可转译业务约束
|
||||
- <响应时限、同步完成时限、高峰期可用性、一致性、重复提交处理或异常恢复结果>
|
||||
|
||||
## 非确定实现参考
|
||||
- <方案名称或来源摘录>:<只保留逻辑思路、适用前提和主要取舍,不扩写成技术设计>
|
||||
- 本节不代表主草案已确认具体实现;主草案只引用已转译的业务目标、约束或验收口径。
|
||||
````
|
||||
|
||||
## 通用正文骨架
|
||||
|
||||
````md
|
||||
@@ -10,11 +96,13 @@
|
||||
- **阶段** 需求草案阶段
|
||||
- **状态** 制定中
|
||||
- **锚点** <需求文档路径或需求主题>
|
||||
- **关联文档** <如需要引用其他文档,使用相对当前文档的路径,例如 `./protocol.md` 或 `../main-flow.md`;不要写用户机器绝对路径>
|
||||
- **关联材料** <草案包中优先写 `./references/<file>.md`;没有则写“无”>
|
||||
|
||||
## 目标与范围
|
||||
- 目标:<本需求要解决的业务问题和成功状态>
|
||||
- 范围内:<明确包含的业务对象、流程、角色或场景>
|
||||
- 范围外:<明确不处理的内容,避免需求外溢>
|
||||
- 范围外:<明确不处理的内容,避免需求外溢;不记录同一轮未确认推演中被否定的临时方案>
|
||||
|
||||
## 业务闭环
|
||||
- 参与方:<用户、管理员、系统、外部方等>
|
||||
@@ -29,9 +117,79 @@
|
||||
## 需求项
|
||||
- <需求项名称>:<已确认需求内容>
|
||||
- 数据项 <名称>:<业务含义、来源、生成方式、使用规则>
|
||||
- 业务约束 <名称>:<由外部非业务方案转译来的业务目标、响应时限、一致性或可用性要求;不写 Redis、MQ、缓存等实现方案>
|
||||
- 待确认:<不阻塞主链路但后续需要确认的问题>
|
||||
````
|
||||
|
||||
## 整篇文档模板
|
||||
|
||||
### 流程文档模板
|
||||
|
||||
适用场景:需求主题以触发、步骤、链路、状态流转、分支异常为核心。只填用户已确认的信息,不带入具体业务、具体页面、具体模块或未经确认的示例。
|
||||
|
||||
````md
|
||||
# <主题>流程需求草案
|
||||
|
||||
适用对象:<阅读或执行对象>
|
||||
关联文档:`./<关联文档>.md`
|
||||
|
||||
## 流程目标
|
||||
- <流程需要达成的业务结果>
|
||||
|
||||
## 参与方
|
||||
- <参与方>:<职责>
|
||||
|
||||
## 前置条件
|
||||
- <流程开始前必须满足的条件>
|
||||
|
||||
## 主流程
|
||||
1. <步骤 1>
|
||||
2. <步骤 2>
|
||||
3. <步骤 3>
|
||||
|
||||
## 分支与异常
|
||||
- <条件或异常>:<处理结果>
|
||||
|
||||
## 状态与生命周期
|
||||
- <状态或阶段>:<进入条件、退出条件和结果>
|
||||
|
||||
## 边界要求
|
||||
- <重复、失败、取消、历史、权限或其他边界>
|
||||
|
||||
## 禁止事项
|
||||
- 禁止 <会破坏流程闭环的行为>
|
||||
|
||||
## 待确认
|
||||
- 待确认:<不阻塞主流程但后续需要明确的事项>
|
||||
````
|
||||
|
||||
### 要求文档模板
|
||||
|
||||
适用场景:需求主题以适用对象、执行约束、交付约束、验收约束、禁止事项为核心。少写背景解释,多写可执行、可判断、可验收的规则。
|
||||
|
||||
````md
|
||||
# <主题>要求
|
||||
|
||||
适用对象:<执行或交付对象>
|
||||
关联文档:`./<关联文档>.md`
|
||||
|
||||
## <要求分组 1>
|
||||
- 必须 <可执行、可判断、可验收的要求>
|
||||
- 不允许 <不可接受的行为或结果>
|
||||
|
||||
## <要求分组 2>
|
||||
- <要求内容>
|
||||
|
||||
## 边界与异常
|
||||
- <边界或异常场景>:<要求结果>
|
||||
|
||||
## 禁止事项
|
||||
- 禁止 <明确不允许的行为>
|
||||
|
||||
## 待确认
|
||||
- 待确认:<不影响当前主链路但后续需要确认的事项>
|
||||
````
|
||||
|
||||
## 模板选择
|
||||
|
||||
| 用户表达 | 需求写法 | 使用模板 |
|
||||
@@ -41,23 +199,40 @@
|
||||
| 多值、多对多、明细、记录、绑定关系 | 独立业务记录或关联关系 | 关联记录 |
|
||||
| 状态、类型、来源、分类、等级等值域 | 业务值域和状态含义 | 值域 |
|
||||
| 唯一、审核、校验、默认值、权限范围 | 业务规则 | 规则 |
|
||||
| 上传、导入、同步、发布、审核、退款等链路 | 业务流程 | 流程 |
|
||||
| 列表、详情、筛选、排序、统计、聚合口径 | 展示或统计规则 | 展示统计 |
|
||||
| 外部系统、第三方平台、跨模块协作 | 集成需求 | 集成 |
|
||||
| 触发、步骤、链路、流转、时序、分支异常 | 从触发到结果的完整链路 | 流程文档 |
|
||||
| 要求、交付要求、对接要求、执行要求、验收要求 | 面向执行对象的可验收约束 | 要求文档 |
|
||||
| 展示、查询、筛选、排序、统计、聚合口径 | 展示或统计规则 | 展示统计 |
|
||||
| 跨角色、跨系统或跨模块协作 | 协作或集成需求 | 集成 |
|
||||
|
||||
## 方案分层写法
|
||||
|
||||
| 用户表达 | 写入位置 | 写法 |
|
||||
|:---|:---|:---|
|
||||
| 定义何时开始、何时结束、何时有效或失效 | 主草案 | 写成业务规则、状态生命周期或边界要求 |
|
||||
| 定义异常归类、失败结果、恢复条件、补偿结果 | 主草案 | 写成分支异常、失败结果或验收口径 |
|
||||
| 提出响应时限、峰值压力、可用性、一致性目标 | 主草案 | 写成业务约束和验收要求 |
|
||||
| 提出 Redis、MQ、缓存、索引、异步任务、部署等做法 | `references/` 或 `decisions.md` | 写成参考来源或决策背景,主草案只保留业务目标 |
|
||||
| 同一方案同时包含业务判定和实现建议 | 拆分处理 | 业务判定进主草案,实现建议进参考材料,取舍进决策记录 |
|
||||
|
||||
## 写法规则
|
||||
|
||||
- 生成的需求草案应优先匹配项目已有结构,不强行使用本模板标题。
|
||||
- 不把正文拆成没有内容的固定分区。
|
||||
- 选择流程文档或要求文档时,优先保持短、清楚、规则明确;不强行补齐通用正文骨架的所有章节。
|
||||
- 模板占位只代表信息类型,不代表真实业务;不得把占位或示例扩展成未经确认的业务内容。
|
||||
- 用户说“表、结构体、数据模型、model、字段、列、属性”时,先归一为业务需求;涉及保存或维护的数据,按业务数据对象和数据项表达。
|
||||
- 不写 SQL、ORM、字段类型、索引、唯一约束、API path 或 request/response schema。
|
||||
- 关联协议、关联主流程、关联文档等引用必须使用可迁移写法;同目录用 `./xxx.md`,跨目录用相对当前文档的 `../xxx/yyy.md`,Markdown 路径使用 `/`。
|
||||
- 草案包内强依赖材料优先放入 `references/`,并在主草案中用 `./references/<file>.md` 引用。
|
||||
- 连接轮次、状态生命周期、重复提交判定、异常恢复条件等业务判定必须写进主草案,但不得绑定具体服务状态、缓存键、队列、任务或代码结构。
|
||||
- Redis、MQ、缓存、索引、分库分表、异步任务等非业务方案只能作为参考来源或决策背景,正文需求必须转译成可验收的业务约束。
|
||||
- 未确认内容写在最相关的需求语境下,标记为 `需补` 或 `待确认`。
|
||||
|
||||
## 需求项模板库
|
||||
|
||||
### 数据对象
|
||||
|
||||
适用场景:用户提出“需要记录 xxx 信息”“维护 xxx 信息”“新增 xxx model”“需要一个 xxx 表”等创建或维护数据承载对象的需求。
|
||||
适用场景:用户提出创建、记录、维护或使用某类业务信息的需求。
|
||||
|
||||
````md
|
||||
## <业务对象>信息
|
||||
@@ -70,7 +245,7 @@
|
||||
|
||||
### 修改数据对象
|
||||
|
||||
适用场景:用户提出“给 xxx 增加字段”“调整 xxx 属性”“修改 xxx 数据来源”“删除/停用某个数据项”等变更既有数据承载对象的需求。
|
||||
适用场景:用户提出调整既有业务对象、业务属性、数据来源或数据项生命周期的需求。
|
||||
|
||||
````md
|
||||
## <业务对象>信息调整
|
||||
@@ -98,7 +273,7 @@
|
||||
|
||||
### 值域
|
||||
|
||||
适用场景:用户提出状态、类型、来源、分类、等级、模式等值域需求。
|
||||
适用场景:用户提出用于分类、阶段、来源、等级或模式判断的值域需求。
|
||||
|
||||
````md
|
||||
## <业务值域>
|
||||
@@ -110,7 +285,7 @@
|
||||
|
||||
### 规则
|
||||
|
||||
适用场景:用户提出唯一、审核、校验、默认值、权限范围、状态流转等规则,不一定新增数据承载对象。
|
||||
适用场景:用户提出约束、校验、默认规则、权限范围或状态流转规则,不一定新增数据承载对象。
|
||||
|
||||
````md
|
||||
## <业务规则>
|
||||
@@ -123,7 +298,7 @@
|
||||
|
||||
### 流程
|
||||
|
||||
适用场景:用户提出上传、导入、同步、发布、审核、退款、重建等有触发、处理、结果的链路需求。
|
||||
适用场景:用户提出有触发、处理、结果、分支或异常的链路需求。
|
||||
|
||||
````md
|
||||
## <业务流程>
|
||||
@@ -138,7 +313,7 @@
|
||||
|
||||
### 展示统计
|
||||
|
||||
适用场景:用户提出列表展示、详情展示、筛选、排序、统计、聚合口径等查询侧需求。
|
||||
适用场景:用户提出展示、查询、筛选、排序、统计或聚合口径需求。
|
||||
|
||||
````md
|
||||
## <展示或统计规则>
|
||||
@@ -152,7 +327,7 @@
|
||||
|
||||
### 集成
|
||||
|
||||
适用场景:用户提出外部系统、第三方平台、跨模块协作、消息通知、数据同步等集成需求。
|
||||
适用场景:用户提出跨角色、跨系统、跨模块或跨组织协作需求。
|
||||
|
||||
````md
|
||||
## <集成需求>
|
||||
|
||||
Reference in New Issue
Block a user