Every tool fault is planted, and each check is a deterministic test of the answer
or of the tool calls made.
coding-agent is scored by running hidden tests, and a
run fails if it edits a test or a file the task doesn’t need. Treat these results
as a signal, because your own agents may behave differently.
coding-agent edits an in-memory copy of its project. Its tests, including any code
the model wrote, run in a temporary directory with an empty environment, under
Node’s permission model. That blocks files outside the directory and child
processes. Network access is blocked only on Node 25 or later, so run live
benchmarks on Node 25 or in a sandbox of your own.
Run it
--model. These flags
change what’s measured:
Reading the scoreboard
- A new harness version comes from any change to the instructions, tool names or hooks.
noiseis the spread in pass rate between repeats. A gain smaller than the noise isn’t evidence of anything.- A provider failure, such as a rate limit, counts as
excludedand never as a failure. Results refuse to combine if a task’s input changed between runs.
Improve and replay
improve.ts runs improveAgent on one agent’s cases. replay.ts re-runs the harnesses it recorded.
Gate experiment
experiment.ts replays recorded editor outputs through four gates (A: none, B: the old gate, C: the current gate, D: the current gate with fallback), plus a no-op (N) and a planted regression (P). simulate.ts estimates the same rates offline from per-case pass rates.
experiment.ts has no default model, so pass --model and --editor every time. Before arms N and P, it checks that each --holdout case passes 6/6 on the base, and exits with code 2 if one doesn’t. It replays only rows that ended in a proposal or kept the base. The proof run, in order: