feat(GOV-010): 完成开发质量与架构治理

This commit is contained in:
2026-08-13 23:56:21 +08:00
parent 61f85e5fa4
commit f178fb4044
15 changed files with 270 additions and 22 deletions
@@ -0,0 +1,54 @@
# GOV-010 代码 Review
- 功能编号:GOV-010
- reviewer_type:self
- reviewer:实现代理结构化自审
- 基线提交:`1c1b15e`
- 审查提交:工作区当前变更,基于已推送 `61f85e5` 加上待提交的 Review 修复
- 日期:2026-08-13
## 审查范围
审查 PRD、设计、实施计划、37 个代码/配置变更文件、开发总结、QA、GitNexus 报告及回退说明。重点覆盖 Axios 错误边界、AST HTTP 门禁、治理证据门禁、依赖安全、OpenAPI 契约和测试真实性。
## 发现
### 已关闭的重要问题
| 严重程度 | 位置 | 问题 | 影响 | 处理 |
|---|---|---|---|---|
| Important | `tools/governance/feature-record.mjs:getUnpassedReviewFiles` | 原实现只要文档任意位置出现 `最终结论:passed` 就会通过,后续追加 `changes_required` 可绕过完成门禁。 | 可能发布未通过 Review 的功能,属于治理安全缺口。 | 先新增失败测试复现,再改为只接受最后一个非空行精确等于 `最终结论:passed`;治理测试由 9 项增至 10 项并全部通过。 |
### 当前未发现的问题
未发现 Critical、未关闭的 Important 或阻塞性 Minor。请求层没有把原始 Axios error、URL、请求头或响应正文放入错误对象;取消请求保留 Axios cancel 语义;业务 API 使用生成 DTO;页面和 Store 没有直接 HTTP 调用。
## 测试缺口
当前页面尚未消费健康 API,因此没有真实页面数据适配链路测试;这属于本次明确非目标。Axios 运行时响应 Schema 校验也未引入,后续高风险市场接口应按数据风险决定是否增加。治理扫描、构建和 E2E 已覆盖当前变更边界。
## 安全与残余风险
- 统一 request 将网络/HTTP 错误转换为固定中文消息,只保留分类和数字状态码;取消错误不被误报为服务故障。
- 官方 audit 曾发现 `js-yaml 5.2.1` High 漏洞,已由 `e992edc` 精确覆盖到 `5.2.2`,修复后 audit 为 0 vulnerabilities。
- AST 边界阻止运行时代码绕过 Axios/request 约定,但静态门禁不替代人工审查,也不做运行时响应校验;这些是已记录的残余风险。
## 性能与资源影响
- Web JS/CSS 产物与迁移前基线均为 163908/805 字节;默认超时 10 秒且无自动重试,避免行情刷新请求放大。
- Axios 增加依赖维护成本,但统一拦截器、取消和错误边界;本次不改变数据库、缓存、消息或 Worker 吞吐。
- 生产构建、全量测试和 E2E 均通过;当前治理扫描只在开发/发布命令执行。
## GitNexus 与同步修改
开发后重新索引为 1,827 nodes、2,502 edges、50 flows;相对 `1c1b15e` compare 为 35 文件、163 符号、1 条受影响执行流、MEDIUM。唯一运行流是 `CreateRequestClient → ApiRequestError`,与计划一致;边界校验 MEDIUM 变化只在开发门禁执行。逐项核对确认 HTTP/OpenAPI 字段、MySQL、Redis、RocketMQ、API/Scheduler/Worker、部署均无计划外变化。
## 修复与复审
- `e992edc`:修复 `js-yaml` 传递依赖漏洞,已推送 Gitea。
- 待提交修复:Review 结论必须位于最后一个非空行,失败测试和通过测试均已执行。
- 修复后未发现新的 Critical/Important;最终完整验证、E2E、audit、契约和格式证据仍有效,Review 报告创建后再运行完成门禁。
## 最终结论
最终结论:passed
@@ -0,0 +1,40 @@
# GOV-010 开发规范符合性 Review
- 功能编号:GOV-010
- reviewer_type:self
- reviewer:实现代理结构化自审
- 审查提交:工作区当前变更,基于已推送 `61f85e5` 加上待提交的 Review 修复
- 日期:2026-08-13
## 检查结果
- [x] 必要中文注释准确且没有逐行废话注释。
- [x] 文件按稳定职责拆分,适合连续阅读,没有过度碎片化。
- [x] 命名、类型、单位和时间语义明确。
- [x] 错误处理、日志、脱敏和降级符合规范。
- [x] 安全策略、性能目标、验证证据和残余风险完整。
- [x] 前端 Axios/API 分域与后端业务模块内按需分层符合规范。
- [x] 复用抽取基于真实重复,新增依赖已完成用途、安全、许可证、成本和退出评估。
- [x] 测试先行证据、构建和视觉验证齐全。
- [x] GitNexus 开发前后报告和实际变更检测齐全。
- [x] GitNexus 已评估其他功能、模块和所需同步修改,实际变化符合计划。
- [x] 独立开发总结完整记录需求、范围变化、完成项、缺陷、延期项、提交和验证证据。
- [x] PRD、设计、发布说明和回退说明一致。
- [x] 提交使用中文 Conventional Commit 并关联功能编号。
- [x] 未使用 GitHub,未擅自配置或推送远程仓库。
## 不符合项与处置
初审发现 Review 最终结论校验允许“passed”出现在正文中间,已按测试先行修复为最后非空行校验;没有遗留不符合项。历史已发布档案未改写;GOV-010 保持 `unreleased`。
## 安全、性能与架构检查
安全:Axios 错误脱敏、传递依赖 High 漏洞修复、构建产物敏感标记扫描和官方 audit 均有证据。性能:请求无自动重试、10 秒有限超时、包体已测量;不适用的行情/数据库/消息负载项均记录了边界。后端规范采用业务模块内按需分层,不创建空目录;前端 request 独占 Axios,业务 API 分域并使用 OpenAPI 生成类型。
## GitNexus 与开发总结检查
`gitnexus/before.md`、`impact-plan.md`、`detected-changes.md`、`after.md` 和 `comparison.md` 已互相对应;最新 compare 为 MEDIUM、163 变更符号、1 条预期请求执行流。`development-summary.md` 七个固定章节均有实际内容,并明确当前页面、AI Provider、市场业务和后端健康模块的未实施边界。治理测试 10/10 通过,完成门禁将在本报告最终结论落在末行后执行。
## 最终结论
最终结论:passed