# Cierre del programa — re-auditoría de componentes + fase de fixes **Estado: COMPLETO.** Auditoría: 2026-07-07 (91 fichas, profundidad piloto). Checkpoint de veredictos: 2026-07-07 ([`_veredictos.md`](./_veredictos.md)). Ejecución de fixes: 2026-07-08 → 2026-07-11. Rama `alpha-0.1-sec-dom`. ## Resultado final (gates del 2026-07-11) | Puerta | Estado | | -------------------------------------------------------------- | ---------------------------------------------------------------------------- | | Matriz de aceptación (`component-audit.ts`) | **134 PASS · 0 NEEDS-WORK · 0 BROKEN** (de 81 PASS al arrancar la ejecución) | | Guards de capa (`contracts.test.ts`) | **37/37 verde** (primera vez; partía con 13 fallos) | | Vocabulario morfo (`morfo-vocabulary-check`) | exit 0 (1 WARN conocido: `cropper.commit-crop`, descubribilidad) | | Baseline de tipos (fuera de `alpha\|words\|palabras\|chronos`) | **57** — invariante durante todo el programa (59→57 en P7) | | eidos-lint (catálogo) | 0 selectores inválidos · 0 class-hooks en lo tocado | ## Recorrido por paquetes (hashes) | Paquete | Contenido | Commits | | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | | P0–P3 | Doctrina · guardas · contratos morfo · 13 packs | `53b6f629` (lote inicial) | | P4 naming N1–N10 | `selectionMode` · `onValueCommit` · `deselectable` · delays · razones tipadas… | `53b6f629` | | P5 sistema | S1 codemod class-hooks · S5 outline · depth · touch · **S6 Field composition** (16 fields + poda 199 tokens + de-alias) · S8 calendar-surface | `5eb92132..d1670caa` · `83e13be6` | | P6 | C6 `getWeekInfo` · C7 D13 textarea+censo · B.11 splitter bindable | `3b02fd11` · `444e05eb` · `0f0feb4f` | | P7 baseline + S7 | 2 errores mandados (59→57) · papeleo pasivos/capas | `c0ae3de1` · `fe844c62` | | **S4 dossiers** (5 lotes + drag-drop) | 30 READMEs eidos a forma dossier + README soma field-langs → **E-2.3 = 0** | `7b82aa79` · `20e2e7a1` | | One-liners + §37 | delegated/apg/archetype + docblocks · **§37 resuelto (a)-con-nota** | `dd0637f6` · `bf573430` | | compile.test | Test stale post dialog-001 adjudicado + guard nuevo | `e8f12aa1` | | **S9 iniciativas** | gradient-\* (graduación ACTIVE_DEV_TRACK) · ntp integral (válvula `literal:` R-2.1 + README soma + suite 12/12) · metrics+suite (puente interno + helper + suites 7/7) | `45ae3691` · `dd249eac` · `8e3a67bd` | | Censo contracts | 12→3: knob barrel+README · puentes internos · 6 barrels→`internals.ts` · track-filter · data-archetype + 4 morfos field-trigger | `cb554ae2` | | Demos fuera del fix | **Decisión de producto (2026-07-10): frame NUEVO para las demos del sistema** → reglas D-\* verdict-neutral | `e53bf0e8` | | Convergencia runtime | field `commit-submit` al Enter (doctrina de familia) · float-panel `writeProperty`/`uix.timers` + kb-gestos con handle-events · A-3.7 a acciones distintas · puerto media-provider exento → **contracts 37/37** | `33f346ed` · `bdd17f04` | | Censo R-1.x | badge al velo §38 (fix real) + 8 exceptions con evidencia (pin-input ya pintaba en `[data-active]`) | `ee9786bc` | | Lote 6 final | Los 5 últimos dossiers + apg timeline + literales anotados → **134/0/0** | `7f2bcc28` | ## Método canonizado (reutilizable) - **Dossier = plantilla date-field**: `## Baseline` · `## Comparativa` ≥3 refs · `## Decisiones` · `## Gaps` con disposición (implementar/diferir/descartar) · `## Passive justification` si pasivo. - **`R-x.y exception:` SOLO con evidencia leída** (dónde pinta de verdad: capa compartida, compuesto, o vehículo de state-attr propio). Si no pinta en ningún sitio: gap real a `## Gaps`, nunca exception. - **No-cascada**: un componente → verificar (`component-audit --only`) → el siguiente. Gates completos al cierre de cada paquete. - **Válvulas de la máquina**: `/* literal: */` en línea (R-2.1/R-2.7/ R-4.x — physically-fixed); `SOMA_INTERNAL_PRIMITIVES` (puentes sin Provider que declaran 'soma' con verdad); A-3.7 cuenta acciones DISTINTAS; D-\* verdict-neutral hasta el frame nuevo de demos. - **Verificación observable**: cambios de runtime se prueban con gesto/tecla real en navegador (drag píxel-perfecto, stamps `data-event*`), no solo con suites. ## Hallazgos registrados que trascienden el programa - Marcas holiday/event de range-calendar MUERTAS (2 tokens emitidos bajo `[data-calendar]`, no resuelven bajo `[data-range-calendar]`) — en su `## Gaps`. - Asimetría de naming entre gemelos tree (`value`+`expanded` vs `selectedValue`+`expandedValue`) — decisión N4 de espejo pendiente. - Invalid de RANGO sin pintar en los dos range-fields (los endpoints no reciben el invalid de rango) — gap compartido documentado. - class-hooks preexistentes fuera del codemod S1: color-picker(2) · time-picker(8) · time-range-picker(12). - **`tags-input` F-1 — CERRADO el 2026-08-25**, mes y medio después del programa, por la firma «el árbol ARIA de `tags-input` habla UN patrón»: se eligió UNO (el layout grid que su `apg` ya citaba) y se retiró el rol duplicado Provider/Control y el `combobox` sin popup. Detalle fechado en su [ficha](./tags-input.md). Deja vivo el censo de citas APG erróneas que la ficha alimenta: `search-field` F-1 (misma clase) y `tag-group` (mismo `apg`, filas SIN celdas) — ver [`_system.md`](./_system.md). ## Fuera del programa (dueños nuevos) - **Demos**: frame nuevo de sistema (decisión 2026-07-10) — las reglas D-\* se reescriben contra él cuando exista. - **Pistas activas**: `words/**` · `palabras/**` · `chronos` (rotas por N1, decisión de dejarlas — `ACTIVE_DEV_TRACK`). - **Follow-ups**: `task_d66356de` (trp data-size a endpoints) · Task #31 (pickers → `PickerProvider` genérico) · `FieldLangsSnippetProps` exportado sin uso. - **Sucesora**: la auditoría clean-room del 2026-07-10 ([`docs/audit-new-10-july/audit-active-uix.md`](../../audit-new-10-july/audit-active-uix.md)) — su tabla §9 es la cola nueva; el arranque está en [`docs/process/continue-cleanroom-fixes-2026-07.md`](../../process/continue-cleanroom-fixes-2026-07.md). Nota: su P1 **SOM-5 ya quedó cerrado** por este programa (field `33f346ed` · float-panel `bdd17f04`, posteriores a su snapshot).