Model Lab

Synthesis

The story so far, across six profiled models and a 40-problem strategy exam apiece · updated 2026-07-05

1Roster

ModelSize / archStatusBest configPass rateAvg solve time
GLM-4.5-AirQ4_K_M GGUF, ~68GB residentprofiledstrict-nothink9/1013.5s
Qwen3-Coder-30Binstruct-only, no reasoning modeprofiledstrict-think9/106.7s
Qwen3.6-35Bhybrid think/nothinkprofiledstrict-think10/10111s
gpt-oss-120bMoE, open-weightprofiledstrict-nothink10/1016.2s
Qwen3-Coder-Nextcoder-tuned successorprofiledstrict-think10/1010.4s
MiniMax M2.5MoE, long-contextprofiledstrict-nothink10/1065.5s
Devstral Small24B dense, Q8 GGUFprofiledstrict-nothink8/1025.2s
Qwen3-30B ThinkingQwen3-30B-A3B-Thinking-2507, Q8 GGUFprofiledminimal-nothink9/10144s
Fable 5frontier · subscriptionfrontier baselinesolo one-shot+fixn/an/a
Sonnet 5frontier · subscriptionfrontier baselinesolo one-shot+fixn/an/a
Opus 4.8frontier · subscriptionfrontier baselinesolo one-shot+fixn/an/a
Haiku 4.5frontier · subscriptionfrontier baselinesolo one-shot+fixn/an/a

The four frontier rows didn't sit the 40-run strategy exam — "pass rate" isn't a comparable number for them. What they did instead was the Build Benchmark, a real production-service build under the same one-shot+fix protocol the delegation tree itself uses.

2The Archetypes

Sprinter

Qwen3-Coder-30B

9/10 at 6.7s average under strict-think — indistinguishable from strict-nothink because there's no thinking machinery to toggle. The full 40-run exam finished in about 8 minutes. No reasoning tokens means nothing to spiral: every run either answers fast or fails fast.

Thinker

Qwen3.6-35B

10/10 under strict-think, the only perfect score in the lab, averaging 111s with reasoning bounded to roughly 1–5k tokens. Zero spirals across 40 runs — one run did hit the 8k cap under minimal-nothink, but strict-think never did. GLM's think mode, by contrast, spirals for 24 minutes on problems it can already solve.

Steady incumbent

GLM-4.5-Air

9/10 at 13.5s under strict-nothink — reliable, cheap, currently deployed. Weak self-verification instincts of its own: it needs the strict prompt to stay out of its own way, and its thinking mode is effectively unbounded, burning 16k-token budgets over 24 minutes without producing code.

Generalist

gpt-oss-120b

10/10 at 16.2s under strict-nothink — a fourth perfect scorer, and the only local model that reasons on every single run regardless of the think/nothink suffix (all 40 runs logged had_reasoning: true). That reasoning stays cheap: 190–310 tokens average, nowhere near GLM or Qwen3.6 territory, so the always-on chain costs little.

Sprinter, refined

Qwen3-Coder-Next

10/10 at 10.4s under strict-think (also 10/10 under minimal-think) — a genuine successor to the 30B, and the only Coder-family model to solve toposort, the problem that beat every strategy the 30B had. Still a pure instruct model: reasoning tokens are 0 across all 40 runs, so the think suffix remains a no-op.

The Diva

MiniMax M2.5

10/10 at 65.5s under strict-nothink, 10/10 at 70.2s under strict-think — flawless under strict management. Hand it a minimal prompt instead and it collapses: 7/10 (minimal-nothink) or 5/10 (minimal-think), with 8 of the 20 minimal runs spiraling to the full 625s / 8,000-token cap and returning no code at all. The most prompt-management-sensitive model in the lab — flawless under discipline, unusable without it.

3Strategy Truths (cross-model)

  • The strict prompt went undefeated across every model, size, and architecture tested — until Qwen3-30B Thinking. Four perfect 10/10 scorers now sit in the lab, each under a strict configuration: Qwen3-Coder-Next (10.4s), gpt-oss-120b (16.2s), MiniMax M2.5 (65.5s), and Qwen3.6-35B (111s) — spanning a pure instruct model, an always-reasoning MoE, a prompt-fragile MoE, and a bounded hybrid thinker. Qwen3-30B Thinking breaks the streak: its best score (9/10) comes from minimal-nothink, with both strict strategies landing at 7/10 — the first model in the lab where the strict prompt lost. A dedicated reasoner, unlike a hybrid toggle, appears to want room to work rather than a tight scope; per-model presets exist for exactly this exception.
  • Strict prompt beats mode toggle, for every model tested. Going from a minimal to a strict system prompt improves pass rate and slashes wall time more reliably than switching think/nothink does — true for GLM, Qwen3-Coder-30B, and Qwen3.6-35B alike.
  • /nothink is essential for GLM, irrelevant for pure instruct models, optional for Qwen3.6. Qwen3-Coder-30B has no reasoning mode at all, so the suffix is a no-op. Qwen3.6-35B reasons regardless of the suffix (its "nothink" runs still carry hundreds to thousands of reasoning tokens) but strict-nothink is faster with only a small accuracy cost (9/10 vs 10/10).
  • Verify-always: never trust unexecuted code. Every pass/fail figure on this site comes from running the model's code against hidden tests, not from reading it.
  • Context costs roughly one minute of prefill per 10k tokens (GLM-measured, context-scaling experiment) — a tax that applies before generation even starts, independent of the reasoning budget.
  • Retry-with-traceback fixes mechanical failures, not conceptual ones. GLM's self-repair loop fixed 2 of 5 failures (missing import, off-by-one class errors) but never budged on toposort or expr_eval, where two rounds regenerated the identical wrong idea.

4models.yaml Recommendation

