Build1 distinct publisher3 min readPublished
A June finding said local models cannot iterate on code. It said so about chat UIs, and it named the fix. July supplied that fix and measured it. The follow-up test result is the number worth reading.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
Follow any of these and your For You feed starts watching them — no settings page required.
build
Ornith-1.0's benchmarks are fine. Ollama can't parse its tool calls.1 distinct publisher
build
Seven local models, one prompt, one DGX Spark: the speed ranking decided nothing1 distinct publisher
build
The payload is rebuilt every turn, so stop treating your prompt as a shipped artifact1 distinct publisher
build
AI-written code fails the same four ways, and every gate you own reports green1 distinct publisher
Initial generation was never the discriminator here. A model that can emit a 10x10 grid and a click-and-drag handler in one pass can do that into a chat window too. Turn N+1 is where the earlier runs went wrong, and the June document had already named the mode: stateless regression, a fix in one turn silently undone by the next, observed in this same word search as a drag highlighter repaired and then broken [16][17]. Criterion eight exists to catch exactly that, and according to the write-up it is the criterion that had killed every previous run [4].
What a harness changes is where state lives. little-coder gives the model real read and write tools instead of asking it to print code into a chat window [5], so the file the test runs against is the file the model edited, and the follow-up request does not depend on the model re-narrating what it did. Verification was done separately, in a real browser with simulated drag events rather than from the model's own account [7]. That second part carries more weight than it looks. June listed overconfident reporting as failure mode two and expected a harness to cover it alongside stateless regression; the dev.to account's own reckoning is that the first held and the second did not [19][16]. A tool loop makes the model's claims checkable, but the checking still happens outside the loop.
The two runs are 8 out of 8 in 2.1 minutes and 7.5 out of 8 in 44.1 [6][8]. Divide those: 44.1 over 2.1 is 21, so the 30b model finished about twenty-one times faster for half a point of score [20][10]. The 9b run is the one that proves the mechanism, because it passed the regression check as well [9]; the 30b run is the one that makes the loop usable while you sit at the desk. Add the follow-up fix and the whole exercise took about 2.6 minutes [22].
Now the transfer conditions. This is three files, one 10x10 grid, eight scored criteria [3]. For 2.1 minutes to mean anything on your codebase, the regression surface has to be roughly as small as one drag interaction, and the state the model must hold has to fit in one context. Two marks sit in the ledger against the top score. One run died with "Stream ended without finish_reason" and an identical retry worked [11]. On criterion eight, one green pixel was never confirmed because the preview tab had collapsed to a zero-width viewport and inline styles stopped applying, which was scored as a harness fault rather than a code fault [12]. I would rule the same way. I would also record that the headline score carries that ruling inside it, and that a rig which fails in ways impossible in the target browser is now a thing you have to score too.
The sentence that travelled was "The June verdict was a harness problem, not a model problem", quoted straight into the active constraints file and used to scope the work that followed [13]. What June actually wrote was narrower: local models cannot do iterative coding in a chat UI, a claim about an interface, in one row of a table of six use cases [15]. Five weeks before the re-test, the same document said in bold that tool-mediated verification per step and persistent conversation context are why Claude Code avoids the first two failure modes, and called that architecture rather than raw model capability [18]. The write-up's own summary concludes that the investment paid off even though the claim describing it was inaccurate, and nobody checked for two weeks, because a conclusion that is useful and turning out well does not feel like it needs auditing [14]. July did not overturn June so much as build what June had specified and measure what happened [23].
Ranked by verification strength, evidence, and original report placement.
On 4 July the verdict was re-tested and fell over in about two minutes.
Run through little-coder against qwen3-coder-30b served by Ollama, the result was 8 out of 8 in 2.1 minutes, and the follow-up fix took another 30 seconds.
The write-up concludes that July did not overturn June: July supplied the harness June had described and measured what happened.
Earlier work in June on the same machine tested whether a local model could handle iterative coding: writing files, running tests and fixing what broke, without a human shuttling text between a chat window and an editor. The verdict was that it was not viable, and that finding was the basis of the whole project.
The task was a word search game: three files, a 10x10 grid, eight words hidden horizontally, vertically or diagonally, click-and-drag selection, correct words struck through in the list, and a New Game button, against eight scored criteria.
The eighth criterion is one follow-up fix (make found words green) checked to land without breaking the drag highlighting that already worked; that regression check is what had killed every previous run.
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 29, 2026
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.
Specific numbers, one witness
The measurements are unusually concrete for a personal write-up — scores out of eight, 2.1 against 44.1 minutes, named defects, browser-driven checks instead of model self-report — and the author volunteers the caveats most people would bury, including a transient stream failure and a pixel that was never confirmed. What holds it down is arithmetic of a different kind: one machine, one runner, one publisher, and four variables that moved between June and July with no attempt to isolate them.
Two runs, one desk
Adoption here is literally two benchmark runs on the same machine. little-coder has one user, who is also its author; there is no repository, licence, install count or outside report of anyone else putting it in front of a model. The runtime dependency on Ollama and the two Qwen builds is the only third-party footprint in the story.
The stopwatch travels further than the setup earns
'2.1 minutes' is the number that will get quoted, and it comes from a run where the model, the harness, the runtime flags and the prompt had all changed since the baseline it is beating — a point the author makes plainly and then sets aside. The overshoot is modest precisely because the piece is busy deflating itself: it refuses the tidy 'harness problem, not model problem' line, credits June with naming the architecture first, and admits a criterion was scored on judgment. A less honest version of this story would rate far worse.
Experimenter, scorer and toolmaker are one person
Nothing commercial is visible — no vendor, no sponsor, no product on sale — so the pull is reputational rather than financial. But the structural conflict is real and unmediated: the person who built little-coder also wrote the eight criteria, ran both models, decided which failure belonged to the harness, and then published the verdict. The counterweight is that the same author spends half the piece prosecuting his own earlier summary, which is not what incentive capture usually looks like.
Sure what happened, unsure it repeats
We can be reasonably confident these runs occurred as described: the reporting is contemporaneous, the caveats are logged rather than smoothed, and the quoted June text is checkable against itself. What we cannot stand behind is generalisation — whether another operator on other hardware gets 2.1 minutes, whether the half-point gap between the two Qwen builds survives repetition, or whether the eighth criterion would pass in a browser that had not collapsed.