Research Question: RQ-model-quality-cc-vs-pi
Does the code-quality profile of Opus (opus-4-8) differ between the Claude Code and the pi harness, each with and without thinking, at a constant workflow generation (hybrid-v4)?
game-of-life-example-mapping
| n, run dates | Code quality | Size | Correctness | TDD discipline | Cost | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ○ | ○ | ↑ | ↑ | ○ | ○ | ↓ | ↓ | ↓ | |
| model: opus-4-8-requesty · exact-hybrid-v4-cleaned-cctest listn = 5, 2026-07-25 | 5.00 ± 1.87 🏆 | 3.17 ± 0.76 🏆 | 4.60 ± 0.89 🏆 | 2.16 ± 0.61 🏆 | 11.6 ± 1.52 🏆 | 5.44 ± 1.43 🏆 | 159 ± 13.58 🏆 | 2.20 ± 0.45 🏆 | 44.6 ± 8.20 | 8.80 ± 0.45 | 100%5/5 | 100% ± 0 | 17.6 ± 0.89 | 17.6 ± 0.89 | 12.0 ± 0.5 min | 5.2M ± 589k | $5.53 ± 0.51 |
| model: opus-4-8-no-thinking · exact-hybrid-v4-cleaned-cctest listn = 5, 2026-05-30 | 5.60 ± 1.52 🏆 | 3.87 ± 1.43 🏆 | 5.00 ± 1.41 🏆 | 2.11 ± 0.88 🏆 | 11.8 ± 6.50 🏆 | 4.89 ± 2.06 🏆 | 172 ± 19.41 | 2.00 ± 1.22 🏆 | 40.0 ± 5.70 | 8.80 ± 0.45 | 100%5/5 | 100% ± 0 | 13.8 ± 7.76 | 14.0 ± 7.87 | 9.7 ± 2.6 min | 9.0M ± 2.2M | $15.82 ± 15.52 🏆 |
| model: opus-4-8 · exact-hybrid-v4.2-phase-continuation-pitest listn = 5, 2026-07-25 | 9.60 ± 3.71 | 5.57 ± 1.87 | 6.80 ± 1.48 | 2.90 ± 0.39 🏆 | 17.4 ± 5.50 | 6.89 ± 1.69 🏆 | 149 ± 13.08 🏆 | 3.40 ± 1.52 | 35.2 ± 2.77 | 8.60 ± 0.55 | 100%5/5 | 100% ± 0 | 19.4 ± 5.46 | 19.4 ± 5.46 | 5.7 ± 0.8 min 🏆 | 1.2M ± 278k 🏆 | $2.00 ± 0.25 🏆 |
| model: opus-4-8-no-thinking · exact-hybrid-v4.2-phase-continuation-pitest listn = 5, 2026-07-26 | 8.20 ± 5.36 🏆 | 7.40 ± 5.90 🏆 | 6.60 ± 2.97 🏆 | 3.13 ± 0.80 | 17.8 ± 5.31 | 8.19 ± 2.01 | 160 ± 17.64 🏆 | 1.20 ± 1.79 🏆 | 42.2 ± 10.28 | 8.80 ± 0.45 | 100%5/5 | 100% ± 0 | 16.8 ± 2.68 | 16.8 ± 2.68 | 5.3 ± 0.4 min 🏆 | 1.3M ± 77k 🏆 | $2.00 ± 0.09 🏆 |
Runs behind this table
- 2026-05-30_19-40-38_game-of-life-example-mapping_v6.2-with-why-cleaned_opus-4-8-no-thinking
- 2026-05-30_19-53-34_game-of-life-example-mapping_v6.2-with-why-cleaned_opus-4-8-no-thinking
- 2026-05-30_20-01-27_game-of-life-example-mapping_v6.2-with-why-cleaned_opus-4-8-no-thinking
- 2026-05-30_20-09-18_game-of-life-example-mapping_v6.2-with-why-cleaned_opus-4-8-no-thinking
- 2026-05-30_20-17-41_game-of-life-example-mapping_v6.2-with-why-cleaned_opus-4-8-no-thinking
- 2026-07-25_05-52-18_game-of-life-example-mapping_v6.2.1-phase-continuation-pi_opus-4-8
- 2026-07-25_05-52-18_game-of-life-example-mapping_v6.2.1-phase-continuation-pi_opus-4-8-2
- 2026-07-25_05-57-24_game-of-life-example-mapping_v6.2.1-phase-continuation-pi_opus-4-8
- 2026-07-25_05-59-26_game-of-life-example-mapping_v6.2.1-phase-continuation-pi_opus-4-8
- 2026-07-25_06-03-04_game-of-life-example-mapping_v6.2.1-phase-continuation-pi_opus-4-8
- 2026-07-25_18-58-58_game-of-life-example-mapping_v6.2-with-why-cleaned_opus-4-8-requesty
- 2026-07-25_19-40-01_game-of-life-example-mapping_v6.2-with-why-cleaned_opus-4-8-requesty
- 2026-07-25_19-45-16_game-of-life-example-mapping_v6.2-with-why-cleaned_opus-4-8-requesty
- 2026-07-25_19-47-30_game-of-life-example-mapping_v6.2-with-why-cleaned_opus-4-8-requesty
- 2026-07-25_20-04-57_game-of-life-example-mapping_v6.2-with-why-cleaned_opus-4-8-requesty
- 2026-07-26_10-06-47_game-of-life-example-mapping_v6.2.1-phase-continuation-pi_opus-4-8-no-thinking
- 2026-07-26_10-12-16_game-of-life-example-mapping_v6.2.1-phase-continuation-pi_opus-4-8-no-thinking
- 2026-07-26_10-17-34_game-of-life-example-mapping_v6.2.1-phase-continuation-pi_opus-4-8-no-thinking
- 2026-07-26_10-23-28_game-of-life-example-mapping_v6.2.1-phase-continuation-pi_opus-4-8-no-thinking
- 2026-07-26_10-29-29_game-of-life-example-mapping_v6.2.1-phase-continuation-pi_opus-4-8-no-thinking
Findings
RQ-model-quality-cc-vs-pi — Findings
Opus (opus-4-8) via the Claude Code vs. the pi path, each with and without thinking, kata game-of-life-example-mapping, hybrid-v4 workflow generation. n=5 per cell (20 runs), all correct (Correctness internal 100 %).
CC cells: exact-hybrid-v4-cleaned-cc (opus-4-8-requesty = thinking, opus-4-8-no-thinking). pi cells: exact-hybrid-v4.2-phase-continuation-pi (opus-4-8 = thinking, opus-4-8-no-thinking). All routed via Requesty/Vertex-EU.
Overview
Complexity/code quality (all lower = better). All cells 100 % correct → quality trophies not correctness-gated.
| Metric (direction) | CC thinking | CC no-think | pi thinking | pi no-think |
|---|---|---|---|---|
cognitive_max (↓) |
5.0 🏆 | 5.6 | 9.6 | 8.2 |
cognitive_avg (↓) |
3.17 🏆 | 3.87 | 5.57 | 7.4 |
mccabe_avg (↓) |
2.16 | 2.11 🏆 | 2.9 | 3.13 |
Smell Total smell_total (↓) |
2.2 | 2.0 | 3.4 | 1.2 🏆 |
Production LoC lines_of_code (↓) |
44.6 | 40.0 | 35.2 🏆 | 42.2 |
Code Mass (APP) code_mass (↓) |
158.6 | 171.8 | 149.2 🏆 | 159.6 |
Correctness (internal) tests_passing (↑) |
100 % 🏆 | 100 % 🏆 | 100 % 🏆 | 100 % 🏆 |
duration_seconds (↓) |
718.6 | 579.2 | 339.4 | 318 🏆 |
cost_usd: all cells via Requesty (values in summary.md).
F-1.1 — The harness effect on complexity dominates the thinking effect
Across both thinking levels, CC-Opus writes less complex code than pi-Opus:
cognitive_max (↓) |
thinking | no-thinking |
|---|---|---|
| CC | 5.0 | 5.6 |
| pi | 9.6 | 8.2 |
The harness difference (CC ~5 vs. pi ~8–10) is larger and more consistent than the thinking difference within a harness. The harness/workflow path is therefore the stronger driver of the code-quality profile, not the reasoning level.
Caveat (workflow line): CC runs exact-hybrid-v4-cleaned-cc (commands/rules), pi runs v6.2.1-phase-continuation (skills/extensions/AGENTS.md) — two lines of the hybrid-v4 generation, treated as equivalent by convention. The effect is harness OR workflow line, not separable.
F-1.2 — Thinking does not reliably reduce code complexity on either harness
The intuitive effect ("more reasoning → tidier code") does not appear:
- CC: thinking vs. no-thinking practically identical (
cognitive_max5.0 vs. 5.6,cognitive_avg3.17 vs. 3.87). Thinking has no effect on code complexity here. - pi: no-thinking actually worsens
cognitive_avg(5.57 → 7.4) with sharply increased spread (σ 1.87 → 5.9). Driven by a real outlier run that puts the entire logic into a single dense function (cognitive_avg= 17 at 27 LoC) — the same density pattern as cursor-Opus in RQ-model-quality-cursor. Without thinking the structure becomes less reliable, not worse in the mean-without-outlier.
Conclusion: on these harnesses, thinking affects the spread of Opus-4-8's complexity more than its mean — with thinking the runs are more consistent (smaller σ), without thinking dense single-function outliers appear.
F-1.3 — pi is more parsimonious and faster, CC less complex and more smell-stable
- Parsimony: pi-thinking writes the fewest Production LoC (35.2) and the lowest Code Mass (149.2). CC spreads across more lines.
- Runtime: pi is markedly faster at both thinking levels (~318–339 s vs. CC ~579–719 s). Thinking costs noticeable time on CC (719 vs. 579 s), barely any on pi (339 vs. 318 s).
- Complexity/smells: CC leads consistently on
cognitive_*;smell_totalis stably low on CC (2.0–2.2, small σ), fluctuating on pi (1.2–3.4, large σ).
The parsimony/complexity tradeoff from the cursor RQ is confirmed: the more parsimonious path (pi) is not the less complex one (CC).
Caveats
- Workflow line (central): CC (with-why-cleaned) and pi (phase-continuation) are two lines of the hybrid-v4 generation; harness and line are not separable (F-1.1).
cost_usdof all cells via Requesty — comparable.verification_pct= 100 % mirrorstests_passing(game-of-life has no external suite).- The elevated σ of the pi-no-thinking cell is real (genuine density-outlier run), not a parser artifact.