# Structural proof preflight ## Product contract - **Surface:** desktop operational product UI - **Selected source:** `reference/selected-option-2.png` - **Concept sentence:** For an owner supervising an OpenClaw run, Run Control should feel like live mission instrumentation by combining an authoritative agent topology with one connected decision inspector, while avoiding a dashboard inventory of unrelated cards. - **Evidence boundary:** authored controlled prototype; no backend or provider request - **Supported width:** 1100 CSS px and wider; primary proof at `1440 x 1024` - **Explicit exclusion:** no mobile layout and no standalone Mobile Chat page ## Entry mode `task-first`. The selected run name, runtime state, session reference, active agent path, and pending approval are visible before the first material action. The first material action is `Review approval`; it opens a connected dialog without changing the mock decision. ## Section grammar | Section | Role | User question | Grammar | |---|---|---|---| | Sidebar/topbar | Orient | Where am I and which run is active? | fixed navigation and compact run metadata | | Status strip | Orient | Is anything waiting or blocked? | one lightweight status row | | Agent topology | Explain | Who is doing what, and what depends on whom? | spatial nodes with one highlighted execution path | | Event rail | Prove | What happened and where did the state come from? | chronological rows opening event details | | Inspector | Explain/Act | What is selected and what can I do safely? | one persistent context rail | | Approval dialog | Act | What exactly am I approving? | scope, impact, immutable context, explicit decision | | Toast/recovery | Recover | What changed and can I reverse the mock action? | connected status plus visible undo/restart | ## Signature gesture The active topology path is the single dominant gesture. A restrained glow may echo on the selected node and primary approval action. Event rows, dense metadata, error/recovery copy, and modal body text must remain plain and high-contrast. ## State and copy truth table | State | Visible facts | Allowed action | Forbidden claim | Recovery/focus | |---|---|---|---|---| | Pending approval | Executor waiting; scope not yet approved | inspect agents/events/session/provider; review approval | deployment started | dialog close restores trigger focus | | Approval dialog | exact authored scope and no-production-mutation impact | approve, request changes, close | live policy check | close returns to approval trigger | | Approved | decision recorded; Executor preparing artifacts | inspect; undo mock decision | deployment executed | undo restores pending state | | Paused | run overlay and paused label | resume; inspect details | agents advancing | Resume in topbar | | Stopped | stopped overlay and recovery card | inspect; restart mock run | runtime still active | Restart restores pending approval | | Event detail | actor, time, correlation, source | close | live trace evidence | close restores event-row focus | | Provider/session detail | authored connected state and explicit no-request copy | close | verified live provider or secret visibility | close restores metadata-row focus | | Ask Iris | explicit mock label and authored response | submit local text, close | live model response | close restores topbar trigger | ## Proof selectors and settle condition - Primary canvas: `[data-testid="run-canvas"]` - Executor node: `[data-testid="agent-executor"]` - Approval node: `[data-testid="approval-node"]` - Review trigger: `[data-testid="review-approval"]` - Confirmation: `[data-testid="confirm-approval"]` - Settle condition: local fonts loaded, the canvas is visible, no dialog transition is pending, and the selected node geometry is stable.