A task is not data until it has been graded
We build containerised tasks for frontier labs and put every one through six gates before it counts as a datapoint. The reference solution has to work. An agent that does nothing has to fail. The pass rate has to land in a band. And a person has to have read the transcript.

Stages 1 to 5 execute nothing. intake-no-exec.test.ts proves it.
- 17
- task categories
- 6
- gates before a score counts
- 6
- intake stages before a byte runs
Each with its own artifact contract, base image and size ceiling rather than one global guess.
Build, oracle, do-nothing, new-seed, difficulty, then a person. Five are automatic.
Checksum, unpack, structure, normalise and lint all complete before stage 6, which is the first that executes anything uploaded.
Seventeen capabilities, measured in containers
Each category carries its own artifact contract, base image and resource ceiling, so a scientific-computing task is not graded by the rules that suit a payroll one.
- 01
Software engineering
Evaluates whether an agent can change a real codebase and keep its tests passing.
- 02
Debugging
Measures whether an agent can localise a fault from a failing run and repair it.
- 03
Security
Evaluates whether an agent finds and fixes a vulnerability without weakening the rest.
- 04
Cybersecurity
Measures a defensive source audit end to end: the service is patched to match its own documentation and every finding is reported, without the service being replaced or disabled.
- 05
System administration
Measures command-line competence against a machine that must end in a given state.
- 06
Data and infrastructure operations
Evaluates whether an agent can operate running infrastructure rather than describe it.
- 07
Build and dependency management
Measures whether an agent can make a broken build resolve and compile again.
- 08
Data processing
Evaluates transformation of real files into an exactly specified output.
- 09
Scientific computing
Measures numerical work where the answer is checked to a tolerance, not by eye.
- 10
Machine learning
Evaluates whether an agent can train, evaluate and ship a model that clears a bar.
- 11
Data science and reporting
Measures whether an analyst deliverable still holds on data it has never seen: the program is re-fitted on a hidden world and scored to a tolerance, with the governing document buried among superseded ones.
- 12
Payroll and compliance
Measures arithmetic and rule-following where one wrong cell fails the task.
- 13
Finance and taxation
Measures whether an agent can apply statutory arithmetic that is dated, jurisdictional and held somewhere other than the repository.
- 14
Audio and media data engineering
Evaluates handling of binary media formats against a verifiable artifact.
- 15
Games
Measures planning over long horizons where a score, not a diff, is the outcome.
- 16
Hardware
Evaluates work against physical or device-level constraints the software categories do not name.
- 17
Local cloud emulation
Evaluates an agent driving a local cloud-shaped control plane, not a description of one.
The tasks, and the model each one already beat
Each of these was run under gate 5 before it was listed, and carries the pass rate that round measured. Every one opens onto the per-model breakdown behind its figure.
The instruction, the tests and the reference solution stay with us. What a licence buys is the graded set and the trial record behind these figures.
- 01
Merge a coding agent's queued messages into one turn
33% over 6 trialsA desktop app runs coding agents behind a per-agent message queue. Messages that waited together are still read apart, so one thought costs four turns and pays for the whole session four times. Merge what waited together, in the order it was written, without the queue losing its liveness when a turn does not start.
Hardest for GPT-6 Astra on Terminus 2, which passed 0 of 3.
- Software engineering
- hard tier
- python
- 2 models
- queue-turn-start
- 02
Plan which MCP tools a turn can offer
50% over 6 trialsA turn can hand a model only so many tools. Built-in servers take part of a fixed budget and the configured servers share what is left. Decide which servers fit, given that a server which does not fit should not cost the turn the ones that would have.
Hardest for GPT-5.3 Codex on Codex CLI, which passed 0 of 3.
- Software engineering
- medium tier
- python
- 2 models
- mcp-tool-budget
- 03
Rebuild a settlement ledger against withholding mints
58% over 12 trialsA venue settles trades against quote pools, and the ledger has to be rebuilt from state so it can be reconciled against the chain. Some quote assets are tokens whose mints withhold part of every transfer and do not publish their terms, so the terms have to be inferred from the transfers that were made and what was kept out of them.
Hardest for GPT-5.3 Codex on Codex CLI, which passed 0 of 4.
- Software engineering
- medium tier
- python
- 3 models
- curve-quote-settle
- 04
Report every file a reference library holds
50% over 6 trialsTwo bibliography reports went out wrong and both went out silently: a file a reference manager had exported in the wrong encoding was dropped, and nothing in the report said a record was missing. Report what the library holds, including the files that cannot be read.
Hardest for GPT-6 Astra on Terminus 2, which passed 0 of 3.
- Software engineering
- medium tier
- python
- 2 models
- bib-library-guard
- 05
Reconcile an inbox against responses that arrive out of order
50% over 6 trialsA desktop inbox shows a change the moment somebody makes it, while the request is still in flight, and responses come back in whatever order the network gives them. The list has twice jumped backwards: an older response restored a finished row, and a change that failed stayed on screen as though it had worked.
Hardest for Claude Fable 5.1 on Terminus 2, which passed 0 of 3.
- Software engineering
- medium tier
- python
- 2 models
- inbox-revision-fence
- 06
Recover a session's context figure from its transcript
50% over 6 trialsA compaction reminder is silent in long sessions and premature in short ones, and both faults are in the probe that reads a session's context size. The transcript is appended to while the session runs, it is read from the end rather than whole, and the usage block it carries reports the same cache tokens in two shapes.
Hardest for GPT-6 Astra on Terminus 2, which passed 0 of 3.
- Software engineering
- medium tier
- python
- 2 models
- transcript-context-probe
- 07
Decide what a command string would actually run
0% over 4 trialsA command-approval hook sits in front of a shell and has to answer, before anything runs, which external programs a command string would start and whether any of them is destructive. The hook it replaces reads the string as text and keeps being got around by wrappers put in front of the real command.
Hardest for GPT-6 Astra on Terminus 2, which passed 0 of 4.
- Software engineering
- hard tier
- python, bash
- 1 model
- bash-exec-resolve
- 08
Reconcile a month's input tax credit
33% over 9 trialsA finance team closes a credit run by comparing what suppliers filed against what the company itself recorded, giving each invoice a status and an amount. The rules are the company's own and they are written down across several files, not all of which are current.
Hardest for Claude Fable 5.1 on Terminus 2, which passed 0 of 3.
- Data processing
- medium tier
- python, bash
- 3 models
- gst-itc-reconcile
- 09
Decide which test results are evidence about production
38% over 8 trialsA nightly suite runs against a test backend that is not the production one, and the two disagree in ways somebody has documented. Decide which of the suite's results say something about production and which say something only about the test backend.
Hardest for Gemini 4 Argon on Terminus 2, which passed 1 of 3.
- Data processing
- hard tier
- python
- 3 models
- backend-disagreement
- 10
Decide which imported fields were altered on the way in
56% over 9 trialsAn export of stored records was imported back into the system and the import path changed some of them in transit. Work out which fields were altered and which were always like that, against a handbook written over several years and dated accordingly.
Hardest for Claude Fable 5.1 on Terminus 2, which passed 0 of 3.
- Data processing
- hard tier
- python
- 3 models
- import-exactness
- 11
Report who holds a resource's data after a chain of hand-offs
44% over 9 trialsA fleet of resources is installed, handed between teams and sometimes reinstalled, and each holds data one team is custodian of at a time. What a hand-off does and what a reinstall does to that custody were written down at different times.
Hardest for Claude Fable 5.1 on Terminus 2, which passed 0 of 3.
- Data processing
- hard tier
- python
- 3 models
- normalise-then-collide
- 12
Take a leaver out of the team tables
22% over 9 trialsAn account leaving the company has to come out of the team tables. The rules were written over four years, they are dated, and the handbook says which of its own sections carry force and which are one person's notes.
Hardest for Claude Fable 5.1 on Terminus 2, which passed 0 of 3.
- Data processing
- hard tier
- python
- 3 models
- identity-not-position
- 13
Compose SSH command batches from a maintenance plan
11% over 9 trialsA fleet tool turns a maintenance plan into the command batches it sends to one server over SSH. Compose them against a written spec, from a plan and a runbook that are supplied separately, so that sending a batch twice is not the same as doing the work twice.
Hardest for GPT-6 Astra on Terminus 2, which passed 0 of 3.
- Data processing
- hard tier
- python
- 3 models
- remote-batch-compose
- 14
Close a replay gap in a TOTP verify path
33% over 6 trialsA login flow verifies TOTP codes statelessly, so the same six digits submitted twice inside one step both pass. Make a code work once across every account, while the store of accepted codes stays bounded on a box that authenticates far more accounts than it ever sees twice.
Hardest for Claude Fable 5.1 on Terminus 2, which passed 0 of 3.
- Security
- hard tier
- python
- 2 models
- pyotp-replay-guard-skew-window
- 15
Find the money in a payout run that reported clean
38% over 8 trialsNine merchants' payouts left their available balances on Sunday night and nothing arrived. The run reported 240 payouts and no errors, the morning reconciliation came back clean, and the bank's statement says it sent everything it was given, which is true. Work out what happened from the incident folder.
Hardest for GPT-6 Astra on Terminus 2, which passed 0 of 4.
- Local cloud emulation
- hard tier
- python
- 2 models
- payout-dispatch
- 16
Withhold tax against a schedule only a service holds
25% over 4 trialsCompute the tax to be deducted at source on a company's vendor payments. The rate schedule is not in the repository at all: an MCP server is the only authority for rates, thresholds and the amendments that moved them, so every figure has to be fetched rather than assumed.
Hardest for GPT-5.3 Codex on Codex CLI, which passed 1 of 4.
- Finance and taxation
- medium tier
- python
- 1 model
- tds-rate-service
These categories are defined, with their own artifact contract, base image and resource ceiling, so a set in one of them starts from authoring rather than from plumbing. Tell us the capability you need measured.
- Cybersecurity
- Build and dependency management
- Data science and reporting
- Debugging
- Games
- Hardware
- Data and infrastructure operations
- Machine learning
- Audio and media data engineering
- Payroll and compliance
- Scientific computing
- System administration
Separately from the categories, 11 benchmark families are listed in the catalogue, each with the capability it measures.
A score only counts if the task was hard enough
Difficulty is measured on the model matrix before a task is admitted — not estimated by whoever wrote it. Land outside the band and the task is rejected, however interesting it looks.
Between 10% and 60% a task is admitted. Above 80% it is rejected: a benchmark a model passes on the first try measured nothing. Below 10% it is usually the harness that is broken, not the model.
Every number on this platform came out of a container
Not from a rubric a model filled in, and not from a sample somebody eyeballed. Four steps, and all four leave something you can open afterwards.
- 01
An isolated container
Built rootless on a dedicated pool and pinned by digest. Network egress is denied by default, so a trial cannot reach anything it was not granted.
- 02
The agent attempts it
It gets the instruction and a working directory. The test suite is not in its image — a submission that copies tests into the agent is refused before it ever runs.
- 03
A verifier scores it
A separate image runs the checks and writes a reward to /logs/verifier/reward.txt. The number comes out of the container; no model judges another model.
- 04
The trial is kept
Reward, tokens, cost, wall time and the whole trajectory are stored as a row. A score you cannot open is a score you cannot check.
Every trial runs an agent against a named model from the registry, and which models those are is read from the registry rather than written into this page — a model is eligible only while it is marked ready, and retired ones are kept so the results they already produced stay readable. The models a difficulty probe runs against today.
A benchmark a model passes on the first try measured nothing. The useful task is the one that fails honestly — and proving that takes more work than writing it.
Which is why nothing here is published on an author's word. The pass rate is measured, the reward is written by a verifier inside the container, and a person who did not write the task has to read it fail before it counts.
Nothing runs until the sixth stage
An uploaded bundle is a stranger’s code. The first five stages read it, measure it and refuse it without executing a single byte — and that is a property we test, not a promise we make.
intake-no-exec.test.tsWalks the import graph of stages 1–5 and fails if anything on it can reach child_process, vm, eval or a dynamic import.

