关于大规模自定义规则文件批量审查问题 #999
|
问题描述 当前遇到的问题 期望达成的目标
具体问题
|
Replies: 2 comments 1 reply
|
Hi @zwlpwl,感谢提问。 你对匹配机制的理解是准确的 — OCR 当前的规则解析是 "first match wins":对每个文件,在 当前版本下的可行方案方案一:合并 rule 文本,按 path 归类将所有适用于同一 path glob 的规则合并到同一个 entry 的 {
"rules": [
{
"path": "src/**/*.java",
"rule": ".opencodereview/rules/java-all.md"
}
]
}你可以在 注意:规则条数越多,模型在单次审查中需要逐条检查的维度越多,对每条规则的关注度可能被稀释。如果你对审查深度有严格要求且 token 不受限,建议单个规则文件中的规则条数控制在合理范围内(经验上 10-15 条以内效果较稳定),超出的可考虑方案二分轮审查。 方案二:多轮审查 +
|
|
补充一个我们做过的尝试,供有同样想法的同学参考,避免重复走弯路: 讨论 #633 里提出的"把 核心理由(完整版见 #1177):配置层只做选择不做构造;多文件共享引用会带来高 fan-in 且无归因、无回归基线,改一处 维护者给出的出路:① 作为非内置模式放进 所以短期内不必再朝"内置数组形态"方向提 PR 了。上面 @lizhengfeng101 给的三个 workaround 目前仍是可行路径,其中方案 1(合并进单个 |
Hi @zwlpwl,感谢提问。
你对匹配机制的理解是准确的 — OCR 当前的规则解析是 "first match wins":对每个文件,在
rules数组中按声明顺序找到第一个 glob 匹配的 entry 后即停止,不会继续应用其它 entry。这意味着如果你有多个规则文件(或多个 entry)的 path glob 都能匹配同一文件,只有第一个会生效。当前版本下的可行方案
方案一:合并 rule 文本,按 path 归类
将所有适用于同一 path glob 的规则合并到同一个 entry 的
rule字段中(或引用一个较长的.md文件)。rule字段支持引用文件路径 — 只要值是以.md/.txt/.markdown结尾的单行路径,OCR 会自动读取文件内容作为规则文本(上限 512KB)。{ "rules": [ { "path": "src/**/*.java", "rule": ".opencodereview/rules/java-all.md" } ] }你可以在
java-all.md中用 markdown 章节组织多条规则(安全、性能、规范等)。这样一个文件匹配一个完整的规则集,不存在冲突。注意:规则条数越多,模型在单次审查中需要逐条检查的维度越多,对每条规则的关注度可能被稀释。如果你对审查深度有严格要求且 token 不受限,建议单个规则文件中的规则条数控制在合理范围内(经验上 10-15 条以内效果较稳定),超出的可考虑方案二分轮审查。
方案二:多轮审查 +
--…