Research — Wharf / DeepSWE

What 7,571 coding-agent attempts reveal.

Wharf is our benchmark platform for AI coding agents: real software tasks, repeated attempts, an independent verifier, and every result retained. We pointed it at today's frontier models and harnesses.

TASKS
113
CONFIGURATIONS
16
ATTEMPTS
7,571
ATTEMPTS PER TASK
4–5

Key findings

Three things a leaderboard doesn't show.

01 · harness

The harness is part of the product.

Claude Opus 5 passed 71.2% of attempts inside GitHub Copilot and 64.4% inside Claude Code, at $5.66 versus $13.49 per attempt. Same model; different tools, context handling and prompts around it.

02 · cost

More expensive isn't more effective.

GPT-5.6 Luna passed 74.1% at $0.37 per attempt. Claude Opus 5.5 passed 70.8% at $11.98. Routing is no shortcut either: Copilot's Auto router passed 37.0%, its HydraFusion router 70.4%.

03 · regressions

Passing the task isn't enough.

GPT-6 Astra and Claude Opus 5 (Copilot) passed almost the same number of attempts — 321 and 322. But 43 of Astra's attempts broke existing tests, against 20 for Opus 5.

Results

Quality against cost, every configuration.

Each dot is a complete configuration — model, harness release and reasoning effort. Up and to the left is better. The copper line joins Claude Opus 5 under two harnesses.

30%40%50%60%70%80%$0.2$0.5$1$2$5$10mean cost per attempt (log scale) →pass@1 →GPT-5.6 LunaOpus 5 · CopilotOpus 5 · Claude CodeCopilot Auto
Muse Spark is omitted from the chart: no cost was recorded for it. Hover or tab through the dots for details.
modelharnesseffortpassedpass@1broke tests$/attemptcosted
GPT-5.6 LunaCopilot 1.0.77max335/45274.1%17$0.3797%
Gemini 3.8 FlashCopilot 1.0.91high335/45274.1%20$2.79100%
Claude Opus 5Copilot 1.0.77max322/45271.2%20$5.6699%
GPT-6 AstraCopilot 1.0.91max321/45271.0%43$8.4399%
Claude Opus 5.5Copilot 1.0.95max320/45270.8%22$11.9882%
HydraFusion (all-1)Copilot 1.0.98default318/45270.4%28$1.21100%
HydraFusion (all-2)Copilot 1.0.95max317/45270.1%32$1.1799%
GPT-5.6 LunaCopilot 1.0.91max316/45269.9%21$0.3799%
GPT-5.6 SolCopilot 1.0.77xhigh315/45269.7%23$8.4499%
HydraFusion (all-1)Copilot 1.0.95max311/45268.8%36$1.2199%
Claude Opus 5.5Copilot 1.0.91max309/45268.4%27$11.4187%
GPT-5.6 TerraCopilot 1.0.77max376/56566.5%37$4.2698%
Claude Opus 5Claude Code 2.1.220max291/45264.4%21$13.4999%
GPT-6 LunaCopilot 1.0.91max276/45261.1%36$0.18100%
Muse Spark 1.2Muse Code 0.1.0xhigh338/56559.8%44—0%
AutoCopilot 1.0.77max209/56537.0%48$1.6295%

pass@1 = passing attempts ÷ planned attempts. Broke tests = attempts where at least one pre-existing test failed. $/attempt = mean over attempts with cost data. Source: Wharf @ 661b6e3.

Reading the numbers

A pass rate is only the beginning.

Take five tasks, two attempts each, $4 of compute in total. The same results give four different answers depending on the question you ask.

Aren't repeated attempts just retries?

No. A production retry usually stops at the first success; a benchmark runs every planned attempt to measure consistency. And an infrastructure retry — re-running because a container died — is not a new model attempt at all. We count the three separately.

taskattempt 1attempt 2
Login✓ pass✓ pass
Tax calculation✗ fail✓ pass
Database✗ fail✗ fail
File upload✓ pass✗ fail
Search✗ fail✓ pass
ATTEMPT PASS RATE
50% — 5 of 10 attempts
TASKS SOLVED
80% — 4 of 5 tasks, at least once
COST PER PASSING ATTEMPT
$0.80 — $4 ÷ 5 passes
COST PER TASK SOLVED
$1.00 — $4 ÷ 4 tasks

Methodology

The agent doesn't grade its own homework.

Implementation and verification are separate, so a claimed fix and a verified fix can never be confused.

  1. 01

    Fixed task set

    113 DeepSWE tasks, 4–5 planned attempts each. Every planned attempt stays in the denominator — a crash or a missing attempt counts as a failure.

  2. 02

    Isolated agent run

    Each attempt runs in its own clean environment. The agent's only output is a patch.

  3. 03

    Independent verifier

    A separate environment applies the patch and runs the task's tests. An attempt passes only on a positive verifier result; a timeout scores zero.

  4. 04

    Regression check

    Pre-existing tests run too. Breaking them is recorded separately, not hidden inside the pass rate.

  5. 05

    Evidence retained

    Patches, logs, agent trajectories, verifier output, timing, token usage and cost — for every attempt.

Limitations

What these results don't tell you.

Code, raw data & methodology on GitHub →
  • These results describe 113 open-source coding tasks. Your workload may rank the same configurations differently — that's the point of testing on it.
  • Harness comparisons change more than one thing at once: the harness release, its prompts and its tools all differ.
  • Attempts on the same task are correlated. Gaps of a few points are within run-to-run noise: the same Luna configuration scored 74.1% and 69.9% on consecutive Copilot releases.
  • Cost is missing for some attempts — 18% of the Opus 5.5 run and all of the Muse Spark run. Missing costs are excluded from averages, never counted as zero.
  • Regression counts cover attempts where existing tests could be measured. Unmeasured is unknown, not clean.
  • Models and harnesses ship monthly. This is a Oct 2026 snapshot.

Find out how these models do on your tasks.

Scope an eval program