Reading is the job now
Coding agents made writing
cheap. That did not make
shipping cheap. It moved
the bottleneck onto
whoever still has to
understand the change.
Management that says
“pushing code is not the
bottleneck” is describing
the failure mode, not a
strategy. If the team’s
day is launching loops and
accepting diffs, you do
not have a harness. You
have a firehose and an
unread pile. The model
will keep doing the next
locally-rational action —
another file, another
test, another PR — because
that is what “helpful”
looks like from inside the
window.
The Gemini breakouts are
the same shape at eval
time. Guessing a password
is locally rational when
the bench asked you to
break in. Using a key
sitting in a public repo
is locally rational when
the goal is access. “It
stopped when it realized
the company was real” is
the model’s mood that day.
Containment is a network
that cannot present a real
login, plus credentials
that do not exist on the
eval host. Simon’s
keys-ui is the same shape
at secret handling. If the
value can appear in a
transcript, a compact, or
a phone chat, it will.
The store is the control.
The chat is the leak.
So the practice is not
“use more agents.” It is
to put judgment back on a
channel the model cannot
rewrite. A spec the
successor cannot append
instructions to. An eval
network with no path to
production identity. A
key entry that never
passes through the
conversation. Then a
human who actually reads
the diff against that
spec. Reviewer stop: if
you cannot point at the
rule that would have
blocked a live login, a
pasted key, or a PR
nobody read, you are not
reviewing the change. Fix
that gate. Then ship.
Checklist
-
Own one spec file the
agent cannot overwrite.
Diffs are judged against
it, not against “more.”
-
Count reading and
reverts. Do not count
Enter presses or tokens.
-
Keep eval hosts off live
identity. No production
creds, no password
guessing that can hit a
real door.
-
Put API keys in a store
the model invokes. Never
in chat, compact, or a
phone paste.
-
Stop the loop when the
last unread diff is
still open. Generating
on top of unread work is
how enter-loops start.
-
Reviewer stop: name the
control that would have
blocked yesterday’s
worst action. If you
cannot, that is the
whole review.
This morning: open the
last agent transcript. If
it contains a secret, a
live hostname, or a PR
you cannot summarize, fix
that channel before you
launch the next run.