Same Task Bench — Round 1 evidence

Claude Code vs Codex CLI · same repo, same 4 tasks, one rubric locked before any agent ran · 8GB Intel laptop

This page exists so the numbers in the video can be checked without taking anyone's word for them. Every file linked here is the raw output of the run, not a summary written afterwards.

Results

RankAgentPlanHidden testsInvoice rescuePeak RAM (limit 150MB)Wall clock
1Claude CodeMAX5/545/4513MB11:13
2Codex CLIChatGPT Plus5/542/458MB4:52

Ranking rule, fixed before the runs: correctness first (hidden tests, then rescue accuracy), speed as tiebreaker. Codex is 2.3× faster; Claude is the only perfect score.

Check the wall clock yourself

The harness wrote a Unix timestamp at the start and end of each run. Nothing else determines the times shown on screen:

$ cat runs/claude-code-r2/time_start runs/claude-code-r2/time_end
1786212883
1786213556

$ echo $(( 1786213556 - 1786212883 ))
673        # = 11:13

Same for Codex: 1786212816 - 1786212524 = 292 = 4:52. Machine-readable summary: runs/WALL-CLOCK.json

Check the scores yourself

The scorer was tested before it scored anyone. The buggy starting repo had to fail (hidden tests 4/5, task 3 = 0/45) and the reference solution had to reach 100%. Calibration caught a real defect in our own data generator (a missing POL-114 §3 clamp, expected value off by 797.09), which was fixed before any agent ran. Details in BENCH-LOG.md.

The identical input every agent received

repo-template/ — the OrderDesk repo exactly as handed to both agents: orderdesk/app.py, tests/test_basic.py, data/orders.json, 15 scanned invoices with their OCR text, and docs/POL-114.md (the policy the reconciliation bug violates). data/big_orders.json is not included here: it is a 200,000-row file generated at setup time by harness/make_big_orders.py, which is published so you can regenerate it byte-for-byte. Tasks: TASKS.md.

Full agent transcripts

Absolute filesystem paths have been replaced with placeholders such as <bench>. Nothing else in these logs was edited. (The harness records the same output as both transcript.log and stdout.log per run; only transcript.log is linked here — see the run directory for both.)

Limitations, stated up front

Codex's three misses, in full

All three are money fields; all 15 vendor names were correct. Each is an OCR misread that arithmetic cross-checking would have caught:

InvoiceCodex readCorrect
INV-20103376.243385.96
INV-20125120.225120.92
INV-20142648.372646.37