From a82c422b0586a928340c2954fb4e80e239ea83a9 Mon Sep 17 00:00:00 2001 From: dev Date: Wed, 27 May 2026 15:44:36 +0200 Subject: [PATCH] docs(CONTINUE): record F2 sprint state and F2.3 sub-plan Co-Authored-By: Claude Opus 4.7 (1M context) --- continue.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/continue.md b/continue.md index c20739d72..5e2818860 100644 --- a/continue.md +++ b/continue.md @@ -200,6 +200,38 @@ Spinner `bars`/`dots`/`ring`, Button `'plain'`) viven en cada match the declared type union` valida bidireccionalmente que CSS selectors y type unions coincidan. +## Words extension system — estado y siguiente sprint + +**Hecho** (commits `1805b081` skeleton + `088d31ec` F2.3a): +- F1.1 fix evento `contact-focus` molesto (transition-only + popover scope) +- F1.2 declarar 9 `data-*` hardcoded en morfo +- F1.3 i18n keys kebab-case +- F1.4 canonizar 9 event names a forma `{family}-{verb}-{variant}` +- F1.5 toolbarLayout `grouped|inline` con ResponsiveProp +- F2.1 audit + design de `WordsExtension` interface (9 hooks) +- F2.2 skeleton: `extension-types.ts` + `extension-registry.ts` con 14 tests verdes +- F2.3a tipos de table movidos a `extensions/table/types.ts` con re-export en `engine/document.ts` + +**Siguiente sprint dedicado — F2.3b-j** (migración completa de table): + +Orden propuesto (incremental, commit por sub-paso, tests verdes en cada uno): +1. **F2.3b** — factories de table (createTable, createTableRow, createTableCell) → `extensions/table/factories.ts` +2. **F2.3c** — serialize-html.ts table-specific code → `extensions/table/serialize-html.ts` (~150 LoC) +3. **F2.3d** — serialize-markdown.ts pipe-table code → `extensions/table/serialize-markdown.ts` (~50 LoC) +4. **F2.3e** — render.ts table-specific code → `extensions/table/render.ts` (~100 LoC) +5. **F2.3f** — path.ts deep-path helpers → `extensions/table/path.ts` (~80 LoC) +6. **F2.3g** — normalize.ts table normalization → `extensions/table/normalize.ts` (~70 LoC) +7. **F2.3h** — operations.ts insertTable / table-row / table-cell / etc. → `extensions/table/operations.ts` (~400-500 LoC, lo más entrelazado) +8. **F2.3i** — wire `tableExtension: WordsExtension` al registry desde la construction del engine. El engine consulta el registry para rutas table; fallback al hardcoded path si no se encuentra. +9. **F2.3j** — verify: engine.test.ts 129/129 + contracts + visual smoke + +Después F2.4 (code-block, similar plan), F2.5 (docs `EXTENSIONS.md`), F2.6 (verify final). + +**Riesgos del F2.3 completo**: +- operations.ts es 2620 líneas con table refs muy entrelazadas con el normalize cascade +- Importante: NO mover operations sin haber cabledado el registry primero (sino tests del motor rompen) +- Sugerencia: hacer F2.3i (wire registry con stub table extension vacía) ANTES de F2.3h, así operations.ts se reescribe contra una API estable + ## Cómo retomar mañana 1. **Probar toggle-group en navegador**: