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/docs/process/CONTINUE-event-name-normali...

176 lines
10 KiB

docs(process): los nueve defectos abiertos salen de mi memoria y entran en el repo Los defectos que dejo el barrido docs-codigo del 2026-08-11 vivian solo en la memoria de la sesion que los encontro. Eso es una superficie de recuerdo del agente, no del proyecto: un handoff que no se carga los pierde, y son la unica huella de nueve averias que se decidio NO tocar. Ahora tienen casa, con la forma del ledger de blocks: escritura por `id`, un ARREGLADO lleva su sha, y una fila de gap no se borra nunca. D1 · D2 · D3 · D4 arreglados (`f4e414e2e`, `6f42eebfe`). D5…D9 confirmados y abiertos. D10 es nuevo y nace de un error mio de metodo. D10 — la migracion a medias --------------------------- El 2026-08-06 `dragSignalOverrides` paso a nombrar `step` (el gesto suena por REPETICION) y eso dejo a los tres resolvers de gesto sin un solo llamador. Yo lei «cero llamadores» y propuse retirarlos. Cinco documentos dicen lo contrario, y dos de ellos estaban en la salida de mi propio grep sin que los abriera: `PLAN-sound-engine.md` §4 los pone en la columna «sema conserva» de la LINEA DE CORTE con `$sound`, y `PLAN-audio-player.md` D-AP.7 los da por medidos con un check verde. No es codigo muerto: es una migracion que no se adjudico. De ahi la regla 4 del ledger. «No lo referencia nadie» es una observacion, nunca un veredicto — la misma leccion que la fila de «Gaps» que dos agentes borraron. Verificado antes de escribir cada fila, no copiado de la memoria: D2 esta arreglado y mi registro lo daba por abierto; y la primera lectura de D9 decia que los tres `commit-*` de chronos tampoco se disparan — falso, se despachan por variable en `emitOnChip`, invisibles a un grep de `trigger('literal')`. Y el handoff del plan --------------------- `PLAN-event-name-normalization.md` no tenia. El eje esta cerrado (256/256 con prefijo, guard visto fallar, barrido sobre los 172 morfos), pero quedan dos decisiones tuyas bloqueando trabajo — D10 y el `present-rise` anclado al trigger — mas tres cosas que el eje destapo sin cerrar: el `grid` repetido con `numberOfMonths=2`, el nombre `handle-drag-progress`, y los cinco defectos. `docs:check` 0 errores sobre 623 docs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
# CONTINUE — normalización de nombres de evento
> Handoff de [`PLAN-event-name-normalization.md`](./PLAN-event-name-normalization.md).
> **✅ EL EJE ESTÁ CERRADO** (`f44d1486d`) y su aceptación cumplida y medida.
>
> ⛔ **Lo que sigue NO es este eje, y no se ejecuta desde aquí.** Son cosas que el
> barrido destapó; cada una necesita su propia iniciativa y su propia puerta.
> Esta sección existe para que no se pierdan, **no para que se hagan a goteo**.
>
> El 2026-08-12 se hizo exactamente eso y salió caro: la jornada se cerró a las
> 03:52, y de 13:59 a 20:43 la sesión siguió trabajando el ledger como si fuera
> el plan — `months` en cuatro calendarios, `defaultElement` en 28 partes,
> Home/End en tres componentes, y al final el borrado de la librería de sonido,
> que el autor revirtió (`0d10b983e`). Ninguno de esos pasos parece un salto; el
> desvío es que **un handoff se leyó como backlog**. El trabajo salió bien y
> verificado — no es el punto. El punto es que nadie decidió cambiar el objetivo.
docs(process): los nueve defectos abiertos salen de mi memoria y entran en el repo Los defectos que dejo el barrido docs-codigo del 2026-08-11 vivian solo en la memoria de la sesion que los encontro. Eso es una superficie de recuerdo del agente, no del proyecto: un handoff que no se carga los pierde, y son la unica huella de nueve averias que se decidio NO tocar. Ahora tienen casa, con la forma del ledger de blocks: escritura por `id`, un ARREGLADO lleva su sha, y una fila de gap no se borra nunca. D1 · D2 · D3 · D4 arreglados (`f4e414e2e`, `6f42eebfe`). D5…D9 confirmados y abiertos. D10 es nuevo y nace de un error mio de metodo. D10 — la migracion a medias --------------------------- El 2026-08-06 `dragSignalOverrides` paso a nombrar `step` (el gesto suena por REPETICION) y eso dejo a los tres resolvers de gesto sin un solo llamador. Yo lei «cero llamadores» y propuse retirarlos. Cinco documentos dicen lo contrario, y dos de ellos estaban en la salida de mi propio grep sin que los abriera: `PLAN-sound-engine.md` §4 los pone en la columna «sema conserva» de la LINEA DE CORTE con `$sound`, y `PLAN-audio-player.md` D-AP.7 los da por medidos con un check verde. No es codigo muerto: es una migracion que no se adjudico. De ahi la regla 4 del ledger. «No lo referencia nadie» es una observacion, nunca un veredicto — la misma leccion que la fila de «Gaps» que dos agentes borraron. Verificado antes de escribir cada fila, no copiado de la memoria: D2 esta arreglado y mi registro lo daba por abierto; y la primera lectura de D9 decia que los tres `commit-*` de chronos tampoco se disparan — falso, se despachan por variable en `emitOnChip`, invisibles a un grep de `trigger('literal')`. Y el handoff del plan --------------------- `PLAN-event-name-normalization.md` no tenia. El eje esta cerrado (256/256 con prefijo, guard visto fallar, barrido sobre los 172 morfos), pero quedan dos decisiones tuyas bloqueando trabajo — D10 y el `present-rise` anclado al trigger — mas tres cosas que el eje destapo sin cerrar: el `grid` repetido con `numberOfMonths=2`, el nombre `handle-drag-progress`, y los cinco defectos. `docs:check` 0 errores sobre 623 docs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
## 0 · Estado en una línea
`{familia}-{verbo}[-{matiz}]` es ley: **256 eventos declarados, 256 con prefijo,
0 ambiguos**, y la puerta está cerrada con un guard en `validateMorfo` más un
barrido que se lo pasa a los **172 morfos** del repo (`components` + `internal` +
fixtures). Visto fallar antes de darlo por bueno.
Commits: `6f42eebfe` (el eje) · `f4e414e2e` (D1·D3·D4) · `f44d1486d` (cierre:
las dos mitades que el troceado por hunks dejó al otro lado del corte, y el
barrido de catálogo).
Rama compartida `alpha-0.1-dir-prefs`: **hay trabajo de otra sesión sin
commitear en el árbol** (A-85, `consumerWins`, `aria-label` en el bag). No lo
barras.
## 1 · Lo que NO se toca desde aquí
Cada punto de esta sección pertenece a otra iniciativa o a una decisión del
autor. **Ninguno se ejecuta sin abrir la suya**, con su plan y su puerta — y el
que toque el eje de sonido empieza por
[`CONTINUE-sound-engine.md`](./CONTINUE-sound-engine.md), que es lo que no se
hizo el 2026-08-12.
| Punto | Dueño |
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------- |
| **D10** · los 3 resolvers de gesto | ~~el eje de SONIDO~~ **CERRADO 2026-08-12**: retirada firmada y ejecutada desde el eje (ledger §D10) |
| **D13** · `tooltip` 3 de 3 mudo | `CONTINUE-sema-audit.md`, que ya lo tipificó como contrato muerto |
| **D13** · `virtual-list`/`grid` `handle-scroll*` | vocabulario de MORFO: falta un `emission: 'app'` que declare «lo emite la app». No es cableado |
| **D13** · `gradient-picker.commit-reset` | `CONTINUE-sema-audit.md` §S-14 (1 de 6 verbos delegados) |
| **D14** · el foco del teclado de chronos | chronos. Es de foco, no de firma, y pide medición en navegador real |
| **§1.2** · `present-rise` sobre el trigger | decisión de diseño del autor |
| **§2.2** · `handle-drag-progress` | decisión de vocabulario contra `docs/CANON.md` §verbos |
docs(process): los nueve defectos abiertos salen de mi memoria y entran en el repo Los defectos que dejo el barrido docs-codigo del 2026-08-11 vivian solo en la memoria de la sesion que los encontro. Eso es una superficie de recuerdo del agente, no del proyecto: un handoff que no se carga los pierde, y son la unica huella de nueve averias que se decidio NO tocar. Ahora tienen casa, con la forma del ledger de blocks: escritura por `id`, un ARREGLADO lleva su sha, y una fila de gap no se borra nunca. D1 · D2 · D3 · D4 arreglados (`f4e414e2e`, `6f42eebfe`). D5…D9 confirmados y abiertos. D10 es nuevo y nace de un error mio de metodo. D10 — la migracion a medias --------------------------- El 2026-08-06 `dragSignalOverrides` paso a nombrar `step` (el gesto suena por REPETICION) y eso dejo a los tres resolvers de gesto sin un solo llamador. Yo lei «cero llamadores» y propuse retirarlos. Cinco documentos dicen lo contrario, y dos de ellos estaban en la salida de mi propio grep sin que los abriera: `PLAN-sound-engine.md` §4 los pone en la columna «sema conserva» de la LINEA DE CORTE con `$sound`, y `PLAN-audio-player.md` D-AP.7 los da por medidos con un check verde. No es codigo muerto: es una migracion que no se adjudico. De ahi la regla 4 del ledger. «No lo referencia nadie» es una observacion, nunca un veredicto — la misma leccion que la fila de «Gaps» que dos agentes borraron. Verificado antes de escribir cada fila, no copiado de la memoria: D2 esta arreglado y mi registro lo daba por abierto; y la primera lectura de D9 decia que los tres `commit-*` de chronos tampoco se disparan — falso, se despachan por variable en `emitOnChip`, invisibles a un grep de `trigger('literal')`. Y el handoff del plan --------------------- `PLAN-event-name-normalization.md` no tenia. El eje esta cerrado (256/256 con prefijo, guard visto fallar, barrido sobre los 172 morfos), pero quedan dos decisiones tuyas bloqueando trabajo — D10 y el `present-rise` anclado al trigger — mas tres cosas que el eje destapo sin cerrar: el `grid` repetido con `numberOfMonths=2`, el nombre `handle-drag-progress`, y los cinco defectos. `docs:check` 0 errores sobre 623 docs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
### 1.1 · Los 3 resolvers de gesto — `D10`
Ficha completa en [`AUDIT-docs-code-ledger.md`](./AUDIT-docs-code-ledger.md) §D10.
Resumen: el cambio del 2026-08-06 dejó `resolveHandleDragSound` /
`resolveSliderDragSound` / `resolveSplitterDragSound` sin llamador, y cinco
documentos siguen describiéndolos como vigentes — incluido `PLAN-sound-engine.md`
§4, donde son la columna «sema conserva» de la **línea de corte** con `$sound`.
**¿Se retiran o se recablean?** La tabla de corte hay que actualizarla en los dos
casos. De esta decisión cuelgan también el homónimo `SoundContour` (5 sitios,
propuesto `GestureContour`) y los dos comentarios rancios del splitter.
docs(process): la ronda de decisiones queda firmada — cinco disposiciones, dos corregidas al re-analizar D10 SE RETIRA (lo ejecuta el eje de sonido, su handoff PRIMERO), y el re-analisis añade un SEXTO sitio a adjudicar: sema.md §per-emit payload aun describe pitch/gain/contour cuando soma adjunta hoy sound:'step' + curva haptica (dragSignalOverrides del slider y del knob, con el trade-off del 2026-08-06 citado en su comentario). fixedWeeks: alinear a false a secas era la opcion debil — las filas del mes son de altura FIJA (grid-auto-rows, chronos.css:278) y un false pelado cambia la semana fantasma por saltos de altura al navegar. Firmado: crecer las filas (modelo Google), con false incluido; es arreglo de RECETA, no un flip de flag. Chip bloqueado: via (b), y la letra pequeña va INCLUIDA — el morfo de drag-drop YA declara data-disabled (declaracion sin emisor) y el cursor vive en drag-drop.css; pero el chip fusiona tres morfos en un elemento clicable, asi que la regla de archetype item se anula en su receta y aria-disabled NO aterriza en el elemento fusionado. mode/scope: SE RETIRAN, con el barrido de la regla 4 hecho de verdad: 0 hits en docs/, 0 lectores del compilado, 4 ficheros de alcance. SemaCause queda como pregunta hermana (mas muerto aun: ni atraviesa morfo). present-rise: medir primero (lo esperable es la receta F4, pero decide la medida). handle-drag-progress: revisar contra CANON, no renombrar — el matiz es legal y puede ser deliberado. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
**Firmada (2026-08-12): SE RETIRAN** — ficha §D10 del ledger, que fija además un
2 months ago
sexto sitio a adjudicar (`sema.md` §per-emit payload, que aún describía el
payload de la era resolver). **Y EJECUTADA el mismo día desde el eje** (su
handoff leído primero); el ledger §D10 lleva el detalle y los 8 sitios
adjudicados.
docs(process): la ronda de decisiones queda firmada — cinco disposiciones, dos corregidas al re-analizar D10 SE RETIRA (lo ejecuta el eje de sonido, su handoff PRIMERO), y el re-analisis añade un SEXTO sitio a adjudicar: sema.md §per-emit payload aun describe pitch/gain/contour cuando soma adjunta hoy sound:'step' + curva haptica (dragSignalOverrides del slider y del knob, con el trade-off del 2026-08-06 citado en su comentario). fixedWeeks: alinear a false a secas era la opcion debil — las filas del mes son de altura FIJA (grid-auto-rows, chronos.css:278) y un false pelado cambia la semana fantasma por saltos de altura al navegar. Firmado: crecer las filas (modelo Google), con false incluido; es arreglo de RECETA, no un flip de flag. Chip bloqueado: via (b), y la letra pequeña va INCLUIDA — el morfo de drag-drop YA declara data-disabled (declaracion sin emisor) y el cursor vive en drag-drop.css; pero el chip fusiona tres morfos en un elemento clicable, asi que la regla de archetype item se anula en su receta y aria-disabled NO aterriza en el elemento fusionado. mode/scope: SE RETIRAN, con el barrido de la regla 4 hecho de verdad: 0 hits en docs/, 0 lectores del compilado, 4 ficheros de alcance. SemaCause queda como pregunta hermana (mas muerto aun: ni atraviesa morfo). present-rise: medir primero (lo esperable es la receta F4, pero decide la medida). handle-drag-progress: revisar contra CANON, no renombrar — el matiz es legal y puede ser deliberado. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
docs(process): los nueve defectos abiertos salen de mi memoria y entran en el repo Los defectos que dejo el barrido docs-codigo del 2026-08-11 vivian solo en la memoria de la sesion que los encontro. Eso es una superficie de recuerdo del agente, no del proyecto: un handoff que no se carga los pierde, y son la unica huella de nueve averias que se decidio NO tocar. Ahora tienen casa, con la forma del ledger de blocks: escritura por `id`, un ARREGLADO lleva su sha, y una fila de gap no se borra nunca. D1 · D2 · D3 · D4 arreglados (`f4e414e2e`, `6f42eebfe`). D5…D9 confirmados y abiertos. D10 es nuevo y nace de un error mio de metodo. D10 — la migracion a medias --------------------------- El 2026-08-06 `dragSignalOverrides` paso a nombrar `step` (el gesto suena por REPETICION) y eso dejo a los tres resolvers de gesto sin un solo llamador. Yo lei «cero llamadores» y propuse retirarlos. Cinco documentos dicen lo contrario, y dos de ellos estaban en la salida de mi propio grep sin que los abriera: `PLAN-sound-engine.md` §4 los pone en la columna «sema conserva» de la LINEA DE CORTE con `$sound`, y `PLAN-audio-player.md` D-AP.7 los da por medidos con un check verde. No es codigo muerto: es una migracion que no se adjudico. De ahi la regla 4 del ledger. «No lo referencia nadie» es una observacion, nunca un veredicto — la misma leccion que la fila de «Gaps» que dos agentes borraron. Verificado antes de escribir cada fila, no copiado de la memoria: D2 esta arreglado y mi registro lo daba por abierto; y la primera lectura de D9 decia que los tres `commit-*` de chronos tampoco se disparan — falso, se despachan por variable en `emitOnChip`, invisibles a un grep de `trigger('literal')`. Y el handoff del plan --------------------- `PLAN-event-name-normalization.md` no tenia. El eje esta cerrado (256/256 con prefijo, guard visto fallar, barrido sobre los 172 morfos), pero quedan dos decisiones tuyas bloqueando trabajo — D10 y el `present-rise` anclado al trigger — mas tres cosas que el eje destapo sin cerrar: el `grid` repetido con `numberOfMonths=2`, el nombre `handle-drag-progress`, y los cinco defectos. `docs:check` 0 errores sobre 623 docs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
### 1.2 · `present-rise` sobre el TRIGGER
Regresión medida durante F4, **no arreglada**. El sello de apertura de select /
combobox / navigation-menu queda anclado al trigger con `fill: forwards`. La
causa está diagnosticada: el dialecto partido (`open` pelado contra
`emerge-open`) actuaba **accidentalmente como filtro**, y al unificar los nombres
la firma alcanza sitios que antes se le escapaban. El eje de superficie
perceptual ([`CONTINUE-perceptual-surface.md`](./CONTINUE-perceptual-surface.md))
tiene el contexto: un sello anclado al trigger es un vestigio de la era `pre` —
mídelo antes de razonarlo.
Lo que hay que decidir: ¿la firma de `present` se mueve al contenido, o el
trigger se excluye por selector? Es la misma pregunta que resolvió `shift` al
mover su sello del BOTÓN al `grid`.
docs(process): la ronda de decisiones queda firmada — cinco disposiciones, dos corregidas al re-analizar D10 SE RETIRA (lo ejecuta el eje de sonido, su handoff PRIMERO), y el re-analisis añade un SEXTO sitio a adjudicar: sema.md §per-emit payload aun describe pitch/gain/contour cuando soma adjunta hoy sound:'step' + curva haptica (dragSignalOverrides del slider y del knob, con el trade-off del 2026-08-06 citado en su comentario). fixedWeeks: alinear a false a secas era la opcion debil — las filas del mes son de altura FIJA (grid-auto-rows, chronos.css:278) y un false pelado cambia la semana fantasma por saltos de altura al navegar. Firmado: crecer las filas (modelo Google), con false incluido; es arreglo de RECETA, no un flip de flag. Chip bloqueado: via (b), y la letra pequeña va INCLUIDA — el morfo de drag-drop YA declara data-disabled (declaracion sin emisor) y el cursor vive en drag-drop.css; pero el chip fusiona tres morfos en un elemento clicable, asi que la regla de archetype item se anula en su receta y aria-disabled NO aterriza en el elemento fusionado. mode/scope: SE RETIRAN, con el barrido de la regla 4 hecho de verdad: 0 hits en docs/, 0 lectores del compilado, 4 ficheros de alcance. SemaCause queda como pregunta hermana (mas muerto aun: ni atraviesa morfo). present-rise: medir primero (lo esperable es la receta F4, pero decide la medida). handle-drag-progress: revisar contra CANON, no renombrar — el matiz es legal y puede ser deliberado. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
**Disposición firmada (2026-08-12): medir primero en navegador.** Lo esperable
es la receta F4 otra vez (open `pre` cuyo content no ha montado, aterrizando en
el trigger — select/combobox están en la cola de F3 justo como «leer
providers»), pero la medida decide, no el razonamiento.
**MEDIDO Y ARREGLADO para select/combobox (2026-08-13).** La medida matizó la
expectativa: el open YA era `post` — el vestigio era el `targetOverride` al
trigger del provider, LEGALIZADO por un `allowedTargets` del 2026-08-10 (el eje
equivocado). ANTES: open/close sobre TRIGGER y `present-rise` corriendo sobre
el botón; DESPUÉS: open/close sobre CONTENT, present fuera del trigger.
Receta aplicada: fuera el override y el `allowedTargets` del open; el close
declara `targetFallback` ([trigger] / [trigger, input]); la selección ancla por
`partInstance` al item elegido. **Queda navigation-menu** (mismo síntoma
declarado aquí; su sitio vive en la cola de colecciones de F3).
docs(process): los nueve defectos abiertos salen de mi memoria y entran en el repo Los defectos que dejo el barrido docs-codigo del 2026-08-11 vivian solo en la memoria de la sesion que los encontro. Eso es una superficie de recuerdo del agente, no del proyecto: un handoff que no se carga los pierde, y son la unica huella de nueve averias que se decidio NO tocar. Ahora tienen casa, con la forma del ledger de blocks: escritura por `id`, un ARREGLADO lleva su sha, y una fila de gap no se borra nunca. D1 · D2 · D3 · D4 arreglados (`f4e414e2e`, `6f42eebfe`). D5…D9 confirmados y abiertos. D10 es nuevo y nace de un error mio de metodo. D10 — la migracion a medias --------------------------- El 2026-08-06 `dragSignalOverrides` paso a nombrar `step` (el gesto suena por REPETICION) y eso dejo a los tres resolvers de gesto sin un solo llamador. Yo lei «cero llamadores» y propuse retirarlos. Cinco documentos dicen lo contrario, y dos de ellos estaban en la salida de mi propio grep sin que los abriera: `PLAN-sound-engine.md` §4 los pone en la columna «sema conserva» de la LINEA DE CORTE con `$sound`, y `PLAN-audio-player.md` D-AP.7 los da por medidos con un check verde. No es codigo muerto: es una migracion que no se adjudico. De ahi la regla 4 del ledger. «No lo referencia nadie» es una observacion, nunca un veredicto — la misma leccion que la fila de «Gaps» que dos agentes borraron. Verificado antes de escribir cada fila, no copiado de la memoria: D2 esta arreglado y mi registro lo daba por abierto; y la primera lectura de D9 decia que los tres `commit-*` de chronos tampoco se disparan — falso, se despachan por variable en `emitOnChip`, invisibles a un grep de `trigger('literal')`. Y el handoff del plan --------------------- `PLAN-event-name-normalization.md` no tenia. El eje esta cerrado (256/256 con prefijo, guard visto fallar, barrido sobre los 172 morfos), pero quedan dos decisiones tuyas bloqueando trabajo — D10 y el `present-rise` anclado al trigger — mas tres cosas que el eje destapo sin cerrar: el `grid` repetido con `numberOfMonths=2`, el nombre `handle-drag-progress`, y los cinco defectos. `docs:check` 0 errores sobre 623 docs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
## 2 · Abierto, sin bloquear
### 2.1 · `grid` es una parte REPETIDA — **CERRADO** `e5811e422`
docs(process): los nueve defectos abiertos salen de mi memoria y entran en el repo Los defectos que dejo el barrido docs-codigo del 2026-08-11 vivian solo en la memoria de la sesion que los encontro. Eso es una superficie de recuerdo del agente, no del proyecto: un handoff que no se carga los pierde, y son la unica huella de nueve averias que se decidio NO tocar. Ahora tienen casa, con la forma del ledger de blocks: escritura por `id`, un ARREGLADO lleva su sha, y una fila de gap no se borra nunca. D1 · D2 · D3 · D4 arreglados (`f4e414e2e`, `6f42eebfe`). D5…D9 confirmados y abiertos. D10 es nuevo y nace de un error mio de metodo. D10 — la migracion a medias --------------------------- El 2026-08-06 `dragSignalOverrides` paso a nombrar `step` (el gesto suena por REPETICION) y eso dejo a los tres resolvers de gesto sin un solo llamador. Yo lei «cero llamadores» y propuse retirarlos. Cinco documentos dicen lo contrario, y dos de ellos estaban en la salida de mi propio grep sin que los abriera: `PLAN-sound-engine.md` §4 los pone en la columna «sema conserva» de la LINEA DE CORTE con `$sound`, y `PLAN-audio-player.md` D-AP.7 los da por medidos con un check verde. No es codigo muerto: es una migracion que no se adjudico. De ahi la regla 4 del ledger. «No lo referencia nadie» es una observacion, nunca un veredicto — la misma leccion que la fila de «Gaps» que dos agentes borraron. Verificado antes de escribir cada fila, no copiado de la memoria: D2 esta arreglado y mi registro lo daba por abierto; y la primera lectura de D9 decia que los tres `commit-*` de chronos tampoco se disparan — falso, se despachan por variable en `emitOnChip`, invisibles a un grep de `trigger('literal')`. Y el handoff del plan --------------------- `PLAN-event-name-normalization.md` no tenia. El eje esta cerrado (256/256 con prefijo, guard visto fallar, barrido sobre los 172 morfos), pero quedan dos decisiones tuyas bloqueando trabajo — D10 y el `present-rise` anclado al trigger — mas tres cosas que el eje destapo sin cerrar: el `grid` repetido con `numberOfMonths=2`, el nombre `handle-drag-progress`, y los cinco defectos. `docs:check` 0 errores sobre 623 docs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
El sello de `shift-navigate` se movió del botón al `grid` en los cuatro
calendarios; con `numberOfMonths=2` había **dos** `grid` y sólo se sellaba uno
(medido: junio cambiaba de fechas quieto y julio cruzaba). El arreglo no
administra el sello: declara la parte que ES el sujeto — `months`, la vista
paginada, arquetipo `viewport`, con `targetFallback: [grid]`. Medido después:
los dos grids se desplazan 10 px a los 40 ms, y −10 px en RTL.
Se legalizaron de paso dos partes clandestinas (`months`, `month-panel`) que los
cuatro demos fabricaban a mano y que la receta estilizaba igualmente.
La ley general quedó escrita en `docs/architecture/morfo.md`
§_A repeated part cannot be the subject of one occurrence_: si el destino es una
parte repetida, hay que preguntar si la ocurrencia tiene **un** sujeto (→
anclarla, como hace `table` con su fila) o **todos** (→ el sujeto es el
contenedor, y tiene que existir). 50 de los 252 destinos del catálogo son partes
repetibles; todos los demás son del primer tipo.
docs(process): los nueve defectos abiertos salen de mi memoria y entran en el repo Los defectos que dejo el barrido docs-codigo del 2026-08-11 vivian solo en la memoria de la sesion que los encontro. Eso es una superficie de recuerdo del agente, no del proyecto: un handoff que no se carga los pierde, y son la unica huella de nueve averias que se decidio NO tocar. Ahora tienen casa, con la forma del ledger de blocks: escritura por `id`, un ARREGLADO lleva su sha, y una fila de gap no se borra nunca. D1 · D2 · D3 · D4 arreglados (`f4e414e2e`, `6f42eebfe`). D5…D9 confirmados y abiertos. D10 es nuevo y nace de un error mio de metodo. D10 — la migracion a medias --------------------------- El 2026-08-06 `dragSignalOverrides` paso a nombrar `step` (el gesto suena por REPETICION) y eso dejo a los tres resolvers de gesto sin un solo llamador. Yo lei «cero llamadores» y propuse retirarlos. Cinco documentos dicen lo contrario, y dos de ellos estaban en la salida de mi propio grep sin que los abriera: `PLAN-sound-engine.md` §4 los pone en la columna «sema conserva» de la LINEA DE CORTE con `$sound`, y `PLAN-audio-player.md` D-AP.7 los da por medidos con un check verde. No es codigo muerto: es una migracion que no se adjudico. De ahi la regla 4 del ledger. «No lo referencia nadie» es una observacion, nunca un veredicto — la misma leccion que la fila de «Gaps» que dos agentes borraron. Verificado antes de escribir cada fila, no copiado de la memoria: D2 esta arreglado y mi registro lo daba por abierto; y la primera lectura de D9 decia que los tres `commit-*` de chronos tampoco se disparan — falso, se despachan por variable en `emitOnChip`, invisibles a un grep de `trigger('literal')`. Y el handoff del plan --------------------- `PLAN-event-name-normalization.md` no tenia. El eje esta cerrado (256/256 con prefijo, guard visto fallar, barrido sobre los 172 morfos), pero quedan dos decisiones tuyas bloqueando trabajo — D10 y el `present-rise` anclado al trigger — mas tres cosas que el eje destapo sin cerrar: el `grid` repetido con `numberOfMonths=2`, el nombre `handle-drag-progress`, y los cinco defectos. `docs:check` 0 errores sobre 623 docs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
### 2.2 · `handle-drag-progress`
El nombre quedó así por inercia del renombrado. `progress` no es un verbo del
canon; el canon para la emisión continua de un arrastre está sin decidir.
Revisar contra `docs/CANON.md` §verbos antes de tocarlo.
docs(process): la ronda de decisiones queda firmada — cinco disposiciones, dos corregidas al re-analizar D10 SE RETIRA (lo ejecuta el eje de sonido, su handoff PRIMERO), y el re-analisis añade un SEXTO sitio a adjudicar: sema.md §per-emit payload aun describe pitch/gain/contour cuando soma adjunta hoy sound:'step' + curva haptica (dragSignalOverrides del slider y del knob, con el trade-off del 2026-08-06 citado en su comentario). fixedWeeks: alinear a false a secas era la opcion debil — las filas del mes son de altura FIJA (grid-auto-rows, chronos.css:278) y un false pelado cambia la semana fantasma por saltos de altura al navegar. Firmado: crecer las filas (modelo Google), con false incluido; es arreglo de RECETA, no un flip de flag. Chip bloqueado: via (b), y la letra pequeña va INCLUIDA — el morfo de drag-drop YA declara data-disabled (declaracion sin emisor) y el cursor vive en drag-drop.css; pero el chip fusiona tres morfos en un elemento clicable, asi que la regla de archetype item se anula en su receta y aria-disabled NO aterriza en el elemento fusionado. mode/scope: SE RETIRAN, con el barrido de la regla 4 hecho de verdad: 0 hits en docs/, 0 lectores del compilado, 4 ficheros de alcance. SemaCause queda como pregunta hermana (mas muerto aun: ni atraviesa morfo). present-rise: medir primero (lo esperable es la receta F4, pero decide la medida). handle-drag-progress: revisar contra CANON, no renombrar — el matiz es legal y puede ser deliberado. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
**Disposición firmada (2026-08-12): revisar, no renombrar por uniformidad.** El
nombre es legal bajo la ley (`handle`-`drag`-`progress` = familia + verbo +
matiz) y el matiz del drawer puede ser deliberado — progreso hacia el umbral de
dismissal, no el drag de valor del slider. Sólo se toca si la decisión de canon
para la emisión continua aterriza en otro nombre.
docs(process): los nueve defectos abiertos salen de mi memoria y entran en el repo Los defectos que dejo el barrido docs-codigo del 2026-08-11 vivian solo en la memoria de la sesion que los encontro. Eso es una superficie de recuerdo del agente, no del proyecto: un handoff que no se carga los pierde, y son la unica huella de nueve averias que se decidio NO tocar. Ahora tienen casa, con la forma del ledger de blocks: escritura por `id`, un ARREGLADO lleva su sha, y una fila de gap no se borra nunca. D1 · D2 · D3 · D4 arreglados (`f4e414e2e`, `6f42eebfe`). D5…D9 confirmados y abiertos. D10 es nuevo y nace de un error mio de metodo. D10 — la migracion a medias --------------------------- El 2026-08-06 `dragSignalOverrides` paso a nombrar `step` (el gesto suena por REPETICION) y eso dejo a los tres resolvers de gesto sin un solo llamador. Yo lei «cero llamadores» y propuse retirarlos. Cinco documentos dicen lo contrario, y dos de ellos estaban en la salida de mi propio grep sin que los abriera: `PLAN-sound-engine.md` §4 los pone en la columna «sema conserva» de la LINEA DE CORTE con `$sound`, y `PLAN-audio-player.md` D-AP.7 los da por medidos con un check verde. No es codigo muerto: es una migracion que no se adjudico. De ahi la regla 4 del ledger. «No lo referencia nadie» es una observacion, nunca un veredicto — la misma leccion que la fila de «Gaps» que dos agentes borraron. Verificado antes de escribir cada fila, no copiado de la memoria: D2 esta arreglado y mi registro lo daba por abierto; y la primera lectura de D9 decia que los tres `commit-*` de chronos tampoco se disparan — falso, se despachan por variable en `emitOnChip`, invisibles a un grep de `trigger('literal')`. Y el handoff del plan --------------------- `PLAN-event-name-normalization.md` no tenia. El eje esta cerrado (256/256 con prefijo, guard visto fallar, barrido sobre los 172 morfos), pero quedan dos decisiones tuyas bloqueando trabajo — D10 y el `present-rise` anclado al trigger — mas tres cosas que el eje destapo sin cerrar: el `grid` repetido con `numberOfMonths=2`, el nombre `handle-drag-progress`, y los cinco defectos. `docs:check` 0 errores sobre 623 docs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
### 2.3 · D5 · D6 · D7 · D8 · D9
Cuatro defectos confirmados y uno con un defecto más hondo debajo (D5: el modal
promete un buffer que no existe). Fichas y evidencia en
[`AUDIT-docs-code-ledger.md`](./AUDIT-docs-code-ledger.md). Ninguno se toca sin
que lo pidas: son código obsoleto contra documentación correcta.
## 3 · Lo que este eje enseñó, y hay que no repetir
1. **Un nombre partido en dos dialectos no rompe ningún test.** Un preset de
movimiento engancha el nombre con `^=`; el dialecto pelado no casaba con
ninguna firma y simplemente no animaba. Tres auditorías lo vieron, ninguna lo
cerró. La invariante es la puerta — por eso el guard, y por eso verlo fallar.
2. **Un validador sin ejecutor vigila a nadie.** `validateMorfo` no lo llamaba
nada sobre el catálogo real (`registerMorfo` llama a `compileMorfo`), así que
todas sus invariantes se comprobaban contra fixtures escritas a mano. Debajo
había dos fixtures ilegales, verdes.
3. **Trocear un commit por hunks parte cambios lógicos por la mitad**, y los
`check` que corres son de TU árbol, no del que firmas. Dos commits seguidos
salieron rotos con «tests en verde» en el mensaje. Se arregla materializando
el árbol INDEXADO en un worktree y midiendo allí.
4. **«No lo referencia nadie» es una observación, no un veredicto.** Ver la
regla 4 del ledger, y `D10`, que nació de saltársela.
4b. **Un handoff no es un backlog.** Es la lección más cara de esta jornada y no
es técnica. El ledger se creó a las 03:55 para que una sesión futura tomara
los defectos con su propia puerta, y a las 13:59 esta misma sesión lo empezó a
consumir como lista de trabajo. Nadie decidió cambiar el objetivo: se cambió
solo, un «arregla esto» cada vez, porque cada arreglo destapaba dos hallazgos
y se iban anexando filas (D11…D14) en vez de leer la lista creciente como la
señal de parar que era. Terminó en el borrado de una librería de otro eje.
**Cuando el trabajo deje de responder al plan que lo abrió, se cierra el plan
y se abre otro** — no se sigue tirando del hilo.
docs(process): los nueve defectos abiertos salen de mi memoria y entran en el repo Los defectos que dejo el barrido docs-codigo del 2026-08-11 vivian solo en la memoria de la sesion que los encontro. Eso es una superficie de recuerdo del agente, no del proyecto: un handoff que no se carga los pierde, y son la unica huella de nueve averias que se decidio NO tocar. Ahora tienen casa, con la forma del ledger de blocks: escritura por `id`, un ARREGLADO lleva su sha, y una fila de gap no se borra nunca. D1 · D2 · D3 · D4 arreglados (`f4e414e2e`, `6f42eebfe`). D5…D9 confirmados y abiertos. D10 es nuevo y nace de un error mio de metodo. D10 — la migracion a medias --------------------------- El 2026-08-06 `dragSignalOverrides` paso a nombrar `step` (el gesto suena por REPETICION) y eso dejo a los tres resolvers de gesto sin un solo llamador. Yo lei «cero llamadores» y propuse retirarlos. Cinco documentos dicen lo contrario, y dos de ellos estaban en la salida de mi propio grep sin que los abriera: `PLAN-sound-engine.md` §4 los pone en la columna «sema conserva» de la LINEA DE CORTE con `$sound`, y `PLAN-audio-player.md` D-AP.7 los da por medidos con un check verde. No es codigo muerto: es una migracion que no se adjudico. De ahi la regla 4 del ledger. «No lo referencia nadie» es una observacion, nunca un veredicto — la misma leccion que la fila de «Gaps» que dos agentes borraron. Verificado antes de escribir cada fila, no copiado de la memoria: D2 esta arreglado y mi registro lo daba por abierto; y la primera lectura de D9 decia que los tres `commit-*` de chronos tampoco se disparan — falso, se despachan por variable en `emitOnChip`, invisibles a un grep de `trigger('literal')`. Y el handoff del plan --------------------- `PLAN-event-name-normalization.md` no tenia. El eje esta cerrado (256/256 con prefijo, guard visto fallar, barrido sobre los 172 morfos), pero quedan dos decisiones tuyas bloqueando trabajo — D10 y el `present-rise` anclado al trigger — mas tres cosas que el eje destapo sin cerrar: el `grid` repetido con `numberOfMonths=2`, el nombre `handle-drag-progress`, y los cinco defectos. `docs:check` 0 errores sobre 623 docs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 months ago
5. **Una parte declarada sin registro en runtime es un destino inalcanzable** y
no chilla: el emit se rechaza en silencio (salió arreglando D3).
## 4 · Cómo verificar que sigue en pie
```bash
npx vitest run src/uix/morfo/schema.test.ts
```
82 tests. Los dos que importan: el barrido encuentra >150 morfos (un glob que
deje de casar convertiría al siguiente en un no-op que reporta éxito) y los 172
pasan `validateMorfo` entero.

Powered by TurnKey Linux.