GPT-5.6 Luna vs GPT-6 Luna: Measuring Time to Correctness
Posted on Thu 24 September 2026 | 5 min read
Setup
GPT-5.6 Luna High and GPT-6 Luna High were run on ten bounded engineering tasks from the same codebase.
The codebase is roughly 60k LOC excluding tests, mostly C++ and Python with a small TypeScript frontend. It has clear subsystem boundaries, low coupling, limited duplicate logic, and explicit ownership of domain semantics. That structure matters for agentic coding: a bounded change usually has a narrow dependency surface, allowing the agent to reason locally instead of reconstructing the entire repository.
For each task, both models start from the same state in separate worktrees and receive the same task. Every task has explicit success requirements and regression obligations.
The harness runs the same loop for both models (each phase is a separate model invocation):
IMPLEMENT → REVIEW → FIX → REVIEW → ...
After each task, GPT-5.6 Sol reviewed the input prompt, both session reports, and both diffs, then picked the version to keep.
Results after 10 tasks
| Result | GPT-5.6 Luna | GPT-6 Luna |
|---|---|---|
| Faster IMPLEMENT | 4 / 10 | 6 / 10 |
| Median IMPLEMENT duration | 11m16.8s | 8m40.2s |
| Median IMPLEMENT tool calls | 105.5 | 70 |
| Better first pass | 5 | 3 |
| Better REVIEW | 4 | 2 |
| Median REVIEW duration | 3m58.0s | 1m49.7s |
| Median workflow duration | 18m25.4s | 10m32.2s |
| Sol's preferred final code | 6 / 10 | 4 / 10 |
Two tasks had mixed first-pass results and four had equivalent review quality.
The split is fairly clear: GPT-6 is more efficient during implementation, while GPT-5.6 has been stronger on first-pass completeness and review quality.
The models fail differently
The clearest difference is how the two models allocate effort.
GPT-6 Luna
GPT-6's weaker runs were usually locally coherent but incomplete at the system boundary. The implementation made sense in isolation, while some requirement outside the immediate change was left unresolved.
The same tendency is also a strength on straightforward tasks: the model often produced tighter implementations and stronger direct tests, with less exploratory work around the surrounding architecture.
GPT-5.6 Luna
GPT-5.6 spends more time reasoning about the change as part of the larger system. That often leads to stronger integration and better closure on tasks with a wider integration surface, where correctness depends on more than the local implementation.
The tradeoff is additional work: the model is more likely to revisit boundaries, expand validation, or carry the change further into adjacent code than the task strictly requires.
Phase-aware model routing
The results suggest a broader direction than picking a single model for the entire workflow. Model selection could become part of task orchestration.
A lightweight preflight could classify the task before execution:
- local vs cross-boundary change
- low vs high integration risk
- narrow vs broad dependency surface
- local vs architectural change
PRE-FLIGHT
↓
route IMPLEMENT
↓
route REVIEW
↓
route FIX if required
Routing should depend on both the phase and the shape of the work.
A narrow implementation may favor GPT-6, while a cross-boundary change with higher integration risk may justify GPT-5.6 from the start.
Model choice then becomes part of the execution policy rather than a workflow-wide configuration.