Open Code Review 项目解析知识图谱 / 分组目录 / 命令行工具 / ocr rules

ocr rules

命令行高级工具G-C · 命令行工具

What · 是什么

规则调试:rules check <file> 显示命中规则层(custom/project/global/system)与匹配模式
ocr rules 是规则调试命令,核心子命令为 check:ocr rules check <file-path> 显示指定文件命中的规则层与匹配模式
输出明确区分规则层级:custom(自定义规则)、project(项目级规则)、global(全局规则)、system(系统内置规则)四层,说明每层命中的具体规则与匹配模式
用于回答'为什么这个文件被这样审查':把某个文件的审查结果与规则命中对齐,定位结论来源
与四层规则链配合:custom/project/global/system 从高到低构成规则体系,check 是验证该体系对具体文件生效情况的调试工具

Why · 为什么

原理 · Principle

规则分层(custom/project/global/system)与匹配模式组合复杂,肉眼难以推断某个文件最终命中哪些规则,check 提供确定性的可视验证

审查结论异常(该审的没审、不该审的审了)时,需要快速定位是规则问题还是模型问题,check 是第一排查手段

新增或修改自定义规则后,需要立即验证规则是否按预期命中目标文件,check 比跑完整审查更快更省

How · 怎么做

检查单个文件的规则命中:ocr rules check src/foo.go
检查目录下文件的命中:ocr rules check internal/agent
解读输出:查看命中的规则层(custom/project/global/system)与每层匹配的规则 id 及匹配模式
修改自定义规则后重跑 check 验证生效:ocr rules check <file-path> 对比修改前后的命中变化
结合 delegate/rule 输出交叉验证规则结构,确认规则体系在代理与本地两条路径上一致

案例 · Cases

代表性案例
新加自定义规则验证:写完一条只针对 *_test.go 的规则后,ocr rules check 测试文件与非测试文件各跑一次,确认命中范围正确
文件被意外审查/忽略排查:某文件没被审,ocr rules check 该文件,发现被某层规则的排除模式命中,定位后修正规则
审查结论溯源:review 对某文件给出奇怪结论,先 check 确认规则命中是否符合预期,把规则层问题与模型判断问题分开
四层规则链整体校验:批量对关键文件跑 check,确认 custom 覆盖 project、project 覆盖 global、global 覆盖 system 的优先级按预期工作

反模式 · Anti-patterns

正反实例论证 · Evidence

正例 · Pro
check 验证规则命中与层级
ocr rules check src/foo.go
输出该文件命中的规则层(custom/project/global/system)与匹配模式,回答'为什么这个文件被这样审查',是规则调试的第一入口。
反例 · Con
改完规则不 check 直接跑完整 review
vim ~/.opencodereview/rules/xxx.json # 修改规则ocr review # 成本高且结论混杂模型因素
跳过 check 直接全量 review 验证规则,成本高且结论混杂模型因素;应先 ocr rules check <file-path> 快速确认命中变化。
正例 · Pro
目录级批量检查
ocr rules check internal/agent
对目录下文件批量检查规则命中,快速核对四层规则链(custom/project/global/system)的优先级是否按预期工作。
反例 · Con
忽视规则层优先级导致'规则不生效'假象
ocr rules check src/foo.go # 显示命中的是 project 层而非 custom 层
custom 与 project 规则冲突时按层优先级裁决,check 输出显示最终命中层;误读优先级会得出规则'不生效'的错误结论。
正例 · Pro
排查文件被意外忽略的原因
ocr review --from main --to feature-branch # 某文件未被审查ocr rules check config/secret.toml # 发现被排除模式命中
文件没被审时用 check 定位到某层规则的排除模式命中,修正规则后再 review,快速区分规则问题与模型问题。
反例 · Con
把 check 当 lint 工具使用
ocr rules check src/foo.go # 只输出规则命中,无审查意见
check 只回答规则命中问题,不产出审查意见;用它替代 review/scan 会得出'规则系统正常'的错误安全感,问题漏审。

实践资产 · Assets

规则
内置系统规则(四层规则链最底层,首匹配优先)
internal/config/rules/system_rules.json · 1488 B

相关边