KB-43C4
09 — Pilot 2: UI Preview Master List (deep-dive)
6 min read Revision 1
architecturediscoverypilotui-preview-mastermanifestui-pagesreconcile
09 — Pilot 2: UI Preview Master List (deep-dive)
Goal: map the manifest (61 items), deployed-URL reality, KB spec/review state, and assess readiness as an "official living list". All numbers from live fetch, not memory.
Manifest reality (live …/ui-preview/_master/v1/manifest.json, HTTP 200)
- 61 items = DATA 36 / UI 25, across 16 groups. schema_version 1.0, generated_by claude-code, 2026-05-30.
- Status (live vocab):
spec_ready36,not_started21,preview_deployed2,cowork_sketch2. (Noidea/approved— memory's "deployed2/spec_ready4/idea13" described the older 19-surface set.) - approval_status:
pending_user_review40,none21. Zero self-approval. - Versioned: exactly 2, both v1 —
mow-treeview(A4) andworkflow-design-registry(F1), bothpreview_deployed. Other 59 unversioned. - The "5 v2-mapped" items A1/A2/B1/C1/D1 are present as
spec_ready, no v2 version assigned (spec-only).
Item groups (compact)
- DATA (36, all spec_ready): field-registry, dot-registry, trigger-registry, dot-function-registry, tbl-linh-vuc/cong-ty/phong-ban/chuyen-mon/nhiem-vu-type/task-type, workflow-registry, task-registry, input-form-registry, output-table-registry, personnel-registry, agent-registry, role-registry, assignee-policy, workflow-design, workflow-step-design, workflow-trigger-design, workflow-runtime-binding, design-version-log, design-asset-registry, workflow-instance, task-instance, trigger-event-log, notification-queue, approval-queue, field-lifecycle-log, change-proposal-log, workflow-audit-log, workflow-dot-map, workflow-trigger-map, task-personnel-map, workflow-field-map.
- UI (25): A1 mow-normal-mode, A2 mow-proposal-mode, A3 mow-design-canvas (cowork_sketch), A4 mow-treeview (preview_deployed v1), B1 mot-task-card, B2/B3 (not_started), C1 moit-form-renderer, C2 (not_started), D1 mout-table-renderer, D2 (not_started), E1–E6 managers (not_started), F1 workflow-design-registry (preview_deployed v1), F2 workflow-design-canvas (cowork_sketch), F3/F4 (not_started), G1–G4 dashboards (not_started).
Deployed-URL reality (live HTTP)
/ui-preview/→ 200 autoindex (_demo/,_master/,mow/)./ui-preview/_master/v1/→ 200 (governance index HTML; "data-driven from manifest.json · no backend calls")./ui-preview/mow/unified-canvas/v1/→ 200 (MOW Unified Canvas, mock data, pending_user_review).- Reality vs manifest: 2 of 61 marked
preview_deployed; onlymow/unified-canvas/v1/confirmed live here. 59 items are spec/plan-only.
KB spec / review-log / manifest-contract
knowledge/dev/ui/_master/spec.md(rev 2): status draft, approval pending_user_review, "not production UI".review-log.md(rev 4): STALE — still says "19 UI surfaces / 4 groups" vs live 61/16. Drift already present.manifest-contract.md(rev 1): manifest.json is "the single source the Master Home renders" (static file beside index.html). Row fields: id, group, surface_name, description, status, approval_status, current_version, preview_url, spec_path, review_log_path, design_brief_path, owner_agent, next_action, dependencies, checklist{}, updated_at. 10-value status vocab.- Direction doc
gpt-direction-master-home-manifest-expand-to-61-items-2026-05-30.mddrove the 19→61 expansion.
ui_pages — the disjoint PG inventory (KEY FINDING)
directus.ui_pagesexists, 37 rows (PG-001…PG-037, all active), structured: code, name, route_path, page_file, has_auth, module, classification (null for all 37), _dot_origin, status. Rows = live production Nuxt routes (/approval-desk,/blueprints,/knowledge/workflows/[id],/admin/users…). Counted live by PIV-008 (37).- Two competing UI inventories, no join key:
ui_pages(37 shipped routes, PG, pivot-counted) vs manifest (61 design surfaces, static JSON, hand-counted). No naming overlap (mow-treeviewvsPG-004). They describe shipped vs designed worlds.
Readiness as official living list
| Property | State |
|---|---|
| Source | static manifest.json on VPS (from Cowork Drive), not PG, not pivot |
| Live count | browser-counts JSON rows; no SQL recompute; drift already visible (review-log 19/4 vs 61/16) |
| Pivot | ❌ as deployed (ui_pages has PIV-008 but is a different list) |
| Birth | ❌ surfaces not birthed |
| IU/profile | ❌ no unit_kind='ui'; information_unit = law_units+design_doc_sections only |
| DOT-refresh | ❌ |
| UI-visible | ✅ (it is the UI) |
Pilot verdict — PARTIAL / FOUND_DESIGN_ONLY for "living"
The UI Preview Master is a governance-correct snapshot (pending_user_review, no self-approval) but is NOT a living list: hand-maintained JSON, no PG source, no pivot, already drifting. Reuse-first actions (do not invent a new UI registry engine):
- RECONCILE the two inventories: define the relationship between
ui_pages(shipped) and manifest surfaces (designed) — likely adesign_surface⟶ui_pagemapping when a surface ships. - EXTEND to PG-backed: birth a
ui_surfacecollection (meta_catalog managed, COL-/PG- code, _dot_origin) OR extendui_pageswith alifecycle/design_statuscolumn; then the manifest becomes a render of a PG query (Đ28 thin-shell: Nuxt renders, PG owns). - NEW pivot for the surface list (PIV-xxx over the PG source) → auto-count replaces hand-baked 61/36/25.
- Optionally EXTEND information_unit with
unit_kind='ui_surface'to give surfaces semantic profiles + KG links (await Đ44 enact). - Fix drift now (doc-only): review-log.md says 19/4 — update to 61/16 (KB doc edit, allowed).
- Until PG-backed, treat manifest counts as provisional, not authoritative.