docs(GOV-010): 确认开发质量与架构规范设计

This commit is contained in:
2026-08-13 22:20:54 +08:00
parent bbda26fa41
commit 1c1b15e709
9 changed files with 572 additions and 0 deletions
@@ -0,0 +1,54 @@
# GitNexus 开发前影响计划
- 功能编号:GOV-010
- 基线提交:`bbda26fa41288d4ae1f37c3e1c14593d5d8e910e`
- 分析日期:2026-08-13
- 总体风险:LOW;因部分遍历结果标记为 `partial`,按 MEDIUM 验证强度实施交叉检查
## 查询与上下文
GitNexus 查询了三类概念:功能档案完成门禁、前端 HTTP/OpenAPI 健康检查链路、NestJS 模块与项目边界。关键上下文结果:
- `getRequiredFeatureFiles` 的直接使用者是 `tools/governance/finish.mjs` 和 `tools/governance/feature-record.test.mjs`。
- `createApiClient` 与 `ApiRequestError` 位于 `web/src/api/client.ts`,只有旧客户端测试直接依赖两者;当前 Vue 页面尚未调用健康接口,Playwright 的健康请求属于测试进程直连后端,不应迁移为浏览器业务 API 调用;依赖锁文件包含 `openapi-fetch`。
- 健康展示链路经过 `web/src/api/adapters/health.adapter.ts` 的 `toHealthViewModel`,需保留 DTO 到 ViewModel 的隔离。
- API 端由 `HealthController.getHealth` 调用 `HealthService.check`;本次不改后端路由和 DTO。
- 项目边界由 `verifyProjectBoundaries` 扫描 TypeScript 与 Vue 脚本,适合扩展前端 HTTP 边界规则。
## 上游影响
- `getRequiredFeatureFiles`:GitNexus 风险 LOW;图谱遍历返回 0 个影响但上下文明确存在两个直接调用者,因此必须同步修改测试和完成门禁验证。
- `createApiClient`:风险 LOW、结果为 `partial`;静态引用确认只需迁移旧客户端测试并新增健康 API 样例,当前没有页面调用方需要改动。
- `ApiRequestError`:风险 LOW、结果为 `partial`;新 Axios 错误类型必须保持现有安全消息行为。
- `collectSourceFiles`:风险 LOW;边界扫描是开发验证路径,不影响生产执行流,但其测试 fixture 必须同步。
没有 HIGH 或 CRITICAL 结果,不需要额外风险批准。`partial` 结果不得解释为没有调用方,实施前后使用 `rg`、类型检查、测试和 `detect_changes` 交叉验证。
## 执行流影响
- 治理完成流程:必备文件与内容校验会改变 `governance:finish` 的通过条件。
- Web 健康请求脚手架:请求库、错误路径和类型引用变化;当前页面没有对应运行时请求流,后端健康检查与 Playwright 直连验证不变。
- OpenAPI 生成流程:生成工具与输出协议不变,前端仍消费 `schema.ts`,仅请求执行器由 `openapi-fetch` 改为 Axios。
- 项目边界验证流程:增加 Axios/fetch 使用位置检查,生产运行时不受影响。
## 同步修改清单
| 领域 | 是否修改 | 计划 |
|---|---|---|
| HTTP/OpenAPI | 是,文档与类型消费 | 保留后端 OpenAPI 输出和生成 Schema,不修改路由或字段 |
| Web 请求/API | 是 | 新建统一 Axios request、健康业务域 API,迁移调用方和测试 |
| Web adapter/ViewModel | 可能 | 仅调整导入或调用链,保持转换行为与类型边界 |
| RocketMQ 消息契约 | 否 | 本功能不修改消息协议或进程通信 |
| MySQL/迁移/Schema | 否 | 不修改结构;开发前只验证已发布 `v0.0.7` 基线 |
| Redis/缓存 | 否 | 不修改缓存键、TTL、连接或数据 |
| API/Scheduler/Worker | 否 | 不改变三个后端进程运行行为,只新增其架构规范 |
| 配置与部署 | 可能 | Axios 沿用现有 Web API 根地址;若变量名不变则无需改模板 |
| 治理工具 | 是 | 必备开发总结、结构化内容校验及错误信息 |
| 边界工具 | 是 | 限制前端直接 HTTP 调用并增加测试 |
| 文档与模板 | 是 | 更新代码规范、流程、追溯、PRD、Review、AGENTS 和模板 |
| 依赖与锁文件 | 是 | Web 删除 `openapi-fetch`,新增固定版本 Axios |
| 测试与视觉 QA | 是 | 补单元、边界、全量、构建体积和现有页面回归证据 |
## GitNexus 状态限制
CLI 在开发前运行后报告索引提交与当前 HEAD 均为 `bbda26f` 且状态最新。MCP 的 context 资源仍显示旧统计并提示落后 5 个提交,说明 MCP 资源缓存未同步;查询、符号上下文和影响结果仍能定位当前文件。开发后必须重新运行 CLI 分析、调用 `detect_changes`,并把该缓存差异记录在比较报告中。