The Restraint Problem — Bart Kolendowski
bartkolendowski.com<br>writing<br>2026-07-10 · 6 min ·
The Restraint Problem
My agents and I have made 3,884 commits since January. I've come to read that number as a warning, not a scoreboard.
July 10, 2026<br>~6 minute read<br>~1,485 words
There is a graph on my homepage I used to be proud of.
It is a commit heatmap, the same green grid GitHub puts on every profile, and for months it has been nearly solid: most days dark, many of them the darkest shade it goes. Since January, my agents and I have made 3,884 commits to the single repository that runs my company and most of my life. Over the last thirty days the rate has been around thirty-eight a day, and it is still climbing. One day in March it was seventy-two. That repository holds seventy custom agent skills, something like eighteen thousand lines of instructions written in plain English, and a fifty-five-thousand-line control plane I built to watch the rest of it work. There is one human in the author column.
The graph in question. Six months of days, almost all of them green.
By the ordinary scoreboard, the graph is a trophy: one person, the output of a team. It is precisely the image you are meant to screenshot under a caption about leverage.
I have started reading it as a warning label.
The number is real, and that is the problem
I am not setting up a confession that the work was fake. It was not. Every one of those commits did something: shipped a feature, fixed a bug, tightened a tool, refactored a system that needed it. If you audited them one at a time, almost none would look like waste. That is exactly what makes the graph misleading, and it took me a long time to see it.
The trouble is not that the commits are empty. The trouble is what the graph silently claims. A full heatmap is supposed to be a proxy for progress, and for most of the history of software it was a decent one, because commits were expensive. Each cost a person hours of attention, and attention was the scarce thing, so you spent it on what mattered. The volume of work and the value of work moved together, roughly, and a busy graph really did mean you were getting somewhere.
Agents break that link. When the marginal cost of building drops close to zero, the graph stops measuring progress and starts measuring something much less useful: how much I was willing to let the machine do. Those stopped being the same number. Mine came apart quietly, and for months I mistook one for the other.
Cheap building removes the filter
Here is the mechanism, because it generalizes past me.
When building is expensive, cost is a filter. You cannot afford to build everything you think of, so you are forced to choose, and the forcing is the point. The friction everyone complains about, the hours a feature takes, is also the thing quietly killing your bad ideas before they cost you anything. Scarcity does your triage for free.
Agents remove the friction, and the triage leaves with it. This is sold as the whole benefit, and for a while it feels like one. But the set of things that are plausible to build is effectively infinite, and the set of things worth building is not. While building was costly, the gap between those two sets did not matter, because you never reached the edge of it. Make building nearly free and the gap becomes the entire game. You can act on every plausible idea now, and “plausible” is a bar almost anything clears at two in the morning.
I wrote once that with a single model the operator’s scarce resource is not generation but evaluation: judgment, not typing. A fleet is that observation with the volume turned up. It multiplies the side of the ledger that was already cheap and does nothing for the side that was always the constraint. If you are not careful, and I was not, you end up with a beautifully engineered machine for doing the wrong things quickly.
The build engine runs hot
I know how this sounds in the abstract, so here is the evidence, and it is in my own handwriting.
I keep a weekly retrospective. Read mine across this spring and you find the same observation surface, in slightly different words, five weeks in a row: the build engine is running hot. The tooling I was building to take friction out of the business had started crowding out the business. I was spending my best hours making the machine that makes the reagents run smoother, and fewer of them on selling reagents, which is the part that pays. Every one of those weeks I could point to real shipped work. That was never in question. What was in question, and what I kept failing to answer, was whether it should have been built at all.
It compounds, because a system that makes building feel free will happily turn its abundance on itself. I built tools. Then I built tools to manage the tools. Then I built a weekly agent whose job is to study the whole apparatus and propose improvements to it, which is to say, propose more building. At one point I...