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/audit/00_WORKLIST.md

17 KiB

UIX Component Audit — Worklist (resumable index)

worklist-version: 1 generated-at: 2026-06-26 total-names: 127 (82 soma-backed + 45 eidos-only) status: AUDIT COMPLETE — 124/124 audited (words, palabras, chronos excluded per user directive) across 8 batches. result: 0 CRITICAL · 18 HIGH · 129 MEDIUM · 60 LOW. See SUMMARY.md for the verdict + systemic findings. mode: per-component reports in audit/components/{kebab}.md; roll-ups in audit/{SUMMARY,SHARED_EXTRACTION,THEMING_COHERENCE,VALIDATOR_GAPS}.md

This is the resumable index. Each row's status flips pending → audited as its audit/components/{kebab}.md is written. Re-runs (MODE=reeval) read this to know what exists and what was covered.

Legend

Col Meaning
scope morfo.scope declared layers (the authored contract)
morfo Y = morfo/components/{n}.ts; INT = morfo/internal/{n}.ts; - = none
prov Y = soma/components/{n}/{n}-provider.svelte.ts; dir* = soma dir exists but no standard provider file; - = no soma dir
eidos Y = eidos/components/{n}/ dir; (co) = rendered inside a sibling's eidos dir; - = none
demo Y = web/routes/uix/components/{n}/; - = none
test Y = {n}-provider.svelte.test.ts; - = none
#0 cross-reference flag worth confirming during that component's audit

