Un agente de solo lectura inventarió los 55 guards que inspeccionan TEXTO
fuente (29 tests + los scripts del gate), extrajo sus 5 163 patrones y los
midió sobre los 1 548 ficheros en las dos revisiones del formateo (6d4aa05fb
vs 468a9d113), con arneses que ejecutan la lógica real de cada guard y
comparan cada decisión intermedia, no solo el veredicto. Lo que encontró:
- CIEGO (el peligroso, porque pasa en verde): `contracts.test.ts` capturaba el
ProviderProps de los cuatro pickers con `WithChild<[\s\S]*?\}>;`. Prettier
imprime el cierre como `}` y `>;` en líneas distintas, así que el delimitador
ya no casaba donde acaba el tipo y la captura se desbordaba a la declaración
siguiente (date-picker 35-179 → 35-194, y otros tres). Seguía verde por
accidente: un `children?: Snippet;` que viviera en el Trigger bastaba. Ahora
`\}\s*>;`. Visto fallar: moviendo ese campo del Provider al Trigger, el guard
reparado se pone rojo (el ciego lo aceptaba); restaurado byte a byte.
- ROJO NUEVO, fuera del gate (`component:audit` no es miembro): F-1.4 contaba
marcadores de disposición con `\b(implementar|diferir|descartar)\b` y
prettier normaliza `*diferir*` a `_diferir_`, donde `_` es carácter de
palabra: 6 READMEs (chat-* y emoji-picker) pasaban de PASS a FAIL. Ahora el
borde es de LETRA (`(?<!\p{L})…(?!\p{L})`).
- ROJO NUEVO: R-2.7 leía la tipografía línea a línea y, con `font-size: calc( …
)` partido, tomaba `calc(` como valor y perdía la válvula
`/* literal: … */`: 6 falsos positivos. Ahora recorre DECLARACIONES.
Medido: `component:audit` vuelve a PASS 161 / NEEDS-WORK 5 y R-2.7 a sus 3
avisos reales (eran 11 y 7 tras el formateo).
- Ojo que se abría a medias: el espejo de vocabulario de `docs-check` (I4)
exigía la comilla pegada al `[` y era ciego a tres entradas hasta que el
formateo las juntó. Anclado a `\[\s*'(\w+)'\s*,`, indiferente al formato.
- `REVIEW-theming-2026-08-24.md` quedó en finales de línea CR (0 LF): un CR
huérfano preexistente hizo que `endOfLine: auto` reescribiera el fichero
entero, dejándolo como UNA sola línea para cualquier guard con
`split('\n')`. Normalizado a LF.
Lo demás se midió sano: docs-check (10 invariantes, conjuntos de enlaces,
vallas, imports y props idénticos), recipe-css (CSS intacto y 3 componentes MÁS
inspeccionados), pack-census (2 flips false→true por comillas dobles que
prettier normaliza: eran emisiones reales), morfo/focus/source-census,
value-channels, blocks, translations, rtl-lint y eidos/lint. Filas latentes al
ledger: L-157 a L-160.
Verificación: `npx vitest run src/uix/contracts.test.ts` 42/42 · `docs:check`
0/0 en 821 docs · `component:audit` exit 0 con las cifras de antes del
formateo · prettier limpio en los cuatro ficheros.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>