Isolation is not engineering
A function-level benchmark hands the model a signature, a docstring, and the intent. Real work supplies none of those. The first task is finding which of four hundred thousand lines is wrong.
Real repositories. Real engineering tasks. Reproducible evaluation.
Evaluating a coding model means giving it work that resembles the work. Three things make that hard — and all three are design decisions, not accidents.
A function-level benchmark hands the model a signature, a docstring, and the intent. Real work supplies none of those. The first task is finding which of four hundred thousand lines is wrong.
When every frontier system clears ninety percent, the benchmark has stopped measuring and started congratulating. Difficulty has to be admitted deliberately, not discovered by accident.
Reviewers approve changes that read correctly and do nothing. Only a suite that ran red before the patch and green after it can tell you the behaviour actually moved.
A benchmark assembled from merged pull requests in projects people depend on. Each instance is a repository at a commit, an issue written by someone who hit it, and the tests that prove the fix.
The model gets what an engineer gets on their first morning: the codebase, the report, and nothing else.
Shutting down a multi-threaded runtime while a TcpStream still has buffered writes drops the connection before the write half is flushed. The shutdown path releases driver resources before parked I/O tasks get a final poll, so the peer observes a truncated response instead of a clean close.
One instance of 48,291
Lifetimes, trait resolution, and failures the compiler refuses to let you fake.
Lifetimes, trait resolution, and failures the compiler refuses to let you fake.
48,291
8+
Languages
Six more in review for the next edition.
341+
Repositories
Median age eight years, median 12k stars.
98,204+
Verified tests
Red-to-green transitions, checked on clean containers.
Four stages, every one of them executed. Nothing about a run is inferred from the diff.
The repository is restored to its base commit inside a pinned container, then built from scratch. A patch that does not compile stops here.
Two suites run. The failing tests attached to the issue must go green, and every test that passed before must still pass.
The patch is compared against the reference fix: scope, file overlap, and whether the change addresses the cause or masks the symptom.
Results are written to a run record with the seed, image digest, and timings, so any number on a leaderboard can be reproduced exactly.
A slice of the set, with the fields the harness actually reads. Open a row to see the record an agent receives.
36 tasks matching
Sample rendered from the published schema. The full set ships as JSONL with one container context per repository.
Four decisions, each of which costs something to make and shows up in every score the benchmark produces.
Every task comes from a merged pull request in a project people actually depend on. No generated bugs, no toy repositories, no puzzles written to be solvable.
100 candidates reviewed38 admitted
A task is only admitted if the reference fix required reading code the issue never mentions. Single-line typo fixes are filtered out before review.
Each task ships the tests that failed before the fix and the suite that must stay green after it. Passing means the behaviour changed, not that the diff looked plausible.
Pinned images, recorded seeds, and a run record for every evaluation. A score you publish today can be re-derived by someone else next year.
One purchase, the whole edition. No seats, no metering, and no call with anybody.
$49
Launch pricing
Early pricing while the benchmark grows. It buys the edition outright — nothing expires and nothing renews.
Evaluating at scale or need a custom split? Write to hello@dorabench.in.
Everything a reviewer usually emails about, with the numbers attached.
DoraBench is a benchmark company that builds evaluation datasets for AI software-engineering agents. It publishes Terminus, a benchmark of 48,291 real engineering tasks drawn from merged pull requests across 341 open-source repositories in eight programming languages.
Terminus is DoraBench's flagship software-engineering benchmark. Each of its 48,291 tasks pairs a real repository at a specific commit with a real issue and the tests that verify the fix, so a coding agent is scored on whether its patch makes failing tests pass without breaking the existing suite.
Terminus covers eight languages: Python, TypeScript, JavaScript, Java, Go, Rust, C++, and Ruby. Python is the largest slice at 14,208 tasks and Ruby the smallest at 2,100. Kotlin, Swift, Scala, C#, Elixir, and Zig are in review for the next edition.
SWE-bench is drawn almost entirely from Python repositories. Terminus spans eight languages including compiled and memory-managed ones, admits a task only when the reference fix required reading code the issue never names, and ships a pinned container image and recorded seed per task so any published score can be re-derived exactly.
Evaluation runs in four stages. The repository is restored to its base commit in a pinned container and built; the failing tests attached to the issue must go green while the existing suite stays green; the patch is compared against the reference fix for scope; and the result is written to a run record with the seed, image digest, and timings.
Every task is executed before admission. The reference patch must build, turn its FAIL_TO_PASS tests from red to green, and leave 98,204 PASS_TO_PASS tests untouched. Tasks that pass without the patch, fail intermittently, or resolve in a single line are rejected — 62% of candidates are discarded at review.
Terminus ships a held-out split built only from commits merged after the published cutoff of current frontier models, so those tasks cannot appear in existing training corpora. Each task records its merge date, letting you filter the set against any model's cutoff yourself.
Terminus early access is $49 as a one-time purchase. It includes the full benchmark dataset, per-task metadata, the evaluation harness, container definitions, documentation, and a commercial-use licence. Pricing is held low while the benchmark grows toward its next edition.
Tasks ship as JSONL, one object per instance, with the repository, base commit, problem statement, reference patch, test manifests, and container digest. A Docker context accompanies each repository, and the evaluation harness runs locally or in CI without calling a DoraBench service.
Yes. The early-access licence permits commercial evaluation, including internal model development and published results. Source repositories keep their original licences, and per-repository attribution ships with the dataset.
Test it against reality — real repositories, real issues, real suites.