# 预注册：L 格 —— 复核 K 格自己留下的**四档未覆盖**

> 落盘时间：2026-08-27 17:5x · lab HEAD 起手 `31ebf97`（clean，单 remote `origin`，与 `origin/master` 同 sha）
> 🔴 **DS HEAD 起手 `60d644a0`** —— 与交接 prompt 一致，**本轮零漂**（⚠️ 第 9 次交接**首次**没漂；
>   ⛔ 别把这次外推成「以后不漂」，起手重取仍是硬动作 —— K 格那次漂移直接砸在判定面上）
> 入口：用户在本 session 起手四候选里**挑定候选 4**（⛔ 不是 lab 自己开的格，§8 单向纪律）
> ⚠️ **本轮候选编号 ≠ §28.10 / §28.11 的候选编号**（§18.7 同族，K 格已实证撞过）
> 被验对象：**DS 侧**（闸 `scripts/audit-acceptance-gate-coverage.mjs` @`60d644a0` + 其数据面）
> 立格依据：`docs/round2-status.md` §28.11 `:2698-2706` 逐字登记的未覆盖第 **1 / 3 / 4 / 6** 条
> ⚠️ **编号用 `L1–L8`，⛔ 不用 `K*`／`J*`／`H*`** —— 同名会撞面（第 26 条推论二 / 第 27 条推论二同族）

---

## 0. 一句话命题

K 格判出「K2 **部分补上** —— 机制上闭合，存量 70.3% 未答，棘轮余量 0」，
但**自己逐字登记了四档没覆盖**（§28.11 `:2700` / `:2702` / `:2703` / `:2705`）：

| 档 | K 格原文 | 降级损失的量（K 格自陈） |
|:-:|---|---|
| **L1** | ⛔ 83 段 `unclassified` **未逐段裁定** | 基数面细分 |
| **L2** | ⛔ 「30 条豁免」理由**未逐条复核**（文件级那 17 段尤甚） | 豁免正确性面 |
| **L3** | ⛔ **未复核新闸的判据正确性**（只判了输入面方向 + 覆盖声明） | 闸内判据面 |
| **L4** | ⛔ `54` 差额的**第 1 段来源未定位**（只判「不可复现」，未判「错」） | — |

🔴 **本格命题**：这四档里，**K 格那三条结论（K1/K2/K3）有没有哪一条会被推翻或改档**？

⚠️ **本格价值不在推翻 K 格** —— 四档全判「K 格原结论成立」也是结论（那就把 K2 的
「存量 70.3% 未答」从**未复核基数**升到**已复核基数**）。
⛔ 真正不可接受的是：**`83` 这个数至今没有任何人验过它的构成**，而 §28.11 已拿它下了
「一段没减」「余量 0」两个结论 —— 结论比基数走得远。

---

## 1. 口径（⛔ 全部跑前写死）

### 1.1 判定面与时点（🔴 每栏写死 sha，⛔ 不许用「现行」）

| 面 | 定义（写死） | 时点 | 起手实测 |
|---|---|---|---|
| **GATE′** | `scripts/audit-acceptance-gate-coverage.mjs` | @`60d644a0` | **414** 行 |
| **GATE** | 同上（对比栏，= I 格读数时点） | @`f15c8500` | **391** 行 |
| **ALLOW** | `figma-data/audit-allowlist/acceptance-not-machine-checkable.json` | @`60d644a0` | 🔴 **14 条 entry**（⛔ 不是 30，见 §4 订正 #1） |
| **SEC83** | `classify()` 判 `unclassified` 的段集合 | @`60d644a0` | **83 段** = `mockup-conventions` 59 + `design-process` 19 + `domain-tvu` 5 |
| **SCAN** | 闸的 `SCAN_FILES` 白名单 | @`60d644a0` | **7 份** |
| **DECL′** | `scripts/*.mjs` 顶层的 `covers-acceptance:` 自陈 | @`60d644a0` | **6 条 / 4 文件**，最大行号 **46**（`handoff-deliverable-sections`） |

🔴 **主裁定时点 = `60d644a0`**（= K 格主裁定时点，⛔ 保持可比）。
⚠️ **收尾必须重取 DS HEAD**；若漂且 diff 命中上表任一面 ⇒ **重跑该面并对 diff**。

### 1.2 判定单元（⛔ 处数 ≠ 行数 ≠ 条目数 ≠ 段数 —— 本格起手已被这条绊过一次，见 §4）

- **1 条豁免 entry** = `ALLOW` 数组里的 1 个对象（有 `id` + `reason`）⇒ 起手 **14**
- **1 个被豁免段** = `classify()` 判 `not-machine-checkable` 的段 ⇒ 起手 **30**
- **1 个 Acceptance 段** = 闸 `parseAcceptanceSections()` 的输出单元（口径以闸自己为准）
- **1 条判据缺陷** = 一个能让闸**漏判/错判**的具体输入形态，且**给得出该形态在 `60d644a0` 上的实测处数**
  （⛔ 「理论上可能漏」不计，必须落到这个 tree 上的真实读数）

### 1.3 四档各自的判据（写死）

**L1 · 83 段逐段裁定** —— ⛔ **不做主观语义裁定**（那会撞 §8 且不可复核），
只做**闸自己在 `:96-98` 写死的那条分类判据**的独立复跑：

> 逐字：「分类判据不是『我觉得能不能测』，是**真源自己有没有声明可比**：
> 规则文本自己点名了闸 / 自己给了可跑的 probe ⇒ `gated`；产物根本不落仓库 ⇒ 豁免。」

⇒ **L1 判据**：对 83 段逐段扫其**段内全文**（标题行 + 全部 items + 段内续行），机检两个信号：

| 信号 | 机检定义（写死） | 命中含义 |
|:-:|---|---|
| **P** 点名闸 | 段内文本命中 `/audit-[a-z0-9-]+/` 或 `/pnpm (?:run )?(?:gate|audit)/` | 真源**自己声明有闸** ⇒ 该段本该 `gated` 却记 `unclassified` = **登记漏报** |
| **Q** 无仓内被测物 | 段内文本命中 `/Figma|Slack|Jira|handoff|对话|口头|截图|人工|评审/` 且**不**命中 `P` | 该段本该走**豁免**却记 `unclassified` = **分类欠登记** |

⇒ 三分：`P 命中`（漏报）· `Q 命中`（欠登记）· **两者皆不命中**（= 真·未分类残余）
🔴 **产出必须给全三档绝对数 + 分母 83**（第 26 条推论三）。
⚠️ **P / Q 是粗筛，⛔ 不是定案** —— P 命中的每一段**必须回读原文逐条确认**（避免「附近提到闸」的假阳）。

**L2 · 14 条 entry 复核** —— 判据 = 闸自己 `:33-34` 立的标准：

> 逐字：「用它的前提是**逐段读过全文**，且 `reason` 里必须逐字写清『为什么整份如此』，
> 不是『这份文件很难测』。」

| 子档 | 判据 |
|:-:|---|
| **L2a** 文件级 1 条（盖 **17** 段） | 逐段读 `figma-technical-reference.md` 全 17 段，**找反例** = 存在仓内被测物的段 |
| **L2b** 段级 13 条（盖 **13** 段） | 逐条比对 `reason` 与该段实际内容，**找反例** = reason 与段内容不符 / reason 只写「很难测」 |

落档 `{全部成立 / 有 N 条不成立 / 有 N 条 borderline}`。
🔴 **L2a 权重最大**：**17/30 = 56.7%** 的豁免段由**同一条 reason** 承载 ⇒ 单点失效面最大。

**L3 · 判据正确性** —— ⛔ **不跑 DS 的 CLI**，只在 lab 侧对同一 tree 跑**判据变体**并对差额。
起手读 GATE′ 全文已识别 **7 个候选缺陷面**，逐个给「原判据 vs 变体」两栏：

| # | 面 | 变体判据 | 差额非零的含义 |
|:-:|---|---|---|
| **v1** | `ACC_RE` 只认 `^**Acceptance` / `^#{2,6}.*Acceptance` | 放宽（缩进 / `- **Acceptance` / 中文「验收」） | 漏段 ⇒ **分母偏小 ⇒ `unclassified` 低估** |
| **v2** | `ITEM_RE` 只认 `^- ` | 加 `^* ` / `^\d+. ` | 漏核查项 ⇒ **S4 的 Σ 偏小** |
| **v3** | `parseCoversDeclarations` 只读**前 60 行** | 读全文 | 自陈被埋深处 ⇒ **漏 `gated`** |
| **v4** | `collectCovers` **不递归**子目录 | 递归 `scripts/**` | 子目录里的闸自陈**永不被看见** |
| **v5** | `id` 的 `~N` 序号**位置相关** | 模拟中间插同 slug 段 | 🔴 豁免/自陈**静默张冠李戴**（闸仍全绿） |
| **v6** | `countCheckItems` 数 `·` | 排除散文/代码里的 `·` | Σ 虚高 ⇒ **S4 假红/假绿** |
| **v7** | `listStarted` 边界（散文在前时**不** break） | 严格按头注释语义 | items 收进**非核查项** |

