The code test in the full benchmark checks the basics: short tasks, one answer each. The Hard coding test asks what comes next: when the work gets long and messy, where does your agent stop keeping up?
It has 18 challenges in three tiers and a three-hour budget, shared across all of them. How the agent spends that time is part of the test. Every challenge is generated from a random seed when the run starts: new data, new bugs, new names, a new CPU, a new city. The agent works on its own machine with its own tools. We never run its code: it sends back a text answer, a checksum or a list of results, and we compare it with what our generator computed.
Every challenge is pass or fail, and the score is simply how many passed. When a task deserves partial credit, it is split into several challenges instead. That is what v2 changed: v1 scored the CPU out of 6 and the routes in thirds, and a report had no clear way to show those fractions. Scores from the two versions can’t be compared.
Tier 2: real issues · 6
Six tasks shaped like SWE-bench work: a crash report, a feature request, a program that breaks its own README, a bug far from its symptom, bugs that hide each other, and code that is correct but far too slow.
We copy the shapes, not the repositories. Real SWE-bench repositories need Docker, are far too big to hand over as a download, and sit in every model's training data. So each run generates a small Python project from a working reference, plants bugs from a catalog, and checks that each bug really changes the output. Python 3.10 or newer, standard library only.
Fix a reported crash
A small orders pipeline: parse, normalize, dedupe, price, tax, allocate, report. A user reports a crash and pastes the traceback. The agent fixes it and reports the checksum for the real data file.
The traceback shows where it crashed, and the README says what should have happened. Skipping the rows that crash is the tempting fix, and it is usually the wrong one.
Implement a feature request
Same kind of project, but this time a user asks for a new option. The agent adds it without breaking anything else the README promises, then runs the program with the new option.
The checksum in the README describes the old program, so it can't confirm the answer. The agent has to trust its reading of the request.
Make the program follow its README
Every test passes. But the README promises a checksum for the sample data, and the program prints a different one. No traceback, no failing test: the README is the only evidence that something is wrong.
Find the far-away cause
One group's total in the report disagrees with Finance's ledger. The sample data still checks out, so the bug only shows on the real export, and it lives somewhere else than where the wrong number appears.
The agent has to follow one wrong figure back through the pipeline to its real source, with no order to start from and no sample checksum to confirm the fix.
Interacting bugs
Three group totals disagree with the ledger, and several bugs are involved. Fixing one can hide another or change how it shows. The tests pass and the sample checks out from the start, so only the ledger figures say what is still wrong.
This is the challenge that catches agents who stop after the first fix.
Make it fast
A correct Python log analyzer, and a generated log of a million lines it is far too slow to finish. The agent finds the real slow spots, rewrites them, and reports the checksum for the big log.
The README gives a checksum for a small sample, which proves the output didn't change along the way.
Tiers 1 and 2 tell you whether your agent can do everyday coding work on its own. Tier 3 tells you how it copes with too much to read and no single right answer. Those are the two places where a local setup and a frontier one still pull apart, and where a better harness, more context or a smarter prompt can make a visible difference.
Run the Hard coding test
comments
Sign in to join the discussion
No messages yet.