astra
alpha-0.1-background
alpha-0.1-dir-prefs
alpha-0.1-sec-dom
menubar-v4-safe
active-uix
morfo-runtime
morfo-driven-soma
semantuix
glm-5
main
sium-v1.0
${ noResults }
8 Commits (b01646cfd8462dcd61e746d89dcc19dd3847ea17)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
c0a7050f54 |
docs(process): registro de lectura — guías + theming leídos, e inventario corregido
Cuarta sesión de lectura del corpus. Leídos completos sobre el original:
component-guide (1568), component-audit (369), demo-authoring (266),
book-deviations (851) y todo theming salvo el changelog (gradient-finish,
guide, notes, channels). 4.247 líneas.
El hallazgo que más cambia el trabajo es sobre el propio registro: el
inventario estaba TRUNCADO. Contaba «30 documentos / 19.000 líneas»; el corpus
que el mapa declara son 59 ficheros / 27.348 líneas. Faltaban dos que el propio
corpus llama vinculantes — guides/demo-authoring.md (LOCKED, parte del «paquete
mínimo» de todo brief) y spec/delegation-contract.md (NORMATIVE, RFC-2119) — y
theming/changelog.md (1879), el mayor sin leer. Inventario ya corregido.
Segundo hallazgo de método: una lectura CADUCA. sema.md creció 1024 -> 1051 el
mismo día que se dio por leído (extracción del motor Web Audio al art $sound).
Comprobar wc -l contra el inventario al arrancar cada sesión.
15 hallazgos nuevos (nº 24-38), todos con doble anclaje: documento + línea sobre
el original, y comando contra el código. Los que más pesan:
- Sema tiene CUATRO canales en el código (AnnounceChannel incluido, cableado en
engine.ts desde
|
2 months ago |
|
|
b7139cd825 |
docs(process): handoff en frío — el registro deja de exigir leerse entero
El registro había crecido a 450 líneas y una sesión nueva tenía que atravesarlas para saber dónde está y qué hacer. Ahora arranca con «Empieza aquí»: dónde está (21/30 documentos, ≈10.400 L), qué leer y en qué orden, las tres reglas que no se saltan, lo único que espera decisión, y el estado del árbol. Y se retira lo que ya se leía como TODO vivo estando cerrado: - La sección de contaminación queda marcada como histórica — se conserva porque la lección (una edición revertida citada como doctrina) vale más que el incidente, pero deja de pedir una relectura hecha. - Los tres «NO resolver antes de leer §25» de los hallazgos 7, 9 y 12 apuntan al nº 13, que los cierra. Un lector que llegue a ellos ya no cree abierta la pregunta del color. - El hallazgo nº 1 pierde su aviso de RELEER: el párrafo se confirmó sobre el original (`active-uix.md` 61–63). - El inventario dice explícitamente que no queda ningún documento en RELEER. Sin cambios en los hallazgos ni en el material leído. `docs:check` sigue con su único error preexistente (nº 21). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
2 months ago |
|
|
37061a7371 |
docs(process): canon + theming completos — el corpus ya tenía escrita la respuesta
Tercera sesión de lectura: el canon entero (tsc · vocabularies · recipe-contract), lo que faltaba del núcleo (active-app · agent · blocks) y `theming/reference.md` COMPLETA. 21 de 30 documentos leídos sobre el original (≈10.400 L de 19.000). ## La pregunta del color: el corpus la tenía respondida, dos veces y mejor `reference.md` §1.bis se titula «Theming lives in Eidos, not in Morfo (by design)» y se abre con «This is the most frequent architectural question». Existe literalmente para impedir el error que cometió la sesión revertida. Su apartado «What SHOULD enter morfo regarding theming» es inequívoco: un componente que expone `color` como prop DEBE declarar `data-color.values` en su morfo; los attrs puramente visuales (`data-variant`, `data-size`) NO. Y §39 (2026-07-15, la doctrina más reciente) da el criterio mecánico y el porqué: «morfo declares an attr only when its driving prop crosses the soma boundary», con el modo de fallo medido — si declaras en morfo un attr cuyo prop no llega a soma, el runtime emite `undefined` y `mergeProps` pisa el sello del wrapper. La frontera deja de ser convención: es de dónde se resuelve el valor. ## Y el agujero real, ahora seguido extremo a extremo `resolveComponentColor` (`eidos/lib/component-color.ts`) considera canónicos los 9 roles MÁS las 33 escalas donantes = 42 nombres; sólo un color CSS crudo se desvía a `data-color-custom`. El wrapper de switch pasa ese `dataColor` a soma, y el provider lo devuelve verbatim. El morfo declara 6 valores. `<Switch color="teal">` emite `data-color="teal"`, fuera del enum — y no es un caso aislado: avatar 8 · button 8 · card 8 · switch 6 · toggle 6 · dialog 3, contra 42 posibles. NO verificado si salta hoy en CI: `morfo:check` sólo ve lo que las demos renderizan de hecho, y no lo he ejecutado. Ese es justamente el agujero — el guard de «lo declarado se cumple» depende de que una demo elija el valor infractor, en el eje que la decisión de 2026-07-18 abrió a 42. Es el único hallazgo que pide decisión de usuario. ## Dos derivas más - `active-app.md` enumera a mano 12 service factories; hay 15 (faltan `agent`, `motion`, `scene`, en la tabla y en el árbol). Misma enfermedad que el «8 roles» y contra la ley que el propio corpus escribió: catálogo hardcoded → puntero. - `canon/tsc.md` anuncia el scope `event:` sin nota, mientras `reference.md` §13 lo marca «Superseded» y `motion.md` «descartado». El tipo existe, cero recetas lo consumen: las tres frases son ciertas, pero quien construya desde el canon lo leerá como disponible. Nada arreglado (regla 5). Quedan ≈6.200 líneas: las guías, `decisions/` y los RFCs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
2 months ago |
|
|
d8ff647d7c |
docs(process): los 12 contaminados, releídos — y la pregunta del color, cerrada
Segunda sesión de lectura. Los 12 documentos que el revert dejó marcados
`RELEER` (≈5.000 L) leídos enteros sobre el original, más `theming/reference`
§20–§28, que era donde el propio registro decía que estaba la mitad que
faltaba.
Paso 0, antes de leer nada: comprobar que el árbol no sigue contaminado.
`git diff c39170abb^ HEAD` sobre los docs doctrinales devuelve vacío — HEAD es
byte a byte el estado pre-auditoría. Cuesta un comando y es lo que separa la
doctrina de la autocita; queda escrito como regla 7.
## La pregunta aparcada: `data-color` SÍ va en el morfo
Tres anclajes independientes, ninguno citándose a sí mismo: la tabla §6 de
`active-architecture` lo pone en la casilla de `dom.apply (effect)` — la misma
que `data-state`, no la del wrapper — y `git log -L` traza esa fila a
`d4dfdaffa`, muy anterior a cualquier agente; las reglas E-3.5 / R-3.1 / R-3.3
/ G-1.2 del checklist; y 12 morfos que lo declaran con `v.propRef('color')`.
La conclusión de la sesión revertida era falsa.
Debajo había una pregunta mejor, y esa sigue abierta: el morfo de `switch`
declara `data-color` con 6 valores cerrados, mientras la decisión de 2026-07-18
(§25) manda que `color` acepte el sistema completo — 33 escalas y valor CSS
crudo — con el tipo abierto `ComponentColorProp`. Y `morfo-check.ts:167` falla
cuando un attr con `values` emite algo fuera del conjunto. NO verificado si hoy
salta: pide una demo con valor fuera del enum y `morfo:check` con dev server.
Es lo único de los nueve hallazgos que pide decisión de usuario.
## Lo demás, verificado contra el código, que es lo que no puede haber escrito un agente
- `provider.commitState()` / `emitEvent()`: cero coincidencias en todo el repo.
Los documentan dos docs. La sesión revertida acertaba en el hecho y falló en
el método; entre sí los dos docs no se contradicen — la deriva es doc↔código.
- El guard de tests de provider no existe: `NO_MISSING_PROVIDER_TESTS` sólo
aparece en docs, sin comprobación en `scripts/` ni invariante en
`contracts.test.ts`. Cierra por la puerta buena la pregunta que quedó abierta.
- `clsx` (soma-architecture stale contra soma.md y contra el código), Aura y
`uix.scene` (packs y glossary describen un futuro que ya ocurrió), el
frontmatter de CANON apuntando a un PDF que no está, el entry huérfano de
`package.json`.
- `docs:check` lleva en rojo desde el revert y por el revert: `c39170abb`
arreglaba `callout/README.md:23` y `3097cfcb6` lo deshizo con todo lo demás.
El revert deshizo también arreglos buenos; su diff merece una pasada.
Nada arreglado — la regla 5 lo prohíbe hasta acabar, y quedan ≈11.900 líneas.
Lo no hecho queda enumerado en el propio registro.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2 months ago |
|
|
00118dd9e4 |
docs(process): eidos.md completa — 'eidos-only' es clasificacion valida
`architecture/eidos.md` (1055 lineas) leida completa, limpia. Dos piezas que casi cierran la pregunta aparcada sobre `data-color`: - §Selector-drift defense define **eidos-only** como «the marker is there, but at least one `data-*` is not declared in the morfo. **Valid by convention** (visual tokens like `data-variant`, `data-size` come from the wrapper)». Solo *invalid* es bug. - THM-4 da la disposicion inversa: un attr «declared FOR a visual axis and that nothing anywhere consumes» es deuda, y se «consume it or prune it from the morfo». Juntas apuntan a que un `data-color` del wrapper ausente del morfo es legitimo, y que uno declarado solo por eje visual es podable. Pero falta `theming/reference.md` §25, que `eidos.md` designa canon del color: la pregunta NO se cierra hasta leerla. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
2 months ago |
|
|
5f01746426 |
docs(process): eidos.md hasta la 750 — media respuesta a la pregunta aparcada
`eidos.md` leida hasta la linea 750 de 1055 (limpia, no la edito la sesion revertida). Lo relevante: existe una categoria SANCIONADA de data-attrs visuales que estampa el WRAPPER y que no van al morfo — linea 489: «The wrapper adds the visual token data-attrs (`data-variant`, `data-size`, `data-block`, `data-icon-only`)». Y la tabla «From morfo» enumera lo que eidos consume del contrato: `data-color` NO aparece. Eso reconcilia a medias la regla de `morfo.md` 878 («lo que el provider emite, se declara») con la pregunta sobre `data-color`: la regla habla del provider de soma; hay otra via legitima por el wrapper. `data-size` es el precedente verificable (`switch.css` lo usa y no esta en el morfo). Falta la otra mitad — si `data-color` pertenece a esa categoria. La lista de la 489 es ilustrativa y no lo incluye; `eidos.md` remite el canon del color a `theming/reference.md` §25. Anotado como NO resolver antes de leer §25. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
2 months ago |
|
|
25f8126e0a |
docs(process): morfo.md leída — y una regla que cuestiona la conclusión revertida
`architecture/morfo.md` (888 lineas) leída completa en su estado original. Era la prioridad del registro: la capa del contrato, la mas tocada en la auditoria fallida, y en la que se escribio criterio sin haberla leido. Lo que sale: - El hueco documental de §Step 2 (omite `'private'`, la lista de referencia si lo documenta) es REAL, confirmado contra el original. Lo que estaba mal era el criterio que se escribio ahi como arreglo, que clasificaba mal a los primitivos de API plana. El hueco sigue abierto. - `emit: 'value'` es forma legitima para attrs que llevan valor real. - Y una regla que CUESTIONA la conclusion revertida sobre `data-color`: «Provider emits a data-attr not in the morfo → morfo-check fails in CI. Either add the attr to the morfo or rename it to `data-_*`», mas el incidente 2026-05-20. La sesion revertida concluyo que `data-color` no debe ir en el morfo por ser vocabulario de eidos; esta regla dice que lo emitido se declara. Queda anotado como NO resolver hasta leer `eidos.md` completo y `theming/reference`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
2 months ago |
|
|
33d4e81daf |
docs(process): registro de lectura del corpus doctrinal
La lectura del corpus no cabe en una ventana de contexto (~19.000 lineas). Sin registro, cada sesion la reempieza o se la salta — que es como se auditó a ciegas el 2026-07-29/30 y hubo que revertir 7 commits (`3097cfcb6`). Lo importante del fichero no es el inventario, es el aviso de contaminación: la lectura del 2026-07-30 se hizo sobre el árbol CON las ediciones de `c39170abb` dentro, así que 7 de los 10 documentos leídos devolvían la escritura del propio agente como si fuera doctrina. Dos casos medidos: - `testing-and-tooling.md` — el original dice que el guard de tests por provider existe; la edición lo había cambiado a «convention, not a guard», y se citó esa frase para justificar una decisión de arnés. Autocita. - `overview.md` — la edición sustituyó «Three Soma scenarios» (`commitState`/`emitEvent`) por «One door: runtime.trigger», y con eso se «descubrió» una contradicción contra `soma-architecture.md` que la propia edición había creado. Quedan por tanto 3 documentos de lectura válida (`README`, `sema`, `eidos` parcial) y 7 marcados RELEER. `morfo.md` (888 líneas) sigue sin empezar, y es la prioridad: es la capa del contrato y se llegó a escribir criterio en su §Step 2 sin haberla leído. Se registran los 4 hallazgos que sí se sostienen (todos de documentos limpios y verificados como originales) y se retiran los 2 que eran autocita. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
2 months ago |