diff --git a/src/uix/eidos/components/palabras/AUDIT.md b/src/uix/eidos/components/palabras/AUDIT.md
index 0b218416c..5caeb7729 100644
--- a/src/uix/eidos/components/palabras/AUDIT.md
+++ b/src/uix/eidos/components/palabras/AUDIT.md
@@ -8,8 +8,8 @@
> Referencias contrastadas: Froala · TinyMCE · CKEditor 5 · TipTap (ProseMirror) · Quill ·
> Lexical · Slate.
>
-> Documento hermano: [`../words/AUDIT.md`](../words/AUDIT.md) (auditoría visual de la
-> recipe de words, 2026-06-06 — fases A–D hechas, E pendiente). Este dossier es la
+> Documento hermano: el `AUDIT.md` visual de words (2026-06-06, fases A–D hechas —
+> hoy solo en git history: el chrome words se retiró en FW). Este dossier es la
> auditoría de PRODUCTO/ARQUITECTURA; aquel era de homogeneización CSS.
>
> **Actualización 2026-07-14 (decisión de usuario)**: el chrome `words`
diff --git a/src/uix/eidos/components/palabras/PLAN-EJECUCION.md b/src/uix/eidos/components/palabras/PLAN-EJECUCION.md
index d90f77c28..354241ccc 100644
--- a/src/uix/eidos/components/palabras/PLAN-EJECUCION.md
+++ b/src/uix/eidos/components/palabras/PLAN-EJECUCION.md
@@ -225,9 +225,9 @@ Con **presupuesto de latencia** por interacción (se verifica tras F1): pulsaci
code / quote / callout ES la identidad visual del contenido. Se diseña como esquema
(F3.2 lo implementa), no como CSS suelto.
3. **Vocabulario de tokens del chrome `--palabras-*`**: aplicar las lecciones del
- [`AUDIT.md` de words](../words/AUDIT.md) ANTES de que `palabras.css` (1 008 líneas
- clean-slate) críe su propia sopa — escalas wash/radius/duraciones/anchos definidas de
- entrada; cero hex, cero px mágicos, chrome-font única.
+ `AUDIT.md` visual de words (en git history desde FW) ANTES de que `palabras.css`
+ (1 008 líneas clean-slate) críe su propia sopa — escalas wash/radius/duraciones/
+ anchos definidas de entrada; cero hex, cero px mágicos, chrome-font única.
4. **Modo oscuro · densidad · reduced-motion** del chrome completo.
5. **Dirección estética** (DG-13): el mood se elige contigo ANTES de tocar CSS.
diff --git a/src/uix/eidos/components/words/words-activate.svelte b/src/uix/eidos/components/palabras/palabras-activate.svelte
similarity index 100%
rename from src/uix/eidos/components/words/words-activate.svelte
rename to src/uix/eidos/components/palabras/palabras-activate.svelte
diff --git a/src/uix/eidos/components/words/words-block-drag-type.ts b/src/uix/eidos/components/palabras/palabras-block-drag-type.ts
similarity index 100%
rename from src/uix/eidos/components/words/words-block-drag-type.ts
rename to src/uix/eidos/components/palabras/palabras-block-drag-type.ts
diff --git a/src/uix/eidos/components/words/words-block-drag.svelte b/src/uix/eidos/components/palabras/palabras-block-drag.svelte
similarity index 98%
rename from src/uix/eidos/components/words/words-block-drag.svelte
rename to src/uix/eidos/components/palabras/palabras-block-drag.svelte
index 17e883493..218b7c2c6 100644
--- a/src/uix/eidos/components/words/words-block-drag.svelte
+++ b/src/uix/eidos/components/palabras/palabras-block-drag.svelte
@@ -20,7 +20,7 @@
*/
import type { ActiveDom } from '$adom';
import type { ProviderSnippetProps } from '$soma/components/words';
- import { WORDS_BLOCK_DRAG_TYPE } from './words-block-drag-type';
+ import { WORDS_BLOCK_DRAG_TYPE } from './palabras-block-drag-type';
let {
api,
diff --git a/src/uix/eidos/components/palabras/palabras-handle.svelte b/src/uix/eidos/components/palabras/palabras-handle.svelte
index 88a8ee58e..44a6691bc 100644
--- a/src/uix/eidos/components/palabras/palabras-handle.svelte
+++ b/src/uix/eidos/components/palabras/palabras-handle.svelte
@@ -27,7 +27,7 @@
import { Box } from '$uix/eidos/components/box';
import { Button } from '$uix/eidos/components/button';
import { EllipsisVertical } from '$uix/eidos/components/icon';
- import { WORDS_BLOCK_DRAG_TYPE } from '$uix/eidos/components/words/words-block-drag-type';
+ import { WORDS_BLOCK_DRAG_TYPE } from './palabras-block-drag-type';
let {
api,
diff --git a/src/uix/eidos/components/words/words-image-file.ts b/src/uix/eidos/components/palabras/palabras-image-file.ts
similarity index 79%
rename from src/uix/eidos/components/words/words-image-file.ts
rename to src/uix/eidos/components/palabras/palabras-image-file.ts
index a31070e4d..6f8abcca4 100644
--- a/src/uix/eidos/components/words/words-image-file.ts
+++ b/src/uix/eidos/components/palabras/palabras-image-file.ts
@@ -1,11 +1,11 @@
/**
* Native image-file picker → data URL.
*
- * Shared by the two Words consumers that let the user insert an image
- * from disk: the gutter inserter (`words-block-gutter.svelte`) and the
- * inspector's image panel upload button (`words-block-panel.svelte`).
- * Both need the identical "open file dialog → FileReader → data URL"
- * flow, so it lives here once instead of being copy-pasted.
+ * Shared by the palabras surfaces that let the user insert an image
+ * from disk: the block-type grids (grip menu + column inserter) and the
+ * panel's image upload button (`palabras-panel.svelte`). All need the
+ * identical "open file dialog → FileReader → data URL" flow, so it
+ * lives here once instead of being copy-pasted.
*
* Kept as a plain helper (NOT routed through ActiveDom): a transient
* `` plus `FileReader` is not instrumented by the
diff --git a/src/uix/eidos/components/palabras/palabras-panel.svelte b/src/uix/eidos/components/palabras/palabras-panel.svelte
index b4c0bfe35..ac242209a 100644
--- a/src/uix/eidos/components/palabras/palabras-panel.svelte
+++ b/src/uix/eidos/components/palabras/palabras-panel.svelte
@@ -41,7 +41,7 @@
import PalabrasColorRow from './palabras-color-row.svelte';
import PalabrasSpacing from './palabras-spacing.svelte';
import PalabrasTypography from './palabras-typography.svelte';
- import { pickImageFile } from '$uix/eidos/components/words/words-image-file';
+ import { pickImageFile } from './palabras-image-file';
import { FloatPanel } from '$uix/eidos/components/float-panel';
import { deleteBlockAndReanchor } from './palabras-block-actions';
import type { PalabrasFieldDef, PalabrasSectionDef } from './types';
diff --git a/src/uix/eidos/components/palabras/palabras.svelte b/src/uix/eidos/components/palabras/palabras.svelte
index a7351d94c..4cef01544 100644
--- a/src/uix/eidos/components/palabras/palabras.svelte
+++ b/src/uix/eidos/components/palabras/palabras.svelte
@@ -17,8 +17,8 @@
import * as Words from '$soma/components/words';
import { Card } from '$uix/eidos/components/card';
import { Flex } from '$uix/eidos/components/flex';
- import WordsActivate from '$uix/eidos/components/words/words-activate.svelte';
- import WordsBlockDrag from '$uix/eidos/components/words/words-block-drag.svelte';
+ import WordsActivate from './palabras-activate.svelte';
+ import WordsBlockDrag from './palabras-block-drag.svelte';
import PalabrasBreadcrumb from './palabras-breadcrumb.svelte';
import PalabrasColumnInserter from './palabras-column-inserter.svelte';
import PalabrasHandle from './palabras-handle.svelte';
diff --git a/src/uix/eidos/components/words/AUDIT.md b/src/uix/eidos/components/words/AUDIT.md
deleted file mode 100644
index c0333714e..000000000
--- a/src/uix/eidos/components/words/AUDIT.md
+++ /dev/null
@@ -1,109 +0,0 @@
-# Words — auditoría visual + plan de homogeneización
-
-> Estado: **auditado 2026-06-06**. La capa soma está limpia; el trabajo es 100 % en
-> la recipe `words.css` (eidos). Documento de trabajo — se actualiza por fase.
-
-## Diagnóstico
-
-**Soma (`src/uix/soma/components/words/`) está limpia (95/100):** headless, emite
-`data-words-*`, sin estilos inline / `
diff --git a/web/routes/uix/components/words/README.md b/web/routes/uix/components/words/README.md
deleted file mode 100644
index 8684abf82..000000000
--- a/web/routes/uix/components/words/README.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# Words Demo
-
-La demo publica vive en `web/routes/uix/components/words/+page.svelte` y sigue
-la plantilla bloqueada de UIX:
-
-- Live, API, Morfo, Sema, Recipe y A11y.
-- Stage permanente entre header y tabs.
-- `MutationObserver` sobre `data-event`.
-- Snippets Soma y Eidos reactivos.
-- Controles visibles para documento, toolbar, estados Soma, size, variant y
- color.
-- Toolbar Eidos agrupado por familias/submenus en presets `minimal`,
- `formatting`, `full` y `custom`.
-- Import/export visible para JSON, texto, HTML limpio/import seguro y Markdown
- con listas indentadas, find/replace regex/preserve-case/current-match/selection,
- code blocks con highlighting runtime y tablas con formato de celda/tabla.
-- API documentada para leer/actualizar `language` de code blocks desde snippets
- (`currentCodeLanguage` / `setCodeLanguage`).
-- Selector visual `Words.CodeLanguagePicker` dentro de los presets de toolbar
- para cambiar el lenguaje del bloque `code` seleccionado.
-- Tokens de syntax highlighting visibles desde `data-words-code-token` sin
- contaminar el export HTML limpio.
-- `SlashMenu` opcional visible en snippets Soma/Eidos: `/query` abre comandos
- de bloque/lista/tabla anclados al caret y navegables por teclado.
-- Tablas editables visibles en el preset `sample`, con toolbar y slash command
- para insertar una tabla 2x2 canonica, botones de fila/columna, navegacion
- por celdas con `Tab`/`Shift+Tab` y formato desde el submenu `Table`: header
- row/column, alineacion horizontal, vertical align, tonos de celda, striped
- rows y compact table. La demo tambien verifica formato inline dentro de
- celdas desde el submenu de texto. El submenu `Table` se renderiza por
- secciones rotuladas y con ancho acotado para evitar una matriz opaca de
- iconos.
-- Checklist interactiva: el marcador de cada item se puede clicar y
- `Ctrl/Cmd+Enter` alterna el item actual.
-- El snippet Soma refleja la misma capacidad con un `