Introducing FrontierCode | Cognition

Raising the bar from correctness to quality

Today’s coding benchmarks have established that models can write correct code. But as AI-generated code becomes the dominant path to production, correctness is now table stakes. The question that we should be asking is: can models actually write good code?

We’re excited to introduce FrontierCode, a benchmark that measures how well models can truly meet the standards of high-quality production codebases. What sets us apart:

Our benchmark provides the strongest available signal of a model’s ability to write high-quality, maintainable code. We find that even today’s most capable models struggle on this new standard.

Results

We present three nested subsets of FrontierCode at increasing difficulty: Extended, Main, and Diamond. Diamond comprises the 50 hardest tasks, Main the 100 hardest (including Diamond), and Extended the full set of 150.

We report two metrics, pass rate and score:

Each model is run 5 times at every available reasoning effort. For each effort, we average the metric across the 5 trials, then report each model’s score at its best performing reasoning level.
020406080100Score (%) 0.7Gemini 3.1 Flash Lite 1.0Kimi K2.5 1.1MiniMax M2.5 2.4MiniMax M2.7 2.5SWE-1.6 3.5Claude Sonnet 4.6 3.8Kimi K2.6 4.6GPT-5.4-mini 4.7Gemini 3.1 Pro 5.2ClaudeOpus 4.7 6.3GPT-5.5 13.4ClaudeOpus 4.8

FrontierCode DiamondScorevsOutput Tokens

020k40k60k80k100kavg output tokens per rollout
02468101214Score (%)
Opus 4.8
GPT-5.5
Opus 4.7
Gemini 3.1 Pro
GPT-5.4-mini
Kimi K2.6
Sonnet 4.6
MiniMax M2.7
MiniMax M2.5
Kimi K2.5
Gemini 3.1 Flash Lite

Score: a weighted aggregate of the rubric items. Solutions that don’t pass blocking criteria receive 0. Output tokens: the mean number of tokens a model generated per rollout.

FrontierCode Diamond remains unsaturated: the best performing model, Claude Opus 4.8, achieves a score of only 13.4%. Other models score significantly lower: GPT-5.5 receives 6.3%, Gemini 3.1 Pro 4.7%, and others even less. However, GPT 5.5 consistently uses up to 4x fewer tokens than Opus 4.8, achieving a better cost-intelligence tradeoff. On FrontierCode Main and Extended, Opus 4.8 still maintains a clear lead, at 34.3% and 51.8%, respectively. We also observe a large gap between open-source models and the frontier. Kimi K2.6, the best-performing open-source model, achieves just 3.8% on Diamond, 16% on Main and 37% on Extended.

Why we built FrontierCode

The first generation of coding benchmarks, such as SWE-Bench Verified and Pro, were designed for less capable models. They fall short on many measures of realism and robustness. Fundamentally, they only test functional correctness, not quality. Moreover, these benchmarks are prone to misclassification errors.

Experiments from METR have found that high-scoring models on these benchmarks often produce patches that wouldn’t be accepted by human maintainers. How do we define misclassifications? These fall under two categories:

We show through analysis of agent trajectories that FrontierCode produces 81% less misclassification errors than other leading benchmarks. This means that FrontierCode scores are the most accurate ranking currently available. Existing benchmarks also suffer from lack of diversity in several ways. While other benchmarks generated issues from single PRs via programmatic scraping, FrontierCode is hand-selected by repo maintainers from multi-PR chains and freeform requests. We also triple the number of represented languages from SWE-Bench Pro.

It’s also known that existing benchmarks provide too much guidance in the form of overly specified and detailed prompts. Today’s frontier models need far less hand-holding. FrontierCode expects the agent to infer the maintainer’s intent, given the same context as a human contributor. Our prompts contain two parts. First is the task description. Second, the codebase guidelines for generic testing, lint, and style practices, just like those found in AGENTS.md. The task descriptions are humanlike and deliberately concise — a third the length of SWE-Bench Pro’s.

Furthermore, we’ve chosen to scale the difficulty of tasks using quality rubrics, rather than simply increasing patch size. Despite having smaller patches than benchmarks like DeepSWE, FrontierCode is harder for agents to solve.

To produce an evaluation for code quality as ambitious as FrontierCode, we had to embed quality into every step of the benchmark creation process.

How we built FrontierCode

A Team of Open Source Maintainers

FrontierCode aims to measure whether models can produce code that would be merged into production codebases. To ensure this, we collaborated directly with the maintainers of 36 flagship open-source repositories. This team of all-star experts has collectively reviewed and merged thousands of commits to their codebases. They can apply deep stylistic and design knowledge to every PR they see.

Each maintainer invested more than 40 hours per task, undergoing multiple rounds of iteration with other eval engineers and Cognition researchers. They’ve distilled their judgment into concrete evaluation criteria: any PR that satisfies these standards would actually be approved.

Here’s what they say about FrontierCode:

“Working with the team behind FrontierCode was a privilege. Taking on the AI evaluation problem felt like nothing less than an art… Where others grade like a CI, FrontierCode grades like a tech lead.”
— Tomer Nosrati, CEO and Tech Lead of Celery (28.6k stars)

“What sets FrontierCode apart is the attention to detail. Each task is calibrated to a depth that simply hasn’t been seen before in LLM benchmarking. We should be moving away from benchmarks that can be gamed and instead using ones like FrontierCode to demonstrate genuine model intelligence and creativity.”
— Martin McKeaveney, Co-Founder and CTO of Budibase (28k stars)

“I’m grateful to have worked with leading experts in the Open Source community. We had deep discussions on correctness versus quality and what mergeability means in the context of their repository. FrontierCode is a milestone for AI models respecting subjective quality in the real world.”
— Merlijn Vos, Core Maintainer of uppy (30.8k stars)

“FrontierCode’s unique value comes from the human experience encoded in its evals: years of judgment about what makes code high-quality and worthy of merging. The almost obsessive care brought to every criterion is why I believe this benchmark sets a new bar for SWE evaluation.”
— Claudio Costa, Core Maintainer of Mattermost (37k stars)

Beyond Unit Tests

FrontierCode measures mergeability by evaluating code along the following axes:

The following table describes how we use both classical unit tests and novel methods, such as adaptive classical grading, scope, and reverse-classical tests (more on these methods below) to evaluate these criteria.

Category Method How it works Passes when
Behavioral correctness classical Injects test files into the repository, runs them, then cleans up. All injected tests pass
Mechanical cleanliness, regression safety command Runs a shell command. Exit code 0
Test correctness reverse-classical Runs agent’s submitted tests against the base commit. The tests fail
Behavioral correctness for complex tasks adaptive classical grading Uses an LLM to adapt reference tests or application code to align with the implementation. Adapted tests pass
Scope scope Checks file boundaries, diff size constraints, and optionally semantic locality of changes. Diff within constraints
Code quality prompt An LLM reviews agent’s diff against a natural-language prompt. LLM score meets threshold

Each criterion is either a blocker or a non-blocker: Blockers represent mergeability requirements, i.e., criteria that a maintainer would consider hard stops during code review. These include correctness checks, as well as non-correctness concerns like performance or scope restrictions.

Non-blockers represent quality signals such as code style, type safety, and readability, which would not necessarily block a merge.

If a solution satisfies all the blockers, it is considered passing, and its score is the weighted aggregate of all the rubric items it passes. Otherwise it receives a score of zero.

Novel Grading Methods

We’ve introduced three main techniques to strengthen criteria against misclassifications, while allowing space for multiple valid solutions:

Reverse-Classical: The reverse-classical criterion is a way to ensure that agent-written tests are meaningful: when we run them on the original, broken codebase, they must fail. This gives us an automated, deterministic check that the agent understood the problem well enough to write an effective test for it.

Code Scope: A good PR should exercise restraint: it modifies only what it needs to, without touching unrelated files or introducing unnecessary refactors. The scope criterion is an automated check that enforces these boundaries. It combines three types of constraints:

