# CORE Workbench UI/UX Guide Date: 2026-06-14 Status: Wave M B3.5 guide (post-Wave-M reconciliation: Lived Life, CORE-Logos reader, trace Field reader, and the truncated-cell reveal) ## 1. What Workbench Is And Is Not CORE Workbench is a local operator/auditor surface for deterministic CORE evidence. It is a cognition observatory, replay debugger, proposal review station, eval console, calibration reader, and audit surface. It is not a generic chatbot shell, not a dashboard over invented metrics, not a mutation console, and not a visualization proof. Every visible claim should trace to a backend read model, committed artifact, or existing allowlisted execution path. ## 2. How To Run It Backend: ```bash core workbench api ``` Frontend: ```bash cd workbench-ui pnpm dev ``` Default API health check: ```bash curl http://127.0.0.1:8765/health ``` ## 3. Evidence Model The workbench has one evidence grammar. A selected item publishes an `EvidenceSubject`; the RightInspector and Evidence Chain Rail render only fields that subject actually carries. Evidence subject kinds: - `turn` - `proposal` - `eval_result` - `artifact` - `run` - `pack` - `vault_entry` - `audit_event` - `calibration_class` Missing detail is rendered as "detail not loaded" or "not recorded", never as a successful proof. ## 4. Current Route Map The route registry in `workbench-ui/src/app/routes.ts` is the source of truth. Current route count: 16. | Section | Route | Path | Shortcut | Purpose | |---|---|---|---|---| | Converse | Chat | `/chat` | `⌘1` | Execute a normal CORE turn and journal evidence. | | Cognition | Trace | `/trace` | `⌘2` | Inspect turn surfaces, grounding, verdicts, and trace hashes. | | Cognition | Contemplation | `/contemplation` | Palette | Inspect persisted contemplation process traces. | | Determinism | Tour | `/tour` | Palette | Guided determinism tour: a curated narrative over the real demos with "what this proves / does not prove" honesty cards. | | Determinism | Replay | `/replay` | `⌘3` | Re-execute journaled turns in a sealed fresh runtime and compare envelopes. | | Determinism | Demos | `/demos` | Palette | Run registered determinism demos. | | Evidence | Proposals | `/proposals` | `⌘4` | Review cognition and math proposal evidence. | | Evidence | Runs | `/runs` | `⌘6` | Browse recorded run/session evidence. | | Evidence | Lived Life | `/lived-life` | Palette | Watch the always-on heartbeat hold one continuous life (closure read-not-repaired over uptime + learned-while-idle). | | Evidence | Vault | `/vault` | `⌘8` | Inspect persisted vault entries when persistence exists — entry-inspector depth, status/facet/text filters, evidence rail, and opt-in exact-CGA recall evidence. Read-only (no runtime controls). | | Evidence | Audit | `/audit` | `⌘9` | Read deterministic audit events. | | Discipline | Evals | `/evals` | `⌘5` | Run/read allowlisted eval lanes and wrong=0 ledgers. | | Discipline | Calibration | `/calibration` | Palette | Inspect practice-class reliability and license verdicts. | | Substrate | Packs | `/packs` | `⌘7` | Browse language/runtime pack metadata. | | Substrate | CORE-Logos | `/logos` | Palette | Inspect CORE-Logos pack identity and safety. | | Settings | Settings | `/settings` | `⌘0` | Manage local UI preferences; engine config remains CLI-only. | Pinned route shortcuts cover Chat through Settings. All routes are searchable in the command palette. ## 5. What Each Route Proves | Route | Proves | |---|---| | Chat | The local runtime can produce a typed turn envelope and journal it. | | Trace | The journal carries user, articulation, walk, grounding, verdict, and hash evidence. | | Contemplation | Persisted contemplation process reports expose cold attempt, checkpoint enrichment, proposal boundary, and grounded-after scenes. | | Replay | A selected journaled prompt can be replayed through the sealed replay comparator; equivalence is leaf-based. | | Demos | Registered demo scenarios pass or fail with recorded scenario evidence and proof/entailment DAGs where the demo emits them. | | Proposals | Proposal evidence, replay facts, and ratification commands are inspectable without applying mutation. | | Runs | Recorded run/session references, checkpoint gaps, and identity-continuity verdicts are discoverable. | | Lived Life | A persisted always-on run (produced by the `core always-on` daemon) shows the engine living + learning over uptime, with closure (`versor_condition < 1e-6`) read as evidence each beat (never repaired); the surface's `closure_held` is consistency-checked against the per-beat measurements, so it can never paint a breached field as valid, and its resume verdict shows whether a reboot resumes this life. | | Vault | Persisted vault metadata is inspectable when persistence is configured. | | Audit | Audit events are readable with payload digests and mutation-boundary flags. | | Evals | Allowlisted eval lanes and wrong/correct/refused metrics are visible. | | Calibration | Practice classes show engine-owned Wilson floor and PROPOSE/SERVE license verdicts. | | Packs | Pack manifests, checksums, and determinism metadata are visible. | | Settings | UI preferences are local-only; density mode is consumed by shell/design tokens; runtime status is read-only. | ## 6. What Each Route Does Not Prove | Route | Does not prove | |---|---| | Chat | Does not prove replay equivalence until Replay verifies a journaled turn. | | Trace | Does not prove correctness; it exposes recorded state. | | Contemplation | Does not ratify findings or prove open-ended learning; it reads committed reports only. | | Replay | Does not distinguish nondeterminism from unrecorded origin-state influence. | | Demos | Does not generalize beyond registered scenarios. | | Proposals | Does not ratify unless an admitted handler path is explicitly invoked. | | Runs | Does not reconstruct missing checkpoints or synthesize identity continuity when manifest evidence is absent. | | Vault | Does not expose live in-process memory. | | Audit | Does not create a new event store. | | Evals | Does not run unsafe or sealed holdout lanes from the UI. | | Calibration | Does not mutate a license and does not claim serving wrong=0 from practice data. | | Packs | Does not apply pack mutation. | | Settings | Does not edit engine configuration. | ## 7. Evidence Subjects And Address Grammar Canonical addresses: - `turn` -> `/trace/` - `proposal` -> `/proposals/` - `eval_result` -> `/evals/` - `artifact` -> `/replay/` - `run` -> `/runs/` - `pack` -> `/packs/` - `vault_entry` -> `/vault?inspect=vault:` - `audit_event` -> `/audit?inspect=audit:` - `calibration_class` -> `/calibration?inspect=calibration:` `?inspect=` means the RightInspector is open on that subject. Malformed inspect values are dropped rather than interpreted. ## 8. Command Palette And Keyboard Model `⌘K` opens the command palette. Route commands derive from the route registry; Demos and Calibration are palette-visible even though they do not have digit shortcuts. Keyboard help is live-registry driven. It shows only shortcuts currently bound by mounted components. It must not advertise unreachable commands. ## 9. Empty/Error/Loading Doctrine Every route with remote evidence must provide: - a specific loading label, - an empty state that names what is absent and gives a next action, - an error state with failure, mutation status, reproducer, and retry safety. No route should use vague "thinking" text or imply mutation happened when it did not. ## 10. Proposal Vs Ratification Boundary Proposal views are read-only unless a narrow admitted handler explicitly exists. Suggested CLI commands are copyable operator affordances, not UI execution. Pack mutation and general corpus mutation remain proposal-only until reviewed. ## 11. Calibration / Wrong=0 Discipline Calibration reads committed practice artifacts and applies engine-owned `core.reliability_gate` functions. It shows how a class earns PROPOSE or SERVE license. Practice can contain wrong attempts; those wrong attempts are the learning signal. The global wrong=0 frame reads serving metrics from committed serving reports. It mirrors counts honestly; if a report says wrong is non-zero, the UI must show non-zero wrong. ## 12. CORE-Logos / Packs Current And Next State Today, Packs exposes manifest/checksum/determinism metadata. It is the current Substrate neighborhood for language/runtime pack inspection. A read-only **CORE-Logos** route (`/logos`) is now built: Overview, Identity, Lexicon, Glosses, Morphology, Alignment, and Safety tabs over CORE-Logos pack evidence. The fuller CORE-Logos *Studio* — proposal-only draft artifacts and a patch-forge / holonomy handler family — is not built; it must enter as proposal-only drafts before any ratification-enabled handler family is admitted. ## 13. Known Absences And Follow-Up Items - Full B4 leeway annotations are not admitted; B4a nullable `LeewayEvidence` read models exist first. - The CORE-Logos *Studio* (proposal-only draft + patch-forge / holonomy handlers) is not built; only the read-only `/logos` reader exists. - Universal proposal artifact envelope is designed, not implemented as a UI substrate. - Phase E (robustness; continuous) is ongoing. Reconciled (previously listed as absent, now shipped): - Cognitive pipeline visualizer — the Trace **Pipeline** tab renders the stage rail, propagation edges, and per-stage detail. - Field substrate / `versor_condition` reader — the Trace **Field** tab and the **Lived Life** surface read per-beat closure as evidence (never repaired). - Identity continuity — the **Lived Life** route plus Runs identity-continuity verdicts. ## 14. Table / Rail Cell Full-Content Reveal Every cell that truncates a dense value (ids, digests, sources, paths, prompts, stage names) uses the shared `TruncatedCell` component. It keeps the compact display but attaches one hover/focus-revealed trigger that opens an accessible popover with the full value (selectable) plus one-click copy; long/multiline values also offer "Open full view" into a modal. The trigger calls `stopPropagation`, so revealing a value never selects the surrounding row. Applies across the proposal queue, eval wrong=0 case ledger, CORE-Logos contents, proposal artifacts, trace propagation edges, and the single-column selection rails. Digests keep `DigestBadge` (already copy + full-value `title`). A row that is an ``/`` (e.g. Runs `TurnRefRow`) keeps its anchor semantics and is reached by navigation rather than nesting an interactive trigger. See `../handoff/workbench-truncated-cell-visual-evidence-2026-06-14.md` for captured evidence.