feat(GOV-002): 增加 PRD 与开发审查门禁

This commit is contained in:
2026-08-12 18:26:31 +08:00
parent 40f3b2ef6f
commit fb4383f541
38 changed files with 609 additions and 14 deletions
@@ -113,3 +113,16 @@ count += 1;
- AI 密钥、数据源凭证和支付凭证仅存在服务端密钥管理中。
- SQL必须参数化;外部输入必须在边界处校验。
- 日志和异常报告必须脱敏。
## 12. 代码 Review 要求
开发者完成自测不等于 Review 完成。审查者必须从功能 PRD、设计和 Git diff 出发,检查:
- 业务行为是否真正满足验收标准,是否存在遗漏分支。
- 类型、数据口径、缓存、消息、事务和异常恢复是否正确。
- 是否引入安全、性能、并发、幂等或数据一致性风险。
- 测试是否能捕获真实回归,而非只验证 Mock 或实现细节。
- 中文注释是否解释关键原因、口径和限制,是否存在失真注释。
- 文件拆分是否便于常规阅读,是否出现过度抽象或巨型多职责文件。
Critical 和 Important 问题必须修复并复审。Minor 问题可以延期,但必须写明理由和后续功能编号。
+17 -11
View File
@@ -7,7 +7,7 @@
## 2. 功能状态
```text
proposed → designing → approved → developing → verifying → released
proposed → prd_review → designing → approved → developing → verifying → reviewing → released
↘ blocked
released → superseded
```
@@ -18,18 +18,19 @@ released → superseded
1. 分配功能编号和英文短名称。
2. 建立 `docs/features/<编号>-<短名称>/`
3. 填写需求、范围、非目标和验收标准。
4. 比较可选方案,记录设计与关键决策
5. 更新 API、事件和数据结构契约
6. 编写测试计划和实施计划
7. 确保 Git 工作区基线可识别,执行:
3. 编写 `prd.md`,明确用户问题、目标、范围、非目标、用户流程、指标、风险和验收标准。
4. PRD 审核通过后,将产品需求转换为可测试的工程需求
5. 比较可选方案,记录设计与关键决策
6. 更新 API、事件和数据结构契约
7. 编写测试计划和实施计划。
8. 确保 Git 工作区基线可识别,执行:
```bash
npm run governance:start -- FEAT-MO-001 market-overview
```
8. 运行 GitNexus 查询、上下文和影响分析,将结果写入 `gitnexus/impact-plan.md`
9. 高风险或关键路径变化必须先向用户说明影响,再进入开发。
9. 运行 GitNexus 查询、上下文和影响分析,将结果写入 `gitnexus/impact-plan.md`
10. 高风险或关键路径变化必须先向用户说明影响,再进入开发。
开发前必须至少回答:修改什么、为什么修改、影响谁、如何验证、失败后如何回退。
@@ -54,9 +55,12 @@ npm run governance:finish -- FEAT-MO-001 market-overview
```
6. 填写 `gitnexus/after.md``detected-changes.md``comparison.md`
7. 更新发布说明、回退说明、变更记录和版本号
8. 使用中文 Conventional Commit提交
9. 提交后执行 `npx gitnexus status`;若状态过期,再运行 `npx gitnexus analyze`
7. 执行代码 Review,将问题、严重程度、修复提交和复审结论写入 `review/code-review.md`
8. 逐条执行开发规范符合性 Review,将结果写入 `review/standards-review.md`
9. 任一 Review 为 `changes_required` 时,返回开发阶段;修复后重跑相关测试、GitNexus开发后分析和 Review
10. 两项 Review 均为 `passed` 后,更新发布说明、回退说明、变更记录和版本号。
11. 使用中文 Conventional Commit提交。
12. 提交后执行 `npx gitnexus status`;若状态过期,再运行 `npx gitnexus analyze`
## 6. 完成定义
@@ -68,6 +72,8 @@ npm run governance:finish -- FEAT-MO-001 market-overview
- 测试和构建有最新成功证据。
- 视觉变化有同视口对比证据。
- GitNexus 开发前后报告和差异说明齐全。
- 代码 Review 结论为 `passed`Critical 和 Important 问题已关闭。
- 开发规范符合性 Review 结论为 `passed`
- 发布说明和回退方法可执行。
- 中文提交已关联功能编号。
@@ -9,6 +9,7 @@
```text
docs/features/<编号>-<短名称>/
├── manifest.yaml
├── prd.md
├── requirements.md
├── design.md
├── implementation-plan.md
@@ -26,6 +27,9 @@ docs/features/<编号>-<短名称>/
├── qa/
│ ├── test-results.md
│ └── visual-qa.md
├── review/
│ ├── code-review.md
│ └── standards-review.md
├── release-notes.md
└── rollback.md
```
@@ -33,6 +37,8 @@ docs/features/<编号>-<短名称>/
## 3. 历史保留
- 已发布文档不删除、不覆盖历史结论;修订通过 Git 历史和文档版本说明保留。
- PRD 是产品目标和验收口径的正式来源;`requirements.md` 是从 PRD 派生的工程约束,二者不能相互替代。
- Review 文件必须记录审查范围、基线提交、审查提交、发现、处置和最终结论,禁止只写“看过了”。
- 重大方案变化新增 ADR,旧 ADR 标记被替代。
- 规则、提示词、API 和事件契约使用明确版本。
- 截图文件名包含页面、状态、视口和版本,例如 `market-overview-trading-1440x1200-v0.1.0.png`
+34
View File
@@ -0,0 +1,34 @@
# PRD 编写规范
## 1. 定位
PRD 是每个业务功能的产品需求事实来源,回答“为谁解决什么问题、为什么做、做到什么程度算完成”。技术设计回答“如何实现”,不能替代 PRD。
治理、重构和纯技术任务也需要简化 PRD,用于说明使用者、治理问题、目标和完成标准。
## 2. 必备章节
每份 `prd.md` 至少包含:
1. 文档信息:功能编号、版本、状态、作者、日期。
2. 背景与问题:当前状态、具体问题和证据。
3. 目标用户与场景:谁在什么时点使用。
4. 产品目标:用户能够完成什么,产品改善什么。
5. 非目标:本期明确不解决什么。
6. 用户流程:入口、关键步骤、结果和异常路径。
7. 功能需求:编号、优先级、行为与可观察结果。
8. 数据与口径:来源、时效、单位、缺失和过期处理。
9. 状态与异常:加载、空、部分数据、错误和降级。
10. 权限与合规:访问边界、隐私、声明和安全限制。
11. 成功指标:可以观测和验证的产品指标。
12. 验收标准:使用 Given/When/Then 或等价可测试描述。
13. 风险与依赖:外部数据、技术、成本和上线依赖。
14. 发布范围:本次、后续和回退触发条件。
## 3. 编写规则
- 需求使用 `FR-001` 等稳定编号,测试和 Review引用该编号。
- 禁止用“体验更好”“速度较快”等不可验证表达。
- UI 布局不是需求本身;应先写用户需要识别和完成的行为。
- PRD 发生实质变化时更新版本和变更记录,并重新确认设计与测试影响。
- 已发布 PRD 不删除旧结论,废弃需求标记 `superseded` 并说明替代项。
+37
View File
@@ -0,0 +1,37 @@
# Review 审查规范
## 1. 两类 Review
### 代码 Review
以 PRD、设计、实施计划、Git diff和测试证据为输入,审查正确性、安全性、性能、数据一致性、契约兼容性和测试充分性。
### 开发规范符合性 Review
逐条检查代码开发规范和流程规范,包括中文注释、命名、文件拆分尺度、日志、错误处理、GitNexus前后门禁、中文提交、文档和回退材料。
## 2. 审查角色
- 优先由非实现者进行独立 Review。
- 个人项目没有独立审查者时,可以执行结构化自审,但必须在报告中标明 `reviewer_type: self`,不得伪称独立审查。
- 使用代理审查时,必须提供功能说明、PRD、设计、基线 SHA 和当前 SHA;只有用户明确授权多代理时才调用独立审查代理。
## 3. 严重程度
- Critical:可能导致数据错误、安全事故、核心功能不可用或不可恢复,必须修复。
- Important:会造成明显错误、回归、规范失效或重要测试缺口,必须修复。
- Minor:不阻塞当前功能,但应记录后续处理或接受理由。
## 4. 结论
Review 只能使用:
- `passed`:没有未解决的 Critical 或 Important,证据齐全。
- `changes_required`:存在必须修改的问题。
- `blocked`:缺少 PRD、代码、测试、环境或其他必要证据。
修复 Review 问题后必须记录修复提交和复审结论。代码变化会使旧的 GitNexus开发后报告失效时,必须重新更新图谱和影响报告。
## 5. 发布门禁
`review/code-review.md``review/standards-review.md` 均存在、非空且最终结论为 `passed` 后,功能才允许进入发布状态。