Kaelvorn: build and redesign benchmark
One Claude Code orchestrator on
Claude Opus 5.5 commissioned research, art,
implementation and reviews through the delegate skill. The
result is the
live Kaelvorn site: 37 prerendered pages for a fictional upcoming MMORPG, with 13
Callings, four full dossiers, skill trees and a painted atlas. The
redesign brought the implementation closer to its painted concepts,
adding a central HUD, a heraldic logo, brush masks, crown moulding and
painted interface icons.
Summary
| Stage | Runs / turns | Summed agent time | Images made | Agents USD | Orchestrator USD | Combined USD | Orchestrator share |
|---|---|---|---|---|---|---|---|
| Build | 43 / 50 | 9h 07m 37s (9.1269 h) | 111 | $72.77 | $24.20 | $96.97 | 24.96% |
| Redesign | 18 / 20 | 5h 09m 12s (5.1533 h) | 36 | $68.19 | $37.42 | $105.61 | 35.43% |
| Both stages | 61 / 70 | 14h 16m 49s (14.2803 h) | 147 | $140.95 | $61.62 | $202.57 | 30.42% |
These are Standard list-price usage valuations, not subscription invoices. Image output uses the first benchmark's high-quality assumption and explicitly declared size proxies; reasoning is not charged twice. All values are rounded only for display. Agent time sums overlapping run durations, not elapsed delivery time; orchestrator hours are unmeasured.
The fixed source snapshot is usage.json, orchestrator.json, prices.md (sources read 2026-10-26), the decision log, image ledger, redesign plan and benchmark brief. Build means the recorded codex-1…25, antigravity-1…9, cursor-1…6 and gemini-api-1…3 records, including cursor-2-nested-codex. There is no cursor-3 record. Redesign means codex-26…33, cursor-7…12 and antigravity-10…13. This writer (codex-34) is absent and excluded; 61 runs are present, including four quota attempts.
Cost and usage per agent
Each stage cell reports USD; runs / turns; time (hours); fresh / cached / output / reasoning tokens (F/C/O/R); images. Image-model rows split output charges from their owners' text costs without adding delegations or hours: Nano Banana was invoked inside antigravity-7 in the build and cursor-7…10 in the redesign; Codex image calls were inside Codex runs. Thus text rows show zero images allocated to that row, rather than claiming the harness generated none.
| Agent / model | Build | Redesign | Both stages |
|---|---|---|---|
| Codex · GPT-6.1 Sol¹ | $37.34; 26 runs / 31 turns; 6h 04m 49s (6.0803 h); F/C/O/R 4,265,451 / 171,732,608 / 842,527 / 287,450; 0 images³ | $40.65; 8 runs / 13 turns; 4h 06m 49s (4.1136 h); F/C/O/R 2,303,944 / 134,502,272 / 534,066 / 222,488; 0 images³ | $77.99; 34 runs / 44 turns; 10h 11m 38s (10.1939 h); F/C/O/R 6,569,395 / 306,234,880 / 1,376,593 / 509,938; 0 images³ |
| Cursor · GPT-5.6 Sol¹ | $6.52; 2 runs / 2 turns; 0h 34m 31s (0.5753 h); F/C/O/R 369 / 14,523,120 / 35,692 / 0; 0 images³ | $23.72; 6 runs / 7 turns; 1h 02m 23s (1.0397 h); F/C/O/R 1,410 / 51,902,941 / 147,466 / 0; 0 images³ | $30.24; 8 runs / 9 turns; 1h 36m 54s (1.6150 h); F/C/O/R 1,779 / 66,426,061 / 183,158 / 0; 0 images³ |
| Cursor · Grok 4.7¹ | $2.71; 3 runs / 3 turns; 0h 19m 53s (0.3314 h); F/C/O/R 339,157 / 2,794,880 / 106,036 / 0; 0 images³ | $0.00; 0 runs; 0 h; F/C/O/R 0/0/0/0; 0 images | $2.71; 3 runs / 3 turns; 0h 19m 53s (0.3314 h); F/C/O/R 339,157 / 2,794,880 / 106,036 / 0; 0 images³ |
| Antigravity · Gemini 4 Argon¹ | $8.90; 9 runs / 10 turns; 1h 49m 52s (1.8311 h); F/C/O/R 1,911,744 / 19,322,338 / 314,789 / 73,737; 0 images³ | $0.00 recorded; 4 quota attempts; 0 turns / 0 h recorded; F/C/O/R not supplied; 0 images | $8.90; 13 runs / 10 turns; 1h 49m 52s (1.8311 h); F/C/O/R 1,911,744 / 19,322,338 / 314,789 / 73,737; 0 images³ |
| Gemini API text · Gemini 4 Argon¹ | $1.13; 3 runs / 4 turns; 0h 18m 32s (0.3089 h); F/C/O/R 93,929 / 0 / 94,453 / 0; 0 images³ | $0.00; 0 runs; 0 h; F/C/O/R 0/0/0/0; 0 images | $1.13; 3 runs / 4 turns; 0h 18m 32s (0.3089 h); F/C/O/R 93,929 / 0 / 94,453 / 0; 0 images³ |
| Nano Banana 2.1 images² | $0.40; 8 images; runs/hours: counted with owner; F/C/O/R: not supplied | $1.01; 20 images; runs/hours: counted with owner; F/C/O/R: not supplied | $1.41; 28 images; runs/hours: counted with owner; F/C/O/R: not supplied |
| Codex images · GPT Image 2³ | $15.75; 103 images; runs/hours: counted with owner; F/C/O/R: not supplied | $2.81; 16 images; runs/hours: counted with owner; F/C/O/R: not supplied | $18.56; 119 images; runs/hours: counted with owner; F/C/O/R: not supplied |
| All agents (recorded) | $72.77; 43 runs / 50 turns; 9h 07m 37s; F/C/O/R 6,610,650 / 208,372,946 / 1,393,497 / 361,187; 111 images | $68.19; 18 runs / 20 turns; 5h 09m 12s; F/C/O/R 2,305,354 / 186,405,213 / 681,532 / 222,488; 36 images | $140.95; 61 runs / 70 turns; 14h 16m 49s; F/C/O/R 8,916,004 / 394,778,159 / 2,075,029 / 583,675; 147 images |
| Orchestrator · Claude Opus 5.5⁴ | $24.20; 1 shared session / 274 responses; hours unmeasured; F/C/O/R 630 / 86,957,211 / 149,021 / not supplied; 1h cache writes 478,599; 0 images | $37.42; 1 shared session / 182 responses; hours unmeasured; F/C/O/R 408 / 119,417,957 / 126,761 / not supplied; 1h cache writes 1,374,455; 0 images | $61.62; 1 shared session / 456 responses; hours unmeasured; F/C/O/R 1,038 / 206,375,168 / 275,782 / not supplied; 1h cache writes 1,853,054; 0 images |
¹ Text formula and tier. For each run, USD =
(F × fresh rate + C × cache-read rate + O × output rate) /
1,000,000. As in the first report, input is treated as fresh input
and cached as separate cache reads; cached tokens often
exceed input, so subtraction would be invalid. Rates F/C/O are GPT-6.1
Sol 2 / 0.10 / 10, Cursor GPT-5.6 Sol
4 / 0.40 / 20, Cursor Grok 4.7
2 / 0.50 / 6, and Gemini 4 Argon
2 / 0.10 / 10 (the promotional Standard tariff valid
through 2026-11-30), from
prices.md. Model effort suffixes are normalized to the same model; no Fast
multiplier is assumed. Output is charged once; reported reasoning is
treated as included in output. Zero reasoning means none reported.
Long-context estimate, following the first benchmark's convention: use fresh input divided by recorded turns as a proxy for per-turn input. The whole-run GPT-6.1 Sol long tier 4 / 0.20 / 15 applies to cursor-2-nested-codex (595,275), codex-30 (1,380,020 / 5 = 276,004), and codex-33 (275,141), above 272,000. Actual tiers depend on individual API requests including cached context; aggregate run data cannot establish them. This preserves the original estimator, not proof of billing. No separately reported agent cache-write counts are available.
² Nano Banana formula. Standard 2K image output =
images × 1,680 image-output tokens × $30 / 1,000,000 = images ×
$0.0504. Build: 8 × 0.0504 = $0.4032000; redesign:
20 × 0.0504 = $1.0080000; total
$1.4112000. Prompt/reference inputs and image-model
text/thinking output are unreported and excluded; image calls are not
extra delegation runs.
³ Codex image formula. GPT Image 2 high-quality
output-only valuation: 1024×1536 and 1536×1024 $0.165;
saved 1672×941/940 uses nearby valid 1680×944 $0.13944;
saved 1254×1254 uses 1248×1248 $0.24591. The last two
are calculator proxies, not exact tariffs for those files. Actual
generation quality and image input tokens are unavailable. Build:
55 × 0.13944 + 46 × 0.165 + 2 × 0.24591 = $15.7510200;
redesign:
6 × 0.13944 + 6 × 0.165 + 4 × 0.24591 = $2.8102800; total
$18.5613000.
⁴ Orchestrator formula and boundary. Use the explicitly
supplied by_stage prices: build $24.20,
redesign $37.42, sum $61.62. Rates
F/cache-read/1h-cache-write/output are
4 / 0.20 / 8 / 20 USD/M; 5-minute cache writes are
zero. The unrounded recomputations are $24.2031742 and
$37.4160834, consistent with the rounded stage prices.
The older top-level snapshot says $61.41 and 455 responses; the stage
records sum to 456 responses and have newer token totals. We use the
requested stage split consistently, not that stale top-level total. This
is one session across both stages, not two sessions; responses are not
delegate turns. The redesign includes writing and fixing the delegate
skill's plan workflow in that same session, so it is not solely
site-production cost. The JSON links its
Claude price source.
Shares and rounding: orchestrator share = stage orchestrator USD / (unrounded agent USD + stage orchestrator USD) × 100. Currency totals sum unrounded text and image costs, so rounded rows may differ by a cent from displayed totals.
Recomputable text subtotals
Each line below sums exactly the matching run IDs in usage.json under the formula above. F/C/O/R counts and hours are in the cost table; the explicit IDs and rate selections remove ambiguity about grouping.
| Group | Build IDs | Build text USD (unrounded) | Redesign IDs | Redesign text USD (unrounded) |
|---|---|---|---|---|
| Codex |
codex-1, codex-10,
codex-11, codex-12,
codex-13, codex-14,
codex-15, codex-16,
codex-17, codex-18,
codex-19, codex-2,
codex-20, codex-21,
codex-22, codex-23,
codex-24, codex-25,
codex-3, codex-4,
codex-5, codex-6,
codex-7, codex-8,
codex-9, cursor-2-nested-codex
|
37.3392162 |
codex-26, codex-27,
codex-28, codex-29,
codex-30, codex-31,
codex-32, codex-33
|
40.6521244 |
| Cursor GPT | cursor-2, cursor-5 |
6.5245640 |
cursor-10, cursor-11,
cursor-12, cursor-7,
cursor-8, cursor-9
|
23.7161364 |
| Cursor Grok |
cursor-1, cursor-4,
cursor-6
|
2.7119700 | — | 0.0000000 |
| Antigravity |
antigravity-1, antigravity-2,
antigravity-3, antigravity-4,
antigravity-5, antigravity-6,
antigravity-7, antigravity-8,
antigravity-9
|
8.9036118 |
antigravity-10, antigravity-11,
antigravity-12, antigravity-13
|
0.0000000 |
| Gemini API text |
gemini-api-1, gemini-api-2,
gemini-api-3
|
1.1323880 | — | 0.0000000 |
The long-context uplift is $3.2097834 in the build and $17.2533492 in the redesign. An all-base GPT-6.1 Sol sensitivity reduces both-stage agent cost by $20.46 to $120.49, and combined cost to $182.11; this changes no usage counts. The original build report was $72.05 agents / $23.24 orchestrator: the current build includes codex-25's second turn (639 seconds versus 501, with refreshed tokens) and the updated $24.20 stage snapshot. Those snapshot changes explain the revised build figures.
Images: attempts, not files
Generated outputs include rejected attempts. Cropping icons, keying backgrounds, favicon exports, contact sheets, atlas pin previews, deterministic SVGs and delivery derivatives are not additional generations. The image ledger records the attempts; the decision log confirms the Nano Banana reply counts.
| Stage / run | Batch | Wide 1672×941/940 | Portrait 1024×1536 | Landscape 1536×1024 | Square 1254×1254 | Generated | Retained originals | Discarded | Output USD |
|---|---|---|---|---|---|---|---|---|---|
Build / codex-3 |
Style candidates | 4 (one ×940) | 0 | 0 | 0 | 4 | 3 | 1 | 4 × 0.13944 = 0.55776 |
codex-4 |
Style anchors | 4 | 1 | 0 | 2 | 7 | 4 | 3 | 4 × 0.13944 + 0.165 + 2 × 0.24591 = 1.21458 |
codex-7 |
Key art + website concepts | 17 | 0 | 0 | 0 | 17 | 9 | 8 | 17 × 0.13944 = 2.37048 |
codex-8 |
Full characters | 0 | 14 | 0 | 0 | 14 | 8 | 6 | 14 × 0.165 = 2.31000 |
codex-9 |
Teaser characters | 0 | 14 | 0 | 0 | 14 | 9 | 5 | 14 × 0.165 = 2.31000 |
codex-10 |
Regions | 9 | 0 | 0 | 0 | 9 | 6 | 3 | 9 × 0.13944 = 1.25496 |
codex-11 |
Bestiary bosses | 14 | 0 | 0 | 0 | 14 | 6 | 8 | 14 × 0.13944 = 1.95216 |
codex-12 |
World bosses | 7 (one ×940) | 0 | 0 | 0 | 7 | 6 | 1 | 7 × 0.13944 = 0.97608 |
codex-13 |
Mounts | 0 | 0 | 8 | 0 | 8 | 6 | 2 | 8 × 0.165 = 1.32000 |
codex-14 |
Pets | 0 | 0 | 9 | 0 | 9 | 6 | 3 | 9 × 0.165 = 1.48500 |
| Build / Codex subtotal | Style and production | 55 | 29 | 17 | 2 | 103 | 63 | 40 | 15.7510200 |
| Build / antigravity-7 | Nano Banana sheets | — | — | — | — | 8 | 6 | 2 | 0.4032000 |
| Redesign / codex-26 | Navigation concepts | 6 | 5 | 0 | 0 | 11 | 6 | 5 | 1.6616400 |
| Redesign / codex-27 | Logo concepts | 0 | 0 | 0 | 4 | 4 | 3 | 1 | 0.9836400 |
| Redesign / codex-31 | Painted atlas | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0.1650000 |
| Redesign / cursor-7 | Nano Banana UI icon sheets | — | — | — | — | 3 | 2 | 1 | 0.1512000 |
| Redesign / cursor-8 | Nano Banana masks/dividers | — | — | — | — | 7 | 7 | 0 | 0.3528000 |
| Redesign / cursor-9 | Nano Banana ornaments | — | — | — | — | 6 | 6 | 0 | 0.3024000 |
| Redesign / cursor-10 | Nano Banana final logo | — | — | — | — | 4 | 3 | 1 | 0.2016000 |
| Redesign subtotal | 6 | 5 | 1 | 4 | 36 | 28 | 8 | 3.8182800 | |
| Both stages | 61 | 34 | 18 | 6 | 147 | 97 | 50 | 19.9725000 |
Navigation has six first passes and five remakes; one rejected mobile first pass was actually landscape 1672×940. Logo concept C needed a second attempt to retain the full KAELVORN spelling. The atlas was retained on its first generation. Nano Banana redesign counts reconcile to 3 + 7 + 6 + 4 = 20: icons discarded one sheet; masks' rejected 5:1 requests generated nothing; ornaments had no remakes; the horizontal logo needed one remake. Icon validation also rejected one request before generation. These failed requests add no images.
The build's 103 Codex generations yielded 63 retained originals (seven style references and 56 production paintings); eight Nano Banana generations yielded six sheets, cut into 48 skill and seven item icons. The original filesystem reconciliation remains 103 − 40 + 8 − 2 + 55 = 124 build PNGs, including six sheets and seven style references, versus 111 production assets. That historical count is not the redesigned repository's current PNG count.
Who did what in the redesign
The original plan had 11 units; atlas became a new unit and benchmark followed publication. Times below are complete recorded run durations, including follow-ups, from usage.json; outcomes come from DECISIONS.md, starting at “Redesign (phase 10)”, and the plan. Zero recorded duration on quota attempts does not establish zero actual waiting time.
| Delegation / unit | Agent / model | What it made | Time / turns | Outcome |
|---|---|---|---|---|
antigravity-10 · audit |
antigravity / gemini-4-argon-high |
No accepted audit | 0h 00m 00s / 0 | Failed on account quota; reassigned to codex-28. |
antigravity-11 · ornaments |
antigravity / gemini-4-argon-medium |
No accepted ornaments | 0h 00m 00s / 0 | Stopped as the account quota failed; reassigned to cursor-9. |
antigravity-12 · masks |
antigravity / gemini-4-argon-medium |
No accepted masks | 0h 00m 00s / 0 | Failed on account quota; reassigned to cursor-8. |
antigravity-13 · ui-icons |
antigravity / gemini-4-argon-medium |
No accepted icons | 0h 00m 00s / 0 | Failed on account quota; reassigned to cursor-7. |
codex-26 · nav-concepts |
codex / gpt-6.1-sol |
Three desktop/phone concept pairs | 0h 19m 36s / 1 | Accepted C central HUD, with B’s hanging Adventures dropdown; closed after shell acceptance. |
codex-27 · logo-concepts |
codex / gpt-6.1-sol |
Three logo directions | 0h 12m 13s / 2 | Accepted B heraldic crest; finisher isolated shield and simplified favicon; closed after consumer acceptance. |
cursor-7 · ui-icons |
cursor / gpt-5.6-sol-medium |
Twelve transparent interface icons from two retained sheets | 0h 05m 14s / 1 | Accepted; wide padding left for shell to trim. |
cursor-8 · masks |
cursor / gpt-5.6-sol-medium |
Seven brush masks/dividers | 0h 06m 06s / 1 | Accepted; 4:1 banner replaces unsupported 5:1; key.py collision resolved as key_masks.py. |
cursor-9 · ornaments |
cursor / gpt-5.6-sol-medium |
Six painted crown/edge/corner/divider assets | 0h 08m 31s / 1 | Accepted; helper scripts renamed to avoid collisions. |
cursor-10 · logo-final |
cursor / gpt-5.6-sol-medium |
Lockups, shield emblem, favicon exports | 0h 06m 33s / 1 | Accepted; concept B finished with Nano Banana. |
codex-28 · audit |
codex / gpt-6.1-sol |
20 screenshots; route/component inventory | 0h 20m 31s / 1 | Accepted; mobile-concept gap closed by nav-concepts; closed after all three consumers accepted. |
codex-29 · svg-art |
codex / gpt-6.1-sol |
29 SVGs, each under 3 KB, placement README | 0h 12m 05s / 1 | Accepted; Left open exposed missing painted atlas and triggered new unit. |
codex-30 · build-shell |
codex / gpt-6.1-sol |
HUD, responsive menu, masks, frames, icons, atlas and shared page layouts | 2h 07m 46s / 5 | Accepted, then sent back for review findings and clipped/doubled header logo; five turns include atlas and final polish. Review fixes reported 261 tests / 36 smoke checks. |
codex-31 · atlas |
codex / gpt-6.1-sol |
3:2 painted parchment map and six measured pins | 0h 03m 18s / 1 | Accepted; attached to build-shell as follow-up; closed on handoff. |
cursor-11 · build-pages, pass 1 |
cursor / gpt-5.6-sol-high |
Open sections, framed feature/dossier/news cards, masked art | 0h 13m 00s / 1 | Accepted pending review; later closed and reassigned to fresh cursor-12 on current shared code. |
codex-32 · review |
codex / gpt-6.1-sol |
94-item audit and 19 findings | 0h 24m 06s / 1 | Not ready: 42 closed, 48 partly, 4 open; sent findings to shell and a fresh pages run. F13 crown ornament request partly accepted as is. |
cursor-12 · build-pages, pass 2 |
cursor / gpt-5.6-sol-high |
Page findings and follow-up fixes | 0h 22m 59s / 2 | Sent back after empty plan-approval turn, then again for N1–N3 and F4/F6/F15; final decision log says every unit closed and redesign published. Usage snapshot reports only two turns. |
codex-33 · review, re-review |
codex / gpt-6.1-sol |
Verification of all 19 findings | 0h 27m 14s / 1 | 14 fixed, 5 partly, 3 regressions; N1–N3 sent to pages. Remaining F13/F18 accepted as intentional ornament/polish. |
The benchmark unit itself is this report; no codex-34 usage record exists in the supplied snapshot. Redesign Antigravity records contain four attempts, zero recorded turns/seconds and no token fields: $0.00 recorded is a lower-bound accounting entry, not evidence that the failed harness sessions consumed no resources.
What the plan workflow changed
Checked consumers before launch.
plan check caught two outputs with no consumer before wave
1 started. The decision log does not name the two files, so they cannot
be identified from these inputs; the useful change was requiring an
explicit handoff for every output, instead of assuming generated work
would be integrated.
Reassignment kept the work moving. Antigravity
exhausted its account quota, with a reported reset roughly 125 hours
away; audit, ornaments, masks and ui-icons could not finish there. The
plan moved audit/review to Codex with headless Chrome and image-making
units to Cursor GPT-5.6 Sol, retaining Nano Banana through
gemini-api image; logo-final changed assignment before an
Antigravity run was launched.
Send-backs preserved context and respected new code. The first visual review's 19 findings went back to codex-30 for shared components, while page fixes started on a fresh Cursor worktree because cursor-11 predated the shared changes. Re-review still found three regressions—mobile launch art below the fold, fragmented “Revealed soon” text and copy over brush fringes—so cursor-12 received another follow-up; the orchestrator also returned clipped/doubled header branding to its shell owner.
Left open became an owned deliverable. The SVG unit's README exposed that the audit called for a painted world atlas, but no unit made it. The orchestrator added atlas, accepted its 3:2 painting and six pin positions, then sent it to the existing shell builder as an attached follow-up; acceptance by consumers also determined when upstream units closed.
Incremental application needed an explicit contract.
The benchmark brief identifies incremental diff --apply as
a skill fix discovered during the workflow: repeated follow-ups require
applying the new delta against already accepted work. The supplied
decision log does not describe its implementation or verification, so
this report records the fix without claiming a particular patch
algorithm or test result.
Follow-up timeouts must inherit the run's settings.
codex-30's third turn hit 30 minutes because
send ignored the timeout used by start; the
decision log records a skill fix. A follow-up is part of the same
long-running unit and needs its execution settings carried forward along
with its context.
Completion needs a parseable status line. The benchmark
brief lists a status-line skill fix, and the delegate brief requires a
final STATUS: done, STATUS: question … or
STATUS: blocked … line. That gives the orchestrator an
explicit terminal outcome beside the deliverables and Left open list;
the supplied sources do not detail the parser change.
Nobody approves plans mid-turn. cursor-12 initially ended empty after creating a plan for approval, so it was sent back; the skill now tells delegates nobody approves plans during their turn. Delegates must execute within the brief, or finish with a concrete question when an orchestrator decision is essential, rather than wait for an interactive approval that cannot arrive.
Who did what in the build
The first stage's complete run table is retained below. Durations now use the refreshed usage snapshot (notably codex-25's two turns); the original per-phase acceptance and rework notes remain useful context. Units often ran in parallel.
| Phase | ID | Agent / model | What it made | Time | Rework / follow-up and reason |
|---|---|---|---|---|---|
| 0 · Setup | codex-1 |
Codex / gpt-6.1-sol |
Vite/React/TypeScript scaffold and checks | 8m 00s | Accepted as is; local Node version differed from .nvmrc, but checks passed. |
| 1 · R1 | antigravity-1 |
Antigravity / gemini-4-argon |
MMO marketing-site research | 10m 57s | Accepted as written. |
| 1 · R2 | antigravity-2 |
Antigravity / gemini-4-argon |
In-game UI and accessibility research | 17m 17s | Accepted; raw genre rarity colours failed AA, so calibrated tokens were used. |
| 1 · R3a | antigravity-3 |
Antigravity / gemini-4-argon |
Three art directions with references | 8m 13s | Accepted; user chose direction A in phase 2. |
| 1 · R3b | antigravity-4 |
Antigravity / gemini-4-argon |
Self-hosted typography and colour system | 9m 01s | Accepted; calibrated AA colour pairs informed the spec. |
| 1 · R4 | antigravity-5 |
Antigravity / gemini-4-argon |
Legal-page research and outlines | 8m 02s | Accepted as written. |
| 1 · R5 | codex-2 |
Codex / gpt-6.1-sol |
Frontend, image delivery and countdown research | 12m 56s | Accepted as written. |
| 1 · R6 | antigravity-6 |
Antigravity / gemini-4-argon |
Ten naming candidates and checks | 12m 49s | User chose Kaelvorn; repo renamed, delegation project tag retained. |
| 2 · Art direction | codex-3 |
Codex / gpt-6.1-sol |
Three style candidates | 5m 16s | One internal remake of A for broader brushwork; A selected. |
| 2 · Style bible | codex-4 |
Codex / gpt-6.1-sol |
Style bible and four reference anchors | 10m 04s | Three internal remakes: composition, clipped creature, icon gutters. |
| 3 · Lore | gemini-api-1 |
Gemini API / gemini-4-argon |
World lore, then all 13 characters | 9m 00s | Two turns; 13 Grok findings later applied by codex-5 without rewriting the whole bible. |
| 3 · Data | codex-5 |
Codex / gpt-6.1-sol |
Typed game data, validator and lore corrections | 19m 38s | Follow-up turn applied all 13 findings; prose/prompt files excluded from Prettier; reveal dates omitted. |
| 3 · Design review | cursor-1 |
Cursor / grok-4.7 |
Lore consistency and marketing review | 9m 13s | All 13 findings and reveal ordering accepted; corrections assigned to codex-5. |
| 4 · Spec | codex-6 |
Codex / gpt-6.1-sol |
Technical spec: routes, components, assets and budgets | 14m 51s | Merged with copy spec: data wins facts, spec wins routes; canonical news slugs and legal identity settled. |
| 4 · Copy | gemini-api-2 |
Gemini API / gemini-4-argon |
Page sections and marketing copy | 9m 17s | Merged with technical spec; five news slugs adopted; copy later revised after reviews. |
| 5 · Key art | codex-7 |
Codex / gpt-6.1-sol |
Three key paintings and six website concepts | 28m 15s | Eight internal remakes for composition, subjects and plain UI; finals accepted. |
| 5 · Full characters | codex-8 |
Codex / gpt-6.1-sol |
Four splashes and four portraits | 14m 07s | Six internal remakes for subject/style/framing; finals accepted. |
| 5 · Teasers | codex-9 |
Codex / gpt-6.1-sol |
Nine teaser splashes | 12m 42s | Five internal remakes for clipped silhouettes and character proportions; finals accepted. |
| 5 · Regions | codex-10 |
Codex / gpt-6.1-sol |
Six regional paintings | 10m 56s | Three internal remakes: Dunes sky/framing and Crown storm clearance; finals accepted. |
| 5 · Bestiary | codex-11 |
Codex / gpt-6.1-sol |
Six dungeon/raid boss paintings | 16m 19s | Eight internal remakes for subject details, style and clipped silhouettes; finals accepted. |
| 5 · World bosses | codex-12 |
Codex / gpt-6.1-sol |
Six open-world boss paintings | 6m 44s | One internal remake repaired disconnected Unstruck Pipe body arcs; finals accepted. |
| 5 · Mounts | codex-13 |
Codex / gpt-6.1-sol |
Six mount paintings | 11m 05s | Two internal remakes for six readable feet and four complete wings; finals accepted. |
| 5 · Pets | codex-14 |
Codex / gpt-6.1-sol |
Six pet paintings | 8m 07s | Three internal remakes for body proportions and countable shards/mushrooms; finals accepted. |
| 5 · Icon sheets | antigravity-7 |
Antigravity / gemini-4-argon |
Six Nano Banana sheets, cut into 55 icons | 25m 08s | Two sheet remakes (Kaelen, Tessa); one invalid request generated no image. Crisper style accepted at 64 px. |
| 6 · Build A | codex-15 |
Codex / gpt-6.1-sol |
Design system, shell, image pipeline and prerendering | 32m 07s | Follow-up raised shared-shell gate to 110 KiB; B later found hydration deadlock, fixed by codex-17. |
| 6 · Build B | codex-16 |
Codex / gpt-6.1-sol |
Skill trees, atlas, character selector and dossiers | 19m 42s | Found A’s production deadlock; integration heading conflict fixed by codex-18; review fixes followed. |
| 6 · Build C | cursor-2 |
Cursor / gpt-5.6-sol |
Builder C supervision; started nested Codex | 26m 39s | Mistook CLAUDE.md for its own role; whole implementation delegated. Its decision-log edits were dropped. |
| 6 · Build C, nested | cursor-2-nested-codex |
Codex (nested) / gpt-6.1-sol |
31 content pages, copy modules and tests | 24m 35s | Actual C implementation credited to Codex; one integration test remained for codex-18. |
| 6 · Hydration fix | codex-17 |
Codex / gpt-6.1-sol |
Production import/hydration fix and smoke test | 12m 45s | Follow-up to A after B found top-level await deadlock; added npm run smoke. |
| 6 · Integration | codex-18 |
Codex / gpt-6.1-sol |
Combined B and C; world-page section structure | 4m 58s | Fixed duplicate h2 structure rather than weakening the failing test. |
| 6 · Budget gates | codex-19 |
Codex / gpt-6.1-sol |
Updated home/static route budget gates | 0m 51s | Follow-up: measured 166.5/150.6 KiB exceeded 160/150; gates set to 175/160 pending Lighthouse. |
| 7 · Marketing review | cursor-4 |
Cursor / grok-4.7 |
Marketing, copy and UX findings | 4m 46s | 17 findings (3 high), accepted; copy and C-page fixes, then a re-check. |
| 7 · Browser review | antigravity-8 |
Antigravity / gemini-4-argon |
Responsive/a11y review with 46 screenshots | 5m 15s | 12 findings (6 high). Decision log says foreground preview timed out and review needed a second turn; usage records only one. |
| 7 · Performance review | codex-20 |
Codex / gpt-6.1-sol |
Lighthouse, links and image-weight audit | 23m 57s | 9 findings, including late character-route CSS; fixes assigned to codex-21. |
| 8 · Copy fixes | gemini-api-3 |
Gemini API / gemini-4-argon |
Home hook, return loops and countdown copy | 0m 15s | Copy handed to Cursor for C-page implementation. |
| 8 · A/B fixes | codex-21 |
Codex / gpt-6.1-sol |
Performance, accessibility, layout and interaction fixes | 26m 13s | Three recorded turns; character desktop score 79→100. Browser/Grok re-checks still found open issues. |
| 8 · C fixes | cursor-5 |
Cursor / gpt-5.6-sol |
Content-page, copy, alt-text and layout fixes | 7m 52s | Re-checks found incomplete fixes and regressions, including news-card overflow and wrong article art. |
| 8 · Browser re-check | antigravity-9 |
Antigravity / gemini-4-argon |
Browser verification of fixes | 13m 10s | 10/12 original findings fully fixed; new card-layout blocker and copy defects sent to codex-23. |
| 8 · Marketing re-check | cursor-6 |
Cursor / grok-4.7 |
Re-check of all 17 marketing findings | 5m 54s | Partial fixes and 8 new issues; final follow-up assigned to codex-23. |
| 8 · Final fixes | codex-23 |
Codex / gpt-6.1-sol |
Remaining findings from both re-checks | 11m 48s | Then orchestrator visual check found four further polish issues; codex-24 followed. |
| 8 · Polish | codex-24 |
Codex / gpt-6.1-sol |
Hero crop, badge, game buttons and mobile action bar | 13m 49s | Final pre-publication polish; benchmark reporting follows. |
| 9 · Benchmark prices | codex-22 |
Codex / gpt-6.1-sol |
Published price sources and machine-readable rate card | 4m 25s | Ran alongside phase 8; valuation uses high-quality image prices and declared size proxies. |
| 9 · Benchmark report | codex-25 |
Codex / gpt-6.1-sol |
Benchmark report, cost calculations and SVG chart | 10m 39s | Both recorded turns included in this refreshed build snapshot. |
Build lessons retained
Cursor delegated the builder’s entire job. Builder C
read the orchestrator’s CLAUDE.md, assumed that role and
launched a 1,475-second Codex worker; its implementation was accepted,
but its decision-log edits were discarded. The
delegate lesson is to make role and scope explicit in every
brief: subsequent briefs say the agent is a delegate, must do the work
itself and must not edit the decision log; account for nested workers
under their actual harness.
A foreground server consumed the browser reviewer’s turn.
The decision log says Antigravity’s first review turn timed out while
running vite preview in the foreground, and a second turn
wrote findings from 46 screenshots. The skill lesson is to start
persistent servers in the background and preserve evidence between
turns; the snapshot records only one turn for
antigravity-8, so it cannot quantify the missing attempt
separately.
Builder B found a production hydration deadlock in A’s shell.
A top-level await import() in
preferences.tsx blocked production hydration even though
earlier checks had passed. The fix became a separate Codex run with
npm run smoke: delegated handoffs need a built-site browser
check of real interaction, not just compilation and unit tests.
Budget gates stopped integration twice. Builder A’s shell measured 102.4 KiB gzip against a 100 KiB gate; the orchestrator raised it to 110, then later raised home/static route gates from 160/150 to 175/160 after measuring 166.5/150.6. The lesson is to give delegates a measured dependency baseline and an escalation path for budget changes, then require performance evidence: Lighthouse subsequently identified a real late-CSS defect rather than treating the relaxed gates as proof of acceptable UX.
Ownership boundaries still needed an integration pass.
B’s WorldMap brought its own h2 into C’s
/world section, breaking one integration test; the
integration worker corrected the page structure instead of changing the
assertion. The skill should specify shared component contracts, merge
checkpoints and an integration owner; phase 8 then split copy, A/B and C
fixes by ownership so parallel agents would not edit the same files.
Reviews and fixes needed more than one round. Three phase 7 reviewers returned 17 marketing, 12 browser and 9 performance findings; fixes reached 257 tests and 11 smoke checks and raised character-page desktop Lighthouse from 79 to 100, but the browser/Grok re-checks found incomplete fixes and new regressions. After a final fix run, the orchestrator’s own visual pass still found four polish issues, so the lesson is to budget for independent re-checks and a final visual acceptance pass, with concrete routes, widths and evidence in every fix brief.
Art delivery hid substantial iteration. All 56 phase 5 Codex finals were accepted by the orchestrator, yet the complete ledger records 40 discarded Codex attempts across style and production work, plus two discarded Nano Banana sheets. The skill should preserve per-attempt image counts, native dimensions and rejection reasons; final file counts alone understate generation cost and the effort needed for consistent art.
Scope, timing and verification limits
- Elapsed versus summed time: the original build's commit bracket ran from 2026-10-25 23:07:26 to 2026-10-26 03:49:19 (+02:00), 4h 41m 53s; including its first benchmark turn estimated roughly 4h 51m. Those are historical estimates, not updated stage wall times. usage.json has durations without start/end timestamps, so redesign elapsed time and active orchestrator hours cannot be recovered.
- Nested overlap: cursor-2's 1,599 seconds contain its 1,475-second nested Codex worker. Subtracting that interval once yields build 8h 43m 02s, and both stages 13h 52m 14s; this still is not wall time because other workers overlapped. Runs count unique delegation records, turns include recorded follow-ups.
- Snapshot gaps: the decision log describes more cursor-12 follow-up activity than its two recorded turns, and Antigravity's build browser retry is not fully represented by its turn count. Outcomes follow the final decision log; quantitative usage follows usage.json without inventing missing tokens/time. The current writer and later orchestrator work are outside the snapshot.
- Valuation limits: token categories vary by harness; Standard speed and the stated approximate context tiers are assumptions. Excluded items include separately unreported cache writes, image prompt/reference and image-model text/thinking charges, tool/search charges, taxes and subscription fees. Agent cost_usd zeros in the JSON are not invoices.
- Evidence of the result: the decision log records publication and every redesign unit closed. Re-review was not a claim that every visual issue disappeared: F13/F18 were partly accepted, and the last fixes were accepted by the orchestrator; this report does not claim a further independent post-publication audit.