Files
2026Technology-Competition/data/custom-rule-demo/result-report.md
T

4.7 KiB
Raw Blame History

自定义规则审查联动 — 验证结果报告(覆盖全演示)

验证信息

验证日期 2026-09-07
验证功能 自定义规则审查联动——团队编码风格规则在真实代码审查中的覆盖度(对应导入验证清单 C3 检查点)
规则文件 data/custom-rule-demo/team-style-rules.yaml5 条团队私有约定,经 UI 导入)
测试代码 data/custom-rule-demo/TeamStyleService.java
规则设计原则 全部为静态分析四件套与通用 AI 深度审查均查不到的团队私有约定

团队风格规则设计

# 规则 id severity 约定内容 静态分析为何查不到
R1 require-query-method-prefix warning Service 层查询方法必须以 query/find/get 开头 PMD 只查通用命名规范,不限定业务动词前缀
R2 require-dto-suffix warning 跨服务传输对象类名必须以 DTO 结尾 PMD Bean 命名规则只管 EJB 后缀
R3 require-result-wrapper warning Controller 返回值必须用 Result 包装 团队架构约定
R4 require-author-tag info 类 Javadoc 必须含 @author PMD CommentRequired 不在规则集内,通用 AI 不主动挑
R5 require-chinese-log-message info Service 层日志消息必须使用中文 英文日志是通用惯例,通用工具均不报

(R4 原设计为「金额必须 BigDecimal」,基线验证中被通用 AI 原生命中——真实最佳实践不配当团队私有约定演示规则,遂替换。)

测试代码构造

TeamStyleService.java 要求双重干净:静态分析零告警(PMD 零报告达成)+ 通用 AI 深度审查仅剩开放性设计建议(经 3 轮迭代:11 → 4 → 6 条,均为设计级 nitpick,无 error 级)。代码内含 5 处无痕埋点(不加任何提示注释,防止 AI 照抄注释而非按规则判定)。

验证过程

  1. 基线审查(无自定义规则):PMD 0 告警;通用 AI 建议 4-6 条逐轮波动(11 → 4 → 6,均为 equals/hashCode、Optional 语义、Map 优化等开放性设计建议)
  2. 导入规则UI 导入 team-style-rules.yaml5 条全部保留、零去重标注(纯约定对内置静态规则零重复)
  3. 复审:自定义规则 6 条命中 + 通用 AI 建议 4 条并存,互不干扰

命中核对

规则 命中位置 判定
require-query-method-prefix L33 handleOrderQuery 精准
require-result-wrapper L61 listOrders 裸返回 精准
require-dto-suffix L71 OrderInfo 精准
require-author-tag L14 TeamStyleService 类注释 精准
require-chinese-log-message L45 英文日志 精准
require-author-tag(第二次) L53 OrderController 内部类 合理命中(埋点遗漏被规则抓出)

5/5 规则全部触发,行号全部准确,message 逐字来自规则文件,零误报——覆盖全达成。

关键发现

  1. 确定性与开放性对比(演示核心叙事):通用 AI 建议逐轮波动(11→4→6→4),团队规则命中稳定精准——通用 AI 提供开放性建议,自定义规则提供确定性的团队约定检查
  2. 两类发现在报告中独立分区:「自定义规则 · N 个问题」(ruleId 带 custom: 前缀)与「AI 审查 · N 条建议」互不混淆
  3. 通用 AI 与团队规则的边界被实测划清:「金额必须 BigDecimal」被通用 AI 原生捕获(真实最佳实践),「@author 标注」「中文日志」通用 AI 零感知(纯团队约定)——自定义规则的价值空间 = 通用最佳实践之外的团队私有约定
  4. 埋点遗漏反向验证OrderController 漏加 @author 被规则抓出,规则执行力强于设计者记忆

已知观察

  • 通用 AI 建议与自定义规则命中会在同一报告中并存(如 return-list-for-single-entity 与 R1 同指 handleOrderQuery,一个挑返回语义一个挑命名前缀),讲解时需说明维度不同
  • 基线要求「AI 零建议」对非平凡代码不可达(AI 对任何代码都能提出设计级建议),本验证以「无 error 级发现 + 建议均为开放性设计 nitpick」为基线通过标准

结论

通过。团队风格规则在真实代码审查中全覆盖命中(5/5),命中行号与 message 精准,与静态分析、通用 AI 审查通道清晰分离。自定义规则「补齐团队私有约定盲区」的价值定位得到端到端实证。

关联

  • 规则导入验证:data/import-verification/(三场景 23 轮,本报告的 C3 检查点由此补齐)
  • 自动化测试:tests/excel-converter.test.tstests/method-extractor.test.tsCodeLens 依赖的方法提取)