- 01
Receive
Oversized bundles, and git URLs pointing at private or metadata addresses.
- 02
Unpack
Path traversal, symlink escape, setuid entries, zip bombs, duplicate members.
- 03
Structure
A bundle missing instruction.md, task.toml, tests/test.sh or a Dockerfile.
- 04
Normalise
A verifier the agent could reach, and resources above the tier.
- 05
Scan
Docker sockets, credential reads, remote code loads, tests leaked into the agent image.
- 06
Build
first executionAnything that will not build rootless, behind an allowlist, pinned by digest.

Every trial is a container on an isolated pool, built rootless, pinned by digest, with the network denied by default.

Measure your model where it actually breaks
You get the score and everything behind it: the bundle, the image digests, every trial that ran, and the verdict at each gate. Not a CSV of prompts and a number you have to take on trust.
- Scored in containers
- Reward is written by a verifier inside the sandbox. There is no model judging another model anywhere in the scoring path.
- Reproducible across versions
- Agent and verifier images are built rootless and pinned by sha256, so re-running a score next quarter runs the same bytes.
- Hard by measurement
- Every task carries the pass rate that admitted it, measured across 120 trials on the model matrix rather than asserted by its author.
- Seventeen capabilities
- Each category has its own artifact contract, base image and resource ceiling, so a result is attributable to a capability.

