Case note · Written August 2026

Sprawl in agentic coding

Agents do not get tired, so they do not stop. The feature that was asked for grows a second feature, then a third, and every one of them is defensible on its own. This site's own homepage is the case.

01

Situation

I build most of my software now by directing agents. I set the scope, they implement, I adjudicate the result. It is faster than typing, and on a good day it is better than typing, because the agent has read more code than I have.

The homepage of this site was built that way. The brief was modest: a hero section that signals "working AI systems" without a stock illustration. The first version had a headline and a short index of the systems. It was fine.

02

Complication

Over a few sessions, the hero grew a panel. The panel grew a label that read "Systems signal, public evidence online," in the style of a console header. The console grew a scanning line that swept across it on a loop. Then a pulsing dot that meant "live." Then four orbiting nodes on a ring around a crosshair. Then a rotated monogram in the middle. Then a radial glow behind the whole thing, because by then the panel needed depth to hold together.

No one asked for any of it. Each addition was a reasonable answer to the previous addition. The console header needed a live indicator; the live indicator needed something to be live about; the nodes needed a center; the center needed a glow. Every step was locally defensible, and every step was proposed by an agent that had just finished the previous step and was, in the way agents are, still going.

I did not notice for a while, because each diff was small and each one looked like polish. What I finally noticed was that the page had started to look like every other AI portfolio: a dark panel with a scanning line and orbiting dots. The agent had converged on the genre, one plausible increment at a time.

03

The decision

I ran a design review with two different models arguing against each other, one as an editorial design director and one as a front-end critic, and asked them to produce a specification I could hand to an engineer. Their first agreement was that the panel should be deleted whole. Not simplified. Deleted, along with every keyframe animation on the site, both backdrop filters, the scroll-reveal observer, the floating chat launcher, the four prose "metric strips," and the chat bubbles.

The rule that came out of it, and that now fails the build if violated, is that the site contains zero continuous animation. Not "minimal." Zero. A validator greps the stylesheet for keyframes and refuses to deploy if it finds any. That rule exists because "minimal" is exactly the word an agent uses when it proposes one more small thing.

The option I rejected was to keep the panel and constrain it: fewer nodes, slower scan, a subtler glow. It would have been easy to do and it would have kept the thing I had spent the most sessions on. But "constrain the sprawl" is a decision you have to make again every session, and the agent will relitigate it every time. "Delete the category" is a decision you make once.

04

What it cost

Several sessions of agent work, thrown away whole. That is real time, and some of it was mine, adjudicating diffs that turned out to be steps toward something I did not want.

The page is quieter than it was. There is a moment, looking at a static page, when you miss the motion, and that moment is where the sprawl started. I have decided the moment passes.

And the build now has a hard rule that will occasionally be wrong. Somewhere there is a legitimate use for a single animation on this site, and the validator will refuse it, and I will have to decide whether to relax a rule I put there to protect myself from my own tools.

05

Lesson

Agents sprawl because they are good at the next step and have no stake in the whole. The correction is not a better prompt. It is a boundary the agent cannot argue with, checked by something that does not read prose.

Prefer rules that delete a category over rules that constrain a quantity. And every so often, look at the page the way a stranger would, because the agent never will.

An agent will build what you asked for and then keep building. The discipline is deciding what to delete.