From c05349c3ff1e0efac5bae08dedf20914772cb063 Mon Sep 17 00:00:00 2001 From: dev Date: Mon, 24 Aug 2026 00:38:45 +0200 Subject: [PATCH] =?UTF-8?q?docs(theming):=20el=20handoff=20recoge=20la=20t?= =?UTF-8?q?anda=20de=20DOCE=20y=20lo=20que=20encontr=C3=B3=20supervisarla?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Doce componentes cerrados por cinco sesiones en paralelo — cinco al 100 % (chat-log, chat-composer, rating-group, toggle) y card cerrado en su 78 %, que ES su techo. Global 66 % -> 68 %. Y la parte que importa: los doce se supervisaron uno a uno, y la supervisión encontró cinco cosas que la ejecución no vio. Cuatro salieron del §7.7. Las dos primeras son de la rama, no del eje: el índice de git es COMPARTIDO —verificar el árbol indexado no basta, porque otra sesión puede reescribirlo entre que lo miras y confirmas— y un árbol de trabajo rancio hace mentir al instrumento sin tocar un solo commit (el guard de card daba 0/98 por un fichero sucio; desde HEAD limpio, 49/98 verde). Las otras tres son del eje: la cascada de paleta se lleva también el tono por defecto, el canal inline filtrado al contrato son cuatro claves y no dos, y la sonda y el guard mueren con --import tsx/esm. Queda escrito además el gate del diff cero con su matiz: dos componentes no cerraron a cero y los dos lo declararon; los dos son ruido reproducido sobre código idéntico. Un diff no cero no es automáticamente una regresión, pero sólo se declara ruido reproduciéndolo. Y dicho sin esconderlo: la demo de chat-log se tocó como instrumento. Co-Authored-By: Claude Opus 5 --- docs/process/CONTINUE-theming.md | 117 ++++++++++++++++++++++++++++++- 1 file changed, 114 insertions(+), 3 deletions(-) diff --git a/docs/process/CONTINUE-theming.md b/docs/process/CONTINUE-theming.md index e5cfe9144..19feb564c 100644 --- a/docs/process/CONTINUE-theming.md +++ b/docs/process/CONTINUE-theming.md @@ -1,6 +1,28 @@ -# CONTINUE — eje Theming «theme-reach» (handoff, act. 2026-08-23) - -> **LO ÚLTIMO (2026-08-23, tarde): SIETE componentes.** `navigation-menu` +# CONTINUE — eje Theming «theme-reach» (handoff, act. 2026-08-24) + +> **LO ÚLTIMO (2026-08-24): DOCE componentes en paralelo, con SUPERVISIÓN.** +> `chat-log` 77 → **100 %** (`fd8f01bac`) · `chat-composer` 79 → **100 %** +> (`71a097ddc`) · `rating-group` 80 → **100 %** (`f6a618328`) · `toggle` +> 81 → **100 %** (`edc019515` + `007c2af52`) · `select` 83 → **92 %** +> (`cc010f79a`) · `avatar` 75 → **90 %** (`f68bac4a6`) · `calendar` 84 → **89 %** +> (`509d1144f`) · `file-upload` 76 → **83 %** (`0c06d42aa`) · `editable` +> 75 → **82 %** (`2117d7422`) · `switch` 76 → **81 %** (`bbdc77c07`) · +> `radio-group` 77 → **81 %** (`f5d252443`) · `card` 78 → **78 % CERRADO** +> (`f3189a05a`). Global **68 %**. +> +> **Los doce se supervisaron uno a uno, y la supervisión encontró cosas.** +> Refutación estática de los doce commits (cero líneas ajenas en el generado), +> centinelas re-corridos, y cinco hallazgos propios que están abajo. **El +> protocolo §7.7 no es un adorno: cuatro de los cinco salieron de él.** +> +> **Lo que enseñó esta tanda, en una línea cada una:** +> el ÍNDICE DE GIT ES COMPARTIDO y verificar el árbol indexado NO BASTA · +> un árbol rancio hace MENTIR al instrumento sin tocar un commit · +> la cascada de paleta se lleva TAMBIÉN el tono por defecto · +> un componente puede BARRER DESCENDIENTES y comerse el token de sus huéspedes · +> y la sonda y el guard MUEREN con `--import tsx/esm`. + +> **HISTÓRICO (2026-08-23, tarde): SIETE componentes.** `navigation-menu` > 44 → **100 %** (`85988785d`) · `waveform` 55 → **86 %** (`11b92ded6`) · > `color-field` 56 → **93 %** (`3c6742b9c`) · `background` 57 → **95 %** > (`9bdc5a5d5`) · `s-text-virtual-list` 58 → **70 %** (`1f785b6f2`) · `badge` @@ -38,6 +60,95 @@ barrido del centinela sobre TODO el ledger (`REVIEW-theming-2026-08-23.md`). única forma de saberlo es correr el guard sobre el ledger entero, no sobre los que tocas. +## LO QUE DEJÓ LA SESIÓN DEL 2026-08-24 (doce componentes + supervisión) + +Doce componentes cerrados por cinco sesiones en paralelo, cada uno con su +commit aislado, y **una pasada de supervisión sobre los doce** (refutación +estática de cada commit + centinela re-corrido + medición propia de todo claim +que no fuese trivial). Cinco componentes llegan al **100 %**; `card` cierra en +**78 %** porque ése ES su techo, y así está escrito en su ficha. + +### Los cinco hallazgos de la SUPERVISIÓN (no de la ejecución) + +1. **⚠⚠ EL ÍNDICE DE GIT ES COMPARTIDO** (`5be7dabf4`). Hay un solo + `.git/index` para todas las sesiones. Construir el índice desde HEAD y + comprobarlo con `git diff --cached` protege del árbol ajeno, **no de la + ventana entre mirar y confirmar**. Costó `edc019515` (salió con tres + fragmentos de `rating-group` y sin la mitad de los suyos), su reparación + `007c2af52`, y **una coma de más que dejó `theming-sentinel-exceptions.ts` + SIN PARSEAR durante cuatro commits de HEAD** (`88a208644`). El guard no + quedaba en rojo: quedaba MUERTO, y sólo se veía en checkout limpio. + **Regla nueva: verificación y `git commit` en la MISMA invocación de shell.** +2. **Un árbol de trabajo rancio hace MENTIR al instrumento sin tocar un + commit.** El guard de `card` daba `0/98` —la firma del instrumento ciego— + por un `theming-sentinel.ts` sucio con el bloque de `chat-log` DUPLICADO. + Desde copia limpia de HEAD: `49/98`, verde. **Antes de creer un `0/N`, + comprueba que el instrumento coincide con HEAD.** +3. **La cascada de paleta se lleva TAMBIÉN el tono por defecto** (`b7f5a7d75`). + El §13 decía que las `{c}-primary-*` salvan a la instancia sin `data-color`; + donde soma trata el color como valor RESUELTO lo estampa siempre y `neutral` + cae con los otros once. Medido en `switch` y `editable`. +4. **El canal inline filtrado al contrato son CUATRO claves, no dos** + (`009af3300` + `8a4bb8e0e`). Los dos de `avatar` parecían fuera porque su + bloque de `base.ts` es una IIFE que el censo no supo leer hasta `f68bac4a6`. + Re-medidos: ni el fondo del badge ni el `box-shadow` del anillo se mueven + desde `:root`, y **no puede existir instancia alcanzable** — la puerta + `data-*-custom` y la escritura inline viajan JUNTAS. +5. **La sonda y el guard MUEREN con `--import tsx/esm`** (`b4e4fe1fe`). + `ReferenceError: __name is not defined` dentro de `page.evaluate`: el + ayudante `keepNames` de esbuild no existe en la página. Van con `node` a + secas. El error no nombra ni a tsx ni a la sonda. + +### Lo que enseñó cada componente + +| componente | antes → después | lo que enseñó | +| --- | --- | --- | +| `chat-log` | 77 → **100 %** | el instrumento daba 15/31 y las DIECISÉIS «muertas» estaban vivas | +| `chat-composer` | 79 → **100 %** | **`file-upload` BARRE DESCENDIENTES** y se come el token del huésped | +| `rating-group` | 80 → **100 %** | una escala privada sube al contrato; el guard no fotografía `transform` | +| `toggle` | 81 → **100 %** | el guard sólo sabía barrer UN eje: 36/126 → 70/126 sin adjudicar nada | +| `select` | 83 → 92 % | el portal parte el instrumento: el estado que abre TAPA los de reposo | +| `avatar` | 75 → 90 % | su contrato era INVISIBLE para los dos lectores (una IIFE en `base.ts`) | +| `calendar` | 84 → 89 % | una entrada de receta de FAMILIA no se juzga en la ruta de UN componente | +| `file-upload` | 76 → 83 % | una clave que no pintaba en NINGUNO de sus tres botones — retirada | +| `editable` | 75 → 82 % | el guard CERRABA la superficie que medía (sale del modo con un `blur`) | +| `switch` | 76 → 81 % | su tono NEUTRAL cae con los otros once | +| `radio-group` | 77 → 81 % | su punto NUNCA ha pintado su escala (el SVG escribe `1em` inline) | +| `card` | 78 → **78 % CERRADO** | el número cerrado ES el resultado: sus 8 privados son puente y conmutador | + +### Dos verdades sobre el GATE del «diff cero» + +Dos componentes NO cerraron a cero, y los dos lo declararon. **Los dos son +ruido del instrumento, reproducido por la supervisión sobre código idéntico**: + +- `calendar`: **28 diffs corriendo la sonda dos veces sin tocar nada**, en los + dos mismos nodos (`month-select` / `year-select`) y las dos mismas + propiedades. Empate de especificidad resuelto por orden de carga de Vite. Su + commit además era SÓLO comentarios, así que no podía mover un píxel. +- `chat-composer`: 2 diffs de `blockSize` (30 ↔ 36 px) en `[data-…-attach]`, + reproducidos en tres corridas del mismo código. + +**Un diff no cero no es automáticamente una regresión — pero SÓLO se puede +declarar ruido reproduciéndolo sobre código idéntico.** Los dos lo hicieron. + +### Lo que hay que saber antes de seguir + +- **`card` y `radio-group` están CERRADOS por debajo del 100 %** y no es + deuda: sus privados son puente THM-2 y conmutadores por variante. Un público + encima mataría el `color=` por instancia. +- **`file-upload` es HOY el único componente con un barrido de descendientes** + (`[data-file-upload] [data-disabled]`, una sola ocurrencia en 162 recetas). + Acotarlo mueve píxel de cualquier huésped → espera firma. +- **El guard no fotografía `transform`** y ya son tres los componentes que lo + sufren (`background`, `rating-group`, `card`). Arreglarlo obliga a + re-verificar el ledger entero, así que se adjudica de uno en uno. +- **La demo de `chat-log` se TOCÓ como instrumento** (montaba tres de sus seis + partes sólo en la prosa, así que once claves no tenían nodo que pintar). Roza + la regla de que las demos quedan fuera del eje: queda dicho, no escondido. +- Quedan en la cola, por alcance: `chat-message` 84 · `fab` 88 · + `tags-input` 88 · `chat-typing` 89 · `collapsible` 90 · `accordion` 91 · + `toolbar` 91 · `scroll-area` 94 · `tabs` 96 · `slider` 97 · `toast` 98. + ## LO QUE DEJÓ LA SESIÓN DEL 2026-08-23 **Dieciséis componentes** (11 cosidos + 6 de cola + 2 adjudicados sin tocar