GPT-6.1 Sol and Claude Opus 5.5 passed every try; Claude Haiku 5.5 passed 6 of 9 and GPT-6 Luna none.

Each model got 3 tries at each of 3 areas of work in one real app, 20 minutes per try, each try scored from 0 to 1. GPT-6.1 Sol was about 1.7 times as fast as Claude Opus 5.5 by median minutes per passing try, and Claude Opus 5.5's estimated cost per pass was 3.2 to 3.5 times GPT-6.1 Sol's at list prices.

Each version tests something different. Scores don't carry over.

Results#

Mean score over 9 tries: GPT-6.1 Sol 1.00, Claude Opus 5.5 1.00, Claude Haiku 5.5 0.83, GPT-6 Luna 0.24.

3 areas, 3 tries each. A try passes when it meets its area's bar, shown under Each area. Two models passed every try, so these scores can't tell their ability apart on this suite, only their time and cost. Tap or hover over a bar to see each area.

Mean score0 to 101GPT-6.1 Sol1.00Claude Opus 5.51.00Claude Haiku 5.50.83GPT-6 Luna0.24Passesof 9099960

Source: skill-evals.brenhq.com, updated 15 October 2026. Deep suite v2. 36 tries, medium effort, 20 minutes per try.

Each area#

GPT-6.1 Sol and Claude Opus 5.5 scored 1.00 on every try. Claude Haiku 5.5's weakest area was Slow export (mean 0.66); GPT-6 Luna's weakest area was Broken feature (mean 0.17).

Each square is one try; filled means it passed. The numbers are each try's score; narrow screens show their mean.

AreaGPT-6.1 SolClaude Opus 5.5Claude Haiku 5.5GPT-6 Luna
SecurityFind and close the places where the app shows people data they are not allowed to see.Scored by the share of its graded parts a try passes; it passes when every part does.1.00, 1.00, 1.001.00, 1.00, 1.001.00, 0.75, 0.750.00, 0.62, 0.00
Broken featureFix a feature that shipped broken, across the parts of the app it touches.Scored by the share of its graded parts a try passes; it passes when every part does.1.00, 1.00, 1.001.00, 1.00, 1.001.00, 1.00, 1.000.00, 0.50, 0.00
Slow exportMake a data export fast without changing a byte of its output.Scored half by how much of my own fix's time savings a try matches and half by its query savings, capped at 1; it passes at 0.8 or more, within the task's time and query limits.1.00, 1.00, 1.001.00, 1.00, 1.000.99, 0.00, 1.000.37, 0.34, 0.30

Source: skill-evals.brenhq.com, updated 15 October 2026. Deep suite v2. 36 tries, medium effort, 20 minutes per try.

Time#

Median minutes per try: GPT-6.1 Sol 6.4, Claude Haiku 5.5 8.0, Claude Opus 5.5 11.1; GPT-6 Luna took 1.3 and passed none.

Minutes from start to finish, checks included. Minutes per passing try counts only the tries a model passed, and those differ by model.

ModelGPT-6.1 SolClaude Opus 5.5Claude Haiku 5.5GPT-6 Luna
Minutes per try, median6.411.18.01.3
Minutes per passing try, median6.411.15.9no pass
Tries that hit the 20-minute limit0 of 90 of 92 of 90 of 9

Source: skill-evals.brenhq.com, updated 15 October 2026. Deep suite v2. 36 tries, medium effort, 20 minutes per try.

Cost#

Cost per pass at list prices: Claude Haiku 5.5 $0.12 to $0.60 (7 of 9 tries logged); GPT-6.1 Sol $0.56 to $0.61; Claude Opus 5.5 $1.97; GPT-6 Luna passed none.

An estimate at each vendor's list prices: the cost of every try that logged its tokens, failed ones included, divided by the passes among them.

Some costs are a range because the tools don't log everything they're billed for. Details are under How I tested.

Claude Haiku 5.5: 2 tries hit the time limit before logging tokens, so its total covers 7 tries and its cost per pass divides by the 5 passes among them.

ModelGPT-6.1 SolClaude Opus 5.5Claude Haiku 5.5GPT-6 Luna
Passes9 of 99 of 96 of 90 of 9
Output tokens per try, median of tries that logged them13,13024,84644,0145,077
Total cost$5.06 to $5.52$17.69$0.60 to $3.01$0.17 to $0.19
Cost per pass$0.56 to $0.61$1.97$0.12 to $0.60no pass

Source: skill-evals.brenhq.com, updated 15 October 2026. Deep suite v2. 36 tries, medium effort, 20 minutes per try. Prices checked 29 September 2026, OpenAI's cache-write rates 14 October 2026.

How I tested#

How the tasks were made, run and graded

Version 1 used tasks from public task sets. For version 2 I wrote my own tasks in one real open-source web app: an audit for data people shouldn't see, a feature that shipped broken, and a data export that has to get fast without changing its output. Each task has hidden checks the model never sees. Security and Broken feature score a try by the share of their graded parts it passes, and a try passes when every part does. Slow export scores a try half by how much of my own fix's time savings it matches and half by its query savings, capped at 1, and a try passes at 0.8 or more within the task's time and query limits. A try that breaks any of the app's own tests scores 0. Tasks, prompts and graders are private so later runs stay fair.

Before counted runs began, each task was checked the same way: my own fix scores 1, the untouched code scores 0, and the tested wrong fixes scored below 1. Three outside reviewers (GPT-6 Astra, Grok 4.7 and Gemini 4 Argon) checked every task for fairness, and I made the tasks harder twice after trial rounds where too many tries passed. The trial rounds aren't counted.

This is version 2, frozen 15 October 2026: 3 areas, 3 tries each, the same settings and the same containers. Each version tests something different, so scores don't carry over from version 1.

Claude Opus 5.5 and Claude Haiku 5.5 ran in Claude Code 2.1.284, and GPT-6.1 Sol and GPT-6 Luna in Codex CLI 0.159.0, all at medium effort, 20 minutes per try (2 tries hit the limit and were graded on the code at that point). Each try ran in its own container with no internet except the model's API. Its change was then copied into a fresh container and graded there, after the app's own tests were put back. The two tools ran side by side; the export task, which measures time, was graded afterwards one try at a time with nothing else running.

Costs are estimates at each vendor's standard API prices, from the tokens each try logged. Claude Haiku 5.5 is a range because Anthropic charges more for prompts over 100k tokens and prompt sizes weren't logged; GPT costs are a range because Codex doesn't log cache writes, which OpenAI bills at 1.25 times the input price. 2 tries stopped at the time limit before logging tokens, so they have no cost estimate and aren't in the totals. The tries ran on subscriptions, so these are not what was spent.

Limits: 3 areas and 3 tries each, one app, one tool and one effort setting per model. Two models passed every try, so these scores can't tell their ability apart on this suite, only which was faster and cheaper here.

Every try's area, score, time and cost is in results.json, under deep_v2_runs and deep_v2_suite.