> 没人过得去的闸门会被手动放行,而放行一次它就不再是闸门

Research Tools Intermediate 2026-10-08 05:57 2026-10-08
#gate #self-review #process #protocol #calibration

一道「零容忍」的质量闸门,如果它的通过条件在结构上就达不到, 结局不是质量变好,是你学会绕过它。

// TABLE_OF_CONTENTS

结论先行

一道「零容忍」的质量闸门,如果它的通过条件在结构上就达不到, 结局不是质量变好,是你学会绕过它。

真实记录:某篇论文的自审闸门连续四轮 BLOCKED,四轮卡的都是同一本账—— 29 条残余缺陷,全部是严谨审稿必然浮现的已披露局限。最后用户手动覆盖了闸门。 从那次覆盖起,这道闸门对这个项目就不再有约束力了, 因为「手动覆盖」已经被证明是可行且必要的动作。

修法不是放松标准,是分级:区分「没披露的缺陷」和「披露了、也认了的局限」。 前者阻断,后者列出来但不阻断。

为什么

零容忍的设计假设是「缺陷都能修」。对论文不成立: 一部分局限是方法本身的边界,你能做的只有在论文里写清楚,修不掉。 把这两类算在同一本账上,闸门就要求作者做一件做不到的事。

但只要作者自己勾一个「已披露」就放行,等于把闸门交给被检查者, 那是另一个方向的失效——一键逃生口。

所以分级要配一个可核验的地址:

  • 探针答案里必须写 disclosed_at(披露在哪一节),不能只写 disclosed: true。
  • 闸门拿这个地址去论文的结构树里核:那一节存不存在、那段文本里有没有 limitation 类措辞。位置不存在、或者指向的是一节跟局限无关的内容, 就把 disclosed 降级为 false,照旧阻断。
  • 猜一个地址的代价是失去这次让步,比不填还差。

同一批修改里还补了一个相关的洞:闸门的 PASS 要有保质期。 之前发生过「当天改完论文直接按旧的评审结论发出去」的事。 现在闸门记录 panel 运行时论文内容的指纹,论文改过就不再是 PASS, 而是 INCONCLUSIVE,要求重开评审。

怎么用

设计任何自动闸门时,先问三个问题:

  1. 通过条件是结构上可达的吗? 如果某类不合格项按定义无法清零(方法边界、已知权衡、外部依赖), 它就不能和可修项算同一本账。
  2. 让步是谁批的?被检查者自己吗? 如果是,让步必须附一个能被机器核对的地址(章节、行号、commit、日志路径), 而不是一个布尔字段。核不上就当没让步。
  3. PASS 有保质期吗? 判定依据的产物(论文、代码、数据)改了之后,旧的 PASS 必须失效。 最省事的实现是记内容指纹,改动敏感到未提交的编辑。

一个信号:如果你发现自己在给某道闸门写「覆盖」「跳过」「--force」, 问题多半在闸门的分级,不在这次的具体情况。 把覆盖的理由写下来,攒够三次就去改闸门。

配套的另一半是 自审的失效模式不是"没发现",是"发现了没执行":闸门太松会漏,太紧会被绕, 而「发现了但没人去做」是这两者之外的第三种失效,占比最大。

出处

  • ~/Tools/self-review/self_review.py,evaluate_gate / verify_disclosure(2026-09-06)
  • 5 个夹具:~/Tools/self-review/tests/run_gate_tests.sh (已披露不阻断 · 已披露但仍威胁 claim 照旧阻断 · 地址指向无关章节则拒绝 · 论文改一个字节即 INCONCLUSIVE · 不带 --paper 即 INCONCLUSIVE)
  • 政策:~/.claude/skills/.submission-pipeline.md