> 退出码 0 承诺的是"流程跑对了",不是"结论是通的"——所以门禁要把两件事都打印出来
一轮 8 人独立自审跑完,门禁的输出长这样:
结论先行¶
一轮 8 人独立自审跑完,门禁的输出长这样:
gate = PASS (automated checks only, exit 0)
8/8 人齐 · 独立上下文 · 14 探针全答 · CFP 记录 CLEAN(页数人工核验入档)
· 内容指纹与盘上论文一致 · 无 overall ≤ 4
同时 gate 自报风险:
4 个决定低于 WA
rule-20 余量 0/8(需 ≥3 Accept)——"平台在门槛上,不是通过"
54 条待独立核验的发现
PASS 和"不建议投"同时出现在一次输出里,而且这是对的。
exit 0 回答的是"这一轮评审执行得合法吗":人齐、上下文独立、
问题全答、指纹对得上。它不回答"这篇该不该投"。
括号里那四个字 automated checks only 是整段输出的关键。
去掉它,PASS 就会被读成"过了"。
为什么¶
门禁最常见的失败不是判错,是承诺了超出它检查范围的东西。 一个退出码只有 0 和非 0,所以它天然会被读成一个总结论, 而它实际能检查的只是机械可判的那一部分。两种修法:
| 做法 | 后果 |
|---|---|
| 把实质判据也塞进退出码 | 做不到。"这篇该不该投"依赖只有人知道的信息 |
让 exit 0 只承诺流程,并在同一屏打印它没检查的那部分 |
✅ 读者拿到的是两段信息,不是一个字 |
第三种——只打印 PASS——是最糟的,因为它把"我检查过的都过了"
变成了"没问题"。这正是反面教材那一类门禁的样子
(见 测不出失败的门禁比没有门禁更糟——它在制造信心、
0 FAIL 不等于那些条件都成立——一份严格审计里八处用廉价代理冒充实质检查)。
这份输出里有三处细节值得单独抄:
① 把人工核验的那一项标出来。 CFP 记录 CLEAN(页数人工核验入档)——
页数这一条机器没法可靠判(编译产物的页数要看渲染结果),
所以它在报告里带着"人工"的标记。一份混合了自动与人工结论的报告,
必须逐项标明哪一项是哪种,否则下一次没人记得哪些是真的被机器查过。
② 报出自己的未核验积压。 54 条待独立核验的发现——
门禁明确说出"我收到了 54 条别人提的发现,我没有核实它们"。
一个不报积压的门禁,会让人以为 PASS 意味着那些发现都不成立。
③ 给出一句可执行的判读。 平台在门槛上,不是通过——
均分连续两轮持平、而硬判据的余量是 0,这两件事合起来的意思不是
"快了",是"这条路线已经不动了"。门禁把这句话写出来,
人就不会把持平读成进展(见
五轮自审里均分动了 0.38,而真正的判据一次没动——而且披露真问题会把均分压下去)。
怎么用¶
- 门禁的 PASS 必须带上作用域:"automated checks only"、 "schema + 存在性,未核内容"、"本机环境,未核生产"。一个字的作用域就够, 但不能没有。
- 在同一屏打印"我没检查的那部分":低于门槛的项、硬判据的余量、 未核验的积压。这些不进退出码,但必须进输出。
- 逐项标注自动/人工。混在一起的报告下一轮就不可信了。
- 退出码留给"流程是否合法",实质判据写成一条独立的、可能和退出码相反的结论。 两者相反不是 bug,是设计。
- 作为报告的读者:看到 PASS 先找作用域。没有作用域的 PASS 要当成"未知"读, 不是"通过"。
出处¶
自己的论文自审 skill 的 gate 输出,round 4 与 round 5(2026-09-23 / 09-24):
两轮都是 PASS (automated checks only, exit 0),同时自报
"4 个决定低于 WA"、"rule-20 余量 0/8(需 ≥3 Accept)"、"54 条待独立核验发现",
并按提交判据给出"不达标,不建议按现状投"。"平台在门槛上,不是通过"是原话。