Godfrey Osagiede · Lab Notes raw receipts: github.com/godfreystorm/ratchet-lab
Ratchet Lab · Run 7 · gpt-oss-120b via Groq, 300 generations per arm, no new mechanisms

The Long Game

A close-up, low-angle view of a lessons ledger page stamped RETIRED twice in amber, with a 'gen 64' tag beside the lower stamp and 'votes: 0' printed below.
Hypothesis

Run 6's living-playbook epistemology is deliberately slow — five-sighting thresholds, trials, evidence counters. A hundred generations barely lets it move. If the science arm (Run 6's config) and a credulous arm (Run 4's config: feedback only, no lessons) both get 300 generations instead of 100, does science's careful process finally pull ahead in raw performance?

Setup

No new mechanisms — the only variable is time. Two 300-generation arms: Arm A (science, Run 6's living-playbook config) and Arm B (credulous, Run 4's feedback-only config, lessons machinery disabled). Comparability with all prior 100-gen arms is preserved because a 300-gen run contains a 100-gen run inside it — I can slice the curve at generation 100 and compare directly.

Arm A — all-time records, 2026-08-28
What was measured (Arm A, science)

Coverage reached 91.7% (33 of 36 cells — the old record was 69.4%), best Elo hit 1099 (old record 1081), 15 tools, 1 active lesson, and just 71 crashes across 300 generations — roughly 24 per 100 gens, the lowest crash rate of any run in the series. The long horizon paid off directly: at generation 100 the arm sat at 69.4% coverage and Elo 1053; by generation 300 it was 91.7% and 1099. Every previous run had ended mid-climb.

The colony rejected six candidate doctrines during the run and kept exactly one — the same "never reference lib outside act" law that Run 6's completely independent colony had also derived and verified. Two isolated cultures converged on the identical surviving rule.

What failed along the way

An attempted Arm B run hit a command bug — there was no way to actually disable lessons — so it accidentally ran a second science colony instead of the intended credulous control. It was an expensive mistake, and also a goldmine: for the first time, retirement fired in the wild, twice — two canonized lessons each failed their family five times and were demoted. The full belief lifecycle (candidate → trial → canonize → retire) played out end to end with no human input.

It also exposed just how much replicate variance exists: the identical science config produced 77.8% coverage and 1054 Elo this time, versus 91.7% and 1099 the first time — with 240 crashes versus 71. Same setup, wildly different outcome. That run also surfaced a harness bug: the A/B trial for candidate lessons was evaluating trial children with an empty tool library, so any tool-dependent child crashed regardless of the lesson being tested, which rigged late-run trials toward rejection. Fixed once found; some earlier rejected lessons may not have gotten a fair hearing.

Result — the real Arm B, credulous control, 300 gens (2026-08-29)

Coverage hit 94.4% — a new record — with best Elo 1079, 18 tools (also a record), 69 crashes, and only 371 calls total, with zero lessons machinery running at all.

ArmCoverageBest EloCrashesCalls
Science A (living playbooks)91.7%109971451
Science B (accidental replicate)77.8%1054240715
Credulous (feedback only)94.4%107969371
Archive coverage (%) over generation science 300 (A) (data-run7-science300) credulous 300 (data-run7-credulous300) science 300 (B) (data-run7-feedback300) science 100 (data-run6-living) credulous 100 (data-run4-feedback) 0.0 24.8 49.6 74.4 99.2 gen 0 gen 300 Best archive Elo over generation science 300 (A) (data-run7-science300) credulous 300 (data-run7-credulous300) science 300 (B) (data-run7-feedback300) science 100 (data-run6-living) credulous 100 (data-run4-feedback) 0.0 288.4 576.9 865.3 1153.8 gen 0 gen 300
On camera

Real replays from the 300-generation science arm: gen 4 wanders, gen 61 trades even, gen 218 wins from the corner.

A bot under Law 1, adopted gen 33. The law failed its crash family 5 times and was retired at gen 64. Votes: 0 humans.

The verdict

Science did not win on raw performance. The credulous arm matched or beat both science replicates on coverage and on crash count, and did it cheaper — fewer calls, no lessons machinery to run at all. Science's own coverage spanned 77.8% to 91.7% across its two replicates, so every gap in this table sits inside that replicate's own noise band.

The honest chain of conclusions: the real workhorse across every single arm, all along, was Run 4's crash-feedback retry — present everywhere, and the actual thing containing crashes. The prompt-injected lessons were largely placebo for this model; the trials themselves kept revealing that, because almost every candidate lesson failed to beat its control, which meant both science colonies ran with roughly zero to one active lesson most of the time — nearly identical systems to the credulous arm under the hood. Science's demonstrated value turned out to be hygiene, not horsepower: against Run 5's credulous-canonization regime, it prevented superstition (crashes 50 down to 33 at 100 gens) and it self-corrected via two live retirements. Against having no lessons at all, it bought nothing measurable. Both of those are true, and both are in the record.

"Science didn't make my bots stronger. It kept them from lying to themselves."

Time remains the single biggest lever the whole series found — 300 generations took coverage from roughly 60% territory to 92–94% territory in two of the three arms.

What this run cost

1,537 API calls · $1.66–$2.08 (gpt-oss-120b via Groq).

Series through Run 7: 2,504 calls · $5.39–$6.56. Call counts are exact, straight from each run's metrics file. Costs are a range rather than a figure because the provider bills cached input tokens at half price and does not report the cached fraction in the API response, only in the console dashboard, so the upper bound prices every input token as uncached and the lower bound prices all of them as cache hits. A sampled dashboard minute showed 68% of input tokens were cache hits, which puts the truth nearer the bottom of each range. Token counts are measured exactly from Run 8 onward; earlier runs additionally reconstruct tokens from Run 8b's measured per-call profile (3,642 in / 1,348 out), because the usage field was discarded before it was ever written down. A bound is not a measurement and a reconstruction is neither, so both are labelled.

Raw receipts — every archive, lessons ledger, metrics file, and match replay: github.com/godfreystorm/ratchet-lab