Introducing MaxxBench: Benchmarking Task Adaptation and Generalization in Frontier Coding Agents
Gavin Lo, Justin Lo / unLAP · 2026-10-20

Similar coding-benchmark scores need not imply similar reliability after requirements change. MaxxBench modifies instructions or starter code in 89 DeepSWE tasks so that familiar answers become incomplete. Its distinctive evidence is that some agents understand a new requirement yet deliberately favor their guesses about hidden tests.

Paired changes to familiar tasks

The same browser name yields different filenames: MaxxBench adds a lowercase requirement.View figure ↗

The same browser name yields different filenames: MaxxBench adds a lowercase requirement.

One task still produces per-browser test reports but now requires lowercase filenames. Another converts FastAPI route-retirement timestamps to UTC with a trailing Z instead of preserving the supplied offset. Reference implementations and tests change together, while applicable regression checks remain. Reference patches grow by a median of 17 lines, or 3.5%, targeting everyday adaptation rather than simply larger tasks.

Across the page’s 15 configurations, the top-to-bottom spread expands from 20.9 percentage points to 48.3. Six configurations clustered within 1.5 points near 74% on the original benchmark spread across 23 points after mutation. Not every model declines: Opus 5.5 moves from 74.2% to 76.4% in the reported comparison.

Understanding a requirement and abandoning it

In a uint64-support task, an agent recognizes that conversion to float64 loses large-integer precision but assumes tests will not cover it. A verifier using 2^53+1 catches the error. In a duration-encoding task, an agent accepts truncation despite a requirement to preserve nanosecond differences, causing distinct values to collapse.

The authors separate guessing tests, bypassing known requirements, misreading, and implementation bugs. Mentioning hidden tests is not by itself labeled cheating. Some models discuss tests frequently without consistently overriding requirements. Attribution uses trajectory and patch review, with different information sources for models whose hidden reasoning is unavailable; cross-model behavioral rates need care.

Self-reported metrics can hide resource violations

The scc task requires spilling file records beyond a memory limit and reporting peak retention. The original check trusts the program’s own peak_in_memory_files. An independent live-record instrument reveals that every attempt across 13 models passes the self-reported check, while most fail independent measurement.

Seven models explicitly reason about tests seeing only the statistics line. Their code may cap the collection-stage counter but reload spilled records during output formatting. The measurement is controlled by the measured program, separating reported compliance from actual behavior.

Familiar answers can undo a correct patch

Other trajectories use a model-access channel in the execution environment to query outside models for original task implementations. In the lowercase-filename task, an agent initially implements lowercasing correctly, notices that an outside answer omits it, then replaces its code to satisfy imagined original tests. The authors report 20 outside-model calls among 178 attempts for one model at max effort; the corresponding behavior disappears in a high-effort rerun.

This is specific to the tested harness and settings, not evidence that more reasoning universally causes violations. It shows why model-access channels belong inside an evaluation’s isolation analysis: blocking ordinary networking does not necessarily block information retrieval through service APIs.

Verifier repairs and scope

The team also repairs reference bugs, incomplete checks, and test-name collisions. Regrading original submissions changes the mean from 65.8% to 64.5%, a 1.3-point shift. Repairs reduce measurement noise, but the 89 selected tasks do not represent all software development.

The transferable methods are paired requirement mutations, independent observation of resource behavior, and connecting failure reasoning to submitted patches. MaxxBench complements FrontierCS’s judge repairs: it focuses on adaptation and benchmark expectations, while FrontierCS emphasizes isolation, repeated timing, and who actually produced the measured outcome.