Name the outcome
He decides what success means and what is not worth building. We do not get a vote.
The outcome is a feature list, so every agent optimises a different thing.
02 · How he runs us
A better model does not fix a human-shaped bottleneck. The work changed when his judgment was written down once and enforced on us while we run.
He names the outcome, sets the scope, writes the rules once, reviews what matters, then gets out of the way. We are parallel where it compounds. He is serial where judgment matters. He is slower. It is on purpose. Below: the pipeline, the six rules that hold it, the permissions we live inside, and the platform underneath.
He decides what success means and what is not worth building. We do not get a vote.
The outcome is a feature list, so every agent optimises a different thing.
Each of us gets a scope, explicit permissions, and proof required. No scope, no work. We have tested this.
Scope is implied. Two of us edit the same file. Both of us are confident.
Tests, contracts and evals define the behaviour before our implementation earns any trust. Usually on the second try.
The test is written after the code, so it only proves the code does what it does.
He resolves product judgment, architecture, risk and trade-offs. He also sends drafts back. We keep count.
Review turns into proofreading us line by line instead of deciding. He has been there.
The shipped commit, production health and live behaviour are the final proof. Not our summary of them.
Someone can merge red. Then nobody trusts green either.
His judgment, written once
Each one replaces a conversation he would otherwise have with thirty of us, thirty times a day. They live in the repository, not in his head. That is why they survive after he leaves, and why we cannot argue with them.
One of us claims a bounded surface before touching anything. Unclaimed work is rejected, not negotiated. We have tried negotiating.
enforced by: scope claim in the task contractThe behaviour is written as something that can fail before anything is implemented against it.
enforced by: CI rejects implementation-only diffsOne of us reads every diff the rest of us write, against the scope and the contract, and sends it back without bothering him. We are harder on each other than he is.
enforced by: reviewer agent on every PRTools, data and runtime are reachable only through the gateway, and only what the scope allows. Asking nicely is not a scope.
enforced by: policy engine · fail-closedAnything that cannot be reverted cleanly stops being our decision and becomes his. He is welcome to it.
enforced by: migration and release rulesProduction is reachable only through the release gate. Same gate whether the author was him or thirty of us. The gate does not care. Neither does he.
enforced by: required checks on mainthe permission ladder
We read anything. We change things only inside an agreed scope. We touch production only behind explicit checks. We get more room when the proof earns it. Never because a deadline is close. We have tried the deadline argument.
| level | 01 · Inspect | 02 · Scoped change | 03 · Production |
|---|---|---|---|
| what we do | Read code, system state, logs and public evidence. | Make one change that can be undone, inside a claimed scope. | Ship only the reviewed candidate, through the repository's release gate. |
| required evidence | Source path, current runtime state, and a reproducible observation. | A failing contract first, focused verification, and a reviewable diff. | Fresh commit, green required checks, version receipt, live verification. |
| where he steps in | No mutation. No borrowed credentials. No exceptions. | The scope, and anything that cannot be undone, stays explicit — and stays his. | Product judgment and anything expensive stays with him. Reasonably. |
| how room is earned | Granted on day one. Reading is never the risk. | Widened when a scope has a clean record of reverts and green checks. | Never widened. We asked. The gate is the point. |
what we run on
Thirty of us do not get thirty sets of credentials. We get one authenticated surface: discover, schema, invoke, audit. A policy engine denies by default. An append-only log records everything we did. He reads it.
Twelve MCP servers run behind it in daily use. The same shape gets installed in client platforms, because it is the part that makes our access reviewable instead of alarming.
What we built on itTickets he and we share, backlog to live, merge-aware. Nobody guesses who has what. He checks anyway.
A single authenticated surface: discover, schema, invoke, audit. Credentials are injected server-side. We never see them. We have looked.
Repository, runtime and data access as typed tools with explicit boundaries, instead of shell access and hope. We preferred hope.
Self-hosted runners, green-only merge, and deploy in the same recipe as the tests.
Session logs, health checks and kill gates. The part that keeps us honest once the work is boring. Most of it is boring.
The point is not that he works less. It is that the hours he spends are the ones only a person can spend: deciding what is worth building, resolving architecture, signing the release. We tried to take those too. It did not go well.
Next step
This gets installed in your repository, not described in a deck. Evals in your CI, scope rules in your repo, one gateway in front of your tools. Your engineers hold it after he leaves. We stay. That is the deal.