SWE-bench Verified · 500 instances · one attempt each

391 of 500, at 9.5¢ per fix.

← Bug-fix benchmark Technical report SWE-bench GitHub

The full SWE-bench Verified set — 500 real GitHub issues from twelve Python repositories — run end to end through Benzi on DeepSeek v4-flash, graded by the official SWE-bench harness inside its own per-instance Docker images. One attempt per instance. Network access to GitHub and PyPI was blocked inside every container, so nothing could look up an answer.

78.2% 391 of 500 resolved · graded by swebench.harness.run_evaluation
$37.33
total, all 500 instances
$0.095
per instance resolved
231,574
source lines read, total
379
median lines read per instance
16,091
model turns, total
27
median turns per instance
97%
of input tokens served from cache
22.0M
output tokens

Why cost is the number to look at. SWE-bench's leaderboard ranks on resolve rate alone and publishes nothing about what a run costs. The whole 500-instance run came to $37.33 — under forty dollars for a complete pass at a benchmark where published submissions routinely spend orders of magnitude more.

Reading less is not a shortcut, it is the signal. On instances Benzi resolved it read a median of 345 source lines. On instances it missed it read 468. Reading more is what being lost looks like.

Run 1 · by repository

Every instance in the split, grouped by the repository the issue came from.

RepositoryInstancesResolvedRate
requests88100.0%
flask11100.0%
pytest191894.7%
scikit-learn322990.6%
django23117977.5%
sympy755877.3%
xarray221777.3%
matplotlib342676.5%
sphinx443170.5%
astropy221568.2%
seaborn2150.0%
pylint10440.0%

Run 1 · every instance

All 500 runs, including the ones we lose. Click a column to sort.

Instance Repo Result Turns Lines read Wall (s) Cost ($)

How it was run

Grading. Official SWE-bench per-instance Docker images and swebench.harness.run_evaluation. A patch counts only if every FAIL_TO_PASS test passes and no PASS_TO_PASS test regresses.

No network. github.com, raw.githubusercontent.com, api.github.com, codeload.github.com, objects.githubusercontent.com, gist.github.com, pypi.org and files.pythonhosted.org all resolved to 127.0.0.1 inside every container. Across the run the agent made 244 egress attempts; none returned remote content.

No timeouts. No wall-clock cap was applied to any instance, so a slow solve is never discarded as a failure.

On the wall times. They should not be read as a measure of how fast the agent is, and they are not comparable with the timings on the 24-bug benchmark — that ran on different hardware entirely. They are also only loosely comparable with each other, because this run was itself split across two different machines, and instances that happened to start at the same moment contended for the same cores. An identical task could therefore take 45 minutes in one slot and 10 in another. None of it touches the result. SWE-bench scores whether the patch makes the tests pass; it is untimed, every instance ran to completion with no cap, and grading used the identical official harness throughout. Turns, tokens, lines read and cost are hardware-independent and comparable everywhere on this page.

Three instances produced no patch. On django-13513, matplotlib-14623 and sympy-23413 the agent investigated and stopped without attempting an edit. They are counted as failures.

Seven instances were generated twice. Each had its first run destroyed by a fault in our harness rather than by the agent — a Docker engine disconnect, a stdout-marker collision, and two dropped API connections. Instances were re-run on the basis of the fault, never on the basis of the result, and every re-run was kept as produced.

Experiments after the submission

Everything run since the 387/500 result above, recorded in full. These are experiments, not submissions: each re-attempts instances the main run already answered, under changed configurations, so none of these rows can be combined with the 387 — SWE-bench scores one attempt per instance per system. They are published for the same reason as everything else on this page: check the working.

Per-run wall/turns/lines are shown where the run records survived; earlier experiment machines were shut down before their logs were archived, so those rows carry verdicts only. Per-run cost was not recomputed for experiments.

1 · DeepSeek v4-pro probe — 18/33 on reachable failures

The failures the main run missed where the leading submission succeeded, re-attempted with the flagship reasoner (two never completed and are excluded). 55% converted — but a later control showed ~30% of failures convert on a plain same-model re-run, so this is an upper bound on the model-tier effect, not a measurement of it.

