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_ready 36, not_started 21, preview_deployed 2, cowork_sketch 2. (No idea/approved — memory's "deployed2/spec_ready4/idea13" described the older 19-surface set.)
  • approval_status: pending_user_review 40, none 21. Zero self-approval.
  • Versioned: exactly 2, both v1mow-treeview (A4) and workflow-design-registry (F1), both preview_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; only mow/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.md drove the 19→61 expansion.

ui_pages — the disjoint PG inventory (KEY FINDING)

  • directus.ui_pages exists, 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-treeview vs PG-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):

  1. RECONCILE the two inventories: define the relationship between ui_pages (shipped) and manifest surfaces (designed) — likely a design_surfaceui_page mapping when a surface ships.
  2. EXTEND to PG-backed: birth a ui_surface collection (meta_catalog managed, COL-/PG- code, _dot_origin) OR extend ui_pages with a lifecycle/design_status column; then the manifest becomes a render of a PG query (Đ28 thin-shell: Nuxt renders, PG owns).
  3. NEW pivot for the surface list (PIV-xxx over the PG source) → auto-count replaces hand-baked 61/36/25.
  4. Optionally EXTEND information_unit with unit_kind='ui_surface' to give surfaces semantic profiles + KG links (await Đ44 enact).
  5. 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.
Back to Knowledge Hub knowledge/dev/reports/architecture/law-capability-discovery-official-lists-automation-2026-05-30/09-ui-preview-master-list-pilot.md