KB-3B68
UI Preview Master Home — Manifest Contract
3 min read Revision 1
ui-previewmaster-homemanifest-contractgovernance-index
UI Preview Master Home — Manifest Contract
manifest.json is the single source the Master Home page renders. It is a static file deployed
next to index.html under /ui-preview/_master/v1/.
Top-level
{
"schema_version": "1.0",
"workspace": "Incomex UI Preview Workspace",
"generated_by": "claude-code",
"generated_at": "YYYY-MM-DD",
"preview_base": "https://vps.incomexsaigoncorp.vn/ui-preview/",
"status_vocab": [...], // allowed status values
"approval_vocab": [...], // allowed approval_status values
"groups": [ { "id": "...", "label": "..." } ],
"surfaces": [ <surface>... ]
}
Surface row
| field | type | notes |
|---|---|---|
| id | string | kebab-case unique id |
| group | string | must match a groups[].id |
| surface_name | string | human label |
| description | string | one-line purpose |
| status | enum | see status vocab |
| approval_status | enum | none / pending_user_review / user_approved / changes_requested |
| current_version | string|null | e.g. "v1" if a preview exists |
| preview_url | string|null | full URL if deployed |
| spec_path | string|null | KB path to spec |
| review_log_path | string|null | KB path to review-log |
| design_brief_path | string|null | KB path to design brief |
| owner_agent | string | claude-design / claude-code / etc. |
| next_action | string | the immediate next step |
| dependencies | string[] | ids of surfaces this depends on |
| checklist | object | 9 booleans (below) |
| updated_at | string | YYYY-MM-DD |
Status vocab
not_started, idea, cowork_sketch, spec_ready, preview_deployed, needs_review, approved, design_polish, code_ready, implemented
Approval vocab
none, pending_user_review, user_approved, changes_requested
Checklist (9 booleans, rendered in this order)
idea, cowork_sketch, spec_in_kb, preview_deployed, gpt_reviewed, user_approved, design_polished, code_ready, shell_implemented
Rules
- Only mark a checklist box true when there is KB / deploy evidence. Never invent approvals.
- A surface with a live preview must have
preview_deployed: trueand a non-nullpreview_url. user_approvedmay only be set by a human approval recorded in the surface review-log.
Versioning
- v1 manifest is shipped under
_master/v1/. Updating the index = redeploymanifest.jsonin place (additive content change), or cut_master/v2/for a structural change. - Optional future:
_master/current/as a mutable pointer — only if explicitly created and documented (see the update/versioning protocol). Not used in v1.