deepseek v4-pro · 33 instances
instancerepomodelwallturnslines readresolvedcost
astropy-14365astropydeepseek-prono
django-11149djangodeepseek-proyes
django-11239djangodeepseek-proyes
django-11532djangodeepseek-prono
django-11848djangodeepseek-prono
django-11885djangodeepseek-proyes
django-12273djangodeepseek-prono
django-12774djangodeepseek-proyes
django-13297djangodeepseek-proyes
django-13344djangodeepseek-proyes
django-13406djangodeepseek-proyes
django-14376djangodeepseek-prono
django-14534djangodeepseek-prono
django-14559djangodeepseek-proyes
django-15037djangodeepseek-proyes
django-15127djangodeepseek-prono
django-15916djangodeepseek-prono
django-15957djangodeepseek-proyes
django-15973djangodeepseek-proyes
django-15987djangodeepseek-proyes
django-16454djangodeepseek-proyes
matplotlib-14623matplotlibdeepseek-proyes
matplotlib-24870matplotlibdeepseek-prono
xarray-3993xarraydeepseek-proyes
xarray-4687xarraydeepseek-proyes
xarray-6938xarraydeepseek-prono
pytest-10356pytestdeepseek-prono
scikit-learn-14710scikit-learndeepseek-proyes
sphinx-10466sphinxdeepseek-proyes
sphinx-8056sphinxdeepseek-prono
sphinx-8638sphinxdeepseek-prono
sympy-16886sympydeepseek-prono
sympy-20916sympydeepseek-prono

2 · Self-escalation experiment — the control that became a finding

Twenty instances (ten the main run solved, ten it failed) re-run with an upgrade_to_pro tool the agent could call if it judged more reasoning would help. It was offered in the tool list but never announced in the prompt: zero calls in twenty runs. A capability outside the model’s habitual reach behaves as if it does not exist. Four of the ten previously-solved rows failing below are grading flakes: those suites call a live external service that returned 503s that evening.

flash + unannounced escalation tool · 20 instances
instancerepomodelwallturnslines readresolvedcost
astropy-14598astropydeepseekno
astropy-7606astropydeepseekyes
django-11477djangodeepseekno
django-12325djangodeepseekno
django-13195djangodeepseekno
django-14140djangodeepseekyes
django-14170djangodeepseekno
requests-1724psfdeepseekno
requests-1766psfdeepseekno
requests-1921psfdeepseekno
requests-2317psfdeepseekno
requests-2931psfdeepseekyes
requests-5414psfdeepseekyes
xarray-4629xarraydeepseekyes
pylint-8898pylintdeepseekyes
pytest-5809pytestdeepseekyes
pytest-7521pytestdeepseekyes
pytest-7982pytestdeepseekyes
sphinx-9602sphinxdeepseekno
sympy-18199sympydeepseekno

3 · Full v4-pro run — stopped by choice at 122 instances

The start of a full 500-instance pro run, halted once its two questions were answered: pro converts only ~13% of the hard pile (instances no leading submission solves), and retains only ~90% of the main run’s wins — scaling the model is roughly a wash at several times the price. Rows here exclude the 33 probe instances above, which seeded this run’s ledger.

