# Decisions

One dated line each: a style chosen, a re-do, a brief changed.

- 2026-10-25: Phase 0 and phase 1 start together; every research run is a `--write` run that writes only its own `research/<topic>.md`, so the eight worktrees never touch the same file.
- 2026-10-25: Models: Codex on GPT-6.1-Sol (its configured default), Antigravity on Gemini 4 Argon.
- 2026-10-25: Phase 0 (codex-1) applied as is: `npm run check` passes on the local Node 24.9 too, though `.nvmrc` asks for 24.22.1 (jsdom 30's floor is 24.15 per `engines`; the tests ran).
- 2026-10-25: The game is **Kaelvorn** (slug `kaelvorn`), the user's pick from R6's 10 names (R6's top pick too). The GitHub repo is renamed `Fullstack-Rocks/kaelvorn`; the local folder and the `mmorpg-demo` delegation tag stay, so running worktrees and the benchmark's grouping don't break.
- 2026-10-25: Launch moment: 2027-04-22 16:00 UTC (a Thursday, about six months out), to live in one constant.
- 2026-10-25: Phase 1 complete: all seven research files applied as written. R2 and R3b both found that the genre's raw rarity hexes fail AA on dark panels; the spec will take R3b's calibrated tokens.
- 2026-10-25: Art direction **A, Gilded Chiaroscuro** (painterly oil and palette knife), the user's pick of the three candidates and the orchestrator's recommendation: the strongest hero image, and its loose brushwork forgives the drift of ~65 more AI images. Its known weakness, small icons, is handled with a tighter "hard-edged impasto close-up" icon suffix.
- 2026-10-25: The lore run (Gemini API, no worktree) starts while phase 2's style bible is still being made: it depends on nothing from phase 2, and nothing of phase 3 is committed before phase 2 is.
- 2026-10-25: Lore bible (gemini-api-1, two turns: world, then the 13 characters) saved as `content/lore.md` with only the writer's closing summaries removed; the Grok review decides the fixes.
- 2026-10-25: The Grok lore review (cursor-1, `docs/reviews/3-lore-review-grok.md`) is accepted in full: 13 findings and the teaser reveal plan. The data builder (Codex) applies it to `content/lore.md` and `src/data/` in a follow-up turn, rather than Gemini rewriting 21,000 words, so untouched text stays word for word.
- 2026-10-25: `art/` and `content/` join `docs/` and `research/` in `.prettierignore`: the prompt ledger must stay word for word, and the lore is prose. This unblocks codex-5's `npm run check`.
- 2026-10-26: Phase 3 complete: codex-5 applied all 13 review findings to `content/lore.md` and `src/data/` (102 image keys; the validator now also checks each faction has all four roles). Its one open point, the reveal plan's week 24 falling after "thirty days out", is settled by not showing reveal dates: the site shows the teasers in reveal order with "revealed soon", and the weeks stay in the data as the plan.
- 2026-10-26: Phase 4 merged (SPEC.md §11): data wins on facts, the spec on routes and paths, CONTENT.md's five news slugs replace the spec's; legal pages name Fullstack Rocks with its GitHub page as contact and ship no placeholders; 115 images approved (6 website concept arts added back from the plan); profile L tops out at 1600 px, because Codex's 16:9 images are 1672 px wide and art is never enlarged.
- 2026-10-26: Icon sheets (antigravity-7, Nano Banana via gemini-api): accepted. The icons are crisper and glossier than the oil-painted art, but they read as one clear object at 64 px, which matters more at icon size; the phase 7 review can flag any that clash.
- 2026-10-26: Image count for the benchmark: antigravity-7 made 8 billed Nano Banana 2.1 images at 2K through `gemini-api image` (6 sheets + 2 re-makes, Kaelen's and Tessa's); one request failed validation and made none.
- 2026-10-26: Phase 5 complete: 56 Codex images in 8 parallel batches (codex-7 to codex-14: key art and concepts, full characters, teasers, regions, bestiary and world bosses, mounts, pets) and 6 Nano Banana sheets cut into 55 icons (antigravity-7). Every image was checked in a contact sheet; none needed a re-do from the orchestrator. All 111 sources the spec names exist.
- 2026-10-26: Builder A (codex-15) stopped on the spec's 100 KiB gzip budget for the shared shell (102.4 KiB). The budget becomes **110 KiB**: React 19, React Router and Motion's baseline sit near 100 KiB, and the route budgets above it still hold. A updates its gate and SPEC.md §8.
- 2026-10-26: Builder B (codex-16) found a release blocker in A's shell: a top-level `await import()` in `preferences.tsx` deadlocks hydration in production builds. A new Codex run (as builder A) fixes it and adds a headless-browser smoke test, `npm run smoke`, so production hydration is checked from now on.
- 2026-10-26: Builder C (cursor-2, Cursor on GPT-5.6 Sol) read the repo's `CLAUDE.md`, took itself for the orchestrator and delegated the whole job to a nested Codex run (default model, 1,475 s) through the delegate skill. Its source is applied; its edits to `docs/DECISIONS.md` are dropped and its own brief is kept as `docs/briefs/6-build-c-nested-by-cursor.md`. The nested run's transcript is kept in `.delegate/cursor-2-nested-codex` so the benchmark credits Codex for the work. From now on every brief says the agent is not the orchestrator and must not delegate.
- 2026-10-26: Integration of B and C leaves one failing test: B's real `WorldMap` brings its own `h2` into C's map section on `/world`. A Codex integration run fixes the page structure (one heading per section) rather than the test.
- 2026-10-26: With B and C integrated, home's JS is 166.5 KiB gzip (budget 160) and the static pages 150.6 (budget 150). Budgets become 175 KiB for home and 160 KiB for the static pages; Lighthouse in phase 7 decides whether anything must be trimmed.
- 2026-10-26: Phase 6 complete (builders A, B, C plus three fix runs). Phase 7 runs three reviews in parallel: Grok 4.7 in Cursor (marketing, copy, UX; read-only), Antigravity in its browser (every route at 320/768/1440, accessibility, reduced motion; screenshots), Codex (Lighthouse, links, image weight).
- 2026-10-26: Phase 7 reviews: Grok 17 findings (3 high), Antigravity 12 (6 high; its first turn timed out after running `vite preview` in the foreground, and a second turn wrote the review from its 46 screenshots), Codex 9 (Lighthouse 79 to 100, accessibility 100 everywhere; 1 high: route CSS arrives late on character pages). All accepted except: links keep no trailing slash, since GitHub Pages redirects `/world` to `/world/`; the client falls back to a fresh render when the URL doesn't match the prerendered page, as Antigravity proposed.
- 2026-10-26: Phase 8 split by ownership so the fix runs never touch the same files: Gemini writes the new copy (home first screen, return loops, countdown states); Codex fixes A's and B's files; Cursor on GPT-5.6 Sol fixes C's pages with Gemini's copy.
- 2026-10-26: Phase 8 fixes applied: Codex (A/B: prerendered route CSS, render fallback, action bar, sizes, a11y, shareable Calling links, teaser lines; character page Lighthouse desktop 79 to 100) and Cursor GPT-5.6 Sol (C: home first screen, return loops, copy cleanup, alt text, layout). 257 tests and 11 headless-Chrome smoke checks pass. One more review round follows: Antigravity re-checks in its browser, Grok re-checks its findings.
- 2026-10-26: After the final pass (codex-23) the orchestrator's own look found four polish items no review had raised (hero crop too tight after the action-bar fix, the header badge breaking a word, primary actions styled as plain links, a 9-tile mobile navigation filling the first screen); one more Codex run fixes them before publishing.
- 2026-10-26: Published: the build (without its budget report) is in `kaelvorn/` on the `gh-pages` branch of `Fullstack-Rocks/skills`, with a card on the landing page and a home screenshot as its image. The benchmark run (Codex) writes `docs/BENCHMARK.md` and its chart from `docs/benchmark/`.
- 2026-10-26: Phase 9 complete: the site is live at https://fullstack-rocks.github.io/skills/kaelvorn/ (verified: hydration, the skill tree, no outside hosts, no broken images) with a card on the landing page. `docs/BENCHMARK.md` (codex-25): 43 runs, $72.05 for the agents and $23.24 for the orchestrator at list prices.
- 2026-10-26: Redesign (phase 10) runs on the delegate skill's new plan workflow: `delegation-plan.md` names 11 units with roles, agents, models, efforts, inputs, outputs and handoffs; `plan check` caught two outputs nobody used before anything started. The concept mock-ups are the target look of every unit. Wave 1, in parallel: audit, nav-concepts, logo-concepts, ornaments, masks, ui-icons.
- 2026-10-26: Antigravity's account quota ran out mid-wave ("Individual quota reached", resets in about 125 hours). ui-icons (antigravity-13) is reassigned to Cursor on GPT-5.6 Sol, whose shell runs `gemini-api image` the same way; the other Antigravity units follow if they fail too.
- 2026-10-26: masks (antigravity-12) failed on the same quota and is reassigned to Cursor on GPT-5.6 Sol. audit and ornaments are still running on Antigravity.
- 2026-10-26: audit (antigravity-10) failed on the quota too; ornaments (antigravity-11) is stopped before it does. The plan reassigns every Antigravity unit: audit and review to Codex (headless Chrome through Playwright, viewing its own screenshots), ornaments and logo-final to Cursor on GPT-5.6 Sol (`gemini-api image` from its shell).
- 2026-10-26: Logo: concept B (heraldic crest: indigo shield, cracked brass spire, sound rings, KAELVORN on a crimson banner), the most MMO-like and on-palette of codex-27's three. Per its Left open list, the finisher isolates the shield as the emblem and simplifies it for the favicon.
- 2026-10-26: ui-icons (cursor-7, 3 Nano Banana images): accepted. Left open for build-shell: the icons sit with wide padding in their squares; trim it when sizing them.
- 2026-10-26: masks (cursor-8, 7 Nano Banana images): accepted. Left open for build-shell: the banner mask is 4:1 (the API has no 5:1); crop or stretch it. Both Cursor runs wrote `art/ui/tools/key.py`; the masks copy is kept as `key_masks.py`.
- 2026-10-26: logo-final (cursor-10, 4 Nano Banana images): accepted: lockup, horizontal header logo, simplified emblem, favicons. logo-concepts (codex-27) closed now that its consumer accepted.
- 2026-10-26: Navigation: concept **C**, the central HUD (codex-26): compact, keeps the hero in view, the countdown in the bar, and a central slot for the new shield emblem; with concept B's hanging-banner dropdown for Adventures (Dungeons, Raids, Bestiary). The painted icons of ui-icons replace the concept's drawn ones.
- 2026-10-26: ornaments (cursor-9, 6 Nano Banana images): accepted: crown crest (large and small), corner, seamless edges, bell divider. Its helper scripts are kept as `key_ornaments.py` and `contact_sheet_ornaments.py`.
- 2026-10-26: audit (codex-28, reassigned from Antigravity): accepted: 20 screenshots, the full inventory of CSS-drawn elements, nested cards per route (13 on the home page, 17 on coming soon), square art, crown-moulding and icon placements. Its Left open note on missing mobile concepts is closed by nav-concepts' phone mock-ups. It stays open until its three consumers have accepted it.
- 2026-10-26: svg-art (codex-29): accepted: 29 SVGs, each under 3 KB, with a README of placements. Its README notes the audit gives the world atlas to painted art, which no unit made: a new unit, atlas (Codex), paints it with pin positions and hands it to build-shell as a follow-up.
- 2026-10-26: atlas (codex-31): accepted: a painted parchment atlas at 3:2 with six pins on their landmarks; sent to build-shell as a follow-up. Closed (its consumer gets the files as attachments).
- 2026-10-26: build-shell (codex-30, two turns: shell, then the atlas): accepted after checking its screenshots against the mock-ups: concept C's HUD with the emblem, painted icons, brush-masked hero, crown-moulded dossier, the painted atlas with beacons, the phone menu. 257 tests and smoke pass, no budget raised. Closed the units whose only consumer it was (nav-concepts, svg-art, ui-icons, masks, ornaments, logo-final). Left open for review: the small wordmark above the central emblem sits tight to the top edge.
- 2026-10-26: build-pages (cursor-11, Cursor on GPT-5.6 Sol, no nested delegation this time): accepted pending review: open sections, crown moulding on feature, encounter, dossier and lead-news cards, brush-masked art, painted icons. Audit (codex-28) closed: all three of its consumers accepted it.
- 2026-10-26: review (codex-32, reassigned from Antigravity): 94 audit items (42 closed, 48 partly, 4 open), 19 findings, verdict "not ready". Decisions per item: F1, F2, F3 (skill trees), F5, F8 to F12, F14, F18 (navigation and character marks) and F19 go back to build-shell (codex-30), which holds the context; it also adds a compact "sky" page-header layout and a quiet frame. F3 (world), F4, F6, F7, F15, F16, F17 and F18 (page icons) then go to a fresh build-pages run on the new shared code, since cursor-11's worktree predates it. F13 is accepted in part: the painted crown moulding stays (the user asked for Nano Banana ornaments), but plain dossiers get the quiet frame.
- 2026-10-26: build-shell's review fixes (codex-30, turns 3 and 4; turn 3 hit 30 minutes because send ignored the start timeout, fixed in the skill): all assigned findings fixed; 261 tests, 36 smoke checks. A fresh build-pages run takes the page findings on the new code, with cursor-11's reply (now closed) attached as docs/redesign/build-pages-pass-1.md.
- 2026-10-26: build-pages pass 2 (cursor-12): its first turn ended empty after trying to create a plan for approval (the skill now tells delegates nobody approves plans mid-turn); sent back once, it closed F3 (world), F4, F6, F7, F15 to F18. 261 tests and smoke pass. A re-review (Codex) checks every finding again.
- 2026-10-26: re-review (codex-33): 14 of 19 fixed, 5 partly, 3 regressions (N1 mobile launch art below the fold, N2 'Revealed soon' breaking into fragments, N3 copy over the brush fringe). Sent back to build-pages (cursor-12, whose worktree has the latest code; it may touch the character panels for N2 as no one else is writing): N1 to N3, F4 (clock into the hero, features before the lore), F6 (manifest beside the clock), F15 (Frost's landmark jump). Accepted as is: the rest of F13 (the painted crown curls were asked for) and F18 (more contextual marks are polish).
- 2026-10-26: The orchestrator's own look at 1440 px: the header's horizontal logo starts at y = -1 (clipped) and its small shield doubles the central emblem below it. Sent back to build-shell (codex-30, the header's owner).
- 2026-10-26: Redesign published: the build is live in `kaelvorn/` on `gh-pages` with a new card (a fresh headless-Chrome screenshot of the redesigned home page). 61 delegations in all, about 14 agent-hours. Every unit's delegations are closed.
- 2026-10-26: Benchmark updated (codex-34, two turns: the report, then relative links for the public page): build $96.97 (agents $72.77, orchestrator $24.20), redesign $105.61 (agents $68.19, orchestrator $37.42), $202.57 in all at list prices; checked against the orchestrator's own token-cost computation. Published at /skills/kaelvorn/benchmark/ with its ledgers.
