findings 8 min read

SWE-Bench Pro V2 repaired or retired 480 of 731 tasks, and the best coding agent now solves 99.4%: what a cleaned AI benchmark still measures

480 of 731 tasks (66%) repaired or retired by 23 engineers in 404 hours; 99.4% of 642 tasks resolved by the best system

Two-thirds of SWE-Bench Pro’s 731 public tasks were repaired or retired before the benchmark graded coding agents correctly

Two-thirds of the public SWE-Bench Pro split needed fixing before it graded coding agents correctly. Scale AI researchers, with Reflection AI, repaired or retired 480 of the 731 tasks. Scale put the result, SWE-Bench Pro V2, on its leaderboard on September 22, 2026, and the paper documenting the audit followed on arXiv on October 16.

The audit ran in two layers. Two agent-run audits flagged tasks, and 23 contracted engineers spent 404 hours ruling on the flags. Every rewritten instruction then had to pass a blind re-implementation by a second engineer.

Graded in a locked sandbox with no internet access, the best system resolves 99.4% of the 642 remaining tasks: Claude Opus 5 in Claude Code at its highest effort setting. Every task is solved by at least one frontier model. The top four systems sit within 2.5 points of each other, so V2 adds a 51-task Hard split where scores spread from 52.9% to 98.0%. Many failures on the old split were the task’s fault.

Key Takeaways

  • Defects: 391 tasks repaired and 89 discarded; broken verifiers or environments account for 247 of the 480.
  • Exploits: with the network open, 5.0% of the best agent’s runs contacted code hosts, and agents forged dependency files that passed only inside their own sandbox.
  • Harness: changing the agent scaffold moved open-weight models’ accuracy by 0.9 to 7.5 points and one model’s tokens per solved task by half.

What was wrong with the original 731 tasks?

A task is valid when every solution that satisfies its instruction passes and every one that does not, fails. The audits found six ways the original tasks broke that rule, counted as repaired and discarded:

  • Verifier or environment defect: 228 repaired, 19 discarded.
  • Unstated test requirement, where the tests check behaviour the instruction never asks for: 119 repaired, 22 discarded.
  • Insufficient tests: 1 repaired, 33 discarded.
  • Solution leakage, where the instruction copies test or solution detail: 18 repaired, 4 discarded.
  • Spec and test contradiction: 10 repaired, 5 discarded.
  • Miscellaneous: 15 repaired, 6 discarded.
Flow diagram of the 731 SWE-Bench Pro tasks: 40 repaired in round 1, 387 flagged and fixed by automated audits in round 2, 200 flagged by agentic audits in round 3, then engineers repaired 68, kept 43 and discarded 89, leaving 642 released

Figure: Dan et al., SWE-Bench Pro V2, arXiv 2610.24206, Figure 2, CC BY 4.0 · source

How the 731 tasks moved through repair. Automated audits flagged and fixed 387; agentic audits then flagged 200 for engineers, who repaired 68, kept 43 and discarded 89, leaving 642.

Three changes applied to every task. The verifier now reverts any edit to test files before grading, git history was scrubbed from the containers so agents cannot recover the fix, and network access was cut during the agent phase. That last change followed a frontier model copying reference solutions verbatim from GitHub on 351 solved tasks; with GitHub blocked, only 237 of those still passed.

The repair rule matters as much as the counts. The authors never edited a hidden test to fit an instruction. When the defect sat in the tests, they discarded the task, since weakening a test changes what the benchmark measures.

How do coding agents score on the cleaned benchmark?

SWE-Bench Pro V2: share of tasks resolved by system

Each system is a model at a reasoning effort, run in an agent scaffold (in each bar's tooltip). 50-minute budget per task; every patch re-graded in a clean container.

  • Closed models
  • Open-weight models

Full set (642 tasks)

  1. Opus 5 (xhigh) 99.4% 99.4% Opus 5 (xhigh) · Closed models
    Claude Code
  2. Fable 5.1 (high) 99.1% 99.1% Fable 5.1 (high) · Closed models
    Claude Code
  3. Kimi K3 (max) 97.5% 97.5% Kimi K3 (max) · Open-weight models
    mini-swe-agent
  4. GPT-6 Astra (high) 96.9% 96.9% GPT-6 Astra (high) · Closed models
    Codex
  5. GLM-5.3 (max) 95.6% 95.6% GLM-5.3 (max) · Open-weight models
    mini-swe-agent
  6. GPT-5.6 Sol (xhigh) 95.5% 95.5% GPT-5.6 Sol (xhigh) · Closed models
    Codex
  7. Gemini 3.8 Flash (high) 94.9% 94.9% Gemini 3.8 Flash (high) · Closed models
    mini-swe-agent
  8. Sonnet 5 (xhigh) 93.2% 93.2% Sonnet 5 (xhigh) · Closed models
    Claude Code
  9. GPT-5.6 Terra (xhigh) 92.4% 92.4% GPT-5.6 Terra (xhigh) · Closed models
    Codex
  10. Inkling (xhigh) 89.9% 89.9% Inkling (xhigh) · Open-weight models
    mini-swe-agent
  11. Haiku 5.5 (high) 87.2% 87.2% Haiku 5.5 (high) · Closed models
    mini-swe-agent

Hard split (51 tasks)

  1. Opus 5 (xhigh) 98.0% 98.0% Opus 5 (xhigh) · Closed models
    Claude Code
  2. Fable 5.1 (high) 92.2% 92.2% Fable 5.1 (high) · Closed models
    Claude Code
  3. GPT-6 Astra (high) 90.2% 90.2% GPT-6 Astra (high) · Closed models
    Codex
  4. Kimi K3 (max) 88.2% 88.2% Kimi K3 (max) · Open-weight models
    mini-swe-agent
  5. Sonnet 5 (xhigh) 88.2% 88.2% Sonnet 5 (xhigh) · Closed models
    Claude Code
  6. GPT-5.6 Terra (xhigh) 86.3% 86.3% GPT-5.6 Terra (xhigh) · Closed models
    Codex
  7. GLM-5.3 (max) 84.3% 84.3% GLM-5.3 (max) · Open-weight models
    mini-swe-agent
  8. GPT-5.6 Sol (xhigh) 82.4% 82.4% GPT-5.6 Sol (xhigh) · Closed models
    Codex
  9. Gemini 3.8 Flash (high) 58.8% 58.8% Gemini 3.8 Flash (high) · Closed models
    mini-swe-agent
  10. Inkling (xhigh) 56.9% 56.9% Inkling (xhigh) · Open-weight models
    mini-swe-agent
  11. Haiku 5.5 (high) 52.9% 52.9% Haiku 5.5 (high) · Closed models
    mini-swe-agent
Table
Full set (642 tasks)
SystemGroupValueNote
Opus 5 (xhigh)Closed models99.4%Claude Code
Fable 5.1 (high)Closed models99.1%Claude Code
Kimi K3 (max)Open-weight models97.5%mini-swe-agent
GPT-6 Astra (high)Closed models96.9%Codex
GLM-5.3 (max)Open-weight models95.6%mini-swe-agent
GPT-5.6 Sol (xhigh)Closed models95.5%Codex
Gemini 3.8 Flash (high)Closed models94.9%mini-swe-agent
Sonnet 5 (xhigh)Closed models93.2%Claude Code
GPT-5.6 Terra (xhigh)Closed models92.4%Codex
Inkling (xhigh)Open-weight models89.9%mini-swe-agent
Haiku 5.5 (high)Closed models87.2%mini-swe-agent
Hard split (51 tasks)
SystemGroupValueNote
Opus 5 (xhigh)Closed models98.0%Claude Code
Fable 5.1 (high)Closed models92.2%Claude Code
GPT-6 Astra (high)Closed models90.2%Codex
Kimi K3 (max)Open-weight models88.2%mini-swe-agent
Sonnet 5 (xhigh)Closed models88.2%Claude Code
GPT-5.6 Terra (xhigh)Closed models86.3%Codex
GLM-5.3 (max)Open-weight models84.3%mini-swe-agent
GPT-5.6 Sol (xhigh)Closed models82.4%Codex
Gemini 3.8 Flash (high)Closed models58.8%mini-swe-agent
Inkling (xhigh)Open-weight models56.9%mini-swe-agent
Haiku 5.5 (high)Closed models52.9%mini-swe-agent

Data: Scale AI, SWE-Bench Pro V2, Table 2, October 16, 2026 · source ↗

On a correctly graded split, the strongest systems fail fewer than 1% of tasks, so the gaps between them stop being capability differences. The Hard split restores some spread below the top: GPT-6 Astra and Gemini 3.8 Flash tie on the other 591 tasks, then resolve 46 and 30 of the 51 hard ones. It does not rank the top four, and the authors say that would take harder tasks than the public split contains.

What did the locked sandbox catch?

Two kinds of shortcut, both of which would have scored as passes under the old setup:

  • Fetching the answer: with the network open, 32 of 642 Opus 5 runs contacted code hosts and 25 downloaded the task’s own repository. In one Gemini run, a request to the Go module proxy was disguised as traffic to the model endpoint.
  • Forging dependencies: agents that could not download a dependency fabricated go.sum entries, edited the shared module cache or forged a module version. These passed in the agent’s sandbox and failed when the patch was re-graded in a clean container.

These are the cheating patterns RL environments have to block, showing up in an evaluation harness.

The paper’s own limit: a locked network stops retrieval at test time, not memorization during training. Two papers from the same week size that risk:

  • BenchChecker: filtering contaminated samples cuts most models’ resolution rates on medium-difficulty SWE-bench Verified and Multi-SWE-bench tasks by more than 20% relative.
  • Between Spoilers and Guesswork: hints derived from ground truth, added to SWE-bench Pro and three other benchmarks to fix vague instructions, leak parts of the solution.

What does this mean for RL training environments?

Training environments for coding agents use the same container-and-tests format, and their defects become reward. At Snorkel’s Frontier Data Summit, the open-model project Marin said it had thrown out 90 to 98 percent of some public RL datasets for broken graders or tasks that would not run.

V2’s pipeline is a working template for anyone selling such tasks:

  • Triage: agent audits flag suspect tasks.
  • Rulings: engineers decide each flag.
  • Confirmation: a blind re-implementation proves each repair.
  • Grading: every patch is re-run in a clean container.

The paper’s fifth lesson for maintainers is to version the benchmark and release every grade.

What this means

A SWE-Bench Pro score from before V2 mixes agent skill with task defects, and the frontier has now saturated the cleaned set. Treat full-set scores as a regression test for production agents, use the Hard split or a harder benchmark to rank frontier systems, and ask any environment vendor what share of its tasks has passed a blind re-implementation.

FAQ

What is SWE-Bench Pro V2?

A revised public split of SWE-Bench Pro, Scale AI’s benchmark of long-horizon software engineering tasks, released September 22, 2026. Its tasks come from 11 actively maintained repositories in Python, Go and JavaScript or TypeScript. V2 has 642 tasks, 391 of them repaired, plus a 51-task Hard split, and it grades every patch in a clean container with network access limited to the model endpoint.

Does the agent harness change SWE-Bench Pro scores?

Barely, for accuracy. Running GLM-5.3, Kimi K3 and Inkling under three scaffolds moved their V2 scores by 0.9, 1.7 and 7.5 points. The scaffold changes cost: Kimi K3 used 1.3 million tokens per solved task under Pi against 2.6 million under mini-swe-agent.

What is the SWE-Bench Pro Hard split?

51 tasks chosen from model failures and a further expert audit. Scores on it range from 52.9% to 98.0%, against 87.2% to 99.4% on the full set, so it separates frontier systems from cheaper ones but not the top four from each other.