deepseek v4-pro · 89 instances
instancerepomodelwallturnslines readresolvedcost
astropy-12907astropydeepseek-proyes
astropy-13236astropydeepseek-prono
astropy-13398astropydeepseek-prono
astropy-13453astropydeepseek-proyes
astropy-13579astropydeepseek-proyes
astropy-13977astropydeepseek-prono
astropy-14096astropydeepseek-proyes
astropy-14309astropydeepseek-proyes
astropy-14369astropydeepseek-prono
astropy-14508astropydeepseek-proyes
astropy-14539astropydeepseek-proyes
astropy-14598astropydeepseek-prono
astropy-14995astropydeepseek-proyes
astropy-7166astropydeepseek-proyes
astropy-7336astropydeepseek-proyes
astropy-7606astropydeepseek-proyes
astropy-7671astropydeepseek-proyes
astropy-8707astropydeepseek-proyes
astropy-8872astropydeepseek-proyes
django-10097djangodeepseek-prono
django-10554djangodeepseek-prono
django-10880djangodeepseek-proyes
django-10914djangodeepseek-proyes
django-10973djangodeepseek-prono
django-10999djangodeepseek-prono
django-11066djangodeepseek-proyes
django-11087djangodeepseek-proyes
django-11095djangodeepseek-proyes
django-11099djangodeepseek-proyes
django-11119djangodeepseek-proyes
django-11133djangodeepseek-proyes
django-11138djangodeepseek-proyes
django-11141djangodeepseek-prono
django-11163djangodeepseek-proyes
django-11179djangodeepseek-proyes
django-11206djangodeepseek-proyes
django-11211djangodeepseek-proyes
django-11265djangodeepseek-proyes
django-11276djangodeepseek-proyes
django-11292djangodeepseek-proyes
django-11299djangodeepseek-proyes
django-11333djangodeepseek-proyes
django-11400djangodeepseek-prono
django-11433djangodeepseek-proyes
django-11451djangodeepseek-proyes
django-11477djangodeepseek-proyes
django-11490djangodeepseek-proyes
django-11551djangodeepseek-proyes
django-11555djangodeepseek-proyes
django-11603djangodeepseek-proyes
django-11728djangodeepseek-prono
django-11734djangodeepseek-prono
django-11740djangodeepseek-proyes
django-11749djangodeepseek-proyes
django-11790djangodeepseek-proyes
django-11815djangodeepseek-proyes
django-11820djangodeepseek-prono
django-11880djangodeepseek-proyes
django-11951djangodeepseek-proyes
django-11964djangodeepseek-prono
django-11999djangodeepseek-proyes
django-12039djangodeepseek-proyes
django-12050djangodeepseek-proyes
django-12143djangodeepseek-proyes
django-12155djangodeepseek-proyes
django-12193djangodeepseek-prono
django-12262djangodeepseek-proyes
django-12276djangodeepseek-proyes
django-12308djangodeepseek-prono
django-12325djangodeepseek-prono
django-12406djangodeepseek-prono
django-12708djangodeepseek-proyes
django-12713djangodeepseek-proyes
django-12741djangodeepseek-proyes
django-13195djangodeepseek-prono
django-13212djangodeepseek-prono
django-13794djangodeepseek-prono
django-14011djangodeepseek-prono
django-14034djangodeepseek-prono
django-14140djangodeepseek-proyes
django-14155djangodeepseek-prono
django-14170djangodeepseek-prono
django-14315djangodeepseek-prono
django-15629djangodeepseek-prono
django-15695djangodeepseek-prono
django-16256djangodeepseek-prono
django-16631djangodeepseek-prono
django-16667djangodeepseek-prono
matplotlib-21568matplotlibdeepseek-prono

4 · Scope-cards experiment — a null result, kept

The failure analysis showed the agent never consults its relational tools before editing, so the harness was changed to attach the profile of every edited scope to the first edit and the commit gate. On the 98 failures whose shape that information addresses it converted 13/69 attempted (19%) — under the ~30% a plain re-run converts by variance. The mechanism was removed. Published because a measured null is worth more than a plausible mechanism: information at the right moment was not the binding constraint.

