Book One

All You Need Is Less Attention

Part1

A software factory that doesn't need watching

Under a banner that reads ATTENTION!, a drill sergeant yells through a megaphone at a row of computers that keep scrolling and pay no attention, while a developer sits on a wooden crate and takes a phone call with one hand

Coding agents grew our commits more than tenfold in a year. At first I was the bottleneck. Then the AI manager I built to stand in for me became the bottleneck.

On October 13, Anthropic published "Redesigning source control at Anthropic." Merges per day went from about 2,500 in May to more than 30,000 in September. Git, designed to be used on a laptop, could no longer keep up, so they built their own source control system. That is the article in a nutshell.

When I finished reading it, I opened the repository for the platform I build at work and took a look at the commit graph.

Bar chart of weekly commits to the platform. Low through March, with two October weeks towering over the rest
Figure 1-1. Weekly commits to the platform, merge commits excluded. Around 20 to 50 a week through March, 50 to 120 over the summer, and 460 and 530 in two October weeks.

Anthropic counts merges; we count commits. Their scale is about three orders of magnitude larger than ours. Even so, the curve had the same shape, and what came after it was the same too. Once writing code stopped being the slow step, everything that relied on someone paying attention became the slow step.

Others noticed the same thing

I'm not the first person to write about running lots of coding agents at once. Steve Yegge's Gas Town runs dozens of them, with roles such as the Mayor that coordinates the whole, the Witness that patrols, and the Refinery that processes merges in order. StrongDM's software factory takes the position that "Code must not be reviewed by humans." Stripe's Minions produce more than 1,300 pull requests a week that are merged after human review. A solo developer who merged 253 pull requests in two weeks wrote, "Expect your bottleneck to move. ... It's my own attention, my own judgment."

This series picks up one step past that point. I had an AI manager take over my attention for me. Then I got to watch that AI manager use up its attention in exactly the same way.

I was the bottleneck

I started building Fleet on July 4. It is a system for running coding agents across nine development environments. Each agent runs in its own pane, a small window in a split terminal. In Fleet, an agent that takes on work is called a worker. A worker keeps going until it needs something: a permission, a decision, a review. The first Fleet did nothing more than route my attention. Hooks, small scripts that run each time an agent does something, wrote each agent's state to SQLite. One command told me which panes were waiting on me. Through Slack, I could even reply from my phone.

I am not at my computer all day, and the agents don't stop when I walk away. I tried apps for driving a terminal remotely. Picture it: switching among a dozen or more terminals on a small screen, aiming for the arrow keys to pick option 2 of 3. That is not how I wanted to spend the time between meetings. So I turned the terminal into a web app and kept adding the buttons I wanted to press. By the end of July it sat on my home screen, notified me only when a person was needed, and let me answer a confirmation with one tap. When an agent wrote "run this command," that command became a button too.

The Board on a phone. The sheet for the command "! npm test" from an agent's message is open, offering Run in this pane, Open a new terminal and run, and Copy
Figure 1-2. A command that appeared in an agent's message becomes a button. A tap shows the full command, then runs it in the current terminal or a new one. (UI labels translated from Japanese for this edition; synthetic data.)
The TODO list on a phone. A card asks "Merge DevKit #812?" and lists the CI, pair-review and HOST results, the blast radius and a recommendation, with Yes and No buttons below. The next card is about cleaning up three stalled requests
Figure 1-3. The request list on a phone. Each card lists the check results, the blast radius and the agent's recommendation. I read it and answer Yes or No with one tap. (Translated from Japanese for this edition; synthetic data.)

The phone let me answer from anywhere. It did not add a single hour to the time I had for answering. To keep up with the agents, my sleep and my weekends got whittled down further and further, and that only goes so far. I needed something that could answer for me when I couldn't.

Being able to answer from anywhere is a different thing from being able to answer at any hour.

Then the AI manager became the bottleneck

On July 18, the Foreman began answering stalled agents, but only when reading the task's charter made the answer unambiguous. A charter is a short document, one per task, that states the goal and what the agent may and may not do. On July 25 the Chief arrived: an agent that watches every pane, remembers the thread of the conversation, and proposes work on its own. By late September the Chief was making scheduled rounds, day and night.

The Chief was a breakthrough. Now the Chief supervised development even while I slept. Work that needed my judgment still waited until morning.

In October, when platform commits went from about 100 a week to about 500, the Chief started missing things. One worker sat on a confirmation screen for three hours, and through all of it the ledger where Fleet records each task's state still said running. A pull request that was ready to merge waited a whole day. On October 13, the Chief analyzed its own situation and called itself a "single point of failure."

That was the turning point, and I'd ask you to keep it in mind. Until then, every fix had added a supervisor: me, the phone, the Foreman, the Chief. From then on, the fixes were about getting along without a supervisor.

Adding a supervisor only moves the bottleneck to the next supervisor.

About Book One

Book One has four parts. It covers how a factory that kept adding supervisors got stuck, and how it changed.

  1. All You Need Is Less Attention (this article)
  2. The Floor Manager Who Read the Ledger: why the AI manager missed things, how each station came to report its own stops, and the second agent that questions how the line itself works
  3. Guardrails Prose Cannot Hold: the failures that taught us to judge by effect, to require recorded proof, and to make retries idempotent
  4. What a Human Decision Costs: where the line is waiting, what my attention really costs, and how to decide what a person should decide

None of the agents you're about to read about was slacking off. What fell apart every time was the assumption that someone would notice.

References