# 复盘 2026-08-27（第五十八轮）—— **阴性结果的转述会自我保护**；以及「怀疑二手源」这条纪律的过触发代价

> **范围**：只记本轮学到的**可复用 pattern**。逐项实证（分类清单 / 注入表 / 读数）已在
> [STATUS-CHANGELOG](../STATUS-CHANGELOG.md) 第五十八轮与 [[INFRA-F142]] entry 里，**本文刻意不复述**。
> 同日另六份：[a](./2026-08-27-a-new-gate-must-pass-the-repo-s-own-contracts.md) ·
> [b](./2026-08-27-b-criterion-blind-to-one-notation.md) ·
> [c](./2026-08-27-c-a-green-test-on-the-wrong-machine.md) ·
> [d](./2026-08-27-d-which-branch-runs-depends-on-the-machine.md) ·
> [e](./2026-08-27-e-restatement-that-redefines-a-term.md) ·
> [f](./2026-08-27-f-two-contradictory-verdicts-in-one-output.md)

---

## 一 · 新 pattern：**阴性结果的转述会自我保护** —— 它消灭了唯一能证伪它的那个动作

上一轮 entry 与 CHANGELOG 都逐字写着：

> 「**两个方向独立扫了一遍、结果互为交叉验证**（**闸侧扫描没扩出实质新配对**）」

本轮重扫闸侧，当场找到 **3 条**漏的，而且它们出自一条毫不隐蔽的缝：
`audit-handoff-deliverable-sections.mjs` 的**第 2 行**就写着「**四条** L1 规则的 handoff 段落存在性闸」，
而它的 `covers-acceptance` 只有 **2** 行。四减二等于二 —— 这不需要任何技巧就能看见。

🔑 **要记的不是「上一轮扫漏了」，是这类声明的结构**：

| | 阳性结果（「我找到了 X」） | 阴性结果（「我扫过了，没有」） |
|---|---|---|
| 后续会不会被检验 | 会 —— X 要被用，用的时候就暴露 | **不会** —— 没有任何后续动作会碰到它 |
| 谁会重做一遍 | 无需重做 | **恰恰是这句话劝退了重做的人** |
| 假的时候谁发现 | 下一个用 X 的人 | **没有人** |

⇒ **阴性结果是唯一一类「越被转述、越不可能被证伪」的结论**。
它和 `entry-restatement-is-secondhand` 治的两种都不同：那条说「转述的**数**会过期」，
[复盘 e](./2026-08-27-e-restatement-that-redefines-a-term.md) 说「转述的**术语**可能一开始就不是那个意思」，
本条说的是 —— **这句话内容可能从来就没做到，而它的形式让检验不会发生**。

⚠️ 注意它不需要有人说谎。上一轮那句大概率是真心的：闸侧确实扫了一遍，
只是**扫描判据不够宽**（同 [复盘 b](./2026-08-27-b-criterion-blind-to-one-notation.md) 那条）。
问题出在**结论被记下来时，判据没有被一起记下来**。

---

## 二 · 配套：阴性结果**该**登记（省重复劳动），但登记方式要能被复核

本轮自己也产出一个阴性结果：判据里被交接丢掉的那一支（「规则原文**自己给了可跑的 probe**」），
补扫剩余 67 段 —— **命中为空**。我把它写进了 entry，理由是省下一批的重复劳动。

这与 §一 直接冲突：**我刚记完「阴性结果的转述会自我保护」，转头就写下一个阴性结果。**

解法不是「别登记阴性结果」（那样每一批都要重扫一遍，成本更高），而是：

> **登记阴性结果时，必须把「扫描判据的实际形态」和结论写在一起。**
> 只留结论 ⇒ 下一个人只能选择「全信」或「全部重做」；
> 连判据一起留 ⇒ 他能用 30 秒判断「那一遍扫得够不够宽」，然后只补差额。

本轮的写法是把宽网逐条列出来（代码围栏 + 反引号里的 `grep|rg|node -e|python|bash|jq|curl`），
并如实写明命中的是什么（`use_figma` 插件 JS 与 ASCII 版式图）。
⇒ 下一个人若想起第八种写法，能直接看出那一遍没覆盖它。

🔑 **一句话**：**阴性结论的可复核性 = 判据是否与它同处一行。**

---

## 三 · 新 pattern：**为治 A 而立的怀疑，在 not-A 的场合会制造误报**

带着 `entry-restatement-is-secondhand` 里那句「**闸豁免表的 `reason` 同样是转述，且没有任何闸会发现它假**」
进场，本轮我确实抓到了一处真的（§I2 那条封路理由是假的）。

但同一条纪律也让我**两次差点报出假缺陷**：

1. **豁免表那行 `reason`** —— 我先入为主判它是「假声明」，读完才发现它不但是真的，
   还**早已把升级路径逐字写好**（「若日后要把本段改判 `gated`，正确动作是…并删掉本行」）。
2. **`sectionInternalOverlap` 全仓 `grep` 零命中** —— 差点写成「零实现」；
   实际两个量都有闸在算，只是**闸叫别的名字**（`audit-mockup-overlap`）。第 2 条是
   `name-search-absent-fallacy` 的教科书形态，而我是在**已经知道那条 memory** 的情况下踩的。

🔑 **可复用的**：

- 「**这份材料可能是假的**」这条怀疑，**只降低了信它的代价，没有降低不信它的代价**。
  不信它同样要付一次逐字读活源的成本 —— 该付，但要知道自己在付。
- ⛔ **别把「我怀疑它」当成「我已经判过它」** —— 本轮两次都是怀疑先到、结论差点跟着怀疑走。
  真正结束怀疑的动作只有一个：**逐字读完它引的那个活源**（同
  `entry-restatement-is-secondhand` 末条「最便宜的核法」）。
- 这条与 `reactive-correction-over-preemptive-rules` 同向：**防御性纪律本身有运行成本**，
  它不是免费的先验，收益要跟 §一 那种「结构上无人会发现」的场合对齐才划算。

---

## 四 · 一条边界（不是新 pattern，记一次）

本轮判 `gated` 的三段全部只有**首条**核查项被闸覆盖，其余是 handoff 文本要求。
这是本闸**设计好的常态**（`[N]` 是变更探测的锚、不是覆盖度声明）。

⛔ 但它有一个镜像方向的滥用，本轮刻意避开了两次（`#I2` 与 `#M-DISCIPLINE.SCOPE`）：
**当一段的核查项闸「一条都不管」时，判 `gated` 就是假声明** ——
与上一轮「把有闸的 4 段登记成不可机检」是同一个错的两面。
判据：**至少有一条核查项，其被测物就是这条闸的产出**。