flash + scope cards · 69 failures re-attempted
instancerepomodelwallturnslines readresolvedcost
astropy-13033astropydeepseek1,266s18228no
astropy-13398astropydeepseek1,713s39822no
astropy-13977astropydeepseek1,587s46703no
astropy-14182astropydeepseek1,338s31417yes
astropy-14365astropydeepseek1,243s19446yes
astropy-14369astropydeepseek1,574s34970no
astropy-14598astropydeepseek1,663s38720no
astropy-7606astropydeepseek1,160s16135yes
django-10097djangodeepseek1,405s38257no
django-10554djangodeepseek3,202s811,247no
django-10973djangodeepseek1,159s15222no
django-10999djangodeepseek1,027s1042no
django-11087djangodeepseek1,153s671,198no
django-11141djangodeepseek655s38323no
django-11149djangodeepseek560s36647yes
django-11239djangodeepseek376s22409no
django-11532djangodeepseek340s23353no
django-11734djangodeepseek1,099s74618no
django-11820djangodeepseek270s19245no
django-11848djangodeepseek197s13156no
django-11885djangodeepseek1,298s42769no
django-12273djangodeepseek711s58588no
django-12325djangodeepseek447s25193no
django-12406djangodeepseek545s23384yes
django-12774djangodeepseek292s17156yes
django-13195djangodeepseek267s20107no
django-13212djangodeepseek364s30624no
django-13297djangodeepseek461s23255no
django-13344djangodeepseek1,066s58718yes
django-13406djangodeepseek1,103s661,373no
django-14011djangodeepseek662s44364no
django-14140djangodeepseek263s19364no
django-14155djangodeepseek425s27261no
django-14315djangodeepseek195s23171no
django-14376djangodeepseek291s24297no
django-14534djangodeepseek622s34149no
django-14559djangodeepseek210s15322no
django-15037djangodeepseek431s34530no
django-15098djangodeepseek854s51925no
django-15563djangodeepseek787s43473yes
django-15629djangodeepseek752s54819no
django-15695djangodeepseek630s57597no
django-15916djangodeepseek250s16346no
django-15957djangodeepseek1,076s60806no
django-15987djangodeepseek545s33218yes
django-16256djangodeepseek558s411,698yes
django-16263djangodeepseek1,646s1301,520no
django-16454djangodeepseek449s28298no
django-16502djangodeepseek752s28339no
django-16631djangodeepseek718s31368no
django-16667djangodeepseek300s19368no
matplotlib-21568matplotlibdeepseek1,169s69263no
matplotlib-23299matplotlibdeepseek530s26555no
matplotlib-24870matplotlibdeepseek550s45557yes
matplotlib-26208matplotlibdeepseek911s51621no
matplotlib-26466matplotlibdeepseek484s40822no
seaborn-3187seaborndeepseek730s49939no
xarray-3993xarraydeepseek305s25318yes
xarray-4687xarraydeepseek389s39958no
xarray-6938xarraydeepseek347s35601no
xarray-6992xarraydeepseek198s22274no
xarray-7229xarraydeepseek600s45840no
pylint-4551pylintdeepseek851s1011,105no
pylint-4604pylintdeepseek109s13195no
pylint-4661pylintdeepseek291s16173no
pylint-8898pylintdeepseek454s43539no
pytest-10356pytestdeepseek421s36562no
sphinx-10466sphinxdeepseek305s33372yes
sphinx-7462sphinxdeepseek437s24124no

5 · Retention under re-run — the variance tax, measured

The same configuration re-attempting instances the main run already solved, stopped by choice at 67 graded: 63/67 held (94%). The losses cluster on instances the pro run also lost — original wins that pass roughly one attempt in three. Every re-run of any agent pays this tax; it is the empirical reason the way up is engine work, not re-rolls.

flash + scope cards · 67 previously-solved instances
instancerepomodelwallturnslines readresolvedcost
astropy-12907astropydeepseek435s16493yes
astropy-13236astropydeepseek666s34277no
astropy-13453astropydeepseek480s29782yes
astropy-13579astropydeepseek822s311,078yes
astropy-14096astropydeepseek673s23142yes
astropy-14309astropydeepseek389s19208yes
astropy-14508astropydeepseek643s28232yes
astropy-14539astropydeepseek481s24202yes
astropy-14995astropydeepseek330s17331yes
astropy-7166astropydeepseek597s38193yes
astropy-7336astropydeepseek354s1265yes
astropy-7671astropydeepseek409s15105yes
astropy-8707astropydeepseek529s29597yes
astropy-8872astropydeepseek501s23262yes
django-10880djangodeepseek326s22389yes
django-10914djangodeepseek233s15185yes
django-11066djangodeepseek106s6134yes
django-11095djangodeepseek169s1277yes
django-11099djangodeepseek137s1150yes
django-11119djangodeepseek180s1866yes
django-11133djangodeepseek212s21315yes
django-11138djangodeepseek593s43953yes
django-11163djangodeepseek223s23124yes
django-11179djangodeepseek173s975yes
django-11206djangodeepseek464s22309yes
django-11211djangodeepseek458s33422yes
django-11265djangodeepseek502s421,177no
django-11276djangodeepseek294s22153yes
django-11292djangodeepseek340s30720yes
django-11299djangodeepseek234s28211yes
django-11333djangodeepseek253s18147yes
django-11400djangodeepseek418s29371no
django-11433djangodeepseek374s22227yes
django-11451djangodeepseek165s13196yes
django-11490djangodeepseek413s32648yes
django-11551djangodeepseek243s20108yes
django-11555djangodeepseek630s33369yes
django-11603djangodeepseek172s13204yes
django-11728djangodeepseek348s26203yes
django-11740djangodeepseek378s41421yes
django-11749djangodeepseek650s41133yes
django-11790djangodeepseek238s20138yes
django-11815djangodeepseek467s29163yes
django-11880djangodeepseek170s21203yes
django-11951djangodeepseek287s35340yes
django-11964djangodeepseek579s23606yes
django-11999djangodeepseek182s1661yes
django-12039djangodeepseek291s21431yes
django-12050djangodeepseek210s18153yes
django-12125djangodeepseek620s31943yes
django-12143djangodeepseek152s1119yes
django-12155djangodeepseek164s1376yes
django-12193djangodeepseek409s35260yes
django-12262djangodeepseek303s32259yes
django-12276djangodeepseek174s14294yes
django-12304djangodeepseek512s30525yes
django-12308djangodeepseek273s20349no
django-12419djangodeepseek212s15408yes
django-12708djangodeepseek406s31321yes
django-12713djangodeepseek215s18145yes
django-12741djangodeepseek145s8138yes
django-12858djangodeepseek490s35493yes
django-13012djangodeepseek385s24308yes
django-13023djangodeepseek200s13252yes
django-13028djangodeepseek498s26216yes
django-13089djangodeepseek310s21262yes
django-13109djangodeepseek248s19127yes

Experiments, round two

The continuation of the section above: multi-agent architectures and deterministic issue analysis, each tried against the instances the main run missed. Same rules -- experiments, not submissions; nothing here combines with the 387; crashes stay in the record as crashes. Rows marked “—” were generated but never graded because the run was cancelled first.

6 · Tester agent — fabricated ground truth anchors the worker

A second agent writes a reproduction test from the issue, in parallel and in isolation; the worker must pass it. Every worker ran the tests heavily and satisfied them — and conversions stayed under re-run variance: the tester, reading the same issue with the same model, encodes the same misreading, and its wrong tests ANCHOR the worker. A mid-run infrastructure failure (a shared writable runtime volume poisoned by an agent shell — since made read-only) crashed 24 rows; they are recorded as crashes. The first 17 clean rows ran a flash tester, the remainder a Sonnet tester after the rebuild.

worker + tester · 158 rows recorded
instancerepoconfigwallturnslines readresolvedcost
pylint-4604pylintflash tester195s1288no
sphinx-9711sphinxflash tester120s1692no
pylint-4661pylintflash tester335s33217no
django-14140djangoflash tester463s30344no
django-11239djangoflash tester498s31444no
django-10999djangoflash tester548s2144no
django-11820djangoflash tester548s23176no
django-11532djangoflash tester590s3199no
sphinx-7462sphinxflash tester260s1455no
django-14315djangoflash tester630s29336yes
django-14559djangoflash tester742scrash
django-14170djangoflash tester816s32461no
sympy-16886sympyflash tester862scrash
django-15127djangoflash tester453s27354no
django-12774djangoflash tester388s31360yes
astropy-7606astropyflash tester988scrash
django-11477djangoflash tester4scrash
astropy-14598astropyflash tester682s36603no
django-14376djangoflash tester5scrash
sphinx-9602sphinxflash tester33scrash
sympy-18199sympyflash tester33scrash
django-12325djangoflash tester452s36300no
pylint-8898pylintflash tester18scrash
django-15916djangoflash tester18scrash
sympy-20916sympyflash tester21scrash
django-11848djangoflash tester208s12115no
django-14155djangoflash tester30scrash
django-14034djangoflash tester40scrash
astropy-14182astropyflash tester20scrash
django-12406djangoflash tester21scrash
django-15987djangoflash tester11scrash
sphinx-7748sphinxflash tester3scrash
django-13195djangoflash tester295s21239no
sphinx-10466sphinxflash tester21scrash
django-13297djangoflash tester22scrash
django-11141djangoflash tester20scrash
django-14534djangoflash tester22scrash
sphinx-8056sphinxflash tester3scrash
sphinx-7590sphinxflash tester6scrash
sphinx-9461sphinxflash tester6scrash
sympy-21930sympyflash tester5scrash
astropy-7606astropysonnet tester1scrash
django-14559djangosonnet tester3scrash
django-14011djangosonnet tester3scrash
django-13794djangosonnet tester3scrash
django-11149djangosonnet tester3scrash
django-14376djangosonnet tester4scrash
django-13513djangosonnet tester4scrash
xarray-3993xarraysonnet tester4scrash
django-11477djangosonnet tester6scrash
sympy-18763sympysonnet tester6scrash
sphinx-9602sphinxsonnet tester5scrash
django-16667djangosonnet tester7scrash
sympy-16886sympysonnet tester8scrash
django-15916djangosonnet tester5scrash
sympy-18199sympysonnet tester5scrash
pylint-8898pylintsonnet tester6scrash
sympy-20916sympysonnet tester7scrash
django-14034djangosonnet tester7scrash
django-14155djangosonnet tester7scrash
astropy-14182astropysonnet tester5scrash
django-12406djangosonnet tester7scrash
sphinx-7748sphinxsonnet tester6scrash
django-15987djangosonnet tester7scrash
sphinx-10466sphinxsonnet tester6scrash
django-13297djangosonnet tester7scrash
django-14534djangosonnet tester7scrash
django-11141djangosonnet tester12scrash
sympy-16886sympysonnet tester1scrash
django-16667djangosonnet tester3scrash
django-14011djangosonnet tester3scrash
django-14376djangosonnet tester3scrash
django-13794djangosonnet tester4scrash
django-14559djangosonnet tester4scrash
django-11149djangosonnet tester4scrash
astropy-7606astropysonnet tester5scrash
xarray-3993xarraysonnet tester5scrash
sympy-18763sympysonnet tester5scrash
django-11477djangosonnet tester6scrash
sympy-18199sympysonnet tester5scrash
sphinx-9602sphinxsonnet tester8scrash
pylint-8898pylintsonnet tester6scrash
django-13513djangosonnet tester11scrash
django-15916djangosonnet tester7scrash
sympy-20916sympysonnet tester7scrash
django-14034djangosonnet tester7scrash
django-14155djangosonnet tester7scrash
astropy-14182astropysonnet tester6scrash
sphinx-7748sphinxsonnet tester5scrash
django-12406djangosonnet tester7scrash
django-15987djangosonnet tester7scrash
sphinx-10466sphinxsonnet tester5scrash
django-13297djangosonnet tester6scrash
django-14534djangosonnet tester18scrash
sphinx-9461sphinxsonnet tester42scrash
django-11141djangosonnet tester44scrash
sympy-15875sympysonnet tester43scrash
django-16454djangosonnet tester42scrash
sympy-21930sympysonnet tester42scrash
astropy-13033astropysonnet tester43scrash
sphinx-7590sphinxsonnet tester43scrash
sphinx-8056sphinxsonnet tester43scrash
django-12273djangosonnet tester42scrash
django-15695djangosonnet tester40scrash
xarray-4687xarraysonnet tester28scrash
xarray-6938xarraysonnet tester104scrash
django-10973djangosonnet tester92scrash
xarray-6992xarraysonnet tester66scrash
django-14792djangosonnet tester70scrash
django-16502djangosonnet tester70scrash
django-15252djangosonnet tester70scrash
django-13344djangosonnet tester70scrash
django-13212djangosonnet tester70scrash
django-15037djangosonnet tester70scrash
sympy-22080sympysonnet tester42scrash
django-16631djangosonnet tester70scrash
pytest-10356pytestsonnet tester70scrash
django-11477djangosonnet tester294s1990no
django-14376djangosonnet tester346s24246no
xarray-3993xarraysonnet tester420s37166no
django-14559djangosonnet tester440scrash
django-16667djangosonnet tester475s22212no
astropy-7606astropysonnet tester530s1983yes
django-13513djangosonnet tester556s3264
django-11149djangosonnet tester581s43540yes
django-13794djangosonnet tester703s42395no
sympy-18763sympysonnet tester719s1825no
sympy-16886sympysonnet tester729s1736yes
django-15916djangosonnet tester396s27319no
django-14155djangosonnet tester418s23136no
sphinx-9602sphinxsonnet tester750s59628no
django-14034djangosonnet tester637s49478no
django-14011djangosonnet tester1,225s52538no
django-12406djangosonnet tester683s38565no
pylint-8898pylintsonnet tester832s47781no
django-15987djangosonnet tester566scrash
sympy-18199sympysonnet tester956s36170no
sphinx-10466sphinxsonnet tester402s52296yes
django-13297djangosonnet tester683s35318no
sympy-20916sympysonnet tester1,095s40352no
astropy-14182astropysonnet tester1,094scrash
sphinx-8056sphinxsonnet tester683s43958yes
django-14534djangosonnet tester964s53444no
sphinx-9461sphinxsonnet tester719s48798no
sphinx-7590sphinxsonnet tester759s53589no
django-12273djangosonnet tester629s34236no
django-16454djangosonnet tester620s32340no
django-11141djangosonnet tester1,109scrash
django-10973djangosonnet tester313s21248no
django-15695djangosonnet tester644s41575no
sympy-21930sympysonnet tester1,126s34135no
django-13212djangosonnet tester552s27645no
pytest-10356pytestsonnet tester770s59331no
xarray-6992xarraysonnet tester884scrash
sympy-15875sympysonnet tester1,657s83255no
xarray-4687xarraysonnet tester936s75587yes
astropy-13033astropysonnet tester1,717scrash
django-16631djangosonnet tester612s30344no

