IN THIS BREAKDOWN · 10 SECTIONS
You can read 21% of this breakdown.
The paper in one minute
SWE-Bench asks a model to resolve real GitHub issues in real repositories, with the project's own tests deciding success. Its Verified subset, 500 tasks from 12 Python repositories checked by human annotators, became the standard number for coding agents, with scores above 70% by mid-2025. Those repositories and their fixes are also public, and likely in the training data of the models being tested.
The authors design three tasks that should be nearly impossible without having seen the answers. File-path identification: given only the repository name and the issue text, name the file that the fix changes. Function reproduction: given the issue and a file with the changed functions removed, plus their names, write them back; success means matching the real fix word for word, which reasoning alone should rarely do. Prefix completion: given the code before a changed hunk, continue it, and check for verbatim matches.
They run these on SWE-Bench Verified and on comparison sets: 200 other SWE-Bench tasks, 217 newer issues from the same repositories, 245 tasks they built from seven other popular repositories (numpy, pandas, pytorch, scipy, celery, aiohttp, jupyter notebook), an internal C# benchmark, and a refactoring benchmark. Ten OpenAI and Anthropic models scored 60% to 76% on file paths for Verified, lower on every other set, and still clearly higher on Verified after removing issues that mention a path. Reproduced functions shared up to 34.9% of their 5-word sequences with the real fix on Verified, against at most 18% elsewhere. The authors conclude that Verified scores are partly inflated by memorization of both specific instances and these repositories.
Research notes: the problem, approach and results
o3 naming the file to fix from issue text alone, SWE-Bench Verified vs outside repositories (Figure 8)
Claude 4 Opus 5-gram overlap with the real fix, Verified vs outside repositories (Figure 10)
Verified instances where Claude 4 Opus produced a fix hunk verbatim from the preceding code alone (Table 3)
SWE-Bench Verified scores above 70% are read as evidence that models can fix real software issues. But the benchmark's 500 tasks come from 12 public Python repositories whose code, issues and fixes are likely in training data, so high scores may partly reflect memory.
Remove the information a model would need to reason: ask for the file to change from the issue text alone, ask for a removed function from its name alone, and ask for the next lines of a fix from the preceding code. Compare results on Verified with the rest of SWE-Bench, newer issues, other repositories and other benchmarks.
Ten models named the right file for 60% to 76% of Verified tasks with no repository access, and did worse on every other set. Reproduced functions overlapped the real fixes about twice as much on Verified as elsewhere, and 12% to 32% of Verified instances drew at least one verbatim match from the preceding code alone.
Why it matters to an FDE
Treat public coding-benchmark scores as an upper bound. A model that has seen a repository's history can locate and patch bugs there partly from memory. A customer's private codebase offers no such help, so expect lower performance there than on SWE-Bench Verified.
Test on the customer's own repositories. Pick recently closed issues from the customer's code, after the model's training cutoff, and score the agent with their tests. That is the number to put in a proposal.
Use the paper's probes as cheap checks. Asking for the file path from the issue text alone costs one call per task and needs no execution environment. If a model does much better on one benchmark than on comparable fresh tasks, distrust that benchmark for that model.
Compare like with like. The paper's sets differ in more than freshness: Verified issues were selected by annotators for being clearly written, and refactoring tasks have 15-token descriptions. When you build comparison sets for a customer, match on issue quality and repository size, or the gap will mix memory with difficulty.
Mind the curated subset. The highest scores came on the most widely used, most discussed subset. Any heavily reported test set accumulates exposure over time.
Understand the mechanism. Try it on a real problem.
Unlock this breakdown and 290 more papers.
Premium opens every paper in full, plus every answer, concept, course and guide on the site. One payment for six months of access.
6 months · One payment · No auto-renewal
- ◇1 architecture diagram
- </>1 runnable code experiment
- ▦2 results tables
- ?5 interview questions with answers
- 03Key takeaways
The three probes, comparison sets, results by set and model, two kinds of memory, caveats
Free account - 04How it works
Each probe, its prompt, the sets, filtering, the models and the metrics
Premium - 05The numbers that matter
Figures 8, 9 and 10 by model, Table 3, set sizes and the overlap difference analysis
Premium - 06Try it yourself
Test each model's gap, check the stated ranges and ordering, and recheck the tables
Premium - 07Where it breaks
Probes are not the benchmark, comparison sets differ, no causal test of training data, and slips
Premium - 08Using it on a deployment
Build a private issue benchmark, run the path probe as a contamination check, and set expectations
Premium - 09Interview angles
Five questions this paper prepares you for, with answer hints
Premium - 10Read next
Where to go from here on this site
Premium
