---
"@ux-team/tvu-design-system": patch
---

`audit-mockup-integrity.mjs` 与 `audit-mockup-overlap.mjs`（两者均随包）的**输出契约**补齐 §I2 ③ 逐字要求的两个具名量。**判据、扫描面、退出码、三态分类一律未改**，组件 API / token / 样式无变化。

背景：`mockup-conventions.md` §I2 ③ 逐字要求机检块**分别报** `sectionInternalOverlap` 与 `sectionToSectionOverlap` 两个具名数，而这两个字符串此前在全仓脚本里**零命中** —— 两个量都有实现、只是各自叫着别的名字，分在两个闸里（`sectionToSection` = integrity 的 `probeI2()`，`sectionInternal` = overlap 闸本体）。缺的是「输出契约对不上名」，不是覆盖面缺口。

改动三处：

- **`probeI2()` 返回值新增 `sectionCount`**（additive）＝ 本 page 里参与两两比较的 SECTION 数。CLI 的 I2 段据此在**绿档也印**一行 `sectionToSectionOverlap = N (M SECTION over K page(s))`。此前绿档只印 `[page X] pass`、**连分母都不印** —— 而 §I2 实证段逐字记的病根正是「handoff 里写个孤零零的 `overlap 0`，读者分不出是扫了 0 个还是扫了 40 个都没重叠」。⇒ 这条改动的性质是**给绿档补分母**，同 `audit-mockup-library-binding.mjs` 的 `scanned N nodes` 范式。
- **`audit-mockup-overlap.mjs` 的绿档与 FAIL 档各补一行** `sectionInternalOverlap = N (§I2 ③ 具名量)`。
- **`--json` 的 `probe` 新增 `acceptanceName` 别名字段**；⛔ 原 `name`（`sibling-block-overlap`）**保持不动** —— 别处在读那个值。

回归面同批加两条钉（`tests/AuditMockupIntegrityProbeI2.test.ts`），钉的是「分母是真的」而非「重叠算得对」：`sectionCount` 必须随输入里 SECTION 的实际数目变，且必须把嵌套层数进去。两向注入实证：字段恒 0 ⇒ 2 红；改成恒等于 `page.children.length` ⇒ 2 红。

⚠️ **诚实边界**：这条改动**不改变 §I2 的三态分类** —— ③ 那 4 条核查项的被测物全部是「收尾 handoff 的机检块」，而闸不产出 handoff 文本 ⇒ §I2 仍不够格判 `gated`。它消除的是病根（闸不再只给一个笼统数），不是覆盖面。