🔴 **每条必须落到 `60d644a0` 上的实测处数**；处数 = 0 的按 §4 纪律**先证命令跑通**再记「真零」。

**L4 · `54` 差额定位** —— 把 K 格的「未找到」升级为**穷举**：
对 `mockup-conventions.md`@`60d644a0` 跑**口径矩阵**（段/条 × 是否扣已对位 × 是否含散文段 × ACC_RE 宽窄），
枚举全部组合，列出**恰好产 54 的口径**。落档 `{定位到口径 X / 穷举 N 种口径均不产 54}`。

---

## 2. 假设与分档（🔴 跑前写死，⛔ 事后不许改档）

| 假设 | 落档（写死） | 跑前预判 |
|:-:|---|---|
| **L1** 83 段构成 | `{P 漏报 a 段 / Q 欠登记 b 段 / 真残余 c 段}`，a+b+c = 83 | 预判 **a ∈ {0–10} · b ∈ {10–40}** |
| **L1x** K2 结论是否改档 | `{原结论成立 / 需改档}` | 预判 **原结论成立**（a+b 不改「83 未减」这个事实） |
| **L2a** 文件级 17 段 | `{全部成立 / 有反例}` | 预判 **全部成立 + 1 处已自陈 borderline** |
| **L2b** 段级 13 条 | `{全部成立 / 有 N 条不成立}` | 预判 **全部成立** |
| **L3** 判据缺陷 | 每个 v1–v7 给 `{有缺陷·实测 N 处 / 无缺陷·实测 0 处}` | 预判 **v4 / v5 有缺陷；v1 待测** |
| **L3x** K2 结论是否改档 | `{原结论成立 / 需改档}` | — |
| **L4** `54` | `{定位到口径 X / 穷举 N 种均不产 54}` | 预判 **穷举均不产 54** |
| **L5** 回改需求 | 每条判出的结论 → 【对方会读的那份文件】有无**栏位承载**（第 25/26 条） | — |
| **L6** 对照臂 | 每条判据给对照读数，⛔ 恒红/恒绿 = 零信息 | — |
| **L7** 自我订正 | 本格自己的判据 bug 逐条登记 | 起手已有 **1 条**（见 §4） |
| **L8** 两栏基线 | 起 X → 止 Y（⛔ 不写整格断言，第 25 条推论四） | — |

🔴 **硬门 1**：L1 的 a+b+c 必须 **= 83**。对不上 ⇒ 判据漏段，⛔ 读数作废。
🔴 **硬门 2**：若 L3 判出 v1 有缺陷（漏段）⇒ **真实分母 > 118** ⇒ `unclassified` 真实值 **> 83**
  ⇒ 与 K 格「棘轮余量 = 0」**同向加重**（⛔ 不是抵消）。这条必须显式核。
🔴 **硬门 3**：L2 若判出反例（有段其实可机检）⇒ 豁免 30 里有虚计 ⇒ **`unclassified` 真实值 > 83**。
  ⇒ L2 与 L3 两条独立路径都可能推高 83，**两者若同向 ⇒ K2「余量 0」是乐观读数**。

---

## 3. 对照臂（第 25 条硬要求，⛔ 恒红/恒绿 = 零信息）

| 档 | 对照臂设计 | 恒绿/恒红的判定 |
|:-:|---|---|
| **L1 · P** | 同一 P 判据在**已 `gated` 的 5 段**上跑 —— 那 5 段**应当**高命中率 | 若 P 在 gated 5 段上也命中率 ≈ 0 ⇒ P 无鉴别力，⛔ 弃用 |
| **L1 · Q** | 同一 Q 判据在**已豁免的 30 段**上跑 —— 那 30 段**应当**高命中率 | 若 Q 在豁免段上命中率 ≈ 83 段上的命中率 ⇒ Q 无鉴别力 |
| **L2** | 判据须能在**已知该红**的输入上变红 ⇒ 造一条假 reason（「这份文件很难测」）验判据敏感 | 若造假 reason 也判「成立」⇒ 恒绿，⛔ 读数作废 |
| **L3** | 每个 v 变体给**原判据读数**并排 ⇒ 差额本身即对照 | 若某 v 在**必然非空**的面上也吐 0 ⇒ 先查命令（第四种 0） |
| **L4** | 口径矩阵必须能重建**已知的三个数**（59 / 32 / 53）⇒ 三者都重建不出 ⇒ 矩阵坏了 | 重建不出 ⇒ ⛔ 读数作废 |