7 · Verifier agent — the rubber stamp

After the worker finishes, a second model reads only the issue and the diff and rules AGREE or REVISE; a REVISE sends one critique back. Measured: the flash verifier revised 1 run in 32; Sonnet, on different weights, about 1 in 8 — both effectively agree with any plausible-looking diff, and outcomes tracked plain re-run variance. Rows through 33 ran the flash verifier, the rest Sonnet.

worker + verifier · 43 rows recorded
instancerepoconfigwallturnslines readresolvedcost
django-14559djangoflash verifier196s959yes
django-11239djangoflash verifier200s11138no
django-14315djangoflash verifier283s19333no
astropy-7606astropyflash verifier309s1480yes
django-10999djangoflash verifier330s1791no
pylint-4604pylintflash verifier344s33202no
sphinx-9711sphinxflash verifier153s18160no
django-14140djangoflash verifier365s2446no
pylint-4661pylintflash verifier371s29446no
django-14170djangoflash verifier416s22476no
django-11820djangoflash verifier430s21262no
sphinx-7462sphinxflash verifier201s2090no
django-15127djangoflash verifier202s12246no
sympy-16886sympyflash verifier530s1057yes
django-13513djangoflash verifier221s25172
xarray-3993xarrayflash verifier264s23228yes
django-11532djangoflash verifier608s23269no
django-13195djangoflash verifier222s20130yes
django-12325djangoflash verifier337s20155no
django-12774djangoflash verifier372s30328no
django-16667djangoflash verifier200s1449no
django-14376djangoflash verifier229s19310no
django-11477djangoflash verifier267s2079no
django-13794djangoflash verifier453s32168no
sphinx-9602sphinxflash verifier309s33691no
django-11848djangoflash verifier604s29202no
astropy-14598astropyflash verifier1,041s47989no
sympy-18199sympyflash verifier643s18184no
django-15916djangoflash verifier644s36467yes
django-11149djangoflash verifier935s511,094yes
django-14155djangoflash verifier516s26341no
django-14034djangoflash verifier534s21488no
django-13513djangoflash verifier162s1687
sphinx-10466sphinxsonnet verifier300s34546yes
django-11141djangosonnet verifier179s13169no
django-14534djangosonnet verifier394s30167no
django-15987djangosonnet verifier428s26250no
astropy-14182astropysonnet verifier432s29362no
django-13297djangosonnet verifier513s28473
django-12406djangosonnet verifier633s25485
django-14011djangosonnet verifier678s28407
sphinx-8056sphinxsonnet verifier495s56470
sympy-18763sympysonnet verifier880s37341

8 · Symptom map — deterministic issue analysis

No second agent: the issue’s own evidence (traceback frames, quoted code, named symbols) is resolved against the code index mechanically and handed to the worker before it starts, ranked by convergence. It fired on roughly half the instances and resolved real sites — and conversions stayed at re-run variance, because most misses fail AFTER finding the right place: the dominant failure mode is fix precision, not localization. An offline check against the gold patches had already shown the instances that genuinely mislocate are exactly the ones whose issues carry no resolvable evidence at all.

worker + symptom map · 53 rows recorded
instancerepoconfigwallturnslines readresolvedcost
pylint-4604pylintsymptom map152s2695no
django-14559djangosymptom map153s11312no
django-11239djangosymptom map179s17217yes
django-14315djangosymptom map212s15328yes
django-14140djangosymptom map216s16145no
pylint-4661pylintsymptom map241s30225no
sphinx-9711sphinxsymptom map111s1386no
django-10999djangosymptom map264s13149no
django-14170djangosymptom map268s23372no
astropy-7606astropysymptom map280s12125yes
sphinx-7462sphinxsymptom map107s16132no
django-11532djangosymptom map393s33312no
django-11820djangosymptom map400s20273no
django-15127djangosymptom map212s12244no
xarray-3993xarraysymptom map257s28281no
django-12774djangosymptom map250s1364yes
sympy-16886sympysymptom map511s936yes
django-12325djangosymptom map263s20198no
django-13513djangosymptom map286s1589
django-13195djangosymptom map194s14172no
django-16667djangosymptom map176s1278no
django-13794djangosymptom map384s24304yes
django-11848djangosymptom map290s13135no
django-11477djangosymptom map256s27317no
sphinx-9602sphinxsymptom map229s27211no
astropy-14598astropysymptom map691s37530no
django-15916djangosymptom map322s22295no
django-14376djangosymptom map415s30416no
django-14034djangosymptom map319s23555no
django-14155djangosymptom map274s20220no
django-11149djangosymptom map746s511,354yes
pylint-8898pylintsymptom map495s52516no
django-15987djangosymptom map205s16282no
sympy-18763sympysymptom map646s1832yes
sympy-18199sympysymptom map589s21353no
astropy-14182astropysymptom map376s21380no
django-12406djangosymptom map481s32640no
django-14011djangosymptom map980s44489no
sphinx-10466sphinxsymptom map256s34577yes
django-14534djangosymptom map327s26483no
sphinx-7590sphinxsymptom map296s28369no
django-13297djangosymptom map408s14316no
django-11141djangosymptom map409s42321no
sphinx-7748sphinxsymptom map614s591,275no
sympy-20916sympysymptom map904s23306
astropy-13033astropysymptom map420s22245
django-10973djangosymptom map153s11187
xarray-6938xarraysymptom map249s31334
sphinx-8056sphinxsymptom map554s53561
django-16454djangosymptom map325s19112
django-12273djangosymptom map432s22137
sympy-15875sympysymptom map611s1338
xarray-6992xarraysymptom map199s18357

A stacked configuration (scope cards + symptom map + verifier) is running as of this update; its rows will be appended when it completes.

Run 2

A second full pass over all 500 instances with the current engine (worker + scope cards + symptom map + verifier, all on DeepSeek v4-flash), one attempt per instance, graded identically to the run above. 391 of 500 resolved (78.2%) at a total generation cost of $37.33. Instances whose first attempt died to infrastructure were re-attempted; the table shows each instance’s final attempt.

RepositoryInstancesResolvedRate
flask11100.0%
requests88100.0%
seaborn22100.0%
scikit-learn322990.6%
pytest191684.2%
sympy756181.3%
django23118178.4%
xarray221777.3%
sphinx443272.7%
matplotlib342573.5%
astropy221568.2%
pylint10440.0%
Instance Repo Result Turns Lines read Wall (s) Cost ($)