Iacon Autonomics

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.

Deck
Approvals4 waitingSwipe ← to reject, → to approve
bashHigh riskexp-clip-vs-potential

scripts/promote.sh

Merge exp-clip-vs-potential into main and tag the promoted policy.

Drag the card, or use ← / →
Decision log
Nothing decided yet
Every swipe is an explicit approve or reject

Glance 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.

Operator feed
workspace/operator/run-glance-card.tsx

Push 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.

Steer
SteerHold to speak
Hold the button — amber, like every steer in the app
Queue
QueueHold to speak
Same gesture, neutral chrome — it waits its turn

Field 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.

Phone — portrait
Approvals4 waitingSwipe ← to reject, → to approve
bashHigh riskexp-clip-vs-potential

scripts/promote.sh

Merge exp-clip-vs-potential into main and tag the promoted policy.

SteerHold to speak
Policy drivinggridworld · episode 0184Step 28826 ms
Teleopgridworld · episode 018426 ms
L20.00
L30.00 / 0.00
R20.00
R30.00 / 0.00
Sized to a phone held upright