elwood.sh $

How we evaluate

Each test is a real bug that was fixed once before, replayed so a model has to fix it again. Passing takes a working, committed fix that an independent reviewer accepts.

One run, step by step

  1. A replayed bug. The code is reset to just before a real fix was made. The model gets the bug report, written the way an engineer would hand it over, and nothing else.
  2. A planted failing test. The harness adds a test that fails on the buggy code and passes on a correct fix. The model can run it, but changing or weakening it is caught and counted.
  3. It must commit. The deliverable is a commit. A run that edits files but never commits, or never edits at all, fails.
  4. The checks run. The planted test and the project's own build and regression checks must pass.
  5. An independent review. A separate reviewer model reads the diff and must approve it. A fix that passes the test but games it, for example by special-casing the test, is blocked.

The same harness for everyone

Every model runs headless in the same engine, OpenCode 1.19.3 (the engine Elwood is built on), with the same tools and permissions, and the same time limit on the agent for a given case. Elwood's rebrand changes nothing a model sees: the instructions and tool descriptions sent to the model are byte-for-byte the same as OpenCode's. A second configuration, "v2", tunes the harness configuration for each model (for example, prompt caching where the model supports it). It is reported as its own row, never mixed in. So far v2 has run on a fixed set of 10 hard cases, not a random sample, so a v2 row is not directly comparable with a v1 row.

Some models also run in their own lab's harness: Claude in Claude Code and GPT in Codex. Comparing the same model in both, on the harness effect page, separates the model's skill from the harness's.

Reading the numbers

Limits, plainly