Ornith's self-rewriting scaffold quietly broke SWE-bench comparisons

4 min read 2 sources clear_take
├── "Self-modifying scaffolds make benchmark scores non-reproducible and break apples-to-apples comparisons"
│  └── top10.dev editorial (top10.dev) → read below

The editorial argues Ornith's published SWE-bench number is a property of (weights + scaffold + harness), not the model in isolation. Two runs with the same weights but different scaffold versions will produce different scores, neither of which is wrong — which undermines the credentialing function SWE-bench Verified has come to serve.

├── "Self-scaffolding LLMs are a genuine advance for agentic coding worth open-sourcing"
│  ├── DeepReinforce (deep-reinforce.com) → read

DeepReinforce frames Ornith-1.0 as a meaningful step beyond token-prediction: an open-source coding model that iteratively rewrites its own orchestration code, treating the scaffold as a first-class artifact the model can edit and improve against held-out tasks. Releasing it openly is pitched as a contribution to agentic coding research.

│  ├── @danboarder (Hacker News, 215 pts) → view

Submitted the GitHub repo to HN framing Ornith as 'self-improving open-source models for agentic coding,' implicitly endorsing the project as noteworthy enough to share. The 215-point score suggests the HN audience broadly agreed it merited attention.

│  └── @kordlessagain (Hacker News, 74 pts) → view

Submitted the DeepReinforce writeup separately, framing the contribution specifically as 'self-scaffolding LLMs.' The dual front-page appearance reflects a viewpoint that the scaffold-as-artifact framing is itself the interesting idea, distinct from the model weights.

└── "SWE-bench Verified scores already hide undisclosed scaffolding from closed labs, and self-modifying scaffolds make the problem worse"
  └── top10.dev editorial (top10.dev) → read below

The editorial points out that closed-model SWE-bench numbers already bundle undisclosed planner, tool definitions, retry policies, and context compaction — and that independent reproduction routinely lands 5–10 points lower than lab-published figures. A self-mutating scaffold like Ornith's takes this opacity from 'hard to reproduce' to 'impossible to pin down,' even when weights are open.

What happened

DeepReinforce dropped Ornith-1.0 on GitHub and posted a writeup at deep-reinforce.com/ornith_1_0.html. The HN front page picked it up twice in twelve hours — 215 points on the repo, 74 on the writeup — which is unusual enough to merit a second look past the headline numbers.

The pitch is self-scaffolding LLMs for agentic coding: an open-source coding model that doesn't just predict tokens, it iteratively rewrites the orchestration code that calls it. The scaffold — the prompt templates, tool-routing logic, retry behavior, planner/executor split — gets treated as a first-class artifact the model can edit. After a run, Ornith compares scaffold variants against held-out tasks and keeps the version that scored higher. The weights might be frozen for a release, but the harness around them keeps mutating.

This is the part the leaderboard screenshots don't tell you: Ornith's published SWE-bench number is a property of (weights + scaffold + harness), not the model in isolation. Two people running the same weights with the default scaffold from last week and this week will get different numbers, and neither of them is wrong.

Why it matters

SWE-bench Verified has quietly become the credential agentic coding models hand over at the door. Anthropic, OpenAI, Cognition, Cursor, and now every open-source contender lead with it. The benchmark itself is fine — 500 human-verified GitHub issues, real repos, real test suites. The problem is what gets reported alongside the number.

When a closed model posts 70% on SWE-bench Verified, that score includes whatever undisclosed scaffolding the lab built around it: their planner, their tool definitions, their retry policy, their context compaction. Reproducing it externally is already a known headache — Princeton's own SWE-bench team has written about scaffold sensitivity, and independent runs of "the same" model frequently land 5–10 points lower than the lab number. A self-modifying scaffold like Ornith's makes this gap structural, not accidental.

The community reaction on HN reflects the split. One camp reads the repo and sees a clever evolutionary loop: "the forkable scaffold is the actually interesting part, the weights are almost a detail." The other camp reads the benchmark table and asks the obvious question — if the scaffold is being optimized against an eval signal, what stops this from being a slow-motion form of benchmark overfitting? Both are right. The scaffold loop is a real research contribution. It also makes the headline number harder to trust, not easier.

Compare this to how the field handled the same problem in a different domain. ImageNet leaderboards eventually required reporting test-time augmentation, ensemble size, and crop strategy because those choices could swing top-5 accuracy by several points. Agentic coding benchmarks haven't done that work yet — there is no standard "scaffold card" the way there's a model card, and Ornith-1.0 is the cleanest example yet of why we need one.

