CODING AGENT COMPARISON · OCTOBER 2026
Coding agents, compared.
The latest parser pairs use current models chosen from the live cost, quality and speed ladders and catalog added dates. Both agents request matched sampling and reasoning settings on the unchanged task; unsupported provider settings are disclosed. Other task results are retained from the prior campaign. Every attempt remains available.
Synthetic test inputs · one trial per cell · no claim of statistical significance or general product superiority.
36 earlier attempts, incomplete runs and diagnostics are retained below. They are excluded from coding success counts. Completed failures remain in the results.
Results by task
Verdict Code vs Aider
Same parser task and model. Each cell shows independent checks passed. Current models are selected from live ladders and catalog added dates. Older rosters remain in the audit archive.
Synthetic benchmark fixtures · actual agent or service execution.
| Exact model | Verdict Code | Aider |
|---|---|---|
| anthropic/claude-haiku-5-5Current model · catalog verified · synthetic parser task | Passed20/20 checks13.412 s · USD not measuredReceipt ↗Run detailsModel: byok/anthropic/claude-haiku-5-5
| Passed20/20 checks14.012 s · USD not measuredReceipt ↗Run detailsModel: byok/anthropic/claude-haiku-5-5
|
| openai/gpt-6-lunaCurrent model · catalog verified · synthetic parser task | Passed20/20 checks30.985 s · $0.001266Receipt ↗Run detailsModel: byok/openai/gpt-6-luna
| Passed20/20 checks30.003 s · $0.000872Receipt ↗Run detailsModel: byok/openai/gpt-6-luna
|
| qwen/qwen3.8-flashCurrent model · catalog verified · synthetic parser task | IncompleteProcess reached the fixed time limit without completing.Receipt ↗Run detailsModel: byok/qwen/qwen3.8-flash
| Passed20/20 checks220.804 s · $0.005058Receipt ↗Run detailsModel: byok/qwen/qwen3.8-flash
|
| zai/glm-5.3-flashCurrent model · catalog verified · synthetic parser task | Failed checks18/20 checks30.955 s · $0.001061Receipt ↗Run detailsModel: byok/zai/glm-5.3-flash
| Passed20/20 checks9.204 s · $0.000348Receipt ↗Run detailsModel: byok/zai/glm-5.3-flash
|
| zai/glm-5.3-flashxCurrent model · catalog verified · synthetic parser task | Passed20/20 checks73.742 s · $0.013988Receipt ↗Run detailsModel: byok/zai/glm-5.3-flashx
| Passed20/20 checks40.713 s · $0.007165Receipt ↗Run detailsModel: byok/zai/glm-5.3-flashx
|
Fix a regression
Repair invoice rounding across two modules. Nine behavior checks plus one permitted-file check. Different model configurations: Verdict Code used GLM-5.3-Flash; native agents used their subscription models.
Retained from the prior campaign; not rerun here.
Synthetic benchmark fixtures · actual agent or service execution.
| Agent / model | Task | Result | Time | Estimated USD | Evidence |
|---|---|---|---|---|---|
| Devin CLIswe-2-mediumSubscription model | Repair money calculations across modulesSynthetic test input | Passed10/10 checks | 10.936 s | Not measured | Receipt ↗Run detailsModel: swe-2-medium
|
| Claude Codeclaude-sonnet-5-5Subscription model | Repair money calculations across modulesSynthetic test input | Passed10/10 checks | 19.102 s | Not measured | Receipt ↗Run detailsModel: claude-sonnet-5-5
|
| Codex CLIgpt-6.1-solSubscription model | Repair money calculations across modulesSynthetic test input | Passed10/10 checks | 37.556 s | Not measured | Receipt ↗Run detailsModel: gpt-6.1-sol
|
| verdict-codezai/glm-5.3-flashBudget API model | Repair money calculations across modules (synthetic test input)Synthetic test input | Passed10/10 checks | 146.71 s | $0.013120 | Receipt ↗Run detailsModel: byok/zai/glm-5.3-flash
|
Follow the repository rules
Implement a filename utility with the standard library, preserving the sentinel and permitted change surface.
Retained from the prior campaign; not rerun here.
Synthetic benchmark fixtures · actual agent or service execution.
| Agent / model | Task | Result | Time | Estimated USD | Evidence |
|---|---|---|---|---|---|
| Devin CLIswe-2-mediumSubscription model | Add a safe filename utility without dependency or scope driftSynthetic test input | Passed10/10 checks | 7.391 s | Not measured | Receipt ↗Run detailsModel: swe-2-medium
|
| Codex CLIgpt-6.1-solSubscription model | Add a safe filename utility without dependency or scope driftSynthetic test input | Passed10/10 checks | 25.571 s | Not measured | Receipt ↗Run detailsModel: gpt-6.1-sol
|
| Claude Codeclaude-sonnet-5-5Subscription model | Add a safe filename utility without dependency or scope driftSynthetic test input | Passed10/10 checks | 16.218 s | Not measured | Receipt ↗Run detailsModel: claude-sonnet-5-5
|
| verdict-codezai/glm-5.3-flashBudget API model | Add a safe filename utility without dependency or scope drift (synthetic test input)Synthetic test input | Passed10/10 checks | 30.96 s | $0.001267 | Receipt ↗Run detailsModel: byok/zai/glm-5.3-flash
|
Blueprint planning
Two frozen specifications given to native coding agents. Scope coverage, exclusions and dependency structure are checked separately from application execution. The Verdict planner is deterministic, makes no model call, and is not compared here.
Retained from the prior campaign; not rerun here.
Synthetic benchmark fixtures · actual agent or service execution.
| Agent / model | Explicit dependencies | Prose specification |
|---|---|---|
| Devin CLIswe-2-mediumSynthetic specification inputs | Passed13/13 checks5.329 sReceipt ↗Run detailsModel: swe-2-medium
| Passed10/10 checks16.52 sReceipt ↗Run detailsModel: swe-2-medium
|
| Codex CLIgpt-6.1-solSynthetic specification inputs | Passed13/13 checks17.165 sReceipt ↗Run detailsModel: gpt-6.1-sol
| Passed10/10 checks17.226 sReceipt ↗Run detailsModel: gpt-6.1-sol
|
| Claude Codeclaude-sonnet-5-5Synthetic specification inputs | Passed13/13 checks8.83 sReceipt ↗Run detailsModel: claude-sonnet-5-5
| Passed10/10 checks8.677 sReceipt ↗Run detailsModel: claude-sonnet-5-5
|
WHAT CHANGED
The evidence, explained.
- The current comparison uses five exact inexpensive models chosen from the live cost, quality and speed ladders and catalog added dates. Earlier model rosters remain only in audit history.
- Haiku 5.5 passed 20/20 in 13.412 s with Verdict Code and 14.012 s with Aider. GPT-6 Luna passed 20/20 in 30.985 s and 30.003 s respectively. These are single observations on one synthetic parser task.
- GLM-5.3-FlashX passed both arms, but Verdict Code took 73.742 s versus 40.713 s. The latest GLM-5.3-Flash run finished in 30.955 s but failed 2 of 20 checks, versus Aider passing 20/20 in 9.204 s. The worse latest result remains primary.
- Qwen 3.8 Flash remains incomplete at the original four-minute limit, despite a partial artifact passing 20/20. Aider completed in 220.804 s. Earlier timeout and stale-credential interruption remain retained; a correct partial artifact is not a completed pass.
- Generic repairs address redundant provider turns, cumulative repair bounds, stale self-check evidence, lost workspace locations, contaminated check imports, and required Responses compatibility. Hidden checks were not supplied to candidate execution or used to tune repairs.
- All original publications remain byte-preserved. Other native-agent, Blueprint and coding-task families are retained prior observations, not fresh reruns. Incomplete accounting stays unknown; these results do not establish a general agent ranking.
Full audit history
Earlier attempts and execution problems remain visible. They are separate from completed coding results.
Earlier attempts, incomplete runs and diagnostics (36)
| Agent / model | Task | Result | Time | Estimated USD | Evidence |
|---|---|---|---|---|---|
| aideropenai/gpt-4.1-mini | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Failed checks18/20 checksHistorical roster · retained for audit | 10.293 s | $0.001265 | Receipt ↗Run detailsModel: byok/openai/gpt-4.1-mini
|
| aiderdeepseek/deepseek-flash | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Incomplete0/20 checks on partial artifactHistorical roster · retained for auditIncomplete or apparatus diagnosticblocked · see receipt for cause | 48.921 s | $0.010084 | Receipt ↗Run detailsModel: byok/deepseek/deepseek-flash
|
| aiderqwen/qwen3-coder-flash | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Failed checks16/20 checksHistorical roster · retained for audit | 11.421 s | $0.001048 | Receipt ↗Run detailsModel: byok/qwen/qwen3-coder-flash
|
| aiderzai/glm-5.3-flashBudget API model | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Passed20/20 checksEarlier attempt; superseded by a recorded later run | 8.01 s | $0.000332 | Receipt ↗Run detailsModel: byok/zai/glm-5.3-flash
|
| aidergoogle/models/gemini-2.5-flash | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Failed checks16/20 checksHistorical roster · retained for audit | 18.183 s | $0.008781 | Receipt ↗Run detailsModel: byok/google/models/gemini-2.5-flash
|
| aiderqwen/qwen3.8-flash | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Incomplete0/20 checks on partial artifactEarlier attempt; superseded by a recorded later runIncomplete or apparatus diagnostictimeout · see receipt for cause | 240.012 s | Not measured | Receipt ↗Run detailsModel: byok/qwen/qwen3.8-flash
|
| aidergoogle/models/gemini-3.8-flash | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Incomplete0/20 checks on partial artifactHistorical roster · retained for auditIncomplete or apparatus diagnosticblocked · see receipt for cause | 55.042 s | $0.031358 | Receipt ↗Run detailsModel: byok/google/models/gemini-3.8-flash
|
| verdict-codeopenai/gpt-4.1-mini | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Incomplete18/20 checks on partial artifactEarlier attempt; superseded by a recorded later runHistorical roster · retained for auditIncomplete or apparatus diagnosticblocked · see receipt for cause | 57.415 s | Not measured | Receipt ↗Run detailsModel: byok/openai/gpt-4.1-mini
|
| verdict-codeopenai/gpt-4.1-mini | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Incomplete15/20 checks on partial artifactEarlier attempt; superseded by a recorded later runHistorical roster · retained for auditIncomplete or apparatus diagnosticblocked · see receipt for cause | 75.334 s | $0.022086 | Receipt ↗Run detailsModel: byok/openai/gpt-4.1-mini
|
| aiderverdict/verdict-4-35b-toolterse-v5-mlxLocal/LAN model | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Failed checks18/20 checksHistorical roster · retained for audit | 7.141 s | $0.000000 | Receipt ↗Run detailsModel: local/lmstudio/verdict/verdict-4-35b-toolterse-v5-mlx
|
| aiderqwen/qwen3-coder-30bLocal/LAN model | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Failed checks18/20 checksHistorical roster · retained for audit | 8.596 s | $0.000000 | Receipt ↗Run detailsModel: local/lmstudio/qwen/qwen3-coder-30b
|
| aideropenai/gpt-oss-20bLocal/LAN model | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Failed checks16/20 checksHistorical roster · retained for audit | 25.471 s | $0.000000 | Receipt ↗Run detailsModel: local/lmstudio/openai/gpt-oss-20b
|
| aidergoogle/gemma-4-26b-a4bLocal/LAN model | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Incomplete0/20 checks on partial artifactHistorical roster · retained for auditIncomplete or apparatus diagnostictimeout · see receipt for cause | 240.091 s | Not measured | Receipt ↗Run detailsModel: local/lmstudio/google/gemma-4-26b-a4b
|
| aiderqwen/qwen3.8-flash | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Passed20/20 checksEarlier attempt; superseded by a recorded later run | 192.155 s | $0.005245 | Receipt ↗Run detailsModel: byok/qwen/qwen3.8-flash
|
| verdict-codedeepseek/deepseek-flash | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Passed20/20 checksHistorical roster · retained for auditIncomplete or apparatus diagnostic | 18.714 s | $0.003283 | Receipt ↗Run detailsModel: byok/deepseek/deepseek-flash
|
| verdict-codeopenai/gpt-4.1-mini | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Failed checks18/20 checksHistorical roster · retained for auditIncomplete or apparatus diagnostic | 11.536 s | $0.001131 | Receipt ↗Run detailsModel: byok/openai/gpt-4.1-mini
|
| verdict-codezai/glm-5.3-flashBudget API model | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Passed20/20 checksEarlier attempt; superseded by a recorded later runIncomplete or apparatus diagnostic | 23.55 s | $0.000378 | Receipt ↗Run detailsModel: byok/zai/glm-5.3-flash
|
| verdict-codeqwen/qwen3-coder-flash | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Failed checks16/20 checksHistorical roster · retained for auditIncomplete or apparatus diagnostic | 19.527 s | $0.002548 | Receipt ↗Run detailsModel: byok/qwen/qwen3-coder-flash
|
| verdict-codegoogle/models/gemini-2.5-flash | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Failed checks16/20 checksHistorical roster · retained for auditIncomplete or apparatus diagnostic | 19.476 s | $0.007063 | Receipt ↗Run detailsModel: byok/google/models/gemini-2.5-flash
|
| verdict-codeqwen/qwen3.8-flash | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Passed20/20 checksEarlier attempt; superseded by a recorded later runIncomplete or apparatus diagnostic | 59.14 s | $0.001914 | Receipt ↗Run detailsModel: byok/qwen/qwen3.8-flash
|
| verdict-codegoogle/models/gemini-3.8-flash | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | IncompleteHistorical roster · retained for auditIncomplete or apparatus diagnosticblocked · see receipt for cause | Not measured | Not measured | Receipt ↗Run detailsModel: byok/google/models/gemini-3.8-flash
|
| aiderqwen/qwen2.5-coder-1.5b-instructLocal/LAN model | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | IncompleteHistorical roster · retained for auditIncomplete or apparatus diagnosticblocked · see receipt for cause | Not measured | Not measured | Receipt ↗Run detailsModel: local/lmstudio/qwen/qwen2.5-coder-1.5b-instruct
|
| verdict-codeanthropic/claude-haiku-5-5 | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Passed20/20 checksEarlier attempt; superseded by a recorded later run | 205.045 s | Not measured | Receipt ↗Run detailsModel: byok/anthropic/claude-haiku-5-5
|
| aideropenai/gpt-6-luna | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Passed20/20 checksEarlier attempt; superseded by a recorded later run | 21.078 s | $0.000832 | Receipt ↗Run detailsModel: byok/openai/gpt-6-luna
|
| verdict-codeopenai/gpt-6-luna | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Incomplete0/20 checks on partial artifactEarlier attempt; superseded by a recorded later runIncomplete or apparatus diagnosticblocked · see receipt for cause | 3.788 s | Not measured | Receipt ↗Run detailsModel: byok/openai/gpt-6-luna
|
| verdict-codeqwen/qwen3.8-flash | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Incomplete20/20 checks on partial artifactEarlier attempt; superseded by a recorded later runIncomplete or apparatus diagnostictimeout · see receipt for cause | 240.32 s | Not measured | Receipt ↗Run detailsModel: byok/qwen/qwen3.8-flash
|
| verdict-codezai/glm-5.3-flashBudget API model | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Passed20/20 checksEarlier attempt; superseded by a recorded later run | 84.191 s | $0.004326 | Receipt ↗Run detailsModel: byok/zai/glm-5.3-flash
|
| verdict-codeqwen/qwen3.8-flash | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Incomplete20/20 checks on partial artifactEarlier attempt; superseded by a recorded later runIncomplete or apparatus diagnosticblocked · see receipt for cause | 153.084 s | Not measured | Receipt ↗Run detailsModel: byok/qwen/qwen3.8-flash
|
| verdict-codeqwen/qwen3.8-flash | Strict HTTP Retry-After parser (synthetic test input)Synthetic test input | Incomplete20/20 checks on partial artifactIncomplete or apparatus diagnostictimeout · see receipt for cause | 240.628 s | Not measured | Receipt ↗Run detailsModel: byok/qwen/qwen3.8-flash
|
| AntigravityNo model inferenceSubscription model | Repeat isolated native execution access preflightSynthetic test input | IncompleteIncomplete or apparatus diagnosticblocked · see receipt for cause | Not measured | Not measured | Receipt ↗Run detailsModel: No inference
|
| verdict-codezai/glm-5.3-flashBudget API model | Repair money calculations across modules (synthetic test input)Synthetic test input | IncompleteIncomplete or apparatus diagnosticblocked · see receipt for cause | Not measured | Not measured | Receipt ↗Run detailsModel: byok/zai/glm-5.3-flash
|
| verdict-codezai/glm-5.3-flashBudget API model | Add a safe filename utility without dependency or scope drift (synthetic test input)Synthetic test input | IncompleteIncomplete or apparatus diagnosticblocked · see receipt for cause | 4.061 s | Not measured | Receipt ↗Run detailsModel: byok/zai/glm-5.3-flash
|
| verdict-codezai/glm-5.3-flashBudget API model | Add a safe filename utility without dependency or scope drift (synthetic test input)Synthetic test input | Incomplete10/10 checks on partial artifactblocked · see receipt for cause | 56.813 s | $0.004217 | Receipt ↗Run detailsModel: byok/zai/glm-5.3-flash
|
| verdict-codezai/glm-5.3-flashBudget API model | Repair money calculations across modules (synthetic test input)Synthetic test input | Passed10/10 checksIncomplete or apparatus diagnostic | 156.373 s | $0.014683 | Receipt ↗Run detailsModel: byok/zai/glm-5.3-flash
|
| verdict-codezai/glm-5.3-flashBudget API model | Repair money calculations across modules (synthetic test input)Synthetic test input | IncompleteIncomplete or apparatus diagnosticblocked · see receipt for cause | Not measured | Not measured | Receipt ↗Run detailsModel: byok/zai/glm-5.3-flash
|
| verdict-codezai/glm-5.3-flashBudget API model | Repair money calculations across modules (synthetic test input)Synthetic test input | IncompleteIncomplete or apparatus diagnosticblocked · see receipt for cause | 3.768 s | Not measured | Receipt ↗Run detailsModel: byok/zai/glm-5.3-flash
|
Previous harness repair — all 30 new attempts preserved unchanged
The preceding parser campaign and its retained task families remain available with their original receipts and conclusions.
Previous harness result snapshot ↗ · Previous harness receipt manifest ↗
First corrected campaign — 58 records preserved unchanged
This earlier campaign used different sampling settings. Source fixes and settings both changed; scores are not pooled.
Original October 15 pilot — preserved unchanged
The original 57 records include the first runner setup, short time limits, interruptions and incomplete accounting. Reruns use a revised protocol and are not pooled with those results.
How to read this
Passed means the independent task checks passed and the agent finished. Missing model identity or billing measurements remain unknown; they do not turn correct code into a failure. Incomplete runs do not establish a coding result.
Native agents use their own subscription models. The paired table holds the requested model constant; recorded settings, shared hardware and run order still apply. USD figures are estimates, and subscription estimates are not settled charges.
Download evidence manifest ↗Current result snapshot ↗ · Model selection and added dates ↗
- Unchanged frozen parser prompt, starter and hidden oracle; both actual CLIs. The user replaced the obsolete roster with five current inexpensive models, selected from live ladders and catalog added dates; historical runs remain in audit history. Every historical campaign and every new attempt remains available.
- Both agents request temperature zero and retain fixed 240-second, per-request and cumulative token limits. GPT-6 Luna uses Responses with the same provider-default reasoning in both arms; its unsupported custom sampling is omitted upstream, as required by the vendor. No silent model substitution or hidden-check feedback.
- Generic product changes remove redundant read and completion turns, bound repeated self-repair and provide an explicit text tool protocol for models without native calls. Protocol differences are disclosed in receipts.
- The independent hidden scorer runs only after candidate execution. It supplies no examples, diagnostics or expected outputs to candidates or repair decisions.
- Latest scheduled attempt is displayed even if worse or incomplete; no best-of selection. Causal apparatus retries remain in history.
- Other coding and Blueprint families retain prior measured receipts; they were not rerun in this parser campaign.
- Synthetic single-task fixtures, shared hardware and one trial per arm. No statistical or general superiority claim; canonical benchmark-store admission remains unverified.
Source baseline: 75fb1c7a5473549983c16143e3cb15482c940d97