Cross-reference anomalies (candidate finding-#0, to confirm in per-component audit)

These are recorded now so the audit doesn't "discover" them as surprises; each must be confirmed (or dismissed) inside the owning component's report.

Component Anomaly Status to confirm
menu-dial scope ['soma','sema','eidos'] but soma dir holds only index.ts — no menu-dial-provider.svelte.ts RESOLVED (Batch 2): compositional API; the headless runtime + nav helpers live in soma/components/menu-dial/ (non-standard filenames), the eidos root composes them. Benign by design (matches the compositional-not-data-driven doctrine).
onion-menu same as menu-dial RESOLVED (Batch 2): runtime in soma/components/onion-menu/onion-menu.svelte.ts + onion-menu-nav.ts; eidos <OnionMenu> root composes it via createOnionMenuRuntime. The agent's CRITICAL "eidos imports soma = frontier violation" was a FALSE POSITIVE (eidos→soma is the normal direction) — refuted in verification.
metrics scope ['sema','eidos'] yet has a soma dir with only index.ts RESOLVED (Batch 7): the soma logic lives in soma/components/metrics/metrics.svelte.ts (non-standard filename, not -provider.svelte.ts); it's a sema+eidos display component with a small soma helper. Legitimately structured, not dead.
picker-shell INTERNAL morfo, soma dir = index.ts only, no demo RESOLVED (Batch 3): internal-by-design. The shell logic lives in soma/components/picker-shell/picker-shell-handle.svelte.ts + exports.ts (re-exported by the 5 pickers); Clear/Cancel/Close compose <Button>, Footer/Header/Body are layout zones. Not an orphan.
avatar-group morfo Y, no own eidos dir — rendered by eidos/components/avatar/avatar-group.svelte Confirmed co-located (not orphan); audit theming under avatar
cascade, motion eidos morfos with no demo Confirm they are infra contracts (not user-facing components) — expected
words full stack present EXCLUDED from audit — active separate dev track (words/palabras), per docs/README.md note + project rule + user directive 2026-06-26.
palabras eidos for words EXCLUDED from audit — user directive 2026-06-26.
chronos full stack present EXCLUDED from audit — user directive 2026-06-26 (active track).
button scope ['soma','sema','eidos'], no provider test Test-coverage gap (dimension F)
chronos,textarea,password-field,month-grid,year-grid interactive, no provider test Test-coverage gaps (dimension F)

Components lacking a *-provider.svelte.test.ts (dimension-F gaps to record per row): button, chronos, menu-dial, metrics, month-grid, onion-menu, password-field, picker-shell, textarea, year-grid — plus every eidos-only primitive (expected: no provider).


Group 1 — Overlays · portal + floating + dismissal + focus (hardest / most systemic)

Component scope morfo prov eidos demo test #0 status
select soma,sema Y Y Y Y Y audited (4H/5M/2L)
combobox soma,sema Y Y Y Y Y audited (2H/3M)
dialog soma,sema Y Y Y Y Y audited (2H/2M/2L)
popover soma,sema Y Y Y Y Y audited (3M)
dropdown-menu soma,sema,eidos Y Y Y Y Y audited (4M/1L)
context-menu soma,sema,eidos Y Y Y Y Y audited (3M/1L)
menubar soma,sema Y Y Y Y Y audited (3M/4L)
navigation-menu soma,sema Y Y Y Y Y audited (1H/3M)
tooltip soma,eidos,sema Y Y Y Y Y audited (1M/1L)
drawer soma,sema Y Y Y Y Y audited (5M)
alert-dialog soma,eidos Y Y Y Y Y audited (1H)
command soma,sema Y Y Y Y Y audited (1M/5L)
link-preview soma Y Y Y Y Y audited (1M)
float-panel soma,sema Y Y Y Y Y audited (2M)
onion-menu soma,sema,eidos Y dir* Y Y - #0 RESOLVED audited (1M/3L)
menu-dial soma,sema,eidos Y dir* Y Y - #0 RESOLVED audited (3M/3L)

Group 2 — Pickers + calendar family (portal + composite + grid nav)

Component scope morfo prov eidos demo test #0 status
date-picker soma,sema Y Y Y Y Y audited (4M)
date-range-picker soma,sema Y Y Y Y Y audited (2M)
time-picker soma,sema Y Y Y Y Y audited (3M)
time-range-picker soma,sema Y Y Y Y Y audited (1M/2L)
color-picker soma,sema Y Y Y Y Y audited (2M/2L)
calendar soma,sema Y Y Y Y Y audited (4M/2L · MID-REFACTOR)
range-calendar soma,sema,eidos Y Y Y Y Y audited (2M/2L · MID-REFACTOR)
month-grid soma,sema Y Y Y Y - F audited (1M/1L)
year-grid soma,sema Y Y Y Y - F audited (1M/1L)
picker-shell INT INT dir* Y - - #0 RESOLVED audited (1M/1L)

Group 3 — Fields (input + composition + masking)

Component scope morfo prov eidos demo test #0 status
field soma Y Y Y Y Y audited (2M)
date-field soma,sema Y Y Y Y Y audited (3M · A30-effect)
date-range-field soma,eidos Y Y Y Y Y audited (2M/3L)
time-field soma,sema Y Y Y Y Y audited (2M/1L · A30-effect)
time-range-field soma Y Y Y Y Y audited (1M)
color-field soma,sema Y Y Y Y Y audited (3M · A30-effect)
css-field soma,sema Y Y Y Y Y audited (1M)
number-field soma,sema Y Y Y Y Y audited (1L · clean REFERENCE)
search-field soma,sema Y Y Y Y Y audited (2M)
password-field soma,sema Y Y Y Y - F audited (1M)
pin-input soma,eidos Y Y Y Y Y audited (1M)
textarea soma,sema Y Y Y Y - F audited (2M)
tags-input soma,sema Y Y Y Y Y audited (1M)
editable soma,sema Y Y Y Y Y audited (1M)

Group 4 — Collections + data (keyboard nav + virtualization + selection)

Component scope morfo prov eidos demo test #0 status
listbox soma,sema Y Y Y Y Y audited (1H/1M · A31)
grid-list soma,sema Y Y Y Y Y audited (2H/1M · A31)
tree-view soma,sema Y Y Y Y Y audited (1H/3M · A31)
tree-grid soma,sema Y Y Y Y Y audited (1H · A31)
table soma,sema Y Y Y Y Y audited (1M · engine-backed, A31 refuted)
virtual-list soma,sema Y Y Y Y Y audited (1M · A33 SvelteMap clean)
virtual-grid soma,sema Y Y Y Y Y audited (1M)
carousel soma,sema Y Y Y Y Y audited (2M/1L)
feed soma,sema Y Y Y Y Y audited (clean · A31 refuted)
pagination soma,sema Y Y Y Y Y audited (1M)
tag-group soma,sema Y Y Y Y Y audited (1H/2M/1L · A31)
rating-group soma,sema Y Y Y Y Y audited (1M)

Group 5 — Disclosure + selection controls (stateful)

Component scope morfo prov eidos demo test #0 status
accordion soma,sema,eidos Y Y Y Y Y audited (CLEAN)
collapsible soma,sema Y Y Y Y Y audited (1H/1M · seq-lag)
tabs soma,sema,eidos Y Y Y Y Y audited (CLEAN)
stepper soma,sema Y Y Y Y Y audited (2M/3L)
toggle soma,sema Y Y Y Y Y audited (1M · seq post OK)
toggle-group soma,sema,eidos Y Y Y Y Y audited (1M · A31)
switch soma,sema Y Y Y Y Y audited (1M · seq post OK)
checkbox soma,sema,eidos Y Y Y Y Y audited (1M/1L · A31 group, seq post OK)
radio-group soma,sema,eidos Y Y Y Y Y audited (1M · A31 clean)
slider soma,sema Y Y Y Y Y audited (1M · no A6 leak)
splitter soma,sema,eidos Y Y Y Y Y audited (1M/1L)
scroll-area soma Y Y Y Y Y audited (1M)

Group 6 — Actions + feedback + misc behavior

Component scope morfo prov eidos demo test #0 status
button soma,sema,eidos Y Y Y Y - F audited (CLEAN · ref impl)
toast soma,sema Y Y Y Y Y audited (1M)
announce soma,sema Y Y Y Y Y audited (2M)
clipboard soma,sema Y Y Y Y Y audited (1M/2L)
drag-drop soma,sema Y Y Y Y Y audited (3M)
form soma,sema Y Y Y Y Y audited (1M · A36 fix held)
file-upload soma,sema Y Y Y Y Y audited (1M)
toolbar soma,sema Y Y Y Y Y audited (1M · A35 fix held)
breadcrumb soma Y Y Y Y Y audited (1H · archetype-item)
meter soma Y Y Y Y Y audited (1M)
progress soma Y Y Y Y Y audited (1M)
timeline soma,sema,eidos Y Y Y Y Y audited (1M · archetype clean)
image-adjustments soma,sema Y Y Y Y Y audited (1M)
image-picker soma,sema Y Y Y Y Y audited (1M)
cropper soma,sema Y Y Y Y Y audited (2M/1L)
chronos soma,sema Y Y Y Y - EXCL excluded
metrics sema,eidos Y dir* Y Y - #0 RESOLVED audited (1M)
words soma,sema Y Y Y Y Y EXCL excluded

Group 7 — Eidos-only · layout primitives (theming-heavy; A/B/C/D light)

Component scope morfo prov eidos demo test status
box eidos Y - Y Y - audited (B8 theming)
flex eidos Y - Y Y - audited (B8 theming)
grid eidos Y - Y Y - audited (B8 theming)
stack eidos Y - Y Y - audited (B8 theming)
group eidos Y - Y Y - audited (B8 theming)
wrap eidos Y - Y Y - audited (B8 theming)
container eidos Y - Y Y - audited (B8 theming)
section eidos Y - Y Y - audited (B8 theming)
aspect-ratio eidos Y - Y Y - audited (B8 theming)
auto-grid eidos Y - Y Y - audited (B8 theming)
float eidos Y - Y Y - audited (B8 theming)

Group 8 — Eidos-only · typography + text

Component scope morfo prov eidos demo test status
text eidos Y - Y Y - audited (B8 theming)
heading eidos Y - Y Y - audited (B8 theming)
display eidos Y - Y Y - audited (B8 theming)
code eidos Y - Y Y - audited (B8 theming)
code-block eidos Y - Y Y - audited (B8 theming)
kbd eidos Y - Y Y - audited (B8 theming)
mark eidos Y - Y Y - audited (B8 theming)
highlight eidos Y - Y Y - audited (B8 theming)
link eidos Y - Y Y - audited (B8 theming)
s-text eidos Y - Y Y - audited (B8 theming)
s-text-virtual-list eidos Y - Y Y - audited (B8 theming)

Group 9 — Eidos-only · visual elements + composite-eidos + service

Component scope morfo prov eidos demo test status
badge eidos Y - Y Y - audited (B8 theming)
card sema,eidos Y - Y Y - audited (B8 theming)
avatar eidos Y - Y Y - audited (B8 theming)
avatar-group eidos Y - (co) Y - audited (B8 theming)
image eidos Y - Y Y - audited (B8 theming)
separator eidos Y - Y Y - audited (B8 theming)
skeleton eidos Y - Y Y - audited (B8 theming)
spinner eidos Y - Y Y - audited (B8 theming)
qr-code eidos Y - Y Y - audited (B8 theming)
icon eidos Y - Y Y - audited (B8 theming)
banner eidos Y - Y Y - audited (B8 theming)
chart eidos Y - Y Y - audited (B8 theming)
button-group eidos Y - Y Y - audited (B8 theming)
split-button eidos Y - Y Y - audited (B8 theming)
fab eidos Y - Y Y - audited (B8 theming)
radio-cards eidos Y - Y Y - audited (B8 theming)
format-date eidos Y - Y Y - audited (B8 theming)
format-number eidos Y - Y Y - audited (B8 theming)
relative-time eidos Y - Y Y - audited (B8 theming)
trans eidos Y - Y Y - audited (B8 theming)
cascade eidos Y - Y - - audited (B8 theming)
motion eidos Y - Y - - audited (B8 theming)
scroll-frames eidos Y - Y Y - audited (B8 theming)

Proposed audit order (batches)

Rationale (from §1.4): the hardest, most-coupled components are audited first because they expose systemic issues (dismissal-trigger-exclusion, focus return, floating-gap canon, virtual-vs-roving keyboard divergence, scope-vs-eidos-dir drift, TSC eager substitution) that then recur in the simpler ones — finding them early makes every later audit faster and lets the roll-ups (SUMMARY, SHARED_EXTRACTION, THEMING_COHERENCE, VALIDATOR_GAPS) accrete real systemic findings.

  • Batch 1 (first, on approval) — the 5 canonical overlays: select, dialog, popover, combobox, dropdown-menu. These are exactly the protocol's named hard set; portal + floating + dismissal + focus
    • (select/combobox) typeahead + virtual-vs-roving focus. Systemic patterns surface here.
  • Batch 2 — remaining overlays + menus: context-menu, menubar, navigation-menu, tooltip, drawer, alert-dialog, command, link-preview, float-panel, onion-menu, menu-dial (+ confirm the two #0 provider anomalies).
  • Batch 3 — pickers + calendar family: the 5 pickers, calendar, range-calendar, month-grid, year-grid, picker-shell.
  • Batch 4 — fields: Group 3 (14).
  • Batch 5 — collections + data: Group 4 (12).
  • Batch 6 — disclosure + selection controls: Group 5 (12).
  • Batch 7 — actions + feedback + misc: Group 6 (17; words excluded).
  • Batch 8 — eidos-only primitives: Groups 7–9 (44). Dimensions A/B/C/D are light (no provider behavior); focus is E / E-bis (theming coherence) + the THEMING_COHERENCE roll-up, where these contribute the most distinct hardcoded-value / token-naming data.

After each batch: write the per-component audit/components/{kebab}.md files, regenerate the roll-ups (00_WORKLIST statuses, SUMMARY, SHARED_EXTRACTION, THEMING_COHERENCE, VALIDATOR_GAPS), then stop and report before the next batch.

Path note: the protocol fixes the output root at audit/ (repo root) so MODE=reeval can find audit/components/{kebab}.md. The repo's own convention parks audits under docs/process/; I followed the protocol's literal path. Say the word if you want it relocated under docs/process/audit/ instead.

Powered by TurnKey Linux.