There's a deeper point about open source here that's worth saying plainly. Open-weights releases have spent two years closing the gap on closed coding models. The latest Qwen, DeepSeek, and now Ornith iterations are competitive on the benchmarks that matter for day-to-day coding work. But "open weights" was always a thinner promise than people assumed. You can have the weights and still not have the system, because the system is increasingly the scaffold, the eval harness, the dataset selection, and the post-training recipe — and Ornith's contribution is to make the scaffold portion explicit and forkable. That's a more honest version of openness than the field has been practicing.

What this means for your stack

If you evaluate coding models for internal use, three concrete changes are warranted this quarter.

First, stop comparing benchmark numbers across providers without pinning the scaffold. When you read "Model X scored 65% on SWE-bench Verified," the only honest follow-up question is which scaffold produced that number and whether you can reproduce it. For Ornith specifically, treat the published score as the high-water mark of a search process — your own runs with the default scaffold should be expected to land lower until you let the loop run on your own task distribution.

Second, if you're building an internal coding agent on open weights, the scaffold is now half the product. Most teams have spent the last year optimizing prompts and tool definitions by hand. Ornith's loop is a concrete demo that this work can be partially automated — you give the system a held-out task set, a scoring function, and a starting scaffold, and let it evolve variants. The interesting export from this release isn't the weights, it's the scaffold-evolution loop as a reusable harness — the kind of thing a serious internal platform team can fork and point at their own evals.

Third, be careful what you optimize against. Self-improving systems are exactly as good as the gradient they're climbing. If your held-out tasks look like SWE-bench, you'll get a scaffold that looks like a SWE-bench solver. That's fine if your production workload is also "fix a bug in a Python repo with a failing test." It's actively bad if your real workload is greenfield code, code review, refactoring across services, or anything that doesn't decompose into one-shot test-passes. The scaffold loop has no way to tell the difference, and the optimizer will quietly specialize.

Looking ahead

The useful read on Ornith-1.0 is not "another open model with a benchmark number." It's a tell about where the next eighteen months go: the model and the scaffold are going to be co-designed, and the benchmark-comparison rituals the field inherited from ImageNet won't survive that transition without new disclosure norms. Expect the SWE-bench maintainers — or someone — to start requiring scaffold hashes alongside scores within a year. Until then, the most useful thing a senior engineer can do with a leaderboard is treat every entry as a lower bound on what's possible with that model and an upper bound on what you'll reproduce on Tuesday.

Hacker News 254 pts 48 comments

Ornith-1.0: self-improving open-source models for agentic coding

→ read on Hacker News
Hacker News 77 pts 7 comments

Ornith-1.0: Self-Scaffolding LLMs for Agentic Coding

→ read on Hacker News
CharlesW · Hacker News

Previously: https://news.ycombinator.com/item?id=48709744https://swelljoe.com/post/will-it-mythos/: "Poor performer here, only found the one bug that almost every model found, despite its performance on other benchmarks being excellent for its size. […] I

ricardobayes · Hacker News

This is the first Qwen fine-tune that is not immediately rejected by the local LLM community, and in some cases even being recommended. Based on my limited usage, it is good, gives creative solutions to coding problems. I don't expect 9-35B models to one-click create full apps. Most people who

lhl · Hacker News

I've been testing Ornith-1.0 35B (my own FP8-block quant) and I like it. It runs at >200 tok/s w/ vLLM on an RTX PRO 6000 (sm120), I've run >140M cached tokens of agentic coding work on it over the past few days. It seems to about somewhere between Qwen 3.6 35B-A3B and 27B,

Narew · Hacker News

From what I personally tested Ornith-1.0 35B is slightly better than Qwen-3.6 35B. My tests are tasks that consist of adding/modify feature in a big C++ codebase. The part that I find interesting is that the model is way faster than Qwen3.6 35B. It seems Ornith produce a smaller chain of though

kennywinker · Hacker News

Can anyone explain what’s the story here? Is this just a re-skinned qwen? Who is deepreinforce-ai and why isn’t this model listed on their website?How does it self-improve, does the model change on disk - or just during a single context run it gets better?

// share this

// get daily digest

Top 10 dev stories every morning at 8am UTC. AI-curated. Retro terminal HTML email.