You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte-kit-vice/scripts/__names-plan.json

193 lines
3.6 KiB

refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
[
{
"component": "accordion",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "trigger-hover-color",
"to": "trigger-hover-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "breadcrumb",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "link-color-hover",
"to": "hover-link-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "breadcrumb",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "ellipsis-border-hover",
"to": "hover-ellipsis-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "breadcrumb",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "ellipsis-color-hover",
"to": "hover-ellipsis-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "calendar",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "control-border-hover",
"to": "hover-control-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "calendar",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "control-color-hover",
"to": "hover-control-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "calendar",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "day-border-hover",
"to": "hover-day-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "calendar",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "day-color-hover",
"to": "hover-day-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "checkbox",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "border-off-hover",
"to": "hover-border-off"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "collapsible",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "trigger-color-hover",
"to": "hover-trigger-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "color-picker",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "eye-dropper-hover-color",
"to": "eye-dropper-hover-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "context-menu",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "item-fg-hover",
"to": "hover-item-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "dropdown-menu",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "item-fg-hover",
"to": "hover-item-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "editable",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "control-border-hover",
"to": "hover-control-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "editable",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "trigger-border-hover",
"to": "hover-trigger-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "editable",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "trigger-color-hover",
"to": "hover-trigger-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "field",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "control-border-hover",
"to": "hover-control-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "file-upload",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "button-border-hover",
"to": "hover-button-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "file-upload",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "button-color-hover",
"to": "hover-button-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "pagination",
"from": "control-border-hover",
"to": "hover-control-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "pagination",
"from": "control-color-hover",
"to": "hover-control-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "radio-cards",
"from": "border-hover",
"to": "hover-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "radio-group",
"from": "indicator-border-hover",
"to": "hover-indicator-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "radio-group",
"from": "segmented-segment-color-hover",
"to": "hover-segmented-segment-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "select",
"from": "trigger-border-hover",
"to": "hover-trigger-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "spin-field",
"from": "control-border-hover",
"to": "hover-control-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "spin-field",
"from": "control-color-hover",
"to": "hover-control-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "stepper",
"from": "trigger-color-hover",
"to": "hover-trigger-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "switch",
"from": "track-border-off-hover",
"to": "hover-track-border-off"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "tabs",
"from": "trigger-color-hover",
"to": "hover-trigger-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "tag-group",
"from": "item-border-hover",
"to": "hover-item-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "tag-group",
"from": "item-color-hover",
"to": "hover-item-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "tag-group",
"from": "remove-border-hover",
"to": "hover-remove-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "tags-input",
"from": "control-border-hover",
"to": "hover-control-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "tags-input",
"from": "action-border-hover",
"to": "hover-action-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "tags-input",
"from": "action-color-hover",
"to": "hover-action-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"component": "toolbar",
"from": "control-border-hover",
"to": "hover-control-border"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
},
{
"component": "toolbar",
fix(eidos): la capa de estado es un VELO — 38 hovers que no lo eran, al idioma El codemod de ayer apartó 47 knobs «en cola de migración a la capa de estado». Al empezar esa migración se ve que sólo SEIS lo estaban: el velo de §38 es `background-image: linear-gradient(var(--state-hover), var(--state-hover))` y no alcanza nada más. De los otros 41, veintidós mueven un BORDE y diecinueve mueven la TINTA — ninguno es la capa de estado por muy neutro que sea su valor. Eran deuda de nombre, y yo los había excluido del renombrado. El clasificador tenía media prueba: miraba el VALOR (¿neutro o con valencia?) y no la PROPIEDAD. Ahora exige las dos, siguiendo un salto por privado (`--_switch-track-bg-hover`) y entre componentes (la familia calendar presta `--calendar-control-*` a month-grid, range-calendar y year-grid, y por eso esos cuatro no aparecían consumidos en su propia receta). renombres 38 en 22 componentes · 113 referencias en 30 ficheros cola real 6 (checkbox · date-range-picker ×2 · scroll-area · splitter · switch) — los únicos que pintan fondo censo 162 · 5.203 · 1.841 (37 %) · 56 — IDÉNTICO --names 38 → 0 desviadas diff generated 38 renombres 1:1 · 0 cambios de valor computed field · tabs contra la línea base ORIGINAL (anterior a las dos pasadas): 4.031 valores, 16 estados, 0 diffs huérfanos 0 · formato sin regresión · audit 163 PASS · rtl 0 · docs 0 · suite 434 pasan (1 rojo conocido) · check 0 errores en ficheros tocados La muta-prueba se reescribió contra el catálogo vivo — asertaba nombres que el codemod ya había renombrado — y gana los casos que faltaban: un knob de borde neutro es `modifier`, uno de tinta neutro es `both`, y sólo los de fondo son `state-layer`. Queda una pregunta que §38 no contesta y que NO he decidido: si un hover de borde o de tinta POR COMPONENTE debe existir siquiera. R-4.3 guarda `background*` en `:hover`, nada más. Ahora al menos se llaman como deben mientras se decide. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
"from": "control-color-hover",
"to": "hover-control-fg"
refactor(eidos): el catálogo habla un idioma — 269 claves al vocabulario firmado D-TH.6, ejecutada. El slot de tinta pasa a `fg` y el modificador interactivo se pone delante, que es lo que theming §6.7 r7 documentaba sin guard desde que se escribió. Value-preserving: renombra la clave en `recipes/base.ts` y sus 793 referencias en 101 ficheros; no toca un solo valor. claves renombradas 269 en 66 componentes referencias 793 en 101 ficheros censo antes/después 162 recetas · 5.203 knobs · 1.841 públicos (37 %) · 56 sin contrato — IDÉNTICO, como debe ser un rename --names antes/después 269 desviadas → 0 Qué NO entra, y por qué: 47 `{rol}-{slot-de-rol}` canónicas: COLOR_ROLE_SLOTS pone el modificador detrás POR CONSTRUCCIÓN (`primary-solid-hover`) 13 exentas firmadas `--focus-ring-*` es familia del sistema; el color de `aura` es un sustantivo; `stop-color` ES una parte de gradient-builder 47 hovers neutros por VALOR: migran a la capa de estado (§38 + R-4.3), no se renombran — firma 3 6 ocurrencias en historia changelog, errores-toxico, PLAN-affix/background: reescribir un registro fechado lo vuelve mentira El clasificador vive en el censo (`--names`), no en un script suelto, para que el guard R-5.3 consuma la MISMA gramática que el codemod. Su muta-prueba (`__names-mutatest.ts`, 27 casos) es lo que hizo el trabajo: cazó que yo promovía al frente CUALQUIER valor declarado por el morfo, y así `--sidebar-width-icon` (la anchura del raíl colapsado) se convertía en `--sidebar-icon-width` (la anchura de un icono), que es otra cosa. La firma dice «delante lo interactivo, detrás lo dimensional y contextual»: ahora sólo promociona el vocabulario interactivo cerrado, y lo contextual —`below`, `loaded`, `vertical`, `icon`— se queda donde estaba. Los cinco casos de regresión están en la muta-prueba. También cazó que `dropdown-menu.item-bg-hover` lee `var(--color-primary-element)`: es un hover CON VALENCIA (el palette swap de recipe-contract §2), no el hover bespoke que §38 deprecó. Clasificar por el nombre lo habría metido en una migración que no le toca; se clasifica por el VALOR. Verificación (§7.4, artefacto por paso): diff de generated/ 269 renombres 1:1 · 0 cambios de valor · 22 privados reapuntados a los nombres nuevos (`__names-verify-diff`) computed tag-group · field · tabs: 6.467 valores en 23 estados, 0 diffs — y comprobado en el navegador que sirve el CSS nuevo, para que ese 0 no sea el de una copia cacheada huérfanos 0 en código suite eidos 434 pasan · 1 rojo, el conocido (`skin-media-player`). `recipe-css-contract` verde: es el guard que caza el `var()` sin fallback a un nombre que ya no se emite, o sea el fallo exacto de un rename a medias component:audit 163 PASS · 3 NEEDS-WORK, los tres SIN TOCAR por esto check 0 errores en ficheros tocados (los 73 globales son de otras sesiones de la rama; se atribuye por fichero) rtl:check 0 · docs:check 0 formato el renombrado no alarga ninguna línea: ningún fichero tiene más líneas de 100 chars que antes, así que no se pasa prettier — hacerlo reformateaba 300 ficheros de deriva ajena Entra aquí la corrección del repaso de los 7 ya hechos: `gradient-builder.checker-color` → `checker-fg` (el damero de transparencia; ahí `color` era slot). Sus `stop-color-*` no se tocan. Queda para el paso siguiente: R-5.3 no puede graduar a `error` directo mientras los 47 hovers neutros sigan hablando el idioma viejo — o migran antes (firma 3, ya firmada), o el guard necesita una exención greppable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
}
]

Powered by TurnKey Linux.