KB-5E01

UI Preview Master Manifest — Replace from Cowork 61-Item Source Doc (2026-05-30)

7 min read Revision 1
ui-previewmaster-homemanifestcowork-sourcegovernance-indexreport

UI Preview Master Manifest — Replace from Cowork 61-Item Source Doc

report: ui-preview-master-manifest-replace-from-cowork-61-source
date: 2026-05-30
host: contabo VPS (vmi3080463)
verdict: PASS
mutation_class: static-file replace (manifest.json only) — additive/reversible
db_mutation: NONE (no PG / Directus / Qdrant)
html_changed: NO (index.html untouched)

0. Mission

Replace the incomplete Master Home manifest.json (UI-only: 19 surfaces / 4 groups) with the authoritative 61-item list (DATA layer + UI layer) from the Cowork Google Drive source doc.

  • Target: /opt/incomex/docker/nginx/static/ui-preview/_master/v1/manifest.json
  • Master Home URL: https://vps.incomexsaigoncorp.vn/ui-preview/_master/v1/

1. Source doc — read verdict: PASS (live read)

  • Doc: UI-MASTER-GOVERNANCE-61-ITEMS-SOURCE
  • Drive id: 1VtOjX0m44taOv9YySKNZ_yV8nKX7YKyKAKa7qv5Bm5g
  • Read live via Google Drive connector. Not reconstructed from memory or a summary.
  • Content: 16 groups + 61 items (Part 1 = 36 data tables/registries; Part 2 = 25 UI screens), with per-item id, group, name, description, cowork_sketch (true/wip/false), preview_url, spec_path, and a status-mapping rubric.

2. Hard Gate 0 (all PASS, pre-edit)

Check Result
Host = contabo VPS vmi3080463, root. OK
Master Home HTTP 200 200 OK
manifest.json HTTP 200 200 OK
MOW Unified Canvas v1 HTTP 200 200 OK
Backup current manifest manifest.json.bak-20260530T065336Z (19530 B, sha256 62a11741…290e6)
No production Nuxt touched confirmed (static dir only)
No PG/Directus/Qdrant mutation confirmed (ssh/scp/curl on static files only)

3. Replacement performed

  • Replaced groups (4 → 16) and surfaces (19 → 61) from the source doc.
  • Preserved top-level metadata: schema_version (1.0), workspace, generated_by, preview_base, status_vocab, approval_vocab.
  • Added provenance: source{doc_name, drive_id, read_at, note} and layers[] (data/ui counts).
  • Per item emitted: id, optional screen_id, group, layer, surface_name, description, status, approval_status, current_version, preview_url, optional preview_note, spec_path, review_log_path, design_brief_path, owner_agent, next_action, dependencies[], checklist{9}, updated_at.
  • New manifest: 61223 B, sha256 0554fbb7…7c52f.

Counts (verified, served over HTTPS)

Dimension Value
Total items 61
By layer data 36 · ui 25
Groups 16 (9 data Nhóm 1–9 + 7 UI Nhóm A–G)
By status spec_ready 41 · preview_deployed 2 · cowork_sketch 2 · not_started 16
Deployed previews (checklist.preview_deployed=true) 2
Duplicate ids 0
Orphan group refs 0

Per-group counts match the source doc exactly: data-infrastructure 4, data-hierarchy 6, data-mothers 4, data-personnel 4, data-blueprint 4, data-assets 2, data-runtime 5, data-governance 3, data-mapping 4, ui-mow 4, ui-mot 3, ui-moit 2, ui-mout 2, ui-registry 6, ui-mowd 4, ui-ops 4.

4. Truthfulness decision — v2 placeholder (KEY)

The source doc maps cowork_sketch=true + preview_url set → preview_deployed, and points 5 UI items at the v2 canvas URL:

  • mow-normal-mode (A1), mow-proposal-mode (A2), mot-task-card (B1), moit-form-renderer (C1), mout-table-renderer (D1).

https://…/ui-preview/mow/unified-canvas/v2/ returns HTTP 200 but is a placeholder scaffold: its index.html says "placeholder, NOT final v2 … has NOT been designed or fabricated by an agent", and preview.meta.json has status: scaffold, approval_status: awaiting_cowork_html, source: "scaffold — awaiting Cowork HTML (not agent-designed)".

Decision (faithful reporting > mechanical mapping): keep the source preview_url (v2) on those 5 items but set status: spec_ready with checklist.preview_deployed=false and a preview_note flagging the placeholder. They flip to preview_deployed only when Cowork ships real v2 HTML. Only the 2 items backed by the real, live v1 canvas (mow-treeview A4, workflow-design-registry F1) are preview_deployed. No user_approved/fake approvals.

ID disambiguation

Source items B2 and G1 share screen_id my-tasks-dashboard. To keep 61 distinct manifest ids, G1's manifest id is my-tasks-dashboard-ops (screen_id: "G1", description "= B2"); B2 keeps my-tasks-dashboard (screen_id: "B2"). No rows dropped; no rows invented.

Source-doc inconsistency flagged

The doc's aggregate summary ("24 done / 2 WIP / 35 not-started") disagrees with its own per-row cowork_sketch column (all 36 data rows = true). Status was derived from the explicit per-row values (authoritative), and the discrepancy is flagged for GPT/User reconciliation.

5. Verification (post-replace, all PASS)

  • …/_master/v1/HTTP 200.
  • …/_master/v1/manifest.jsonHTTP 200, JSON valid, 61 surfaces / 16 groups / 36 data + 25 UI; deployed-checklist = 2 (cache-busted fetch).
  • HTML render: index.html is data-driven (fetch('manifest.json'), iterates groups[], reads per-item fields that are all present). New 16-group/two-layer structure renders with no JS change required. (Render verified by contract: valid manifest + all required fields present.)
  • MOW Unified Canvas v1 → HTTP 200 (untouched).
  • No index.html carries the deploy mtime (08:55) — every preview HTML predates it → no HTML modified, no existing preview overwritten.
  • No PG / Directus / Qdrant access at any point.

6. KB updates

  • knowledge/dev/ui/_master/review-log.md — added "manifest replace — 61-item Cowork source doc" entry (drive id, counts, URLs, backup, v2 decision). rev 4.
  • knowledge/dev/ui/_master/spec.md — added "Scope — covers BOTH layers" (36 data + 25 UI). rev 2.
  • This report.

7. Rollback

ssh contabo "cd /opt/incomex/docker/nginx/static/ui-preview/_master/v1/ && \
  cp manifest.json.bak-20260530T065336Z manifest.json"

Restores the 19-surface manifest (sha256 62a11741…290e6). No other change to reverse (HTML untouched, no DB writes).

8. Forbidden-compliance

No PG mutation · No Directus mutation · No Qdrant/vector mutation · No production Nuxt change · No HTML redeploy (manifest-only) · No fake approvals (approval_status never user_approved) · No invented rows (exactly the 61 source rows) · No dropped rows. All honored.

Back to Knowledge Hub knowledge/dev/reports/architecture/ui-preview-master-manifest-replace-from-cowork-61-source-2026-05-30.md