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

`scripts/audit-mockup-connector.mjs` 头注释新增一条 `covers-acceptance` 自陈（§C4）。**只改注释 —— 判据、容差、颜色常量、优雅降级分档、退出码、规则模块接线、组件 API、token、样式一律没动。**

自陈内容 = `docs/internal/mockup-conventions.md#C4 [3]`。判据仍是**两端各有自己的声明可比**，不是「我觉得这条能不能测」：

- **闸侧**：本文件**第 1 行**逐字写着「§M23.6 / §C4 流程线确定性 gate」，第 13 行逐字「颜色+圆点形态(C4)」，实现处三个判据分别是「起点圆点 fill 必须白」/「border 必须 BLUE `#33A4FD`」/「线与箭头见 GREEN `#33ab4f` 即报 `brand green on connector (C4)`」。
- **规则侧**：§C4 Acceptance **第 2 条**逐字「M23 card / 流程线任意部位（起点圆点边框 / 主干 / 终点箭头）/ 条件标签出现 brand green `#33ab4f` → 违例（流程线统一 cyan `#33A4FD`；唯一非蓝处是起点圆点填充 `#FFFFFF` 白衬底）」——正是上面那三个判据的被测物。

⚠️ `[3]` 是**段内核查项总数（Σ）= 变更探测的锚，不是覆盖度声明**：§C4 那 3 条里第 1 条（product UI 区出现 cyan）与第 3 条（hint 文字色 ≠ tips gray）本闸都不管，照样计入 3。⛔ 别把 `[3]` 读成「这 3 项都有闸」。语义真源 = `scripts/audit-acceptance-gate-coverage.mjs` 头注释 §S4（该文件不随包）。

⛔ **同一行头注释也点名了 §M23.6，但刻意没有给它自陈**：§M23.6 的 Acceptance 逐字只要求「handoff doc 必含 connector accuracy audit table，每条 arrow 两端各一行」——被测物是 handoff 文档里的一张表，本闸一条都不产出。判 `gated` 会是**镜像方向的假声明**（判据 = 至少有一条核查项，其被测物就是这条闸的产出）。这条不判理由已就地写进头注释，别顺手补上去。

⚠️ **同批订正一处自己写下的假声明**（收尾 self-audit B 类程序化核抓到）：理由段原写「判据实现在 `checkOne()` 的『颜色 + 圆点形态（C4）』段」，而**该文件里没有 `checkOne` 这个函数** —— 真名是 `classifyConnectorViolations()`。已订正。教训是结构性的：自陈行本身受 S2（在不在）+ S4（`[N]` 对不对）两条判据保护，但**它下面那段理由不受任何闸保护**，与「闸豁免表的 `reason` 也是转述」同型 ⇒ 写完理由段要把里面点名的每个函数名 `grep -c` 一遍。

⛔ 该自陈行必须留在本文件**头 60 行内**（`parseCoversDeclarations` 只读前 60 行），且必须加在**挂载声明块之后** —— 加在它之前会把挂载声明挤出 `audit:gate-mount-declaration` 的头 45 行窗口。两条都已实测：摘掉自陈 ⇒ `EXIT=1` 且 S2 精确点名 `unclassified 64 > BASELINE 63（+1）`；改错 `[N]` ⇒ `EXIT=1` 且 S4 精确点名核查项数不符。fail-closed，不会静默。
