ReviewGate 已知局限

已知局限(诚实边界)

ReviewGate 是静态 LLM 质量闸口,不执行代码。以下边界来自真实评测(见 docs/evals/), 明示局限是为了可信——宁可说清楚做不到什么,也不夸大。

1. 细微算法 off-by-one / 进位 / 需"真正执行"才暴露的 bug

1b. 大 diff 上的跨文件状态表征漂移(无局部坏味道)

2. 无上下文信号的"裸"危险调用

3. run-to-run 方差

4. 未支持语言的精确工具降级

5. 仅审查 diff(改动)

6. 意图评审(--intent)的验收清单

7. 增量复审(--incremental)的覆盖取舍

8. 审查范围排除([exclude] / .reviewgateignore)的取舍

9. 增量范围(--since-last-review)的取舍

10. PR 讨论注入(--with-pr-discussion)的取舍

11. Issue 分诊(reviewgate issue …)的边界

分类是规则启发式,不是模型判断

类型召回精确
bug77.7%84.2%
feature_request68.8%93.9%
documentation20.0%17.4%

documentation 是明确的短板:真实的文档诉求大多不含 docs/文档 字样,

规则抓不到,会散进 bug / feature_request / unknown。自建语料测不出这一点——

语料里的 docs 样本都是"标题直接写 docs"的显式形态。

置信度不足时不下结论,但可能静默

查重靠本地信号,语义漂移会漏

技术验证(--verify)依赖本地仓库,且判别力有限

样本跑了验证其中判 LIKELY_BUG
维护者标 bug70.4%35.1%
维护者标 enhancement6.7%25.9%

只差 9 个百分点。 也就是说在"已经被判成缺陷"的样本内部,翻代码几乎不再增加信息。

链路真正的判别力来自分类闸口——93% 的 enhancement 在进验证之前就被挡掉了

(最终裁决:非缺陷 74% 判 NOT_A_BUG,缺陷 42% 判 LIKELY_BUG)。

长跑模式不发布、不调模型


这些局限均有评测留痕。随版本演进会持续缩小(每条都标注了已做/可做的缓解)。