# 2026-06-02 — Wave 1a verifier A-count 确认 + verifier color-mix() 盲区

> commit `74aee519`。pickup §3 🥇（v0.7 主线收口）。

## 做了什么

起手确认 CANONICAL-017 verifier 覆盖已落地（30/34 covered，4 internal-base 走 canonical wrapper），fresh verifier run 实测 Wave 1a 各 CANONICAL 的 A field 真清数 → A **295→248 (-47)**。过程中发现并修了一个 verifier 假阳 bug。

## 两个转移性教训

### 1. verifier `colorToHex()` 读不懂 `color-mix()` 输出 = 系统性假阳

CANONICAL-018 的 fix 用 `color-mix(in srgb, var(--brand) 54%, #fff 46%)`。Chromium 把它**计算成 `color(srgb 0.5595 0.8433 0.6252)`**，不是 `rgb()`。verifier 的 `colorToHex()` 正则只匹配 `^rgba?\(…\)$` → 落到 fallback `return value.toLowerCase()` → 返回字面串 `color(srgb …)`，永远 ≠ expected hex `#8fd79f` → **每个 color-mix() 输出都被报成 A drift**。

- 实证：CANONICAL-018 的 dark+light leaf 文字色 fix 其实**完全正确**（逐通道：0.5595×255=143=0x8f…命中 `#8fd79f`），但 verifier 把它连同 5 个 cell 全报成 drift。
- 修：`colorToHex()` 加 `color(srgb r g b[ / a])` 解析分支（0–1 float ×255 round）。**monotonic**——只可能把 fail 变 pass，不可能反向（expected 永远是 normalizeHex 出来的 hex；修前 color() 已经全 fail）。
- 修后：Drop down 5 假阳清，A 252→248，CANONICAL-018 正确性才显形。

**归类**：同 EXTRACT-008（composite fills）、[[feedback_figma-fills-must-composite]]、[[feedback_verifier-css-transition-race]] —— "verifier 读不懂正确渲染 = 假阳" 是 FIGMA_AS_SOURCE_OF_TRUTH deterministic 验证的反复落点。任何用 `color-mix()` 的组件（本库还有 Button/Pill/Rating/Slider/PillStatus）未来若进 disabled/hover overlay 验证都会受益于本次修复。**不进 memory**——已在 code + tracker ledger 落地，repo 自记录。

### 2. 覆盖率 backfill 会重置 A 分母——旧走势数字不可续接

旧 ledger A 走势 398→…→**92**（2026-05-29 EXTRACT-008）跑在 CANONICAL-017 verifier 覆盖 backfill **之前** 的 ~633-entry manifest。CANONICAL-017 Batch 1-5+6.1 把覆盖扩到 **900 entry**（FormItem/Table/Notification/Select 全家族首次纳入），surface 出大量此前根本没 check 的真 A drift（FormItem 112 / Table 78 …）→ 全覆盖 baseline **A=295**。

- **教训**：A 余量是相对"当前覆盖的 manifest"的，不是绝对项目健康度。覆盖率一变，数字不可跨段比较。pickup 写的 "92→90 预期" 就是拿旧分母套，[[feedback_baseline-before-plan]] 实跑才看出根本是 295→248 的全新故事。
- tracker §分母重置 已立显式说明 + 900-entry 新 baseline，今后该轨道用 fresh verifier run 实测不估值。

## Wave 1a 逐项结果

| CANONICAL | 组件 | Δ A | 性质 |
|---|---|---|---|
| 024 | Notification | -14（全清） | border 1.2px + box-sizing |
| 024 | Table | -12 | rootWidth/box-sizing；rootPadding/gap 残留 |
| 019 | FormItem | -18 | error label red；rootGap 48=verifier-config 非 drift |
| 018 | Drop down | 7→3 | dark+light leaf fix（需 colorToHex 修才可见）；剩 1 Parent/Leaf + 2 Multi 行 bg null |
| 021/022/026 | Chart/Select/Progress | 0 | **A-neutral**：视觉对但非 verifier A-field（canvas 不可像素自省 / opacity 非 check 字段 / token-driven divergence）|

input box/filled +1 是 focus-border verifier race 噪声（[[feedback_verifier-css-transition-race]]），非本轮引入。

## 余下（v0.7 收口后）

248 A 主要在：FormItem 94（48 verifier-config + 46 label）/ Table 66（UA padding）/ input line+filled 78（EXTRACT-007 overlay topology）/ select 7 / Drop down 3。EXTRACT-007 是最大单块解锁路径（v0.8）。
