docs(uix): add handoff for the next audit session

astra
dev 2 weeks ago
parent e6b8cf5585
commit b1b92f98a1

@ -0,0 +1,134 @@
---
title: UIX — handoff de continuación del 2026-09-27
type: notes
audience: human + agent
authority: process — checkpoint de continuidad
status: proposed
---
# Continuación de la auditoría UIX
Retomar en `G:\dev\svelte\vicen`, rama `astra`, siguiendo el
[plan](./PLAN-uix-quality-2026-09-19.md). **Siguiente lote: ColorField.**
La fase 6 sigue abierta: 74 fichas revisadas y ColorField en curso.
No convertir ese censo en un porcentaje global de las fases 6 y 7.
## Alcance que debe conservarse
- Auditar calidad, duplicación y refactorización con comportamiento equivalente.
Las reparaciones funcionales quedan para después de cerrar la auditoría.
- No modificar `web/`. No tocar ni incluir en commits `.claude/settings.local.json`:
es un cambio del usuario (172 adiciones / 1 eliminación al cerrar).
- Registrar todos los defectos en el
[registro](./audit-uix-2026-09-19/findings-register.md), conservando sus IDs
y distinguiendo reproducción, inferencia y límites de la evidencia.
- Probar cada cambio coherente antes/después; verificar visualmente cuando
corresponda. No presentar screenshots de fallo sin inspeccionar como QA visual.
- Comunicar actividad real y avisar al parar; no afirmar que se está trabajando
mientras no haya trabajo o proceso en curso. No iniciar subagentes sin petición.
Antes de modificar componentes, releer `AGENTS.md` y los cuatro pre-flight:
[component-audit](../guides/component-audit.md),
[demo-authoring](../guides/demo-authoring.md),
[contrato Eidos](../../src/uix/eidos/components/README.md) y
[building-a-component](../building-a-component.md).
## Base guardada y comprobaciones
Antes de añadir este handoff, `HEAD` y `gita/astra` eran
`e6b8cf55854f043cdf07906d4618f8f2e3d3ac38`: diferencia 0/0, push completado.
El único cambio tracked pendiente era la configuración local del usuario.
Este documento se guarda posteriormente como un commit documental adicional;
al retomar, comprobar `git status`, `git log` y la sincronización del remoto.
Últimos lotes:
| Commit | Resultado |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `1ba41e325` | FloatPanel: caracterización y extracción neutral de conexiones. |
| `a8be47319` | ColorPicker: siete bolsas bindProps y step equivalente; 19 líneas de producción menos. Q94–Q102 diferidos. |
| `0d956fbe2` | ColorSwatch: comentarios/README precisados; ocho líneas físicas menos, todas de comentarios. Cero lógica eliminada. Q103 diferido. |
| `e6b8cf558` | Checkpoint documental de ColorField y registro Q104–Q108; sin cambios en sus fuentes. |
El gate del último push aprobó **513 archivos / 5638 tests**. Tipos de
src/scripts sin errores nuevos; los 89 errores existentes de web siguen dentro
del ledger. 901 documentos y 25 arts sin incidencias. Apps/base check/build y
smoke: foundation 1/1, boot 27/27, cero errores de página/consola/CSP,
delta/flips cero; LTR/RTL y dark/reduced correctos. Log local:
`node_modules/.cache/uix-audit-push-close.log`.
ColorSwatch cerró component-audit PASS y 104 contratos; sus cinco canarios
pasaron antes/después y las dos capturas mantenidas fueron inspeccionadas.
ColorPicker conserva NEEDS-WORK por heurística acciones/eventos y demo congelada;
no se forzó un PASS alterando API o web. Véanse sus fichas para límites completos.
## ColorField: punto exacto de continuación
La [ficha](./audit-uix-2026-09-19/color-field.md) conserva el corpus leído,
cinco referencias primarias, comparación histórica y límites. Morfo declara
cinco partes y un evento; hay seis wrappers Soma y seis Eidos. Provider actual:
999 líneas físicas; receta: 26 claves. La rama `morfo-runtime` sí tenía
ColorField Soma (trece archivos leídos, provider de 858 líneas), sin skin Eidos
propio. No repetir la afirmación de que Air carecía de ColorField Soma.
Baseline aislada en Chromium, runtime real: **9 canarios aprobados y 5 sondas
fallidas** en dos archivos, 77.54s. No es una ejecución conjunta verde ni una
baseline mantenida. Las sondas están sólo en tmp, fuera del gate:
| ID | Resultado que debe conservarse | Límite |
| ---- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
| Q104 | Omitir format en Eidos lanza props_invalid_value por binding undefined frente al fallback hex de Soma. | Adjudicar default/binding; no repararlo en la extracción. |
| Q105 | Input con name sin HiddenInput explícito no envía valor, pese a la promesa del README. | La composición explícita sí pasa; decidir contrato antes de cambiar montaje. |
| Q106 | El hidden explícito sigue incluido en FormData con disabled. | La bolsa no escribe disabled; preservar locks durante caracterización. |
| Q107 | invalid/errorMessageId deja aria-describedby del Input en null. | La aserción falla sobre null; opción declarada sin lectura. Sin prueba de asistencia. |
| Q108 | No se encuentra spinbutton con nombre /Red/ cuando hay Label. | aria-labelledby del grupo prima sobre aria-label; falta medir nombre exacto y probar asistencia. |
No se han inspeccionado capturas de ColorField. No se ha aplicado ningún refactor
ni promovido sus fixtures. No declarar el componente auditado/cerrado todavía.
## Material temporal y recuperación
Estos archivos son **locales e ignorados**, no están en el remoto. En un checkout
nuevo hay que recrearlos desde la ficha; en este workspace comprobar que existen.
- `tmp/uix-color-field-baseline/`: harness, view, nueve canarios, cinco sondas,
`native-baseline.log` y screenshots de fallo.
- `tmp/color-field-scratch-attachments-2026-09-27/`: adjuntos de la ejecución.
- `tmp/uix-color-field-baseline/prepared/`: copia de los borradores/proof y
configuración, para no depender de que se conserve node_modules/.cache.
- `node_modules/.cache/uix-color-field-binding-proof.mjs`: dos bolsas candidatas
Input/FormatSelect; ocho conexiones, getters/setters/template equivalentes por
AST; borrador de dos líneas físicas/no vacías menos. `--apply` **no ejecutado**.
- `node_modules/.cache/color-field-{Soma,Eidos}-README-proposed.md`: borradores
documentales sin aplicar. Revisar sus límites frente al registro antes de copiar.
- El borrador partOpts de Segment está **descartado**: conserva contrato, pero
suma una línea física (39→40). No aplicarlo por estar disponible.
Las pruebas de equivalencia comparan con HEAD. No relanzar --apply después de
haber aplicado el cambio o de cambiar su baseline; revisar primero los guards.
Normalizar CRLF/LF y preparar todas las escrituras antes de ejecutarlas.
## Secuencia para mañana
1. Comprobar rama/estado/remoto y leer plan, registro, ficha y pre-flight.
2. Recuperar fixtures locales. Repetir la baseline aislada si cambia el entorno:
`npx vitest run --config tmp/uix-color-field-baseline/prepared/baseline.config.mts`.
Sus cinco sondas deben fallar; esa ejecución no se presenta como verde.
3. Ampliar caracterización de Backspace/Tab, composición con Field y naming
con/sin Label. Mantener separados positivos y sondas; no arreglar Q104–Q108.
4. Promover las fixtures al árbol mantenido ajustando los imports de view/test;
repetir positivos y sondas **antes** de aplicar la extracción.
5. Aplicar sólo las dos bolsas si se confirma equivalencia. Mantener root,
callbacks, placeholder, activeDir, captura inicial de part y L-152 intactos.
Repetir pruebas y proof tras formato; medir reducción real por separado de tests/docs.
6. Retirar sondas y artefactos del árbol mantenido después de terminar sus runners.
Capturar con `scripts/audit-visual.config.ts`, inspeccionar imágenes nuevas a
escala nativa y ejecutar contratos/provider/opts adecuados.
7. Conciliar README, ficha, registro y plan. Ejecutar gate con archivos congelados.
Sólo marcar revisada y aumentar el censo cuando el lote esté cerrado.
8. Continuar por el plan; comitear/pushear al cierre solicitado, sin saltar hooks.
La configuración visual reutiliza plugins, aliases y browsers del proyecto;
no copiar aliases ni mockear viewport/servicios para convertir fallos en verde.
Las capturas son opt-in con VITE_UIX_AUDIT_SCREENSHOTS=1. No prometer QA visual
del catálogo completo por estas capturas ni pruebas con lector de pantalla.
Loading…
Cancel
Save

Powered by TurnKey Linux.