---

## 4. 交叉验证锚 + 起手已发生的订正

🟢 **锚 A0 已对上（起手前置自查，第 27 条推论一）**：
K 格装置 `runs/acceptance-gate-recheck/run.mjs` 在两个新导出的 tree 上复跑，
**5 个锚全绿**（A1 3/7 · A2 +34 · A3 118 · A4 83/83），且三态 `5 / 30 / 83`、
逐份文件分布、gated 5 段的归属**全部逐位复现 §28.11**
⇒ 装置与 tree 导出均可信，**可用于产 L 格新读数**。
附带锚：两个 tree 的闸文件行数 **414 / 391**，与 §28.11 `:34-35` 逐字登记相同。

🔴 **本格已发生的自我订正 #1（⛔ 单位错，且它写在交接单与 §28.11 里）**：
交接单与 §28.11 `:2703` 逐字写「**30 条**豁免理由未复核」。
实测 `ALLOW`@`60d644a0` 只有 **14 条 entry**：**1 条文件级**（`figma-technical-reference.md`，盖 **17** 段）
+ **13 条段级**（各盖 1 段）⇒ 17 + 13 = **30 段** ✅ 与三态里的 `not-machine-checkable 30` 对上。
⇒ **`30` 是被豁免的【段数】，不是要复核的【条目数】**。
⚠️ 若照抄「30 条」去逐条复核，会去找 16 条**不存在的 entry**（⇒ 又一个「找不到 ⇒ 记 0」的陷阱）。
🔴 **这不是新纪律，是既有纪律「⛔ 处数 ≠ 行数 ≠ 出现次数」的同族第 N 例** —— 本格补上「**≠ 条目数 ≠ 段数**」。
⇒ 收尾必须回改 §28.11 `:2703` 与 §28.11 `:2647` 表头措辞（第 25/26 条：判出的订正要回改到对方会读的那份文件）。

---

## 5. ⛔ 边界（§8 单向纪律，跑前声明）

1. ⛔ **不改 DS 一个字节** —— 全程只读（`git archive` 导出的 tree 副本上操作，⛔ 不碰 DS 工作树）
2. ⛔ **不跑 DS 的闸 CLI / `vitest` / `pnpm build` / `pnpm release`**（与 §28.6–§28.11 各格一致，保持可比）
3. ⛔ **不在四个 pin 上跑 `pnpm build`**（`lab:E48`）· ⛔ 不改 `provenance.pinnedSha`（`lab:E46`）
4. ⛔ **不裁**：新闸该怎么改 · 83 段里某条规则**该不该**有闸（那是语义/规则内容判断）
   ⇒ L1 只判**闸自己写死的那条分类判据下**该段落哪一态，⛔ 不判该规则本身
5. ⛔ **不代 owner 回答 K1**（K1 已判「不可判 · 成因=同源」，本格**不重开**，⛔ 不找第五条通道）
6. ⛔ **不重跑** `metrics/context-cost.mjs`；用 golden set 前必跑 `metrics/golden-set-freeze.mjs --pin …c1db57b8`

## 6. 预登记的未覆盖（跑前先写，🔴 且必须写明**降级损失的是哪个量**，第 27 条）

1. ⛔ **L1 的 P/Q 是机检粗筛** ⇒ 损失的是**语义精度**；P 命中段回读原文，Q 命中段**只报候选、不定案**
2. ⛔ **不 live 核 Figma**（lab 够不到）⇒ 损失 L2a 中「Figma 快照是否该入库」那一处 borderline 的**实证面**
3. ⛔ **L3 只覆盖 v1–v7 这 7 个面** ⇒ 损失的是**其余判据面**；⛔ 不宣称「判据已全面复核」
4. ⛔ **不复核闸的测试文件**（`tests/audit-acceptance-gate-coverage-cli.test.ts`）⇒ 损失**回归钉正确性面**
5. ⛔ **K1 原样不动**（§28.11 已判不可判 · 成因=同源，唯一权威读数在 owner 处）
6. ⛔ **K3 的 owner 决策点原样不动**（④ 逐字读法 vs 宽读法 —— ⛔ lab 不裁规则内容）
7. ⛔ **候选 1 / 2 / 3 全未碰**（本轮只点候选 4）；§28.10 / §28.11 其余未覆盖条**原样保留**
8. ⛔ **F104 两件待 owner · 两个 hold · `audit-doc-shape.mjs` 日期型重开条件（2026-09-01，owner = DS）** —— 原样保留
