docs(audit): formal programme close-out + the clean-room continuation handoff
- docs/audit/components/_cierre.md — the programme closure: final gates
(matrix 134/0/0, contracts 37/37, vocab 0, baseline 57), the full package
journey with hashes, the canonized method (dossier template, evidence-only
exceptions, no-cascada, machine valves), the findings that outlive the
programme, and what moved to new owners (demo frame, active tracks,
follow-ups).
- docs/process/continue-cleanroom-fixes-2026-07.md — the LIVE turnkey for
the next sessions: the clean-room severity table as the queue, the state
reconciliation (SOM-5 P1 already closed post-snapshot; SOM-3 partial), the
proposed P1 order (machine-extending THM-1/MOR-4 first), the WIDENED
verification protocol (134/0/0 and 37/37 must HOLD), exclusions and the
side queue.
- The old audit-fixes handoff is sealed as historical with a redirect header.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
3 months ago
|
|
|
|
# Continue — fixes de la auditoría clean-room (2026-07-10)
|
|
|
|
|
|
|
|
|
|
|
|
**Handoff turnkey. Creado: 2026-07-11.** Rama `alpha-0.1-sec-dom`.
|
|
|
|
|
|
|
|
|
|
|
|
> **Contexto**: el programa anterior (re-auditoría de componentes P0–P7 + S9
|
|
|
|
|
|
> + censos) está **COMPLETO** — matriz 134/0/0, contracts 37/37; cierre
|
|
|
|
|
|
> formal en [`docs/audit/components/_cierre.md`](../audit/components/_cierre.md).
|
|
|
|
|
|
> La cola viva es ahora la **tabla de severidades §9** de la auditoría
|
|
|
|
|
|
> clean-room del usuario:
|
|
|
|
|
|
> [`docs/audit-new-10-july/audit-active-uix.md`](../audit-new-10-july/audit-active-uix.md)
|
|
|
|
|
|
> — leerla ENTERA antes de tocar nada (es análisis, no prescripción: el
|
|
|
|
|
|
> orden y alcance los decide el usuario; este handoff solo propone).
|
|
|
|
|
|
|
|
|
|
|
|
## Reconciliación de estado (la clean-room es snapshot del 2026-07-10)
|
|
|
|
|
|
|
|
|
|
|
|
Cerrado DESPUÉS de su snapshot por el programa anterior — NO rehacer:
|
|
|
|
|
|
|
|
|
|
|
|
- **SOM-5 (P1) ✅**: field A-3.1 (`commit-submit` al Enter, doctrina de
|
|
|
|
|
|
familia — `33f346ed`) y float-panel A-3.7 (kb-gestos por handle-events +
|
|
|
|
|
|
heurística a acciones distintas — `bdd17f04`). Verificado en vivo.
|
|
|
|
|
|
- **SOM-3 (P2) ◐**: el setTimeout de float-panel migró a `uix.timers`
|
|
|
|
|
|
(`bdd17f04`) y el addEventListener de media-provider es PUERTO
|
|
|
|
|
|
Svelte-agnóstico por diseño documentado (excepción del guard). Quedan los
|
|
|
|
|
|
~6 setTimeout restantes de soma layers/providers por censar.
|
|
|
|
|
|
- Su cita de matriz (102/32/0) es previa: hoy es **134/0/0**.
|
|
|
|
|
|
|
|
|
|
|
|
## P1 propuestos, en orden (los dos primeros amplían la máquina)
|
|
|
|
|
|
|
|
|
|
|
|
1. **THM-1 — 6 CSS secundarios fuera del escaneo R-\*** (`component-audit.ts:698,756`):
|
|
|
|
|
|
extender el escáner a los CSS no-`{kebab}.css` del componente y poner en
|
|
|
|
|
|
verde las violaciones reales que la clean-room dice que hay dentro.
|
|
|
|
|
|
Mismo espíritu que la válvula R-2.1: la máquina primero, luego los fixes
|
|
|
|
|
|
que destape (no-cascada).
|
|
|
|
|
|
2. **MOR-4 — card-group sin morfo** (`eidos/components/card-group/`):
|
|
|
|
|
|
invisible a TODA la matriz. Morfo-first (doctrina: hasta los leaf
|
|
|
|
|
|
primitives, `scope:['eidos']` si procede) + entra en la matriz; recordar
|
|
|
|
|
|
la decisión de cardinalidad 2026-06-27 (CardGroup+ToggleGroup) al
|
|
|
|
|
|
redactar su contrato.
|
|
|
|
|
|
3. **EID-1 — anillo de foco de la fundación en `box-shadow` vs §32**
|
|
|
|
|
|
(`archetypes.css:138-167`): §32 canonizó `outline`; el remanente está
|
|
|
|
|
|
condicionado por un `outline: none` de la capa de aplicación — resolver
|
|
|
|
|
|
el condicionante y migrar. Verificación visual obligatoria (focus ring en
|
|
|
|
|
|
varios componentes, light/dark).
|
|
|
|
|
|
4. **SEM-1 — dos políticas de prioridad de live-region**
|
|
|
|
|
|
(`runtime.svelte.ts:725` vs `chans/announce.ts:55`): unificar criterio
|
|
|
|
|
|
(decisión doctrinal pequeña + fix); añadir guard/test que la fije.
|
|
|
|
|
|
5. **THM-2 — paleta 33 escalas por instancia solo en 2/17 superficies**:
|
|
|
|
|
|
esto es UNA INICIATIVA (rollout), no un fix — dimensionar, proponer plan
|
|
|
|
|
|
por lotes como S4, y el tracker de rollout que se borró necesita nuevo
|
|
|
|
|
|
hogar. Decisión de alcance del usuario antes de arrancar.
|
|
|
|
|
|
6. **DOC-1 / DOC-2 — canon citando audit/deprecated · ancla editorial del
|
|
|
|
|
|
libro**: decisiones de corpus documental del usuario (qué es fuente de
|
|
|
|
|
|
qué); preparar propuesta, no ejecutar en frío.
|
|
|
|
|
|
|
|
|
|
|
|
Después: los P2 de la tabla §9 (empezando por los mecánicos: THM-3 canario
|
|
|
|
|
|
de suite eidos, DEP-1 clsx fantasma, DEP-2 ogl muerto, SEM-2 logger de
|
|
|
|
|
|
canales) y los GAP-\* de personalización como iniciativas.
|
|
|
|
|
|
|
|
|
|
|
|
## Protocolo de verificación (invariantes AMPLIADOS)
|
|
|
|
|
|
|
|
|
|
|
|
- `npx tsx scripts/component-audit.ts` → **134 PASS / 0 / 0 debe MANTENERSE**.
|
|
|
|
|
|
- `npx vitest run src/uix/contracts.test.ts` → **37/37**.
|
|
|
|
|
|
- `npm run check` fuera de `alpha|words|palabras|chronos` → **57**.
|
|
|
|
|
|
- `npx tsx scripts/morfo-vocabulary-check.ts` → exit 0 (WARN cropper conocido).
|
|
|
|
|
|
- Suite eidos (`npx vitest run src/uix/eidos`) → hoy 305/306 (THM-3 es el
|
|
|
|
|
|
canario en rojo); tras THM-3 debe quedar 306/306 y mantenerse.
|
|
|
|
|
|
- Cambios observables → verificación en navegador (gesto/tecla/inspección
|
|
|
|
|
|
real), no solo suites. Gotchas de entorno en la memoria del proyecto
|
|
|
|
|
|
(rAF congelado en tab desenfocado, dev server flaky, HMR de `.svelte.ts`).
|
|
|
|
|
|
|
|
|
|
|
|
## Exclusiones DURAS (sin cambios)
|
|
|
|
|
|
|
|
|
|
|
|
- `words/**` · `palabras/**` · `chronos` (ACTIVE_DEV_TRACK) · `web/routes/alpha/**`.
|
|
|
|
|
|
- **Demos**: NO son fix — frame nuevo de sistema pendiente de diseño
|
|
|
|
|
|
(decisión 2026-07-10, `e53bf0e8`); las D-\* son verdict-neutral.
|
|
|
|
|
|
- Nada a git sin petición; commits con paths explícitos (excluir `.claude/`,
|
|
|
|
|
|
`rt.css`, README stub, binarios del libro).
|
|
|
|
|
|
|
|
|
|
|
|
## Cola lateral (no bloqueante, registrada)
|
|
|
|
|
|
|
|
|
|
|
|
- class-hooks preexistentes: color-picker(2) · time-picker(8) ·
|
|
|
|
|
|
time-range-picker(12) — extensión del codemod S1 cuando cuadre.
|
|
|
|
|
|
- `task_d66356de` (trp `data-size` a endpoints) · Task #31 (pickers →
|
|
|
|
|
|
`PickerProvider<TValue>`) · `FieldLangsSnippetProps` sin uso.
|
|
|
|
|
|
- Hallazgos trascendentes del programa anterior (en `_cierre.md`):
|
|
|
|
|
|
holiday/event de range-calendar · naming gemelos tree · invalid de rango.
|