You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte-kit-vice/docs/process/PLAN-arts-docs-reconciliati...

92 lines
8.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# PLAN — Arts docs reconciliation (the `active-app` ecosystem)
> **Why this exists**: the docs reconciliation (Phase 6 drift-fix + Phase 7
> corpus-libro) covered the **active-uix** ecosystem (morfo · soma · sema ·
> eidos → the `docs/architecture/*` chapters). The **active-app** side — the
> `arts/` runtime artifacts that `ActiveApp` composes — was left as E5-in-place
> and never got the same pass. This plan does for arts what F6+F7 did for the
> UIX layers. Grounded in a 22-agent per-art audit (2026-07-03) — every drift
> below was verified against the code.
> **Kickoff for a new session**: *"Lee docs/process/PLAN-arts-docs-reconciliation.md
> y ejecuta la tanda que toque."* Rules (inherited): respond in Castilian, docs
> in English; NEVER touch `words/` `palabras/` `chronos/` `media-player`; commit
> per batch (`-F file` messages — backticks in `-m` run command substitution);
> `git reset -q` + stage only your own files; each systemic fix ships a guard.
## The ecosystem (22 arts)
`src/arts/` = the runtime building blocks `ActiveApp` composes (the
`active-app/README.md` composition root is the analogue of `active-uix`). Naming
canon: `Engine*` (stateless, pure factory) / `Active*` (reactive `$state`,
`.svelte.ts`). The shared `ActiveEngine<TSnapshot,TError>` contract + the index
live in [`src/arts/README.md`](../../src/arts/README.md).
## Audit findings (2026-07-03, evidence-based)
| Art | Lang | Drift | Extra docs | Disposition |
|---|---|---|---|---|
| **active-app** | mixed | 3 (missing `defineEngineMotion` in services table; 3/7 presets shown; incomplete FS layout) | — | **→ architecture chapter** (composition root; has a Spanish "Handoff 2026-05-13" to extract) |
| **orca** | spanish | **6** (phantom `OrcaAction.priority`/`tokenTimeoutMs`/`onFatal`/`execution`+`ORCA_EXEC_*`) | — | **book-chapter candidate** (orchestration kernel; highest drift; ES→EN, high effort) |
| adom | spanish | 3 (missing `prefersReducedMotion`/`writeProperty`/`removeProperty`; `listen()` 4 overloads; 9 undoc rune helpers) | docs page (ok) | E5-reconciled + ES→EN; stale `/test/adom` ref |
| bus | english | 4 (layer diagram says `arts/bus` but files in `libs/bus`; stale preset names post-refactor; `COLLECT` error mode undoc) | — | E5-reconciled (agent said book-chapter) |
| cache | mixed | 4 (wrong `createActiveApp({cache})` sig → `services:{cache:defineActiveCache()}`; undoc `clearError`/`snapshot`/`onChange`; demo URL placeholder) | — | E5-reconciled (agent said book-chapter) |
| format | spanish | 4 (`unts/`→`units/` typo; undoc `currency.convertAs/formatAs`, `units.convertToDefault`) | `currency/README.md` (keep) | E5-reconciled + ES→EN |
| timer | english | 4 (FS diagram 11→20 files; "50 tests"→47; `reschedule` behavior/errors drift vs DESIGN) | `DESIGN_TIMR.md` (1400 L, **Spanish**, normative) | E5-reconciled; **DESIGN doc → decisions/ (translate)** |
| color | english | 3 (JSDoc `setCssVariables`→`applyColorScheme`; "Phase 0 not consumed" stale; bare THEMING ref) | — | E5-reconciled |
| connection | spanish | 2 (`createEngineConnections()` needs `{timers}`; 6 missing `Active` props) | `DESIGN_CONN.md` (486 L, historical) | E5-reconciled + ES→EN; **DESIGN → decisions/**; stale `/active`+`conn-chat` refs |
| sium | spanish | 3 (18 codes listed, 8 omitted; undoc `cssLength`/`CSS_LENGTH_REGEX`) | `COMPARATIVA_*` (foreign/untracked), `_examples/README` | E5-reconciled + ES→EN |
| prefs | spanish | 2 (wrong `createPrefsStorageBridge`/`applyBrowserEnvironment` param names) | — | E5-reconciled + ES→EN |
| clipboard | spanish | 1 (`$active-app/services`→`/service-factories`) | — | E5-reconciled + ES→EN (small) |
| motion | english | 2 (missing `resolve/has/list/exit`; `JsDriver` `svelte` unimplemented) | — | E5-reconciled |
| http | english | 1 (`DEFAULT_*`→`HTTP_DEFAULT_*` names) | — | E5-reconciled |
| **ethereal** | english | 0 | `PERF.md` only | **needs-readme** (no README at all) |
| session | english | 0 | `DESIGN.md` (historical) | E5 clean; **DESIGN → decisions/** |
| perm | english | 0 | — | E5 clean; stale `/test/perm` ref |
| perf | english | 0 | — | E5 clean |
| auth | spanish | 0 | — | E5 clean + ES→EN only |
| langs | mixed | 0 | — | E5-reconciled (light EN pass) |
| logger | mixed | 0 | — | E5-reconciled (light EN pass) |
| storage | english | 0 | — | E5 clean |
**Rollup**: ~40 verified drift findings across 15 arts · **12 READMEs need
ES→EN** (8 spanish: adom, auth, clipboard, connection, format, orca, prefs,
sium; 4 mixed: active-app, cache, langs, logger) · **1 missing README**
(ethereal) · **3 historical DESIGN docs** (connection, session, timer) + 1
foreign COMPARATIVA (sium) · several **dead route/demo cross-refs**.
## Batches (mirror F6 drift-fix → F7 structure)
| Batch | Content | Effort |
|---|---|---|
| **A0** | **Guard first**: extend `docs-check` (or a new `arts:check`) — every `src/arts/{name}/` has a README; the `Engine*/Active*` naming holds; (optional) an I-invariant that the arts index lists every art. Ship it so A1–A3 land against a net. | low |
| **A1 — drift sweep** | Fix the ~40 doc↔code mismatches, art by art (verify each edit against the code symbol the audit cited). Priority by count: orca(6) · bus/cache/format/timer(4) · active-app/adom/color(3) · connection/prefs/sium(2) · clipboard/http/motion(1). Also the dead cross-refs (adom `/test/adom`, connection `/active`+`conn-chat`, perm `/test/perm`, cache demo URL). | high |
| **A2 — ES→EN** | Translate the 8 Spanish + 4 mixed READMEs (faithful, mark stale with `<!-- TODO(reconcile) -->`, same rule as F6). Biggest: orca, adom, format, connection, prefs, sium. | high |
| **A3 — ethereal README** | Author `src/arts/ethereal/README.md` (it only has `PERF.md`). Ethereal is the floating/positioning engine (`$ethereal` = the own floating-UI runtime). Follow the art README shape; link `PERF.md` as its correctness record. | low |
| **B1 — active-app chapter** | Promote `active-app` to `docs/architecture/active-app.md` — the arts composition root, the missing analogue of `active-uix.md`. Extract the "Handoff 2026-05-13" Spanish block to `docs/process/`; ES→EN; stub at the old path (like the layer READMEs). Wire into `docs/README.md` E1 + the reading order. **This is the "active-app was missing from the book" fix the user pointed at.** | medium |
| **B2 — DESIGN docs** | Move the historical design docs to `docs/decisions/` like the eidos RFCs (they're already indexed in `docs/decisions.md`): `DESIGN_CONN.md`, `session/DESIGN.md`, `timer/DESIGN_TIMR.md` (Spanish, 1400 L — translate or move verbatim-as-historical per the F7 chronicle rule). Stubs at old paths keep the ~30 `DESIGN_TIMR §12.8`-style provenance citations resolving. `sium/COMPARATIVA` is foreign/untracked — leave unless staged. | medium |
| **B3 — index + TOC** | Verify `src/arts/README.md` lists all 22 (add any missing); confirm `docs/README.md` E5 pointer + add the arts to the "I want to… use a runtime artifact" shortcut. `docs:check` green. | low |
## Open questions (need the user — like F7's AskUserQuestion)
1. **Arts structure**: keep the 22 arts as **E5-in-place-reconciled** (recommended
— they're peripheral runtime services, same call F7 made) with only
**active-app** promoted to an architecture chapter? Or move all arts into a
new **`docs/arts/` book section**? *Recommendation: E5-reconciled +
active-app chapter.*
2. **orca**: the orchestration kernel is the second architecturally-heavy art
(highest drift, book-chapter verdict). Promote it to `docs/architecture/orca.md`
too, or keep E5-reconciled? *Recommendation: E5-reconciled for now; revisit if
it grows a consumer-facing surface.*
3. **DESIGN docs**: move to `docs/decisions/` translated (F7 pattern), or keep
in-place with stubs (they're historical, Spanish, cited by `§N`)? *Recommendation:
move to decisions/ as `rfc-`/`design-` siblings; translate the timer one or
keep it verbatim-historical (chronicle rule).*
## Verification (per batch)
`npm run check` (compare to the drifting foreign baseline, not 59) · the art's
own tests where they exist (`vitest src/arts/{name}`) · `npm run docs:check`
after any doc move · `arts:check` (A0) green · browser only if an art has a live
docs page.

Powered by TurnKey Linux.