Approval deck
Deciding at a red light
On a phone, a list of gates is a list of things you will read later. A card you push right to approve and left to reject is a decision you make now. Nothing is ever decided by dropping the card — releasing short of the commit distance springs it back, and the arrow keys do the same job on a desktop.
scripts/promote.sh
Merge exp-clip-vs-potential into main and tag the promoted policy.
Drag the card, or use ← / →Every swipe is an explicit approve or rejectGlance cards
A run in two seconds
State, what it is trying to do, budget left, next gate. Anything more belongs on the run page. A run waiting on a human outranks a run that is merely busy, so it gets the cyan border and the approval count.
workspace/operator/run-glance-card.tsxPush to talk
Steering with your thumb held down
Typing a correction into a phone while a run is going wrong is slower than the run is. Hold, speak, release — the meter runs for exactly as long as you do, and the steer/queue distinction from the composer carries over unchanged.
Hold the button — amber, like every steer in the appSame gesture, neutral chrome — it waits its turnField console
The whole phone
Everything an operator needs away from a desk, stacked in the order they need it: what is happening, what is blocked on them, and the controls to intervene directly.
scripts/promote.sh
Merge exp-clip-vs-potential into main and tag the promoted policy.
Sized to a phone held upright