diff --git a/AGENTS.md b/AGENTS.md index b07476981..61b07d47e 100755 --- a/AGENTS.md +++ b/AGENTS.md @@ -527,3 +527,54 @@ AI Agent(我)在约束内执行编码 - **渐进增强**:先跑通编译 → 再加数据流验证 → 再沉淀规则 - **可观测性优先**:每次修改必须 git diff 可见 - **安全内建**:铁律(不可删文件、不可改架构)是底线 + +## 闭环测试系统(本项目的测试金字塔) + +我们没有企业级的 CI 流水线,但同样有分层测试策略: + +``` + 你审查(深度验证) + ↑ 功能正确性、变更范围 + 数据流验证(功能测试) + ↑ 字段链路完整性、多入口覆盖 + 编译检查(静态测试) + ↑ 语法错误、符号解析、类型安全 +``` + +| 层级 | 耗时 | 覆盖范围 | 失败处理 | +|---|---|---|---| +| **编译检查** | 30秒 | 全量代码(语法、符号、类型) | 定位到文件+行号,分析根因 | +| **数据流验证** | 1-2分 | 修改涉及的数据链路(输入→保存→查询→展示) | 补全缺失字段,检查多入口 | +| **你审查** | 3-5分 | 变更范围、架构合理性、功能正确性 | 修复问题 + 同步更新 AGENTS.md | + +### 质量门禁 + +| 门禁级别 | 条件 | 结果 | +|---|---|---| +| L1:编译门禁 | `mvn compile -pl openhis-application -am` 通过 | ✅ 进入数据流验证 | +| | 编译失败 | ❌ Agent 分析根因并修复 | +| L2:数据流门禁 | 全部数据环节贯通 | ✅ 提交你审查 | +| | 有断链 | ❌ Agent 补全链路 | +| L3:审查门禁 | 你确认变更正确 | ✅ 提交代码 | +| | 发现问题 | ❌ 修复 + 更新 AGENTS.md | + +### 结构化反馈规范 + +编译失败时,反馈必须包含: +``` +文件: openhis-application/src/.../XxxServiceImpl.java:42 +错误: 找不到符号 getPendingRecords(int,int) +原因: MedicalRecordService 接口缺少该方法定义 +修复方向: 在 MedicalRecordMapper 中添加对应方法 +``` + +数据流验证时,反馈必须包含: +``` +断链环节: 住院 Mapper 子查询 1(药品) +问题: NULL AS remark 未从 wor_service_request 关联取值 +修复: + (SELECT remark FROM wor_service_request + WHERE based_on_id = T1.id + AND based_on_table = #{MED_MEDICATION_REQUEST} + AND delete_flag = '0' LIMIT 1) AS remark +```