@ -128,8 +128,20 @@ selectors vía `style` no, pero soma+eidos ya son 2).
> exentas por construcción. El guard cazó **3 fantasmas reales** además de los
> del Knob — `card-group --color-content-default` →`-primary`, `link-preview
> --leading-body`→`-normal`, `textarea --font-family-body` →`-primary` —
> arreglados. Queda solo la dirección **provider→recipe** (opción A): declarar
> las vars del provider en el morfo (`cssVars`) o un grep-cross-check.
> arreglados. Queda solo la dirección **provider→recipe** (opción A).
>
> **A2 (grep) descartado — probado ambiguo (2026-07-03).** Un `var(--{c}-x)` que
> el recipe lee es indistinguible entre (1) var funcional escrita-por-provider y
> (2) alias override-por-consumidor: idénticas en el CSS. Y muchos providers
> **publican** vars como hook de API que el recipe por defecto NO consume
> (`--drawer-progress`, `--dialog-depth` , `--toast-swipe-*` , `--scroll-area-*` —
> 17, ninguna leída por `var()` en componentes). Así que ni "provider escribe →
> recipe lee" ni el inverso distinguen un rename de un hook legítimo; un grep
> cross-check da ~17 falsos positivos. **Solo A1 lo cierra** : declarar
> `cssVars: [...]` en el morfo (fuente de verdad de qué vars SON el contrato) +
> guard "el provider escribe cada `cssVar` declarada" (un rename deja de
> escribir la declarada → se detecta). Coste: morfo types+schema+compile +
> declarar en cada morfo con vars publicadas + guard. Pendiente de decisión.
## 8. Dos docs imprescindibles no estaban en el paquete