From b9339633f0f149bd8972076e548f6924a1e9262c Mon Sep 17 00:00:00 2001 From: dev Date: Wed, 26 Aug 2026 03:23:44 +0200 Subject: [PATCH] docs(theming): los residuos que midio el adversarial del codemod de canales El flip fue ATOMICO (13/13 con escritor y lector vivos, control negativo en los siete componentes, ni un canal muerto en silencio) y lo refutado fue documental: - STUMBLES.md SS7 entra por fin al arbol: la anotacion existia sin commitear (fallo de staging del coordinador - la raiz del repo no estaba en las rutas). Deja escrito lo importante: el renombre no rompio nada por DISCIPLINA de procedimiento (git ls-files por nombre), no porque un guard cruce escrituras del provider contra lecturas de receta - S5 sigue abierto. - PLAN-background: la anotacion decia "las nueve menciones de aqui abajo" y tres quedaban arriba - ahora dice su alcance exacto. - next-features SS13 gana las dos deudas del adversarial: la sonda estandar es CIEGA a 12 de los 13 canales (PROPS sin translate/rotate/ gridTemplateColumns/animationDuration - el control positivo dio 0 diffs con el canal roto a proposito) y el export muerto getFloatingContentCSSVars que construye por plantilla el nombre publico retirado de menubar. Fe de erratas del commit e100ea520: son 31 ficheros, no 32. Co-Authored-By: Claude Fable 5 --- STUMBLES.md | 11 +++++++++++ docs/next-features.md | 13 ++++++++++++- docs/process/PLAN-background.md | 3 ++- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/STUMBLES.md b/STUMBLES.md index c7cf39412..7e7030f52 100644 --- a/STUMBLES.md +++ b/STUMBLES.md @@ -118,6 +118,17 @@ selectors vía `style` no, pero soma+eidos ya son 2). > provider→recipe **y** recipe→tema. Diseño abierto (S5): declaración `cssVars` > en el morfo validada contra escrituras del provider + lecturas del recipe, o > un cross-check de `eidos-lint` de vars escritas-por-provider vs consumidas. + +> **Anotación 2026-08-26 — el renombre ocurrió, y el tropiezo seguía teniendo +> razón.** El codemod de los 14 canales de valor renombró las cuatro a +> `--_knob-{progress,angle,start-angle,sweep}` (más otras nueve de otros seis +> componentes). No rompió nada porque el flip fue ATÓMICO y guiado por un +> barrido `git ls-files` de cada nombre por todo el árbol trackeado — es decir, +> **por disciplina de procedimiento, no porque un guard lo cubriera**. Sigue sin +> haber defensa automática: el `recipe-css-contract` ve el nombre PÚBLICO fuera +> de contrato (ley del espacio cerrado, 2026-08-26) pero no cruza escrituras del +> provider contra lecturas de la receta, así que un `--_knob-angle` mal escrito +> en un lado sigue siendo silencio. El diseño abierto S5 queda igual de abierto. > Decidir antes de implementar. > > **Cerrada la dirección recipe→tema (opción C, 2026-07-03).** Guard nuevo en diff --git a/docs/next-features.md b/docs/next-features.md index 39b32b3be..5ed88ba0e 100644 --- a/docs/next-features.md +++ b/docs/next-features.md @@ -1114,7 +1114,18 @@ Lo que la cola pequeña añadió (2026-08-22): mecanismo en prosa. **Deuda menor que deja**: la fila GENERADA `docs/audit/theming/background.md:72` sigue citando `--background-progress` dentro de la tabla de `--report` — no se toca a mano; la regenerará el - `--report` supervisado que ya estaba registrado como pendiente. + `--report` supervisado que ya estaba registrado como pendiente. Y dos del + adversarial del codemod (2026-08-26): (i) **la sonda estándar es CIEGA a + 12 de los 13 canales** — `PROPS` de `__theming-probe.ts` no lee + `translate`, `rotate`, `gridTemplateColumns` ni `animationDuration`, así + que su «0 diffs» mide la apariencia circundante, no la supervivencia del + canal (el control positivo de `background` dio 0 diffs con el canal ROTO + a propósito); lo que sostiene estos canales es la verificación dinámica + por CDP. (ii) **Export muerto con riesgo de colisión futura**: + `getFloatingContentCSSVars` (`soma/layers/floating/utils.ts:18`) + construye `--${name}-anchor-width` por plantilla — para + `name='menubar-panel'` daría el nombre público RETIRADO, y un grep + literal nunca lo vería; hoy no lo llama nadie. **Hallazgo lateral, AJENO a esta firma**: el control `columns` de la demo de `emoji-picker` es un `` DESNUDO (sin hijos) y `slider.svelte` renderiza `{@render children?.()}` — o diff --git a/docs/process/PLAN-background.md b/docs/process/PLAN-background.md index 72d5d83e1..cc86fc9d4 100644 --- a/docs/process/PLAN-background.md +++ b/docs/process/PLAN-background.md @@ -370,7 +370,8 @@ razón que Motion→CountUp). Físico, no espeja en RTL (sigue al puntero). Reduce → 0. Sin `will-change` global (memoria: jitter a DPR fraccional; sólo si se mide necesidad). -> **Anotación 2026-08-26 — las cinco vars de runtime se llaman `--_background-*`.** +> **Anotación 2026-08-26 — las cinco vars de runtime se llaman `--_background-*`** +> (vale para las NUEVE menciones de esta sección, tres arriba y seis abajo). > El codemod de los 14 canales de valor (ley del espacio cerrado) renombró > `--background-{pointer-x,pointer-y,pointer-px,pointer-py,progress}` a > `--_background-*`: son estado por instancia que el envoltorio escribe, no