Engine autonomy
As the engine runs more of your growth work — shifting traffic between page variants, settling which variant ships, re-grounding your personas in what your real audience does — the question becomes how much of that it should do on its own, and how much it should run past you first. Different clients want different answers, and the same client wants different answers for different work: a brand campaign you watch closely, a long tail of pages you’re happy to let run. So the answer is one dial, not a scatter of toggles.The three modes
Autonomy is a single setting —autonomy_mode — with three values, set on your organization and
overridable per workstream.
Autopilot. The engine acts immediately and drops a note in your Activity feed telling
you what it did. No waiting. Use it for work you trust the engine to run unattended.
Propose (the default). The engine does the analysis, proposes the change, and gives you a
24-hour window to veto it. If you say nothing, the change applies when the window closes — the
engine keeps its cadence, and you keep a veto. This is the mode that matches “I want both”: the work
doesn’t stall waiting on you, but nothing customer-facing changes without you having had the chance to
stop it.
Strict. The engine proposes and then waits. The change applies only if you explicitly approve
it; an unanswered proposal lapses to no, and the next engine cycle re-proposes from fresh data
rather than acting on a stale plan. Use it when every customer-facing change needs a human yes.
The effective mode for any given action is the workstream’s override if it has one, otherwise your
organization default, otherwise propose. So you can run one workstream strict and another autopilot
at the same time without moving the org-wide setting.
What the dial gates
The dial governs exactly the points where the engine changes live, customer-facing state:- Applying a traffic-allocation step to a running experiment.
- Executing a settled ship-or-stop decision.
- Adding a new variant into live traffic.
- An engine-initiated edit to a published page.
- Re-grounding a persona in place from measured behavior.
Answering a proposal
Proposals arrive as escalations in your Activity feed — the same place every other attention item lives, so there’s no separate approvals inbox. Each one is written to be judged without opening a dashboard: what the engine wants to do, why, the numbers, and exactly what happens when the window closes. Approve it to act now, veto it to cancel, or ignore it — underpropose that means yes
at the deadline, under strict it means no.
The ledger — what the engine has done
Every outcome is recorded, so “what has the engine actually done?” is always answerable. Approvals, vetoes, lapses, and autopilot actions all write an attributed entry noting which channel authorized it — autopilot, a human’s yes, or a lapsed window — and, for a human yes, who. The “Engine actions” filter preset on the Activity feed narrows to exactly these, so you can review the engine’s decisions as one stream rather than reconstructing them.Changing the mode
Set your organization default in settings, or from the CLI:erdo_update_work_state tool
(autonomy_mode), or the REST API. Pass inherit to clear an override and fall back to the org
default.
