Skip to content
RingMod

ring·mod: the synth circuit that multiplies two signals into one neither could make alone. Your platform × AI, under control.

← Notes
Field note

Pre-register your evals. The misses are the yield.

We committed ten predictions before running 130 agent evals, then published the whole scorecard, misses included. The refuted prediction taught the most.

Last updated

The thing that stopped us from shipping a second bad headline this week was not a better model or a smarter reviewer. It was a one-page text file, committed to git before the experiment it describes had produced a single number.

That file said, in effect: here are 120 runs we’re about to do, here are five things we believe will happen, and here is what we’ll disclose either way. One of its commitments was to put an error bar under a claim we’d already published (“Opus 4.8 was faster on every single task”) by rerunning it with five repeats instead of one. The claim didn’t survive the error bar. The follow-up experiment got the same treatment, five more predictions, before its first run.

The scorecard

Ten written predictions across the two experiments. Six held up. Two earned partial credit: latency noise was real but wider than our predicted band (5–46% per cell against a predicted 10–30%), and the cheap model did fail a task, just not either of the two tasks we named. One was an interpretation guardrail that can’t fail by design. And one was refuted outright: we predicted a four-rule prompt addition would move cost less than 15%, and it moved cost 28%.

The refuted one was the best of the ten. Chasing why cost jumped led to the observation that carried part three: thorough behavior costs output tokens no matter which model performs it, so part of a flagship’s price premium is the token bill of its own habits. We would never have looked without a wrong number staring back from a committed prediction.

A prediction that can’t miss isn’t a prediction. If your team’s eval reports have never once said “we expected X and got Y,” the expectations are being written after the results.

Deviations get a section, not a cover-up

A hundred and three runs into our 120-run bout, the CLI we use to drive the agents auto-updated itself. The last seventeen runs executed on a different tool version than the first hundred and three. That’s exactly the kind of detail that quietly disappears from writeups, because including it feels like weakening your own work.

Pre-registration inverts the incentive. The design doc promises a deviations list, so the update becomes a disclosed, per-run-recorded fact with an assessment of impact (in our case: the affected runs cluster in one task group, both failing runs span both versions, conclusion unchanged). The alternative, a reader discovering it in the raw logs, converts a footnote into a credibility problem. And you should assume readers of an eval will go looking; we publish every transcript precisely because the sort of client we want reads them.

The whole protocol, in six lines

  1. Pin everything: model IDs, tool versions, settings, effort. Record them per run, mechanically.
  2. Serialize runs that will back a latency claim; concurrent runs share rate-limit headroom.
  3. Five repeats per cell minimum. Report spread, never bare means.
  4. Commit the design doc, with numbered predictions, before run one.
  5. Publish raw artifacts: transcripts, grades, diffs, judge samples.
  6. Say who wrote the analysis. Ours are drafted by one of the models under test, which is why the graders are deterministic scripts and the raw data ships alongside every claim.

None of this needs infrastructure. The design docs are markdown; the harness is under 600 lines of shell and Python, public. What it needs is the willingness to be seen missing.

The same protocol pointed at your workload is most of a model bake-off, and the first deliverable of a production-readiness audit is usually exactly this: your eval, rebuilt so its conclusions survive a skeptic with access to the logs.

Questions this raises

Straight answers.

What does it mean to pre-register an eval?
Before the first run, you commit a short design document to version control: the question, the arms, the metrics, your predicted outcomes, and the conditions you'll disclose. Ours run about a page. After the run, the analysis answers each prediction explicitly, including the wrong ones, and records anything that deviated from the plan. The commit timestamp is the point: nobody, including you, can rewrite the hypotheses after seeing the data.
Doesn't publishing wrong predictions undermine credibility?
It builds the only kind that survives scrutiny. A team that never publishes a miss is either not predicting anything or not telling you everything. Our own pre-registered rerun killed the headline of an article published two days before the rerun's write-up; a reader can check the design document, the raw runs, and the correction, in that order. That trail is worth more than the original claim was.
What belongs in the design document?
The question in one sentence. The arms and sample sizes. The exact command. The pinned configuration (model versions, tool versions, settings). Numbered, falsifiable predictions. Known asymmetries you can't remove, disclosed rather than hidden. Analysis commitments: what gets published, what gets hand-verified, who writes it. And a standing rule that deviations get recorded in the analysis, never edited into the design after the fact.

Production-Readiness Audit

The writeup has a service behind it.

If this is your situation, the production-readiness audit is where it gets fixed — by the person who wrote this.

Request an audit