Build1 distinct publisher3 min readUpdated
A one-week, two-repo field report from a solo developer: implementation capacity sat idle because nobody was re-judging stale tasks. Two of seven hand-dispatched tasks had already rotted.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
A developer running AI coding agents across two repositories found 41 open tasks in his ledger, ran his own "list the tasks that are ready to start" command, and got no output at all [1][2]. Implementation capacity was idle not because the build sessions were slow, but because nothing in the queue was in a shape anyone could hand to one [2].
The evidence arrived a day before the loop existed. He hand-dispatched 7 tasks to implementation sessions as a trial, and 2 of them had premises that had already collapsed by the time work started: a spec they depended on had changed, or the problem had been dissolved by some other change [4][5]. That is 29 percent of a very small sample [6], and the mechanism is unremarkable. Ledger entries encode the world as it was on the day they were written, so anything that has sat for weeks needs a fresh "is this still worth doing" pass before implementation [24]. Skip that layer, the author argues, and the agent stacks correct code on rotten premises [25].
The rebuild split task processing into three roles, judge, build, and human [7], with deliberately thin plumbing. No pull requests: build sessions stack commits on a task branch, the judge session accepts by reading git diff --stat and re-running the tests, and the fast-forward merge happens only after the human says merge [8][9]. The list of unmerged branches is the acceptance queue [10].
The balance sheet for the first full day with all three roles running: open tasks fell from 41 to 22 across the two repositories, 13 to 5 and 28 to 17 [11]. 27 tasks closed against 13 merges, and the two are not 1-to-1 because some merges were docs-only and some tasks closed with no merge at all [12]. 6 new tasks were filed during the cycle, each approved by the human on the spot [13], and 2 of the 27 closures belonged to an adjacent repository outside the original 41 [14]. Net, 25 of the 41 went away, 61 percent [23].
The distribution matters more than the total. The judgment pass closed 6 tasks by decision or withdrawal before anything was dispatched, and read-only investigation sessions closed 4 more [15][16], so 10 of the 27 closures, 37 percent, needed no code written [17]. Judgment also repaired ledger state rather than closing it: three tasks were marked blocked although their dependency had completed weeks earlier, and one carried a resume condition that could never structurally fire [18]. Those moved forward on a state correction alone [18].
The build side was not the weak link. 14 implementation sessions ran that day under a parallelism cap of 3 and produced the 13 merges [19]. The missing capacity was the layer that turns a stale entry into a dispatchable one [2].
One detail worth copying: every kickoff packet he wrote on day one was wrong somewhere, either a premise that was only half true or a prescribed fix that would not actually close the hole [20]. The countermeasure was to put a Phase 0 instruction at the top of every packet, re-verify the premises and stop and report instead of implementing if they are falsified, which turns the packet from an order into a hypothesis [21].
Two caveats the author states himself. This is n=1, one person, one week, two repositories, with numbers taken from logs and commits [3]. And the day being counted was still operated manually; unattended mode came later [22]. So it is evidence about where a queue jams, not yet about a loop that ran without a human in it.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
The author's ledger held 41 tasks across two repositories, and never shrank despite daily use of AI agents.
Running the author's homegrown 'list the tasks that are ready to start' command produced no output: zero of the 41 tasks were ready to hand to an implementation session, leaving implementation capacity idle; the author concludes the bottleneck was judgment.
The report is a record of two repositories, one week, one person (n=1), with every number taken from logs and commits, and the author says to generalize only within that range.
The day before building the loop, the author hand-dispatched 7 tasks to implementation sessions as a trial.
Two of the 7 hand-dispatched tasks had premises that had already collapsed by the time work started: a spec they depended on had changed, or the problem itself had been dissolved by some other change.
The author split task processing into three roles: judge, build, and human, then laid plumbing to run them unattended.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Detailed but single-source self-report
The counts are unusually specific and internally reconciled (41 − 25 + 6 = 22; 27 closures explicitly not equal to 13 merges), the workflow is shown with actual git commands, and the author states figures come from logs and commits. But everything rests on one publisher and one participant, no logs or repositories are exposed for inspection, and there is no baseline week or control comparison to attribute the drawdown to the judgment role.
One solo developer, two repositories, one week
All observed usage is a single practitioner's personal setup: a one-day run across two repositories plus an adjacent repo, 14 agent sessions, and a scheduler design still being iterated. There is no evidence of any other team, organization or tool adopting the judge/build/human split, and at the time of the reported numbers the loop was still driven manually.
Headline generalizes further than the n=1 body
The framing asserts a general law — the agent bottleneck is judgment, and skipping the judgment layer means correct code on rotten premises — from a single week of one developer's two repositories, with the strongest supporting datum being 2 rotted tasks out of 7. That is mild overstatement. It is largely offset by unusually disciplined hedging: an explicit n=1 warning, a note that closures and merges are not one-to-one, credit given to the build side, and an admission that every day-one packet was defective and that operation was still manual.
Personal credibility incentive, no vendor stake evident
This is an individual practitioner post on a community publishing platform. The tooling discussed (Claude Code, git, macOS launchd) belongs to third parties and is not being sold by the author, and no sponsorship, product, funding or pricing interest is disclosed anywhere in the source. The residual incentive is ordinary: audience attention and professional reputation from a punchy, quantified engineering narrative, which plausibly shapes the headline framing more than the numbers.
Coherent single-witness account
Confidence in the descriptive core — the counts, the role split and the git-based acceptance workflow — is moderate: the account is specific, self-consistent and openly caveated. Confidence in the generalized conclusions is low, because the cluster contains one publisher, one participant and one week, with no corroboration, no baseline and no measured outcome quality for the 13 merges.
build
Exit 0 is not a health check: three weeks of macOS backups that copied nothing1 distinct publisher
build
26 launchd jobs, one log directory: how scheduled automation rots quietly1 distinct publisher
build
Your reviewing model is reading the diff when it should be reading the session1 distinct publisher
build
Config rot has a latency bill: a 70-line weekly audit for agent environments1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 20, 2026