Deja escrito por dónde entrar mañana, en este orden:
§0 EL EJE VIVO — el chasis de sección, que es lo que hay que retomar. Con la
frase del autor que lo abrió («lo estás convirtiendo en una mierda a base de
parches, ninguna es profesional ni de alcance») y su pregunta, que es la que
tenía razón: si no debería haber un componente del que se basen todos los
bloques. El censo que la confirmó (16 · 15 · 9 · 8 copias del Header), la firma
(que CREZCA Section, no que nazca un hermano), por qué el nombre Block se
descartó (ya significa «a todo el ancho» en el canon), los tres commits, las
dos trampas que costaron —el Background que se capa dentro de la medida, y la
raíz que extiende SectionProps y no HTMLAttributes— y las tres cosas que
quedan: los 19 README describen el nido viejo, el contrato del tier no dice
todavía que la raíz de un block ES un Section, y nada más.
§1 LA COLA, REENCUADRADA — con el aviso de que más de la mitad de lo que sigue
archivado bajo un block tiene la causa en el canon (A-48, A-53, A-60, A-62,
A-65), así que bajarlas dentro de la frontera del tier fabrica parches. Y el
trabajo honesto que sí queda dentro: A-74, A-96 y A-71.
A-11 replanteada en su ficha por la misma razón: su arreglo profesional es que
el canon publique el CATÁLOGO en runtime de sus escalas —como ya hace
EIDOS_VARIANTS— y no siete líneas de exhaustividad repartidas por las demos.
Queda medido lo que hoy está derivado: ContainerSize sin xxl, Breakpoint con 3
de 6, Decor con 5 de 8.
docs:check 0/0 (813). Los avisos de prettier de los dos ficheros son
preexistentes (CRLF), comprobado contra HEAD.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ -591,7 +591,26 @@ _Una ficha por `id` verificado. La reclamación completa vive en el fichero del
**Evidencia** — `web/routes/blocks/site-header/SiteHeaderSite.svelte:25-26` y `web/routes/blocks/hero/HeroSite.svelte:30-31` (cuatro uniones copiadas). El block hace lo correcto: `site-header/types.ts` importa los tipos del canon.
**Disposición** — Importar los tipos del canon en las demos. Fase 3.
**Disposición** — ⚠️ **REPLANTEADA 2026-08-19 por el autor, y la anterior queda
retirada.** Se propuso importar los tipos y blindar los chips con una línea de
exhaustividad por fichero; el autor lo paró: es boilerplate repetido en siete
sitios para compensar algo que le falta al framework, no un arreglo.
**El defecto real no es que las demos copien uniones.** Es que el canon publica
**tipos sin catálogo en runtime**: `ContainerSize`, `SectionSize` y
`BackgroundPatternKind` sólo existen como tipo, así que cualquiera que necesite
enumerarlos —una demo, una pantalla de ajustes, una página de docs— escribe la
lista a mano y se queda atrás cuando el canon crece. El framework ya tiene la
forma buena en dos sitios (`EIDOS_VARIANTS`, `BREAKPOINTS_DEFAULT`) y no la
aplica al resto.
Medido en el árbol el 2026-08-19: `ContainerSize` copiada **sin `xxl`** en dos
demos, `Breakpoint` con **3 de 6** valores, `Decor` con **5 de 8** patrones, y
los propios chips como literales escritos a mano.
Se cierra **una vez, en el canon** —cada escala publica su lista y los
consumidores derivan—, no demo a demo. Fuera del eje mientras esté acotado a
`blocks/`.
### A-12 — ARREGLADO · `feature-grid` · doctrina · MEDIA