Adaptive Classical Grading: Open-ended coding tasks can have many valid solutions. Static unit tests are too rigid; good solutions can fail for superficial differences like function names or error wording. We resolve this conflict with mutagent, a tool we built that uses an LLM to surgically patch the test environment (or the application code) and align with the agent’s implementation details, allowing us to run rigorous, deterministic tests on open-ended solutions.

Example Task

Task description

Encapsulate all warning logs in a new auto LOG_WARNING() -> std::ostream & method in src/logger.h such that:

Use this new function in every instance of warning: <message> messages throughout the codebase.

Test guidelines

Run make and ensure no code changes remain. If there are more code changes, then it means that the code was not formatted properly. Unless you are sure that the code change is already covered by an existing test case, always edit or create relevant tests (in the ./test directory) to confirm the changes work and prevent regressions. The tests are written using GoogleTest and POSIX shell scripts (not bash) and must be registered in the test/CMakeLists.txt build definition to run.

Lint guidelines

Run make configure compile to compile and format the code in-place. The compile step comes with a large amount of linter-like checks.

Style guidelines

You are already on the correct base commit. Create your branch from this commit. Do not rebase or start from master, main, or any other branch.

The graded rubric appears here after the run.

Interactive: run the FrontierCode grading pipeline against each model’s output and inspect how the patch maps to rubric pass/fail.

Quality Control

How do we iterate on rubric quality?

Improving binary verifiers like unit tests is relatively tractable because every solution falls into one of two buckets — correct or incorrect. You can examine each rollout, check its bucket, and strengthen the tests accordingly. Hardening prompt-based criteria is a much harder QC problem. Rubrics introduce a spectrum of correctness: two solutions for the same task can both be functionally correct yet score differently on every criteria. We can no longer look at solutions in isolation. We have to compare within a group of solutions and verify that their relative scores actually separate better solutions from worse ones.

Rubric design is also inherently subjective and requires domain expertise. For each criterion, the maintainer must decide whether it’s a blocker or non-blocker, assign its weight relative to other criteria, and ensure complete coverage so that models cannot exploit gaps in the rubric.

Our rubric creation process

  1. Design
    We prefer classical tests for things that can be checked deterministically, such as correctness. For complex tasks, we favor behavioral tests that are robust to superficial differences in implementation details.
    For soft qualities, we prefer LLM grading. This is better for assessing, say, idiomatic code, readability, or adherence to a preferred architectural pattern.
    Based on these principles, we first ask the task creator to manually audit each rubric item and document its rationale.

  2. Hack report
    To prevent false positives, the task author imitates a lazy or adversarial programmer and tries to get a passing score with a deliberately incorrect or incomplete solution. This exposes criteria that can be improved.
    To prevent false negatives, the task author tries to write a perfectly valid, alternative solution that is different from the canonical one. If this solution fails the evaluation, the rubric is too rigid.
    We augment the hack report process by also asking Devin to come up with novel ways to hack the rubric.

  3. Rubric calibration
    To ensure that the rubric has sufficient resolution, the author must write four distinct solutions that target a range of scores from 0 to 100%.

  4. Review
    Each contributor belongs to an eval pod led by an experienced pod lead, who acts as the first quality gate. The lead reviews the full eval candidate and iterates with the contributor through multiple rounds. Once the eval candidate passes all pod-level checks, a Cognition researcher conducts a final review along with the pod lead and contributor. For a random subset, researchers also solve the tasks themselves to verify that instructions are clear and grading is fair.

  5. Re-Review
    At any stage, reviewers can send the task back for revision. Most tasks cycle through multiple iterations before passing.

The result of this extensive process is a suite of durable, difficult tasks that reflect the high standards of the world’s top open-source repositories.

Conclusion

FrontierCode is the benchmark for the next generation of coding agents. We are confident developers, enterprises, and researchers can trust it to evaluate the production readiness of their strongest models. While we don’t currently plan to release the tasks publicly to avoid contamination, we are opening up our evaluation to all model creators, in the hope that we can push the frontier even further in the coming months.

References

  1. METR, "Many SWE-bench-passing PRs would not be merged into main," March 10, 2026. metr.org/notes/2026-03-10-many-swe-bench-passing-prs-would-not-be-merged-into-main