sema: borrar el README fantasma de words (DG-3) — F0 completa

Afirmaba un pack (sema/components/words.ts) y un registro en el layout
que nunca existieron, con nombres de eventos obsoletos vs el morfo. El
morfo declara expression: 'family-default' — coherente sin pack. La
decision pack-vs-default de words sigue viva en FD.4 (firma
perceptual). Orden explicita del usuario 2026-07-14.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
menubar-v4-safe
dev 3 months ago
parent e2659e9b38
commit 5583dbca65

@ -73,7 +73,7 @@ costura natural en el código existente.
| # | Defecto | Evidencia | Gravedad |
|---|---|---|---|
| D-1 | **`WORDS_BLOCK_TYPES` omite `'columns'`** aunque `WordsBlockMap` lo incluye → `isWordsBlockType('columns')` devuelve `false`. Hoy sin consumidor activo (el validador usa el registry), pero es un export público mentiroso y el comentario de `validate.ts:11` lo cita como fuente. | `engine/types.ts:431-441` vs `:380-391` | Latente, arreglo trivial |
| D-2 | **El pack sema NO existe** y su README afirma que sí: “Implementacion runtime: `src/uix/sema/components/words.ts`; registrado en `web/routes/uix/+layout@.svelte`”. Ni el fichero ni el registro existen. Además su tabla de eventos usa nombres viejos (`commit-content`, `commit-format`…) que ya no coinciden con el morfo (`commit-save-content`, `commit-set-format`…). El morfo declara `expression: 'family-default'`, así que el guard pasa — pero el README es un artefacto muerto que ya indujo a error una vez (lección registrada en `continuar-palabras.md` D.6). | `sema/components/words/README.md` | Documental, corrige o borra |
| D-2 | **El pack sema NO existe** y su README afirmaba que sí (fichero + registro inexistentes, nombres de eventos obsoletos). **RESUELTO 2026-07-14: borrado por orden del usuario** (DG-3). La decisión pack-vs-default sigue viva en FD.4. | `sema/components/words/README.md` | Documental ✅ |
| D-3 | **Scope-drift del morfo**: `scope: ['soma','sema']` sin `'eidos'`, con DOS recipes eidos vivas (words + palabras). Excluido del guard SYS-1 por ser track WIP, pero es deuda de contrato. | `morfo/components/words.ts:7` | Contrato |
| D-4 | **Warning Svelte real en suite**: `words-drawer.svelte:23` — `state_referenced_locally` (`defaultOpen` capturado por valor). | salida de vitest 2026-07-13 | Menor |
| D-5 | **Imágenes = data-URL en el JSON** (`FileReader.readAsDataURL`). Un documento con 5 fotos de móvil son decenas de MB de modelo, historia (snapshots) y export. Ninguna referencia persiste base64: todas abstraen un upload adapter. | `eidos/components/words/words-image-file.ts` | **Alta** (escala) |

