From 34d1d46bdb5ca8fc407dd47029fc474db9aea386 Mon Sep 17 00:00:00 2001 From: dev Date: Sun, 12 Jul 2026 03:55:40 +0200 Subject: [PATCH] =?UTF-8?q?docs(theming):=20close=20THM-4=20=E2=80=94=205?= =?UTF-8?q?=20hotspots=20adjudicated,=20only=201=20real=20debt=20item?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adjudicate color-picker (29), avatar (28), time-range-picker (26): all 0 debt — composition (de-dialoged pickers compose Popover; avatar's per-role color now lives in the shared layer after the THM-2 migration; sliders/toggle composed), behavioral (sema last-action, format, endpoint, loading status), and per-file-lint blind spots (recipe-token variant rules). Across the 5 biggest hotspots (156 unused) the only real debt was stepper's dual-representation API, now consolidated. Confirms the doctrine: the unused column stays informational, no machine rule warranted. THM-4 closed. Co-Authored-By: Claude Opus 4.8 --- .../continue-cleanroom-fixes-2026-07.md | 45 +++++++++++++++++-- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/docs/process/continue-cleanroom-fixes-2026-07.md b/docs/process/continue-cleanroom-fixes-2026-07.md index 1d1a626a7..642696c72 100644 --- a/docs/process/continue-cleanroom-fixes-2026-07.md +++ b/docs/process/continue-cleanroom-fixes-2026-07.md @@ -418,13 +418,50 @@ accionable son **decisiones de diseño** (como el dual-API de stepper que el usuario decidió consolidar), no podas mecánicas. Esto CONFIRMA la predicción de la doctrina ("la mayoría son legítimos") y sugiere que **la tasa de deuda NO justifica una regla de máquina** — THM-4 es sobre todo -adjudicación documentada. Restan color-picker/avatar/trp por adjudicar -(probablemente mismo patrón: mayoría legítima + alguna redundancia/decisión). +adjudicación documentada. + +### THM-4 · color-picker (29) + avatar (28) + time-range-picker (26) ✅ ADJUDICADOS 2026-07-12 — 0 deuda + +- **color-picker (29)** → 0 deuda: `data-state='open/closed'` (root/content/ + trigger) = **composición** (de-dialoged, `color-picker-content.svelte` compone + `PopoverContent` — el estado lo pinta el Popover) · `data-last-action=*` = + **sema/dismissal** (escrito por prewrites close-commit/cancel/dismiss, lo + consumen sema packs) · `data-format`/`data-disabled/invalid/readonly/required` + + area/channel-slider/swatch = behavioral + composición (Sliders/Field + compuestos). +- **avatar (28)** → 0 deuda: `[data-avatar][data-color='ROLE']` ×8 = **artefacto + de capa compartida** — mi migración THM-2 movió el color al forward + `[data-avatar][data-color]` presence-guarded, así que los per-rol dejaron de + vivir en avatar.css (viven en la capa) → el count SUBIÓ por una MEJORA, no + deuda · `data-variant='soft/solid'` = lo consume el **recipe token** (generado, + verificado 2 hits) — punto ciego del lint per-fichero (solo ve avatar.css) · + badge `[data-color='ROLE']` ×8 = el matrix consume la forma compuesta + `[variant][color]`, no la per-rol suelta · `data-status=*` = estado de carga + behavioral (loading/idle SÍ se usan; loaded/error = default). +- **time-range-picker (26)** → 0 deuda: `data-state='open/closed'` = composición + (Popover) · `data-last-action`/`data-starting-style`/`data-ending-style` = + sema + motion @starting-style · `*-slider[data-endpoint/disabled]` + + day-period-toggle = composición (Sliders/Toggle) + behavioral (endpoint) · + `data-disabled/required` = form-state. + +### THM-4 — CONCLUSIÓN (5 hotspots adjudicados) + +Los 5 mayores hotspots (156 `unused` juntos) están adjudicados: **media-player, +color-picker, avatar, trp = 0 deuda** (composición + behavioral + capa +compartida); **stepper = 1 redundancia de API, consolidada** (`75fa9400`). +**Deuda real total en los 5 mayores = 1 ítem** (arreglado). Esto CONFIRMA la +doctrina ("la mayoría son legítimos") y sella la decisión: **la columna `unused` +se queda informativa, sin severidad/regla de máquina** — la tasa de deuda no la +justifica. El resto del catálogo (~1140) es la cola larga de las mismas +categorías legítimas. Hallazgo colateral: migrar un componente a la capa +compartida (avatar) SUBE su `unused` (los per-rol pasan a artefacto de capa) — +el count alto no es señal de deuda. **THM-4 CERRADO.** ### Cola pendiente (sin orden fijo — algunas requieren decisión de usuario) - **THM-2 rollout** — CERRADO (ver §THM-2; `Avatar.Badge` fuera por diseño). -- **THM-4 hotspots** — **media-player ✅ adjudicado (0 deuda, dossier arriba)**. - Restan: stepper 30 · color-picker 29 · avatar 28 · trp 26 (dossier c/u). +- **THM-4 hotspots** — **CERRADO**: 5 hotspots adjudicados (media-player/color- + picker/avatar/trp = 0 deuda · stepper = 1 redundancia consolidada `75fa9400`). + Columna `unused` = informativa, sin regla. Dossiers arriba. - **F4-D GAP-\*** — menú de personalización (§7): pendiente de SCOPING del usuario (qué se arranca vs qué se registra como límite deliberado). - **cascada-vs-firmas** (motion) — cola lateral: las reglas `[data-stagger]`