A workbench for quantitative visuals, organized by what you came to do. The top bar is four intents — Create, Analyze, Deliver, Library — and each one lands you with the tools of that job, not a wizard step. Create is one Workspace: Data, Explore, and Canvas are surfaces of the same bench (evidence, ranked forms, the render at output size), not three destinations. Analyze runs the instruments, writes the non-visual account, scores the five tiers, and threads findings. Deliver issues and verifies the receipt and keeps the Notebook. Library holds Templates, Spec Lab, Diagrams, and the Form Library.
Navigation is free-jump: every surface is one click or ⌘K away; nothing locks the order. The brief — Context, Agent, Receipt — floats like a conversation about the work, or docks to the side. It names the next evidence dependency without blocking you. ] hides or shows it; Quick actions can float or dock it.
Data is a spreadsheet: pick a template, paste a spreadsheet range or a CSV into the table, or drop a .csv on the view. The contract's mechanical fields — shape, cardinality, time points, roles, units — are derived from the table and shown as a derived readout; whether zero is substantive, and an x type the labels do not decide, stay declared by you on the column. The table is keyboard-complete: arrows move between cells, Enter moves down and adds a row at the end, Alt+Backspace removes the row and Alt+Shift+Backspace the series, and every removal offers one Undo; the × buttons remain for the pointer but are not in the tab order. The preview beside the brief is a preview: only a Canvas render enters the receipt. Sessions keep one dataset, render, and receipt each, so a second dataset never destroys the first.
Instruments refuse out-of-contract input by name — NOT CALCULATED, NOT MEASURED, NOT RECOMMENDED — and none of them issues a design verdict on its own. The quality bar (Evidence → Perception → Experience → Access → Craft) is where verdicts come from; a lower tier never compensates for a higher one.
Running in a browser alone, the pure-math instruments run in JavaScript ports proven equal to the Python. Rendering with matplotlib, the judge panel, reader-adaptive variants, the erasure ladder, and Vega-Lite audits need a Python runtime: the local studio (qvd studio) or a deployment with the container. The page asks the backend what it can do and offers only that.
The Agent inspector tab is live orchestration only when the runtime reports agent capability; otherwise it states that orchestration is unavailable in this runtime.
Light and dark are a page preference, not a claim about the chart: System in the top bar follows the display; click it to pin Light or Dark. A ?theme=light or ?theme=dark URL is this load only. Charts use currentColor, so inspect the render in the theme it will be read in before the craft tier.
Shortcuts: ⌘K / Ctrl K quick actions · ↑↓ move · Enter run · ] hide or show the brief · Esc close