@ -15,8 +15,13 @@
> · `326a25ec` (FW: −6 217 líneas; 4 piezas migradas; sidebar → Palabras). Verificado:
> engine 493/493 · guards eidos 35/35 · smoke PASS · demo en navegador (panel, pills
> H1–H6/HC, write-path font-size, reset) con 0 errores de consola. **DG-2 RESUELTA**
> (2026-07-14): rt.css borrado por orden del usuario ("no tiene sentido"). **Queda de
> F0**: DG-3 (README sema) — espera tu palabra. **Hallazgo UX nuevo** para
> (2026-07-14): rt.css borrado por orden del usuario ("no tiene sentido"). **DG-3
> RESUELTA** (2026-07-14): `sema/components/words/README.md` borrado por orden del
> usuario (afirmaba un pack y un registro inexistentes). **F0 COMPLETA.** Fósiles
> hermanos detectados al cerrarla (pendientes de palabra): `morfo/components/words/
> README.md` (staging V1 de 2026-05-24, contrato desactualizado) y `src/uix/words/`
> (carpeta de coordinación de mayo: README con rutas ya falsas + 9 dossiers/auditorías
> en `references/`). **Hallazgo UX nuevo** para
> DG-4: CssField materializa el valor efectivo al enfocar pero el tecleo AÑADE (sin
> select-on-focus; Ctrl+A no selecciona dentro). **Siguiente**: FD (ratificar
> INTERACCION.md ⚠️ + storyboards) ‖ F1 (render incremental).
@ -82,7 +87,7 @@ visible antes: FD puede adelantarse a F1 sin coste (no toca código).
|---|---|---|---|
| DG-1 | **WIP aparcado**: ¿aterrizar o descartar? | +404/−318 en 6 ficheros (tipografía → CssField/Select/Switch, modelo-exclusión). La parte de `words.css` del WIP queda **moot** — FW la borra | Aterrizar SOLO los 5 ficheros de palabras (la dirección una-propiedad-un-dueño es correcta); falta verificación en navegador |
| DG-2 | ~~**`rt.css`** (27k líneas, raíz del repo)~~ **RESUELTA 2026-07-14: borrado** | Era el `styles.css` compilado de `@radix-ui/themes` (Radix Colors + 1 358 clases `.rt-*`), descargado como consulta el 8-jul y olvidado; 0 referencias reales | Borrado por orden del usuario — re-descargable de npm si alguna vez hace falta |
| DG-3 | **README sema estancado** (D-2) | Está dentro de `src/uix/sema/**` (regla 1) — afirma un pack y un registro que no existen | Permiso puntual para corregirlo o borrarlo; alternativa: decidir si words DEBE tener pack (es candidato de libro D.5/D.6: superficie de alta frecuencia) |
| DG-3 | ~~**README sema estancado** (D-2)~~ **RESUELTA 2026-07-14: borrado** (orden del usuario) | Afirmaba `sema/components/words.ts` + registro en layout — ninguno existía; nombres de eventos obsoletos | La decisión pack-vs-default de words sigue viva como parte de FD.4 (firma perceptual) |
| DG-4 | **Bug del channel-slider del ColorPicker** (D-8) | Componente compartido (regla 2); afecta al popover de apariencia | Autorizar una sesión de fix en el componente compartido, con test |
| DG-5 | **Enfoque del render incremental** (F1) | Opción B (reconciliación por bloque, Svelte keyed) vs opción A (reconciliador fino por nodo) | **B ahora, A después** — B da el 95 % del beneficio con 20 % del coste y no cierra la puerta a A |
| DG-6 | **Reparto rango-vs-bloque en la UI** (F2) | ¿Dónde vive el estilo de rango? | Bubble menu = rango (selección); panel palabras = bloque. Documentarlo como doctrina del editor |

@ -1,53 +0,0 @@
# Words Sema
Sema no implementa editor ni corrige estado. Solo proyecta percepcion a partir
de los eventos semanticos declarados en Morfo y disparados por Soma.
Implementacion runtime:
- `src/uix/sema/components/words.ts`
- export publico: `wordsSema`
- registrado en la demo UIX en `web/routes/uix/+layout@.svelte`
## Eventos V1
| Event | Target | Feedback |
| ---------------------- | -------------- | ----------------------------- |
| `contact-focus` | content | tick muy sutil |
| `commit-content` | provider | commit suave + success haptic |
| `commit-format` | command-button | tap neutro |
| `commit-slash-command` | slash-menu | tap neutro |
| `commit-link` | link-editor | tap neutro |
| `commit-unlink` | link-editor | tap neutro |
| `commit-set-replace` | find-replace | tap neutro |
| `commit-check` | content | tap neutro |
| `commit-history` | provider | tap descendente |
| `commit-clear` | provider | tap descendente |
| `signal-invalid-input` | content | warning |
## Decisiones
- No se emite feedback por cada keystroke ni por cada transaccion interna del
motor.
- El commit confirmado y los comandos discretos si entran en Sema.
- Marcar/desmarcar un item de checklist es una accion discreta del editor y
usa `commit-check`, no `commit-content`, para no confundirse con blur/commit
explicito del documento.
- Replace-all, incluido el modo preserve-case, sigue usando
`commit-set-replace`; no se emite un evento distinto por cada match cambiado.
- Aplicar un slash command usa `commit-slash-command` sobre `slash-menu`; la
navegacion del menu no emite feedback perceptivo.
- Insertar o editar filas/columnas de una tabla desde toolbar usa
`commit-format` porque es un comando discreto de estructura del documento;
desde slash menu usa
`commit-slash-command`.
- Errores de input no soportado se loguean en Soma y tambien emiten
`signal-invalid-input` para feedback perceptivo.
## Gaps
| Gap | Decision |
| --------------------------- | ------------------------------------------ |
| Diferenciar undo vs redo | defer; Morfo usa un unico `commit-history` |
| Import/export success/error | defer hasta cerrar importador/exportador |
| Bubble/link popover events | defer junto a esas partes Soma |
Loading…
Cancel
Save

Powered by TurnKey Linux.