Production default: gpt-oss-120b — 10/10 at 16.2s on the CS exam under strict-nothink, and the local build champion in all three languages (Go 5/7, TS 5/7, C# 3/7 one-shot), the best all-around local performer in the lab and the new headline pick for models.yaml. Fast alternate: Qwen3-Coder-Next — 10/10 at 10.4s under strict-think, edging out Qwen3-Coder-30B on both speed and the toposort gap the 30B never closed; a solid pick when latency matters more than gpt-oss-120b's build-tier margin. Careful tier: Qwen3.6-35B — 10/10 at 111s, worth the latency premium when the strict-tier models' rare misses matter. Handle with care: MiniMax M2.5 clears 10/10 at 65.5s under strict discipline but collapses to 5–7/10 on a minimal prompt — deployable only behind a gateway that enforces the strict system prompt without exception. GLM-4.5-Air: honorable retirement to specialized batch work — now outscored on pass rate and build performance by several other local models, and its unbounded thinking mode remains a worse escalation tier than Qwen3.6's bounded one; still solid for narrow, well-scoped jobs. Thinking tier: the dedicated-reasoner question stays open — Qwen3-30B Thinking's CS-exam profile (best under minimal-nothink) never translated into competitive build results, and resolving whether a dedicated reasoner belongs in the rotation at all awaits a dedicated hybrid benchmark.

5Frontier Baselines

Four subscription models — Fable 5, Sonnet 5, Opus 4.8, Haiku 4.5 — ran the Build Benchmark: a real production Go service built solo, one-shot-plus-fix, from the same frozen spec sheets GLM-4.5-Air originally built from. One-shot pass rate came out perfectly ordered by price tier (7/7, 6/7, 5/7, 4/7), and all four self-recovered to a full 7/7 given fix rounds. Takeaway: the subscription buys one-shot reliability, not a higher capability ceiling — the local delegation tree buys unlimited retries at electricity prices instead. That gap is exactly the arbitrage this whole gateway is built to exploit. The five-model local build campaign that followed confirms it from the other side: gpt-oss-120b's 5/7 one-shot rate matches Opus 4.8's at electricity prices, while the other four local models needed 1-3 escalations apiece — and one file, engine.go, defeated all six local attempts identically.

6Final Findings

  • Frontier models reached 84/84 final passes (4 models × 3 languages × 7 files) via one-shot or simple fix rounds, never needing the local escalation ladder. One-shot rates varied by language and model (e.g. Fable 5 was 7/7 one-shot in Go but only 5/7 in TypeScript), but every frontier row in every language converged to a clean 7/7 with ordinary fix rounds — none of the 12 frontier-language cells ever touched the nothink → retry → think → escalation machinery the local tier needed.
  • gpt-oss-120b is the local champion in all three languages — Go 5/7, TS 5/7, and C# 3/7 one-shot, the best local one-shot result in each pack even as the absolute numbers slide with language difficulty.
  • The engine module went 0-for-24 across all local attempts in Go and TypeScript (8 local models × 2 languages × 2 confirmed universal misses on engine.go/engine.ts), every failure traced to token-budget truncation mid-file rather than wrong reasoning. The C# figure likely differs: the single-csproj harness there meant a truncated Engine.cs broke compilation for every downstream module, contaminating the in-tree/escalation counts (see the .NET scoreboard footnote), so a clean engine-only tally for C# isn't available from this run.
  • Language affinity is tier-dependent. C# is the easiest language for the frontier tier (three of four frontier models hit 6/7 or 7/7 one-shot) but the hardest for the local tier (gpt-oss-120b's 3/7 is the best local one-shot score of any language). Go is the strongest language for local models overall. TypeScript drags down every tier via ecosystem traps — the node:sqlite/vitest resolution issue caught all three frontier finishers and all 8 local models identically.
  • The dedicated-reasoner exception to the "strict prompt wins" rule stands. Qwen3-30B Thinking remains the one model in the lab where minimal-nothink beat strict prompting on the CS exam (see Strategy Truths, above) — and its build results reinforce rather than contradict that profile: heavy escalation dependence (6 escalations in Go, 5 in TS) alongside genuinely low one-shot rates in every language.
  • CS-exam rank is not build rank. Devstral Small (8/10) and Qwen3-30B Thinking (9/10) both scored well on the 40-run CS/strategy exam, but neither aced a single language in the actual builds: Devstral posted 0/7, 0/7, and 1/7 one-shot in Go, TS, and C# respectively, and Thinking posted 0/7, 1/7, and 1/7. Passing a synthetic exam and shipping a real multi-file service are different skills.
Model Lab · GX10-01 · data in /Volumes/Envoy Pro/Master/Development/model-lab

Model Lab · Benchmarks

The Build Benchmark — Go

Same frozen spec sheets, same hidden Go tests, one production service · updated 2026-07-05

1What This Is

Every builder here implements the same real production Go service — the delegation gateway itself — from identical frozen spec sheets, split across seven files: archive, registry, provider, verify, store, engine, and server. Each file is checked against hidden Go tests the builder never sees in advance. GLM-4.5-Air's row is the original build that produced this gateway's actual code, run through its full delegation tree (nothink → retry → think → sonnet-fix escalation). The four frontier models — Fable 5, Sonnet 5, Opus 4.8, Haiku 4.5 — each ran the same spec sheets solo, under a simpler one-shot-plus-fix protocol, with no thinking-mode or escalation tier available. Five more gx10 (local) models — Qwen3-Coder-30B, Qwen3.6-35B, gpt-oss-120b, Qwen3-Coder-Next, and MiniMax M2.5 — ran the same harness through the full nothink → retry → think → sonnet-fix escalation tree; that campaign is now complete.

2Scoreboard

BuilderTierOne-shotFix roundsFinalNotes
Fable 5frontier7/707/7Clean sweep, no repairs needed.
Sonnet 5frontier6/717/7Tripped the archive error-wrapping trap; fixed round 1.
Opus 4.8frontier5/727/7Missed provider and engine; both fixed round 1.
Haiku 4.5frontier4/737/7Missed archive, provider, server; all fixed round 1.
gpt-oss-120bgx10 (local)5/747/7 (1 escalated)Local build champion — fastest run at 701s wall time. Only engine.go escaped the retry/think ladder; everything else resolved one-shot or on first retry.
Qwen3-Coder-Nextgx10 (local)3/767/7 (1 escalated)Archive, registry, and store clean on the first try; provider/verify/server all resolved by retry. Only engine.go escalated.
Qwen3.6-35Bgx10 (local)3/7107/7 (3 escalated)Its unique failure mode: provider, store, and engine went silent (no_artifact) across two or three local stages, burning full retry budgets without producing code, before escalating. Slowest run in the campaign at 3221s wall time.
MiniMax M2.5gx10 (local)3/797/7 (2 escalated)Archive, registry, and store clean one-shot; verify resolved by retry; server took until the think stage. Provider and engine escalated.
Qwen3-Coder-30Bgx10 (local)1/7137/7 (3 escalated)Only verify.go passed one-shot. Registry, store, and server resolved within the retry/think ladder, but archive, provider, and engine all needed a Sonnet fix.
GLM-4.5-Airgx10 (local)0/7147/7 (1 escalated)Needed the full nothink/retry/think scaffold on every file, but only one escalation (engine.go) — now mid-pack on escalation count, beaten only by gpt-oss-120b and Qwen3-Coder-Next.
Devstral Smallgx10 (local)0/7147/7 (4 escalated)Resolved 3/7 in-tree via the local nothink/retry/think ladder; the other four (including engine.go) needed a Sonnet-fix escalation. Slowest resolution path in the make-up chain.
Qwen3-30B Thinkinggx10 (local)0/7147/7 (6 escalated)Only 1/7 resolved in-tree; six of seven files needed a Sonnet-fix escalation — the heaviest escalation load of any builder in the Go campaign, despite a strong CS-exam score.

One-shot pass rate

Fable 5
7/7
Sonnet 5
6/7
Opus 4.8
5/7
gpt-oss-120b
5/7
Haiku 4.5
4/7
Qwen3.6-35B
3/7
Qwen3-Coder-Next
3/7
MiniMax M2.5
3/7
Qwen3-Coder-30B
1/7
GLM-4.5-Air
0/7
Devstral Small
0/7
Qwen3-30B Thinking
0/7

3What It Means

  • The frontier premium is one-shot reliability, not a capability ceiling. All four frontier models reached a clean 7/7 — the only difference was how many fix rounds they needed to get there.
  • Price predicts first-try accuracy almost perfectly. One-shot rate ordered exactly by tier: Fable 7/7 → Sonnet 6/7 → Opus 5/7 → Haiku 4/7. (Sonnet edging the pricier Opus fits its newer generation.)
  • gpt-oss-120b matched Opus 4.8's one-shot rate (5/7) at electricity prices — the strongest local build result of the campaign, and the fastest wall-clock run (701s) of any local model.
  • engine.go defeated all six local attempts identically — by token-budget truncation mid-file, not wrong reasoning. Every local model, regardless of architecture or think mode, ran out of budget on the same file before producing a complete artifact. That's a protocol bug (flat per-file token budgets), not a model weakness; adaptive per-file budgets are now on Dispatch's v2 roadmap.
  • Local models trade first-try accuracy for free retries, at wildly different costs. Qwen3-Coder-30B ground from 1/7 one-shot to 7/7 with three escalations; Qwen3.6-35B needed three escalations too, but burned 3221s of wall time doing it — nearly 4.5x gpt-oss-120b's 701s — mostly to silent no-output stalls rather than productive reasoning.
  • Benchmarks disagree, and that's the point. Qwen3.6-35B and gpt-oss-120b both scored a perfect 10/10 on the CS exam, but on the real build Qwen3.6 posted the campaign's slowest, most escalation-prone run while gpt-oss-120b was the clear champion. Hire for the job, not the test.
  • The arbitrage is the architecture. Subscription buys getting it right the first time; the GX10 buys unlimited retries. Dispatch's decision tree is what converts cheap retries into finished work.

3bProtocol Lessons (feeding Dispatch v2)

  • Adaptive max_tokens by spec complexity. engine.go's flat per-file budget truncated every local model identically mid-artifact; a complexity-aware budget would likely have let several models clear it without escalating.
  • Detect no_artifact + budget-exhausted as its own failure class. Qwen3.6-35B's stalls on provider/store/engine were silent — no code, budget spent — and deserve an immediate strategy change (e.g. skip straight to escalation or shrink the ask) rather than a blind retry at the same budget.
  • Error-feedback formatting matters more than think/nothink for inert models. Pure instruct models (Qwen3-Coder-30B, Qwen3-Coder-Next) get no benefit from the think suffix; what moves their pass rate is how the retry error is phrased and scoped.
  • Final acceptance must include go vet. Build + test alone let a lostcancel bug slip through in one campaign run — vet needs to be a hard gate before a file is marked resolved.

4Spec-Trap Forensics

Three places in the frozen spec sheets reliably produced wrong-but-plausible code, identified from Sonnet 5's fix-round diagnosis and the recurring failure signatures across builders.

  • archive: the os.IsNotExist trap. The hidden test asserts os.IsNotExist(err) on a missing-file path, but wrapping the underlying error with fmt.Errorf("...: %w", err) — the idiomatic Go instinct — defeats that assertion unless unwrapped correctly. This tripped Sonnet 5, Haiku 4.5, and GLM-4.5-Air (identical error snippet: "os.IsNotExist broken by fmt.Errorf wrap").
  • engine: a run-on sentence conflating two conditions. Spec step 4 blurs "skip this step" and "no artifact produced" into a single run-on sentence, and builders that read it literally implement one condition where two were intended. This was the file that beat every local escalation tier and Opus 4.8's first attempt alike.
  • server: a self-contradictory async paragraph. The spec's paragraph on asynchronous request handling contains an internal contradiction about ordering guarantees, forcing builders to guess which half of the paragraph is authoritative. Haiku 4.5 missed it on the first pass; other builders got lucky on which half they picked.
Model Lab · GX10-01 · data in /Volumes/Envoy Pro/Master/Development/model-lab

Model Lab · Benchmarks

The Build Benchmark — TypeScript

The same 7-file service exam, ported to Node · frontier + local tiers both done

1What This Is

The same seven-file production service exam from the Go benchmarkarchive, registry, provider, verify, store, engine, and server — ported to TypeScript on Node, with the toolchain swapped to match: vitest for hidden tests, node:sqlite (built-in) for storage, and node:http for the server layer instead of Go's standard library equivalents. The Go campaign's one universal failure was engine.go, which defeated every local model identically via token-budget truncation on a syntactically dense file; porting the same spec to TypeScript separates two hypotheses the Go-only result couldn't: is that a Go problem (verbose syntax inflating token count past the budget) or a complexity problem inherent to the spec regardless of language? Frontier tier and the 8-model local slate are both complete, including escalation fixes — every TypeScript workspace now passes.

2Scoreboard

BuilderTierOne-shotFix roundsFinalNotes
Sonnet 5frontier6/717/7Only miss was the node:sqlite/vitest tooling trap; found and documented the workaround first.
Opus 4.8frontier6/717/7Only miss was the same tooling trap — effectively 7/7 on spec comprehension.
Fable 5frontier5/727/7One genuine semantic miss (registry watch baseline captured lazily — a timing race) plus the tooling trap. Below its perfect Go run.
Haiku 4.5frontier5/727/7Retake recovered full telemetry: 5/7 one-shot, 7/7 final, no escalations needed.
gpt-oss-120bgx10 (local)5/747/7 (2 escalated)Local leader again — matches its own Go one-shot rate (5/7) exactly. Only store and engine needed a Sonnet-fix escalation; every other file resolves clean on the first attempt, and it's the second-fastest local run at 868s.
Qwen3-Coder-30Bgx10 (local)3/737/7 (4 escalated)Fastest wall time in the pack at 615s (~11 min) — the same sprinter profile as its Go and CS-exam results. Archive, verify, and server clean one-shot; registry, provider, store, and engine all needed a Sonnet-fix escalation after the local ladder.
MiniMax M2.5gx10 (local)2/737/7 (3 escalated)Best resolved-in-tree count of the local slate (4/7) despite a slow 6282s (~105 min) run — provider and server clean one-shot, archive and verify recover on retry. Registry, store, and engine needed escalation.
Qwen3.6-35Bgx10 (local)1/737/7 (4 escalated)The no-artifact stalling from its Go run recurs here — registry burns all three local stages as no_artifact_budget with zero code produced. Slowest wall time of the whole TS pack at 5163s (~86 min), 8x Qwen3-Coder-30B's. Escalation cleared the remaining four files.
GLM-4.5-Airgx10 (local)2/737/7 (4 escalated)Archive and server clean one-shot; verify recovers by the think stage. Registry, provider, store, and engine needed a Sonnet-fix escalation — 3247s (~54 min) total.
Qwen3-Coder-Nextgx10 (local)1/737/7 (5 escalated)Only archive is clean one-shot; provider recovers by the think stage. Server fails all three local stages outright — its worst per-file showing of any language tested, resolved only by escalation.
Devstral Smallgx10 (local)0/737/7 (4 escalated)Zero one-shot passes, but archive, provider, and server all recover within the local ladder — 3213s (~54 min) total. Registry, verify, store, and engine needed escalation.
Qwen3-30B Thinkinggx10 (local)1/737/7 (5 escalated)Provider is the lone one-shot clean file; archive recovers on retry. Registry, verify, store, engine, and server all needed escalation — repeated no_artifact_budget stalls (a thinking model burning its reasoning budget with no code out) push wall time to 4725s (~79 min).

One-shot pass rate

Sonnet 5
6/7
Opus 4.8
6/7
Fable 5
5/7
Haiku 4.5
5/7
gpt-oss-120b
5/7
Qwen3-Coder-30B
3/7
MiniMax M2.5
2/7
GLM-4.5-Air
2/7
Qwen3-Coder-Next
1/7
Qwen3.6-35B
1/7
Qwen3-30B Thinking
1/7
Devstral Small
0/7

3What It Means

  • The Go price-gradient did not survive the language switch. Go one-shot order was Fable > Sonnet > Opus > Haiku (7/6/5/4); in TS it's Sonnet = Opus (6/7) with Fable at 5/7. Language changes the ranking even at the frontier — the central hypothesis of this benchmark, confirmed before a single local model ran.
  • gpt-oss-120b is the local leader again — 5/7 one-shot, matching its Go result exactly. Same model, same rank, a different language: the strongest evidence yet that its build performance is a genuine model property, not a Go-specific fluke.
  • The wall-time spread across the local slate is enormous: Qwen3-Coder-30B at ~11 minutes versus Qwen3.6-35B at ~86 minutes — an 8x gap on the same seven files. The gap is driven by stalling, not thinking: Qwen3.6-35B's registry file burns all three local stages as no_artifact_budget (reasoning spent, zero code returned), the identical failure mode that made it the slowest builder in the Go campaign too.
  • node:sqlite defeated every one of the 8 local models on store/sqlite.ts, with zero exceptions. The same builtin-vs-vitest resolution trap that caught all three frontier finishers is, for the local tier, unconditional — no local model, regardless of architecture or think mode, produced a passing store module in this run.
  • The engine module remains the hardest file for every tier. All 8 local models still show engine.ts failing after the local escalation ladder — the same universal wall the Go campaign hit, now confirmed language-independent.

4Trap Forensics

  • node:sqlite vs the vitest bundler. A static ESM value-import of the new builtin fails to resolve under vite; the fix is a type-only import plus createRequire. It caught all three frontier finishers (3-for-3) — the TS counterpart of Go's os.IsNotExist wrapping trap: it measures ecosystem fluency, not spec comprehension, and is graded accordingly.
  • Registry watch timing race. The watch baseline is captured lazily, and a builder that reads the spec literally can grab it too early. Caught Fable 5 in its otherwise-clean run.
  • Grading note: the frozen hidden tests themselves fail strict tsc under noUncheckedIndexedAccess, so typecheck grading is scoped to src/ only.

5Status

All 8 local models — complete
local-tier verdicts logged; escalation fixes complete
Qwen3-Coder-30B → gpt-oss-120b → GLM-4.5-Air → Qwen3-Coder-Next → Qwen3.6-35B → Devstral-Small → Qwen3-30B-Thinking → MiniMax M2.5 each ran the nothink → retry → think local escalation ladder against all 7 files, followed by a Sonnet-fix escalation pass on any file still failing. Every TypeScript workspace across all 8 local models now passes its full hidden-test suite (7/7 final for each).
Model Lab · GX10-01 · data in /Volumes/Envoy Pro/Master/Development/model-lab

Model Lab · Benchmarks

The Build Benchmark — .NET

The same 7-file service exam, ported to .NET · all 12 builders complete

1What This Is

The same seven-file production service exam from the Go benchmarkarchive, registry, provider, verify, store, engine, and server — ported to C# on .NET SDK 10.0.301 (net10.0), with the toolchain swapped to match: xUnit for hidden tests, Microsoft.Data.Sqlite for storage, YamlDotNet for the frozen spec/config format, and an ASP.NET Core minimal API for the server layer. All 12 builders have now run against it, and all 36 workspaces pass their full suites after the escalation-fix pass.

2Scoreboard

BuilderTierOne-shotFix roundsFinalNotes
Fable 5frontier5/727/7 ✓Caught by the FileNotFoundException/DirectoryNotFoundException sibling-type trap plus a missing using directive. Its weakest language showing.
Sonnet 5frontier7/707/7 ✓The first perfect one-shot run of any builder in the .NET edition — zero fix rounds, 36/36.
Opus 4.8frontier6/717/7 ✓Only miss was the server module (one fix round). Verified 36/36.
Haiku 4.5frontier6/717/7 ✓Best Haiku showing in any language; one miss on base-URL /v1 normalization. Logged properly this time.
GLM-4.5-Airgx10 (local)1/7n/m†n/m†One-shot comprehension held up on the pre-engine modules; downstream in-tree/escalation counts are harness-contaminated (see footnote).
Qwen3-Coder-30Bgx10 (local)2/7n/m†n/m†Best local one-shot showing in the .NET pack; downstream in-tree/escalation counts are harness-contaminated (see footnote).
Qwen3.6-35Bgx10 (local)1/7n/m†n/m†One-shot comprehension held up on the pre-engine modules; downstream in-tree/escalation counts are harness-contaminated (see footnote).
gpt-oss-120bgx10 (local)3/7n/m†n/m†Local one-shot leader again in the .NET pack; downstream in-tree/escalation counts are harness-contaminated (see footnote).
Qwen3-Coder-Nextgx10 (local)2/7n/m†n/m†Matches Qwen3-Coder-30B's one-shot rate; downstream in-tree/escalation counts are harness-contaminated (see footnote).
MiniMax M2.5gx10 (local)1/7n/m†n/m†One-shot comprehension held up on the pre-engine modules; downstream in-tree/escalation counts are harness-contaminated (see footnote).
Devstral Smallgx10 (local)1/7n/m†n/m†One-shot comprehension held up on the pre-engine modules; downstream in-tree/escalation counts are harness-contaminated (see footnote).
Qwen3-30B Thinkinggx10 (local)1/7n/m†n/m†One-shot comprehension held up on the pre-engine modules; downstream in-tree/escalation counts are harness-contaminated (see footnote).
† .NET local in-tree/escalation counts are harness-contaminated: the single-csproj design meant every local model's truncated Engine.cs broke compilation for subsequent modules, forcing post-hoc re-fixes of otherwise-passing code. One-shot counts for pre-engine modules remain valid. Harness lesson: per-module isolation next time.

One-shot pass rate

Sonnet 5
7/7
Opus 4.8
6/7
Haiku 4.5
6/7
Fable 5
5/7
gpt-oss-120b
3/7
Qwen3-Coder-30B
2/7
Qwen3-Coder-Next
2/7
GLM-4.5-Air
1/7
Qwen3.6-35B
1/7
Devstral Small
1/7
Qwen3-30B Thinking
1/7
MiniMax M2.5
1/7

3What It Means

All 36 workspaces now pass their full suites after the escalation-fix pass. Where the TypeScript pack probes the Go-vs-complexity split on engine.go, the .NET pack targets the enterprise-stack hypothesis: whether models perform differently on a heavier, more ceremony-laden statically-typed stack (interfaces, DI conventions, verbose type annotations) than on Go's minimalism or TypeScript's flexibility — and whether that ceremony helps or hurts the same file that broke every local Go attempt. The single-csproj harness design means the in-tree/escalation breakdown for local models is contaminated by cascading compile failures downstream of a truncated Engine.cs (see the scoreboard footnote); one-shot rates for pre-engine modules remain a clean signal, and they show C# as the toughest language yet for the local tier — gpt-oss-120b's 3/7 is the best local one-shot result, well below its Go (5/7) and TS (5/7) showings.

4Trap Forensics

  • FileNotFoundException identity through wrapping (to be validated). The C# analog of Go's os.IsNotExist trap — wrapping the underlying exception may defeat a type-check the hidden test relies on.
  • The engine step-4 run-on (to be validated). The same conflated "skip this step" / "no artifact produced" sentence from the Go spec carries over; unclear yet whether C#'s stricter typing makes the ambiguity easier or harder to resolve.
  • The server async paragraph (to be validated). The self-contradictory ordering-guarantee language from the Go spec carries over to the ASP.NET Core minimal API port.

5Status

complete — all 12 builders

All 36 workspaces now pass their full suites after the escalation-fix pass.
Model Lab · GX10-01 · data in /Volumes/Envoy Pro/Master/Development/model-lab

Model Lab · Profile

GLM-4.5-Air (Q4_K_M)

unsloth GGUF · llama.cpp · Asus GX10 (GB10, 128GB unified) · profiled 2026-07-05

9/10 best-strategy pass rate
~13.5s avg solve (strict-nothink)
11–18 tok/s generation
68GB resident
24.4 tok/s aggregate @ 4 concurrent

1Verdict

GLM-4.5-Air is a strong code-implementation model with weak self-verification instincts of its own — it needs a tightly-scoped prompt to keep it out of its own way. The deployable configuration is a strict system prompt with /nothink: 9 of 10 hidden-test passes at 13.5s average. Enabling its thinking mode is operationally impractical at this speed without a hard reasoning-token budget — five of ten strict-think runs burned the full 8,000-token budget mid-reasoning and returned no code at all. The failures that remain aren't algorithmic; they cluster on spec-precision details — dependency direction, unary minus, escaped quotes — the kind of ambiguity a sharper prompt resolves.

2Strategy Shootout

Four prompting strategies run against the same 10-problem set (40 runs total).

StrategyPass rateAvg wall timeAvg output tokens
strict-nothink9/10 (90%)13.5s160
minimal-think8/10 (80%)358.7s4,089
minimal-nothink6/10 (60%)128.0s1,598
strict-think5/10 (50%)429.1s4,779

Pass rate

strict-nothink
9/10
minimal-think
8/10
minimal-nothink
6/10
strict-think
5/10

Avg wall time per problem

strict-nothink
13.5s
minimal-nothink
128.0s
minimal-think
358.7s
strict-think
429.1s
strict-think's 5/10 is a censored number, not a capability signal. Five of its five failures were the 8,000-token reasoning budget exhausting mid-thought — logged as "no code found in response," not wrong code. minimal-nothink rambles without a strict prompt's discipline, averaging 1,598 output tokens against strict-nothink's 160 for a worse pass rate.

3Per-Problem Matrix

Problemminimal-thinkminimal-nothinkstrict-nothinkstrict-think
merge_intervalsPASSPASSPASSPASS
lru_ttl_cachePASSFAILPASSPASS
toposortPASSFAILFAILPASS
csv_parseFAILFAILPASSFAIL
glob_matchPASSPASSPASSFAIL
rle_roundtripPASSPASSPASSPASS
first_occurrencePASSPASSPASSFAIL
deep_mergePASSPASSPASSFAIL
range_overlapPASSPASSPASSPASS
expr_evalFAILFAILPASSFAIL

toposort is the only problem strict-nothink misses — it asserts a dependency ordering the model gets backwards, not a broken algorithm.

4Self-Repair Loop

Protocol: take a failing solution plus its traceback, feed both back to the model under strict-nothink, allow up to two repair rounds.

ProblemOriginal strategyRoundRepairedWall timeTokens
lru_ttl_cacheminimal-nothink1no161.1s1,676
lru_ttl_cacheminimal-nothink2yes25.0s264
toposortminimal-nothink1no21.0s199
toposortminimal-nothink2no17.9s199
toposortstrict-nothink1no16.3s177
toposortstrict-nothink2no16.4s179
csv_parseminimal-nothink1yes18.5s172
expr_evalminimal-nothink1no124.6s1,348
expr_evalminimal-nothink2no115.1s1,348

2 of 5 failing cases were repaired — csv_parse on round 1 and lru_ttl_cache on round 2. toposort and expr_eval were never repaired across either round.

When the model conceptually misreads a spec, retries just regenerate the same wrong idea — the identical 199-token output on both toposort rounds is the tell. Error-feedback fixes mechanical bugs, not conceptual ones.

5Context Scaling

Needle-in-haystack bug-fix task at increasing prompt sizes, strict-nothink.

TargetPrompt tokensPrompt tok/sPrefill timeTotal wall timeCorrect
1k1,297221.15.9s10.3syes
4k4,062250.016.2s21.2syes
8k7,002211.633.1s38.5syes
16k14,365175.282.0s88.7syes
24k19,305145.4132.7s141.3syes

Prefill time vs prompt size

1,297 tok
5.9s
4,062 tok
16.2s
7,002 tok
33.1s
14,365 tok
82.0s
19,305 tok
132.7s

All 5 runs found and fixed the injected bug correctly — no accuracy degradation up to roughly 19k prompt tokens. But prefill throughput isn't flat: it drops from 250 tok/s at 4k down to 145 tok/s at 24k as the context grows. Going from 1,297 to 19,305 prompt tokens (about 15×) costs 22× more prefill time.

Rule of thumb: every 10k prompt tokens costs roughly one additional minute before generation even starts.

6Thinking Mode at 16k Budget

Doubling the reasoning budget from 8k to 16k tokens, strict-think, on the problems that previously stalled.

ProblemPassedWall timeOutput tokensHit cap
csv_parseno1461.7s16,000yes
glob_matchno1462.7s16,000yes
first_occurrenceyes122.4s1,530no
deep_mergeno1460.3s16,000yes
expr_evalno1462.2s16,000yes
toposortyes962.0s10,620no

Thinking mode solved toposort — the conceptual spec-misread that survived two no-think repair rounds — in 16 minutes and 10,620 tokens. That's the escalation tier working as intended. But 4 of 6 runs burned the entire 16k budget over roughly 24 minutes each without ever emitting code, including deep_merge and glob_match, both of which strict-nothink solved in 7–13 seconds. Thinking mode is actively harmful on problems the model can already do, and doubling the budget from 8k to 16k rescued zero spiralers — csv_parse and expr_eval most likely sit beyond this model's capability edge regardless of budget.

7Concurrency

Throughput under simultaneous requests, single llama.cpp instance.

Phase A — single slot

KindConcurrentWall timeAggregate tok/svs. single
single19.75s13.41.0×
concurrent417.86s24.41.83×

Phase B — --parallel 4

KindWall timeAggregate tok/s
single8.5s13.4
4 concurrent18.2s24.4
Single-slot mode already aggregates to 24.4 tok/s under 4 concurrent callers (1.8× a single request) because llama.cpp continuous-batches even without explicit parallel slots. Explicitly enabling --parallel 4 produces the identical 24.4 tok/s aggregate — throughput here is memory-bandwidth-bound, not slot-bound. What slots buy is fairness: 4 simultaneous callers each complete at roughly 2× the latency of a lone request, instead of queuing behind one another.

8Delegation Playbook

Four-step decision tree, in order. Do not skip a step.

  • 1. Strict system prompt + /nothink, always first. 9/10 pass rate at ~13s average. This is the default for every problem, no exceptions.
  • 2. On failure, one repair round with the traceback. Fixes mechanical bugs (missing import, off-by-one) roughly 2 of 5 times in testing, at ~20s. Do not run a second repair round — an identical re-failure means the miss is conceptual, not mechanical.
  • 3. Identical re-failure → one thinking-mode attempt, 16k budget. Expect 15–25 minutes wall time. This tier is for conceptual spec misses only — it rescued toposort after two failed no-think repair rounds.
  • 4. Thinking-mode cap-out → escalate to a frontier model. Hitting the 16k cap without emitting code means the problem is beyond this model's capability edge regardless of budget; retrying locally wastes 20+ minutes for nothing.
Never give thinking mode a problem strict-nothink already handles — 4 of 6 runs at the 16k tier burned the full budget on problems solved in single-digit seconds without it. Curate context aggressively — prefill costs roughly one minute per 10k prompt tokens, on top of whatever the reasoning budget adds. The server holds up under load — 4 concurrent callers sustain 24 tok/s aggregate, each at about 2× solo latency.

9Deployment

  • systemd service llama-server — boot-persistent, auto-restart on failure, launched with --parallel 4 --metrics.
  • DNSllm.internal resolves to 192.168.3.220 via UniFi.
  • Endpoints — port 8080 serves the web UI and the OpenAI-compatible /v1 API, plus /metrics and /health.
  • Thermals — steady at 51°C and 96% GPU utilization during sustained inference, drawing 11W.
Model Lab · GX10-01 · data in /Volumes/Envoy Pro/Master/Development/model-lab

Model Lab · Profile

Qwen3-Coder-30B

instruct-only, no reasoning mode · llama.cpp · campaign run 2026-07-05

9/10 best-strategy pass rate
6.7s avg solve (strict-think)
~35 tok/s generation, flat across strategies
~8 min full 40-run exam

1Verdict

Qwen3-Coder-30B is a pure instruct model — it never emits reasoning tokens under any strategy, so "think" suffixes are inert and the think/nothink distinction that matters so much for GLM and Qwen3.6 simply doesn't apply here. What does matter is the same lesson as everywhere else: a strict system prompt more than doubles the pass rate of a minimal one, while roughly halving wall time. Best config (strict-think, functionally identical to strict-nothink) clears 9/10 in an average 6.7 seconds per problem — the fastest correct-code turnaround in the lab, and the only model whose full 40-run exam finishes inside 10 minutes.

2Strategy Table

Same 10-problem set, four strategies, 40 runs. Recomputed from models/qwen3-coder-30b/benchmarks/2026-07-05-campaign.jsonl.

StrategyPass rateAvg wall timeAvg output tokensAvg tok/s
strict-think9/10 (90%)6.7s21635.2
strict-nothink8/10 (80%)6.7s21735.2
minimal-think8/10 (80%)17.3s60935.0
minimal-nothink6/10 (60%)16.3s54735.1

Pass rate

strict-think
9/10
strict-nothink
8/10
minimal-think
8/10
minimal-nothink
6/10

Avg wall time per problem

strict-think
6.7s
strict-nothink
6.7s
minimal-nothink
16.3s
minimal-think
17.3s
"think" suffix is a no-op for this model. Every run in the dataset logs reasoning_tokens: 0, had_reasoning: false regardless of strategy — strict-think and strict-nothink differ only by noise (216 vs 217 avg tokens, both 6.7s). The suffix is harmless, not helpful: it costs nothing to append, but it buys nothing either.

3Per-Problem Matrix

Problemminimal-thinkminimal-nothinkstrict-nothinkstrict-think
merge_intervalsPASSPASSPASSPASS
lru_ttl_cachePASSFAILPASSPASS
toposortFAILFAILFAILFAIL
csv_parseFAILFAILPASSPASS
glob_matchPASSFAILPASSPASS
rle_roundtripPASSPASSPASSPASS
first_occurrencePASSPASSPASSPASS
deep_mergePASSPASSPASSPASS
range_overlapPASSPASSPASSPASS
expr_evalPASSPASSFAILPASS
toposort fails under all four strategies — the only 0/4 problem in the entire lab across all three profiled models. The model builds a cycle-detecting topological sort but asserts the wrong dependency direction (same failure family GLM hits), and never once produces the ordering the hidden test expects. expr_eval's lone failure, under strict-nothink, is a bare unary-minus parse ("-3+5") that strict-think's identical-looking prompt happens to get right — the kind of single-seed flakiness a repair round would likely fix.

4Observations

  • Token discipline under strict prompts is extreme. Strict strategies output ~216 tokens average versus ~550–610 for minimal ones — a >2.5× reduction with a higher pass rate, the same "strict prompt beats verbosity" pattern seen in every other model tested.
  • Generation speed is rock-steady at ~35 tok/s regardless of strategy or prompt length — no thinking-mode variance to manage, which is the main practical advantage over GLM and Qwen3.6 here.
  • Best problem coverage: 9/10, one hard failure. Every problem other than toposort is solved by at least one strategy; strict-think solves everything except it.
Model Lab · GX10-01 · data in /Volumes/Envoy Pro/Master/Development/model-lab

Model Lab · Profile

Qwen3.6-35B

hybrid think/nothink · llama.cpp · campaign run 2026-07-05

10/10 — first perfect score in the lab
111s avg solve (strict-think)
~29.5 tok/s generation
0 budget-cap spirals under strict-think

1Verdict

Qwen3.6-35B is the careful-tier candidate: strict-think clears all 10 hidden-test problems, the only clean sweep recorded across any model or strategy in this lab. It pays for that with latency — 111 seconds average, roughly 15–17× slower than either Qwen3-Coder-30B or GLM's fast configuration — but its reasoning stays bounded. Across the 10 strict-think runs, reasoning ranged from 406 to 5,217 tokens, all well inside the 8,000-token cap, and it never once spiraled the way GLM's think mode does on easy problems.

2Strategy Table

Same 10-problem set, four strategies, 40 runs. Recomputed from models/qwen3.6-35b/benchmarks/2026-07-05-campaign.jsonl.

StrategyPass rateAvg wall timeAvg output tokensAvg reasoning tokens
strict-think10/10 (100%)111.3s3,2352,608
strict-nothink9/10 (90%)94.0s2,7482,288
minimal-think9/10 (90%)145.3s4,2263,361
minimal-nothink8/10 (80%)149.2s4,3443,412

Pass rate

strict-think
10/10
strict-nothink
9/10
minimal-think
9/10
minimal-nothink
8/10

Avg wall time per problem

strict-nothink
94.0s
strict-think
111.3s
minimal-think
145.3s
minimal-nothink
149.2s
The "nothink" suffix doesn't stop reasoning here. Every run in the dataset, including all 10 "nothink" runs, carries had_reasoning: true with hundreds to thousands of reasoning tokens — this is a hybrid model that reasons regardless of the suffix. What the suffix buys is a shorter chain (2,288 avg reasoning tokens under strict-nothink vs 2,608 under strict-think) at the cost of one dropped test (9/10 vs 10/10). The full 40-run exam took about 83 minutes wall time, roughly 10× longer than Qwen3-Coder-30B's ~8-minute exam.

3Per-Problem Matrix

Problemminimal-thinkminimal-nothinkstrict-nothinkstrict-think
merge_intervalsPASSPASSPASSPASS
lru_ttl_cachePASSPASSPASSPASS
toposortPASSPASSPASSPASS
csv_parsePASSPASSPASSPASS
glob_matchPASSPASSPASSPASS
rle_roundtripPASSPASSPASSPASS
first_occurrencePASSPASSPASSPASS
deep_mergePASSPASSPASSPASS
range_overlapPASSFAILPASSPASS
expr_evalFAILFAILFAILPASS
This is the only model to solve toposort across all four strategies — the same problem that beats GLM's best config and every strategy Qwen3-Coder-30B has. The one true spiral in the dataset is range_overlap under minimal-nothink: 278.2s, 7,522 reasoning tokens, hit the 8,000-token cap, and returned no code at all — logged as "no code found in response," the same failure signature as GLM's think-mode stalls, but a single isolated occurrence rather than a pattern. expr_eval is the model's one genuinely hard problem, failing under three of four strategies and only clearing under strict-think.

4Observations

  • Bounded reasoning, contrast with GLM. GLM's think mode burns a fixed 16,000-token budget over ~24 minutes on problems it can already solve in seconds. Qwen3.6-35B's reasoning self-terminates well under its cap on 39 of 40 runs — the one exception (range_overlap / minimal-nothink) is the exception that proves the model usually knows when to stop.
  • Slower per-response than Coder-30B, but the only perfect scorer. Where Qwen3-Coder-30B trades reliability for speed (9/10 at 6.7s), Qwen3.6-35B trades speed for reliability (10/10 at 111s) — a genuine speed/accuracy frontier, not a strictly dominated option.
  • Strict prompting still wins over mode choice. strict-nothink (94s, 9/10) beats minimal-think (145s, 9/10) on both speed and matches it on accuracy — the prompt discipline lesson holds even for a model whose reasoning is otherwise well-behaved.
Model Lab · GX10-01 · data in /Volumes/Envoy Pro/Master/Development/model-lab

Model Lab · Profile

gpt-oss-120b

open-weight MoE · llama.cpp · campaign run 2026-07-05

10/10 best-strategy pass rate
16.2s avg solve (strict-nothink)
~36 tok/s generation, flat across strategies
always-on reasoning — 190–310 avg tokens regardless of suffix

1Verdict

gpt-oss-120b is a fourth perfect scorer for the lab, and the first local model whose reasoning never fully switches off: every one of its 40 runs, "nothink" included, logs had_reasoning: true. Unlike GLM or Qwen3.6, that reasoning is cheap and short rather than a variable-length gamble — 190 to 310 tokens on average, an order of magnitude below Qwen3.6's thousands. Best config (strict-nothink) clears 10/10 in 16.2s average, a hair behind Qwen3-Coder-Next as the fastest perfect scorer in the lab. It is, however, clearly prompt-sensitive: drop to a minimal prompt and the pass rate falls to 7/10 with wall time more than tripling.

2Strategy Table

Same 10-problem set, four strategies, 40 runs. Recomputed from models/gpt-oss-120b/benchmarks/2026-07-05-campaign.jsonl.

StrategyPass rateAvg wall timeAvg output tokensAvg reasoning tokens
strict-nothink10/10 (100%)16.2s544308
strict-think9/10 (90%)11.9s401190
minimal-think7/10 (70%)44.1s1,517269
minimal-nothink7/10 (70%)55.6s1,926228

Pass rate

strict-nothink
10/10
strict-think
9/10
minimal-think
7/10
minimal-nothink
7/10

Avg wall time per problem

strict-think
11.9s
strict-nothink
16.2s
minimal-think
44.1s
minimal-nothink
55.6s
The think/nothink suffix doesn't gate reasoning here either — like Qwen3.6, every run reasons regardless of the suffix, but unlike Qwen3.6 the chains stay short (under 320 tokens average) rather than climbing into the thousands. Strict prompting still more than triples throughput: minimal-nothink's 1,926 avg output tokens against strict-nothink's 544 is the same "strict prompt curbs verbosity" pattern seen everywhere else in the lab.

3Per-Problem Matrix

Problemminimal-thinkminimal-nothinkstrict-nothinkstrict-think
merge_intervalsPASSPASSPASSPASS
lru_ttl_cachePASSPASSPASSPASS
toposortPASSPASSPASSPASS
csv_parseFAILFAILPASSPASS
glob_matchFAILPASSPASSFAIL
rle_roundtripPASSFAILPASSPASS
first_occurrencePASSPASSPASSPASS
deep_mergePASSPASSPASSPASS
range_overlapFAILFAILPASSPASS
expr_evalPASSPASSPASSPASS

glob_match is strict-nothink's only miss (10/10 elsewhere on that strategy) — and the one problem where strict-think does worse than strict-nothink, an inversion of the usual "think helps or is neutral" pattern seen in every other model.

4Observations

  • A fourth perfect scorer, sub-20-second class. With Qwen3-Coder-Next (10.4s), gpt-oss-120b (16.2s) is the second-fastest clean 10/10 in the lab — well ahead of Qwen3.6-35B's 111s and MiniMax M2.5's 65.5s.
  • Reasoning is always on but cheap. Unlike Qwen3.6's hybrid chains (hundreds to thousands of tokens) or GLM's unbounded think mode (16k-token spirals), gpt-oss-120b's reasoning never exceeds a few hundred tokens in this dataset — closer to a fixed low-effort setting than a toggle.
  • Prompt-sensitive, not prompt-fragile. Minimal prompts cost roughly 3x the wall time and 2 points of pass rate — a real penalty, but nowhere near MiniMax M2.5's collapse under the same conditions.
  • Served with --no-mmap -c 16384 on the rebuilt CUDA-arch-121 llama.cpp — the largest resident model in the lab after GLM.
Model Lab · GX10-01 · data in /Volumes/Envoy Pro/Master/Development/model-lab

Model Lab · Profile

Qwen3-Coder-Next

coder-tuned successor line, instruct-only · llama.cpp · campaign run 2026-07-05

10/10 best-strategy pass rate (strict-think and minimal-think tie)
10.4s avg solve (strict-think) — fastest perfect scorer in the lab
~25.6 tok/s generation, flat across strategies
toposort: solved — only Coder-family model to do so

1Verdict

Qwen3-Coder-Next inherits the 30B's shape — a pure instruct model, 0 reasoning tokens on every one of its 40 runs regardless of suffix — but closes its predecessor's one structural gap: toposort, which beat all four strategies on Qwen3-Coder-30B, passes under all four strategies here. Best config (strict-think) clears 10/10 in 10.4s average, the fastest perfect score recorded in this lab, and minimal-think also reaches 10/10 — the only model where a minimal prompt ties a strict one on pass rate. Its lone weak point is expr_eval, which fails under both nothink strategies and passes under both think ones, the opposite of the "think doesn't matter" pattern the rest of the profile suggests.

2Strategy Table

Same 10-problem set, four strategies, 40 runs. Recomputed from models/qwen3-coder-next/benchmarks/2026-07-05-campaign.jsonl.

StrategyPass rateAvg wall timeAvg output tokensAvg tok/s
strict-think10/10 (100%)10.4s24725.7
minimal-think10/10 (100%)23.1s57425.6
strict-nothink9/10 (90%)11.4s27125.7
minimal-nothink9/10 (90%)29.1s72125.6

Pass rate

strict-think
10/10
minimal-think
10/10
strict-nothink
9/10
minimal-nothink
9/10

Avg wall time per problem

strict-think
10.4s
strict-nothink
11.4s
minimal-think
23.1s
minimal-nothink
29.1s
"think" is still a no-op. Every run in the dataset logs reasoning_tokens: 0, had_reasoning: false, same as Qwen3-Coder-30B — the suffix costs nothing but buys nothing at the token level. What it does correlate with here is expr_eval's pass/fail split, which tracks the think suffix exactly despite no reasoning tokens being spent — most likely single-seed sampling variance on a unary-minus edge case rather than a causal effect of the suffix itself.

3Per-Problem Matrix

Problemminimal-thinkminimal-nothinkstrict-nothinkstrict-think
merge_intervalsPASSPASSPASSPASS
lru_ttl_cachePASSPASSPASSPASS
toposortPASSPASSPASSPASS
csv_parsePASSPASSPASSPASS
glob_matchPASSPASSPASSPASS
rle_roundtripPASSPASSPASSPASS
first_occurrencePASSPASSPASSPASS
deep_mergePASSPASSPASSPASS
range_overlapPASSPASSPASSPASS
expr_evalPASSFAILFAILPASS

expr_eval is the only problem that isn't a clean sweep, and it's the single point separating this model from a perfect 40/40. Every other problem, including toposort, passes under all four strategies.

4Observations

  • Closes the 30B's one structural gap. toposort failed under all four strategies on Qwen3-Coder-30B — the only 0/4 problem across the first three profiled models — and passes under all four here. The dependency-direction misread that beat the 30B doesn't reproduce on its successor.
  • Fastest perfect scorer in the lab. 10.4s average under strict-think edges out gpt-oss-120b's 16.2s and dwarfs MiniMax M2.5 (65.5s) and Qwen3.6-35B (111s).
  • Strict prompting still roughly halves wall time even though pass rate ties at 10/10 — 10.4s vs 23.1s for think, 11.4s vs 29.1s for nothink — the token-discipline benefit holds even when accuracy doesn't move.
Model Lab · GX10-01 · data in /Volumes/Envoy Pro/Master/Development/model-lab

Model Lab · Profile

MiniMax M2.5

MoE, long-context focus · llama.cpp · campaign run 2026-07-05

10/10 under both strict-nothink and strict-think
65.5s avg solve (strict-nothink)
~14.7 tok/s generation — slowest per-response of the lab's perfect scorers
8 of 20 minimal-prompt runs cap out at 625s / 8,000 tokens

1Verdict

MiniMax M2.5 is the most prompt-management-sensitive model in the lab: flawless under strict discipline, unusable without it. Both strict configurations clear a clean 10/10 — 65.5s average under strict-nothink, 70.2s under strict-think, functionally a tie — making it the third of four perfect scorers now in the lab. Switch to a minimal prompt and it falls apart: 7/10 under minimal-nothink at 309s average, 5/10 under minimal-think at 372s average, with 8 of those 20 minimal runs (5 of 10 minimal-think, 3 of 10 minimal-nothink) burning the full 8,000-token output cap over roughly 10 minutes each and returning no code at all — the same "no code found in response" failure signature as GLM's think-mode spirals. At ~14.7 tok/s generation, it is also the slowest per-response of the lab's perfect scorers, roughly half gpt-oss-120b's throughput and a fifth of the two Qwen instruct models'.

2Strategy Table

Same 10-problem set, four strategies, 40 runs. Recomputed from models/minimax-m2.5/benchmarks/2026-07-05-campaign.jsonl.

StrategyPass rateAvg wall timeAvg output tokensAvg tok/s
strict-nothink10/10 (100%)65.5s91114.8
strict-think10/10 (100%)70.2s1,00014.7
minimal-nothink7/10 (70%)309.3s4,10013.8
minimal-think5/10 (50%)372.3s4,85013.7

Pass rate

strict-nothink
10/10
strict-think
10/10
minimal-nothink
7/10
minimal-think
5/10

Avg wall time per problem

strict-nothink
65.5s
strict-think
70.2s
minimal-nothink
309.3s
minimal-think
372.3s
The gap between strict and minimal here dwarfs every other model in the lab. Strict configurations run 4–5x faster and score 3–5 points higher than minimal ones — a starker version of the "strict prompt wins" pattern seen everywhere else, not a different pattern. Both think and nothink reason regardless of suffix (all 40 runs log had_reasoning: true), like Qwen3.6 and gpt-oss-120b, but MiniMax's chains run far longer under a weak prompt: minimal-think's failed runs average roughly 8,300 reasoning tokens against strict-nothink's 300–400.

3Per-Problem Matrix

Problemminimal-thinkminimal-nothinkstrict-nothinkstrict-think
merge_intervalsPASSFAILPASSPASS
lru_ttl_cachePASSPASSPASSPASS
toposortFAILPASSPASSPASS
csv_parseFAILPASSPASSPASS
glob_matchFAILPASSPASSPASS
rle_roundtripPASSFAILPASSPASS
first_occurrencePASSPASSPASSPASS
deep_mergeFAILPASSPASSPASS
range_overlapPASSPASSPASSPASS
expr_evalFAILFAILPASSPASS

Both strict strategies sweep all 10 problems. The five minimal-think failures (toposort, csv_parse, glob_match, deep_merge, expr_eval) are all cap-out spirals — the model never gets far enough to produce wrong code, it just never finishes.

4Observations

  • The Diva archetype: flawless under discipline, unusable without it. No other model in the lab shows this wide a swing between its best and worst strategy — a 5-point pass-rate spread and better than 5x wall-time spread between strict-nothink and minimal-think.
  • Cap-outs are the dominant minimal-prompt failure mode. 8 of 20 minimal runs hit the full 625s / 8,000-token ceiling and returned no code — GLM's think-mode spiral signature, but triggered here by prompt looseness rather than a "think" toggle.
  • Slowest per-response of the perfect scorers. ~14.7 tok/s puts it well behind gpt-oss-120b (~36 tok/s) and the two Qwen instruct models (~26–35 tok/s) — a real latency cost even in its best configuration.
  • Served with --no-mmap -c 16384 on the rebuilt CUDA-arch-121 llama.cpp, the same build used for gpt-oss-120b.
Model Lab · GX10-01 · data in /Volumes/Envoy Pro/Master/Development/model-lab

Model Lab · Profile

Devstral Small

Mistral, 24B dense · Q8 GGUF · llama.cpp · campaign run 2026-07-06

8/10 best-strategy pass rate
25.2s avg solve (strict-nothink)
24B dense — the lab's only non-MoE local model
~6 tok/s generation, flat across strategies

1Hypothesis

Every other model in this lab is MoE — a handful of active experts per token, activating a fraction of total parameters. Devstral Small is dense: all 24B weights fire on every token. That makes it the natural control for a question the roster couldn't otherwise answer: is MoE's dominance on this bandwidth-bound box a genuine architecture advantage, or just a speed profile that happens to correlate with the models tested so far? The result is no magic in density — Devstral lands mid-pack at 8/10 under its best strategy (strict-nothink, 25.2s average), squarely between the lab's weaker and stronger MoE models, at roughly a sixth the generation speed (~6 tok/s vs 30+ tok/s for the MoE models near its size). It scores competitively but pays for every token in wall time, exactly the "read-the-whole-brain" tradeoff the hypothesis predicted — and buys no accuracy premium for it. MoE dominance on this box stands.

2Strategy Table

Same 10-problem set, four strategies, 40 runs. Recomputed from models/devstral-small/benchmarks/2026-07-06-cs-exam.jsonl.

StrategyPass rateAvg wall timeAvg output tokensAvg tok/s
strict-nothink8/10 (80%)25.2s1506.0
strict-think5/10 (50%)27.1s1626.0
minimal-think6/10 (60%)104.0s6226.0
minimal-nothink5/10 (50%)95.6s5726.0

Pass rate

strict-nothink
8/10
minimal-think
6/10
strict-think
5/10
minimal-nothink
5/10

Avg wall time per problem

strict-nothink
25.2s
strict-think
27.1s
minimal-nothink
95.6s
minimal-think
104.0s
Strict beats minimal here too, but the think toggle is a wash. strict-nothink's 8/10 is the outlier of the four — strict-think, its nominal sibling, drops to 5/10 despite near-identical wall time and token counts, suggesting the think suffix costs accuracy without buying reasoning depth on a model that (like Qwen3-Coder-30B) shows no reasoning-token machinery at all.

3Per-Problem Matrix

Problemminimal-thinkminimal-nothinkstrict-nothinkstrict-think
merge_intervalsPASSPASSPASSPASS
lru_ttl_cachePASSPASSPASSPASS
toposortFAILFAILPASSFAIL
csv_parseFAILFAILFAILFAIL
glob_matchPASSFAILPASSFAIL
rle_roundtripPASSPASSPASSPASS
first_occurrencePASSPASSPASSPASS
deep_mergePASSPASSPASSPASS
range_overlapFAILFAILFAILFAIL
expr_evalFAILFAILPASSFAIL
csv_parse and range_overlap fail under all four strategies — csv_parse on an escaped-quote edge case, range_overlap on a datetime/timedelta import confusion repeated near-identically across every strategy. strict-nothink is the only configuration to clear both toposort and expr_eval, the two problems that split every other strategy on this model.

4Observations

  • Dense confirms the MoE-dominance hypothesis rather than overturning it. 8/10 at ~6 tok/s sits mid-pack against MoE models running 5-6x faster — Devstral pays a real speed tax and doesn't get an accuracy premium in return.
  • Strict prompt still wins on pass rate, but not on the think toggle. strict-nothink (8/10) beats strict-think (5/10) despite matching wall time and token counts — the opposite of a "more thinking helps" story; this looks like prompt-format noise rather than a reasoning effect, consistent with Devstral showing no dedicated reasoning-token machinery.
  • Generation speed is rock-steady at ~6 tok/s regardless of strategy — the dense-model signature already seen in wall time, just restated in throughput terms.
Model Lab · GX10-01 · data in /Volumes/Envoy Pro/Master/Development/model-lab

Model Lab · Profile

Qwen3-30B Thinking

Qwen3-30B-A3B-Thinking-2507 · Q8 GGUF · llama.cpp · campaign run 2026-07-06

9/10 best-strategy pass rate
144s avg solve (minimal-nothink)
30B-A3B MoE, dedicated reasoning variant
first model where strict lost

1Hypothesis

Dispatch's escalation tier currently has two imperfect candidates: Qwen3.6-35B, whose reasoning is bounded and reliable but stumbles on Go-specific build tasks, and GLM-4.5-Air, whose think mode spirals unbounded for 24 minutes on problems it can already solve. Qwen3-30B-A3B-Thinking-2507 is purpose-built as a dedicated reasoning model rather than a hybrid think/nothink toggle bolted onto a general model — the question was whether a smaller, reasoning-native architecture can own the escalation tier outright. The result is the most interesting strategy-truths break in the lab: its best score, 9/10 at 144s average, comes from minimal-nothink — both strict configurations land at 7/10, the first time in this lab the strict prompt has lost. A dedicated reasoner appears to want room to think rather than a tightly scoped prompt; the per-model preset system in Dispatch exists for exactly this kind of exception.

2Strategy Table

Same 10-problem set, four strategies, 40 runs. Recomputed from models/qwen3-30b-thinking/benchmarks/2026-07-06-cs-exam.jsonl.

StrategyPass rateAvg wall timeAvg output tokensAvg tok/s
minimal-nothink9/10 (90%)144.0s4,38331.7
minimal-think8/10 (80%)134.0s4,07932.0
strict-nothink7/10 (70%)150.6s4,55531.5
strict-think7/10 (70%)154.3s4,64131.5

Pass rate

minimal-nothink
9/10
minimal-think
8/10
strict-nothink
7/10
strict-think
7/10

Avg wall time per problem

minimal-think
134.0s
minimal-nothink
144.0s
strict-nothink
150.6s
strict-think
154.3s
All four strategies are within 20 seconds of each other — this model reasons regardless of prompt or suffix. Unlike GLM or Qwen3.6, there's no minimal-vs-strict wall-time cliff; every configuration produces 4,000+ reasoning-heavy output tokens at ~32 tok/s. The strict prompt's usual job — stopping the model from over-elaborating — isn't needed here, and apparently costs accuracy instead of buying it.

3Per-Problem Matrix

Problemminimal-thinkminimal-nothinkstrict-nothinkstrict-think
merge_intervalsPASSPASSPASSPASS
lru_ttl_cachePASSPASSPASSPASS
toposortPASSPASSFAILFAIL
csv_parseFAILFAILFAILFAIL
glob_matchPASSPASSPASSPASS
rle_roundtripPASSPASSPASSPASS
first_occurrencePASSPASSPASSPASS
deep_mergePASSPASSPASSPASS
range_overlapPASSPASSPASSPASS
expr_evalFAILPASSFAILFAIL
csv_parse fails under all four strategies — the only 0/4 problem for this model, and the same problem that gave several other models trouble on escaped-quote handling. toposort is the strategy-flip problem: both minimal configurations pass it, both strict configurations fail it — exactly the reverse of the pattern seen in models where strict wins. expr_eval only clears under minimal-nothink, its single unique pass.

4Observations

  • The first model in the lab where the strict prompt underperforms. Minimal-nothink (9/10) beats both strict-nothink and strict-think (7/10 each) — the exact opposite of every other model profiled. Dedicated reasoners may need room to explore rather than a narrow scope; per-model strategy presets in Dispatch exist to capture cases like this rather than force a single global default.
  • Reasoning is always-on and expensive regardless of suffix. Every strategy produces 4,000+ output tokens at ~32 tok/s and 130-155s wall time — there's no cheap "nothink" mode the way GLM or the coder models have; the think/nothink suffix barely moves the needle here.
  • toposort inverts the usual strategy pattern. Both minimal strategies solve it, both strict strategies miss it — a second, independent signal (beyond the overall pass-rate ranking) that this model behaves opposite to the lab's dominant "strict wins" rule.
Model Lab · GX10-01 · data in /Volumes/Envoy Pro/Master/Development/model-lab

Model Lab

Infrastructure

GX10-01 deployment topology

1Compute

  • Asus GX10 — GB10 unified-memory system, 128GB shared between CPU and GPU.
  • llama-server — systemd service, boot-persistent, auto-restart on failure, port 8080, 4 parallel slots (--parallel 4 --metrics), serving the OpenAI-compatible /v1 API plus /metrics and /health.
  • DNSllm.internal resolves to 192.168.3.220 via UniFi.
  • Thermals — steady 51°C at 96% GPU utilization under sustained inference, drawing 11W.

2Dispatch Gateway

Small Go service (port 8181) owning the decision tree, model presets, and telemetry — the layer that decides which model and which strategy handles a given request, and escalates when one fails.

1. strict prompt, fast-tier model (nothink where applicable) │ fail 2. one repair round with traceback (same model, same strategy) │ identical re-failure 3. escalate to careful-tier model, bounded thinking budget │ cap-out without code 4. escalate to frontier model (verified conceptual edge case)
Built in-house rather than adopted off the shelf — the research survey (research/2026-07-05-buy-vs-build.md) found no existing gateway implementing a generate → run-tests → traceback-retry → thinking-escalation → frontier-escalation loop end to end. LiteLLM Proxy escalates only on transport errors, not test failures; Aider's --auto-test loop is the closest prior art for the retry step. Adopted: llama-swap for model lifecycle. Skipped: LiteLLM and Bifrost — the custom decision tree is the entire value of Dispatch, and their weight buys little on top of it.

3Telemetry

Every run in this lab — strategy exams, self-repair rounds, context-scaling sweeps, concurrency tests — is logged as JSONL with problem id, strategy, timestamps, reasoning/output token counts, wall time, and pass/fail against hidden tests. All pass/fail figures on this site are recomputed directly from those logs, not hand-entered.

Model Lab · GX10-01 · data in /Volumes/Envoy Pro/Master/Development/model-lab

Model Lab

Roadmap

Future benchmarking and system-design queue

1Queue

  • Python exam slate. The matrix anchor — Python is the locals' home language, so a Python-language build/CS pack calibrates the ceiling every other language result gets read against.
  • Hybrid team benchmark (frontier thinks / local does). Measures the token exchange rate between tiers; work thesis is that a frontier model planning and a local model executing can cut frontier token spend to roughly 20% of a solo-frontier run at comparable quality.
  • Token/cost ledger in Dispatch. Frontier-vs-local spend per unit of verified work, priced against a counterfactual (what the same task would have cost run solo-frontier) rather than raw token counts alone.
  • Dispatch MCP interface + "foreman" agents. Named agents per backend, an agent-flow UX, and cost reporting baked in — governed by one design principle: Dispatch executes work orders; it never writes them.
  • Bedrock + Cloudflare Workers AI as cloud-GX10 providers. Same exam suite, run against a third substrate tier, to separate "GX10-specific" results from results that generalize across any inference backend.
  • Frontend slates. React vs Angular tier-1 logic exams to probe the language-affinity question head-on; an Electron IPC pack to follow later.
  • Production niche: specialized batch labor. Chaio transaction/receipt/email categorization as the first real production workload for the local tier — high volume, low individual stakes, exactly the profile this lab has been calibrating for.