The deck
Roadmap
M-01 · Mechanics complete
Every remaining mechanic is built whole: its state, command or trigger, events, words, Effect and export fields, each tunable a named lever.
- EP-13 Game engine health9 landed · 6 left
- EP-01 Star & disk formation10 landed · 9 left
- EP-02 Giant impacts & assembly0 landed · 7 left
- EP-03 World events0 landed · 12 left
- EP-04 World climate & interiors0 landed · 6 left
- EP-05 Life & lineages2 landed · 18 left · 1 folded or retired
- EP-14 Gravitas earned1 landed · 27 left
M-02 · Web product v1
The web game is a product: the React foundation under every screen, and a turn flow a player on a phone can follow from the first screen to the end page.
- EP-07 UI foundation and the React conversion52 landed · 21 left · 1 folded or retired
- OB-10 Previews only when they show something: retired: deploys upload as an archive (--archive=tgz), so the Vercel upload limit no longer needs a preview cap; JT chose this over capping previews
- EP-08 Setup & turn flow2 landed · 19 left · 2 folded or retired
- EP-11 The game's site and brand13 landed · 7 left · 7 folded or retired
- MK-19 The crawlers' files open: folded into MK-14
- MK-20 The site's head: folded into MK-14
- MK-21 The link preview: folded into MK-14
- MK-22 Robots, the sitemap and structured data: folded into MK-14
- MK-23 The fonts load with the page: folded into MK-14
- MK-05 MarketingService: retired: the Gateway's email services left the deck with the deployed-game scope
- MK-07 Sends go out through Customer.io: retired: the Gateway's email services left the deck with the deployed-game scope
- EP-16 Gateway and accounts2 landed · 10 left
- EP-15 Saved systems2 landed · 17 left
M-04 · Balance
The levers are tuned to the curve and every balance row a mechanic loosened passes again.
- EP-10 Balance0 landed · 7 left
Up next (7)
- UI-38 The tab bar in React, redesigned: five tabs (Explore, Moments, Goals, Codex, Your move) with the game's icons at every width, Your move whole at 360 px, a tap that opens or closes and never commits; the old bar is never rebuiltui · M · sonnet
- QA-09 Schedule full coverage and cache canarytooling · S · sonnet
- QA-13 The gas giant Feel Lab's storms and activity follow the controls: storm age and drift are integrated, activity is the heat factortooling · M · opus
- QA-15 The asteroid prototype pipeline checks what it claims: the checker finds the sources and the replay, C01's atlas has coverage, a re-import replaces the level, Play shows the reviewed posetooling · M · opus
- GW-07 The domain is config: the domains environment imports the existing playdusttolife.com Route 53 zone, the prod tfvars examples name it, and every host, cookie and sign-in origin comes from DTL_PARENT_DOMAIN and DTL_SITE_URLtooling · S · sonnet
- GW-05 Marketing consent on the person: the person records an opt-in to marketing email with its timestamp, off unless given, and nothing sendstooling · M · sonnet
- AW-06 The management account's budgets keep their scope: infra/bootstrap's $25 project budget and $75 backstop filter by the management account, so the new member accounts' spend does not count toward themtooling · S · sonnet
Blocked (169)
EP-07 · UI foundation and the React conversion
- UI-36b kw() stops writing DOM: every keyword is a <Kw>ui · S · sonnetwaiting for mocks
- UI-39b The card peeks: on a phone a one-line peek of the turn card sits above the tab bar, the heading and End turn, and opening it shows the full card (the kit's peek rest)ui · S · sonnetUI-39 (depends), SF-07zd (depends), SF-07ze (both touch game/engine/src/view/sheet.ts)
- UI-48 The neighbour strip: on a phone the close-up has a row of the neighbouring worlds above its sheet, to switch between them with a thumb, and a button to the Bodies chipui · S · sonnetUI-46 (depends), UI-47 (depends), WL-29b (both touch game/engine/src/render/panels.ts), WL-29d (both touch game/engine/src/render/panels.ts), UI-44 (both touch game/engine/src/view/inspect.ts), UI-45 (both touch game/engine/src/view/inspect.ts)
- UI-49 Made of from the world card: the sheet drops its Made of chip and "What it is made of ›" on the world card opens the Made of cardui · S · sonnetUI-46 (depends), UI-47 (depends), SF-07zo (both touch game/engine/src/render/shots.ts), SF-07zp (both touch game/engine/src/render/shots.ts), SF-07zq (both touch game/engine/src/render/shots.ts), UI-40 (both touch game/engine/src/render/shots.ts), UI-44 (both touch game/engine/src/render/shots.ts)
- UI-11e The route's smoke: a Playwright check that /play on the Next build starts the game, at 390 and 1280, with no page errortooling · S · haikuUI-11d (depends), QA-10 (both touch game/engine/tools/ci.ts), QA-11 (both touch .github/workflows/ci.yml), UI-11 (both touch game/package.json), UI-11b (both touch game/package.json), UI-11c (both touch game/package.json)
- UI-38b The history card and the More card move to React; More gains the hand's row (Influence), which leaves the headerui · M · sonnetUI-38 (depends)
- UI-39 The dock's frame in React, redesigned as the kit's sheet: the 44 px grab, the head, the rests (Moments and Goals full, the rest half), More below when a half sheet holds more, the desktop's side column; the drag stays imperativeui · M · sonnetUI-38b (depends), UI-38 (both touch game/engine/src/render/main.ts)
- UI-40 The header in React, redesigned: one bar in three states (step 1, before Begin, in play), the glass capsule with the stage and the year, Power and Spark as text, More the one button; the old rail is never rebuiltui · M · sonnetUI-38b (depends), UI-39b (depends), UI-38 (both touch game/engine/src/render/main.ts), UI-39 (both touch game/engine/src/render/main.ts), DK-12b (both touch game/engine/src/render/bar.ts), DK-10 (both touch game/engine/src/render/bar.ts), SF-07zo (both touch game/engine/src/render/shots.ts), SF-07zp (both touch game/engine/src/render/shots.ts), SF-07zq (both touch game/engine/src/render/shots.ts), LG-03 (both touch game/engine/src/render/bar.ts), SF-07zb (both touch game/engine/ui.html), SF-07zc (both touch game/engine/src/render/main.ts), SF-07ze (both touch game/engine/ui.html), WL-29c (both touch game/engine/src/view/shots.ts), SF-07za (both touch game/engine/ui.html), SF-07zd (both touch game/engine/src/render/bar.ts)
- UI-40b The page's frame in React: the fabs (the chart on Explore at every width, where the System tab was), the tail and the no-WebGL notice; src/render keeps no hand-written DOM but the scene'sui · M · sonnetUI-40 (depends), UI-38 (both touch game/engine/src/render/tabs.ts), UI-38b (both touch game/engine/src/render/tabs.ts), UI-39 (both touch game/engine/src/render/main.ts), QA-11 (both touch game/engine/test/v_access.ts), DK-12b (both touch game/engine/src/render/main.ts), LG-09c (both touch game/engine/panels/lab.html ~ game/engine/panels/**), SF-07zb (both touch game/engine/ui.html), SF-07zc (both touch game/engine/src/render/main.ts), SF-07ze (both touch game/engine/ui.html), SF-07za (both touch game/engine/ui.html), SF-07zd (both touch game/engine/ui.html)
- UI-44 A world tap picks a world and the geology stage opens on the system view: the planets-mode writes become a pick, and one write takes the view back to the systemui · M · sonnetUI-40b (depends), UI-38 (both touch game/engine/src/render/tabs.ts), UI-38b (both touch game/engine/src/render/tabs.ts), UI-39 (both touch game/engine/src/render/main.ts), DK-12b (both touch game/engine/src/render/bar.ts), DK-10 (both touch game/engine/src/render/bar.ts), SF-07zo (both touch game/engine/src/render/shots.ts), SF-07zp (both touch game/engine/src/render/shots.ts), SF-07zq (both touch game/engine/src/render/shots.ts), WL-24 (both touch game/engine/src/render/worlds.ts), WL-28 (both touch game/engine/src/render/worlds.ts), WL-25c (both touch game/engine/src/render/worlds.ts), LG-03 (both touch game/engine/src/render/bar.ts), LN-06 (both touch game/engine/src/content/sentences.ts), LN-11 (both touch game/engine/src/content/sentences.ts), LN-13 (both touch game/engine/src/content/sentences.ts), LN-12 (both touch game/engine/src/content/sentences.ts), SF-07zc (both touch game/engine/src/render/main.ts), SF-07ze (both touch game/engine/src/render/setup.ts), WL-29b (both touch game/engine/src/render/worlds.ts), SF-07zd (both touch game/engine/src/render/bar.ts), UI-40 (both touch game/engine/src/render/main.ts)
- UI-45 The inset: a picked world shows in a small card over the system view (a corner card on desktop, the sheet's top on a phone) with its stats and Intervene, and tapping it opens the close-upui · M · sonnetUI-44 (depends), UI-39 (depends), UI-39b (depends), WL-24 (both touch game/engine/src/render/worlds.ts), WL-28 (both touch game/engine/src/render/worlds.ts), WL-25c (both touch game/engine/src/render/worlds.ts), LN-06 (both touch game/engine/src/content/sentences.ts), LN-11 (both touch game/engine/src/content/sentences.ts), LN-13 (both touch game/engine/src/content/sentences.ts), LN-12 (both touch game/engine/src/content/sentences.ts), WL-29b (both touch game/engine/src/render/worlds.ts)
- UI-46 The close-up and its chip: the inset opens the planets close-up with a "‹ System › World g" chip that goes back to the system and keeps the pick; the world's sheet gets the World and Intervene chipsui · M · sonnetUI-45 (depends), UI-40b (depends), WL-24 (both touch game/engine/src/render/worlds.ts), WL-28 (both touch game/engine/src/render/worlds.ts), WL-25c (both touch game/engine/src/render/worlds.ts), LN-06 (both touch game/engine/src/content/sentences.ts), LN-11 (both touch game/engine/src/content/sentences.ts), LN-13 (both touch game/engine/src/content/sentences.ts), LN-12 (both touch game/engine/src/content/sentences.ts), WL-29b (both touch game/engine/src/render/panels.ts), WL-29d (both touch game/engine/src/render/panels.ts), UI-40 (both touch game/engine/src/view/scenehud.ts), UI-44 (both touch game/engine/src/view/inspect.ts)
- UI-47 The Bodies grid: a Bodies button in the close-up swaps the scene for a grid of every interesting body (worlds, giants, moons, belts and dwarf worlds where the run has them) on a desktop, and is the phone sheet's Bodies chip with two-column tilesui · M · sonnetUI-46 (depends), SF-07zo (both touch game/engine/src/render/shots.ts), SF-07zp (both touch game/engine/src/render/shots.ts), SF-07zq (both touch game/engine/src/render/shots.ts), WL-24 (both touch game/engine/src/render/worlds.ts), WL-28 (both touch game/engine/src/render/worlds.ts), WL-25c (both touch game/engine/src/render/worlds.ts), LN-06 (both touch game/engine/src/content/sentences.ts), LN-11 (both touch game/engine/src/content/sentences.ts), LN-13 (both touch game/engine/src/content/sentences.ts), LN-12 (both touch game/engine/src/content/sentences.ts), WL-29b (both touch game/engine/src/render/worlds.ts), UI-40 (both touch game/engine/src/render/shots.ts), UI-44 (both touch game/engine/src/view/inspect.ts), UI-45 (both touch game/engine/src/view/inspect.ts)
- UI-62 Close-ups for belts and dwarf worlds: a belt or a dwarf world tile in the Bodies grid can be picked and shows its own card and close-upui · M · sonnetUI-47 (depends), WL-24 (both touch game/engine/src/render/worlds.ts), WL-28 (both touch game/engine/src/render/worlds.ts), WL-25c (both touch game/engine/src/render/worlds.ts), WL-29b (both touch game/engine/src/render/panels.ts), WL-29d (both touch game/engine/src/render/panels.ts), UI-44 (both touch game/engine/src/view/inspect.ts), UI-45 (both touch game/engine/src/view/inspect.ts), UI-46 (both touch game/engine/src/view/inspect.ts), UI-48 (both touch game/engine/src/view/inspect.ts), UI-49 (both touch game/engine/src/view/geo.ts), waiting for mocks
- UI-11 The /play route's design and its host: game/app/play/next/page.tsx, a GameHost that owns the canvas, and the engine's one start(host) entry, with the island inside Next's Reactui · M · opusUI-40b (depends)
- UI-11b The route's head and style: ui.html's head and remaining style move into the route's layout and one CSS file the harness sharesui · M · sonnetUI-11 (depends), UI-38 (both touch game/engine/ui.html), UI-38b (both touch game/engine/ui.html), UI-39 (both touch game/engine/ui.html), LG-09c (both touch game/engine/panels/lab.html ~ game/engine/panels/**), SF-07zb (both touch game/engine/ui.html), SF-07ze (both touch game/engine/ui.html), SF-07za (both touch game/engine/ui.html), SF-07zd (both touch game/engine/ui.html), UI-40 (both touch game/engine/ui.html), UI-40b (both touch game/engine/ui.html)
- UI-11c Fixtures lazily and the version line: the route loads the saved states on first use and passes the version in, with no inline globalsui · M · sonnetUI-11b (depends), UI-11 (both touch game/app/play/next/page.tsx), No mockups: no pixels: the saved states load lazily and the version is passed in; the route looks as before
- UI-11d The route cut over: /play is game/app/play/page.tsx; public/play, game/scripts/play-page.ts and the /play redirect are retiredui · M · sonnetUI-11c (depends), UI-11 (both touch game/app/play/next/page.tsx), UI-11b (both touch game/package.json)
EP-13 · Game engine health
- QA-10 Wire existing deck tests and correct commandstooling · S · haikuQA-09 (depends)
- QA-11 Run engine access on affected panelstooling · S · sonnetQA-10 (depends), UI-38 (both touch game/engine/test/v_access.ts)
- QA-12 Establish scheduled performance and visual prooftooling · S · sonnetQA-09 (depends), QA-11 (depends)
EP-01 · Star & disk formation
- DK-13c Planet drift, in the Codex: the moment, the action, DriftSet and the term, linked with the disk and Ignitionui · S · haikuDK-13b (depends)
- DK-12b Drag the companion's plane: the armed row, the grab, the angle measure and the release on the pair's close-upui · M · sonnetUI-38 (both touch game/engine/src/render/main.ts), UI-38b (both touch game/engine/src/render/main.ts), UI-39 (both touch game/engine/src/render/main.ts)
- DK-12c DiskWarp: the outer disk heels over, the shadow's cold bands sweep it and ice glints in the darkui · M · sonnetDK-12b (depends)
- DK-13b Planet drift, the card: once at the disk's start, three settings and End turn, and the gas's wake re-seats at 1 AUsim · M · sonnetDK-12c (both touch game/engine/src/effects/rows/disk.rows.ts)
- DK-10 Spin a whirl: a vortex gathers the dust into a crescent and seeds one large body fastsim · M · sonnetDK-12b (both touch game/engine/src/render/bar.ts), DK-12c (both touch game/engine/src/effects/rows/disk.rows.ts), DK-13b (both touch game/engine/src/sim/disk.ts)
- SF-07zo The cloud is coloured by what it is made of: a false-colour palette read from the composition (hydrogen and helium gas violet to teal, dust amber-gold, iron bronze, aluminium-26 bright green, long-lived radioactivity olive), a quiet Colour: composition tag that opens its Codex key, and temperature only as brightness, in the setup and every turn of the collapseui · M · sonnetDK-12b (both touch game/engine/src/render/camera.ts)
- SF-07zp The disk is coloured by what it is made of: the protoplanetary disk, the first-light disk and the dispersal wind take the cloud's palette from the composition, with the same tag and keyui · M · sonnetSF-07zo (depends), DK-12b (both touch game/engine/src/render/camera.ts)
- DK-05 Inner cavity edge: a cleared middle where migration haltssim · L · sonnetDK-12c (both touch game/engine/src/effects/rows/disk.rows.ts), DK-13b (both touch game/engine/src/sim/disk.ts), DK-10 (both touch game/engine/src/sim/disk.ts)
- DK-06 Disk wind: a wind carries the gas off the disk's surfacesim · L · sonnetDK-12c (both touch game/engine/src/effects/rows/disk.rows.ts), DK-13b (both touch game/engine/src/sim/disk.ts), DK-10 (both touch game/engine/src/sim/disk.ts), DK-05 (both touch game/engine/src/sim/disk.ts)
EP-02 · Giant impacts & assembly
- CL-13b Hide a giant far out: the worlds' comet flux comes in showers of the same integralsim · S · sonnetCL-13 (depends)
- CL-13c Hide a giant far out: the receipt, each shower's line, the keywords and the Codex entriessim · S · sonnetCL-13b (depends)
- CL-13d Hide a giant far out: the giant drifts out and each shower is drawn, and the end page says unconfirmedui · S · haikuCL-13c (depends)
- SF-07zq The gas of the later scenes keeps the palette: the gas thief's bridge, the impact's limb shell, a body's plunge and the circumplanetary spray take the composition colours, with the lights left as the stars' ownui · S · sonnetSF-07zp (depends), SF-07zo (both touch game/engine/src/render/shots.ts), DK-06 (both touch game/engine/src/adapters/gl/scenevols.ts)
- CL-13 Hide a giant far out: Scatter sends the outermost ice giant past 300 AU, or a captured rogue counts, and the reservoir clusterssim · M · sonnetDK-13b (both touch game/engine/src/powers/index.ts), DK-05 (both touch game/engine/src/powers/index.ts), DK-06 (both touch game/engine/src/sim/commands.ts)
- CL-18 The reservoirs leak: each small-body reservoir (the main belt, the Kuiper belt, a scattered disk, the Oort cloud, the Trojans at each giant, and the inner leftovers at Year 0) gets an excitation and a leak rate, stirred at the gas's end and again at the giants' shift; each world's impact flux is the sum of the leaks times its collision chance, replacing impactTail's scripted 1500 term (WD-11, L-WD-12: decided), the Earth curve kept as a report-only check; one size–frequency law per reservoir that the sim's draws and act two's extrapolation share; the flux per size class from 1 m to 10 km exported per worldsim · M · sonnetCL-16 (depends), DK-05 (both touch game/engine/src/sim/commands.ts), DK-06 (both touch game/engine/src/sim/commands.ts), CL-13 (both touch game/engine/src/sim/commands.ts), CL-13b (both touch game/engine/src/sim/geo.ts)
- CL-16 The Oort cloud: the giants' scattered ice as a far shell with a mass, the galactic tide at the chosen spot; a line and a number; the reservoir WL-02 and CL-13 readsim · L · sonnetDK-13b (both touch game/engine/src/sim/disk.ts), DK-10 (both touch game/engine/src/sim/disk.ts), SF-07zp (both touch game/engine/src/scene/scenes.impl.ts), DK-05 (both touch game/engine/src/sim/disk.ts), DK-06 (both touch game/engine/src/sim/disk.ts), SF-07zq (both touch game/engine/src/scene/scenes.impl.ts), CL-13 (both touch game/engine/src/sim/assembly.ts), CL-13b (both touch game/engine/src/sim/geo.ts)
EP-03 · World events
- WL-25b A moon with a moon: the end page and the Codex say none has been seensim · S · sonnetWL-25 (depends), CL-13d (both touch game/engine/src/view/ending.ts), WL-05 (both touch game/engine/src/view/intervene.ts), WL-03 (both touch game/engine/src/view/intervene.ts), WL-27 (both touch game/engine/src/view/ending.ts), WL-28 (both touch game/engine/src/view/ending.ts)
- WL-25c A moon with a moon: the moonlet swings in and the speck circles the big moonui · S · sonnetWL-25b (depends), CL-13d (both touch game/engine/src/effects/rows/assembly.rows.ts), WL-24 (both touch game/engine/src/render/worlds.ts), WL-28 (both touch game/engine/src/render/worlds.ts)
- WL-21 Let the shield falter: the field drops to a tenth for a thousand years; harmless unless a flare lands thensim · M · sonnetWL-20 (depends), DK-05 (both touch game/engine/src/sim/scope.d.ts), DK-06 (both touch game/engine/src/sim/scope.d.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-16 (both touch game/engine/src/sim/geo.ts), CL-18 (both touch game/engine/src/sim/geo.ts)
- WL-28 A world for your giant: a giant captures a small planet as its moon, and a warm giant's moon runs as a world, kneaded and eclipsedsim · M · sonnetWL-24 (depends), DK-05 (both touch game/engine/src/sim/scope.d.ts), DK-06 (both touch game/engine/src/sim/scope.d.ts), CL-13 (both touch game/engine/src/sim/assembly.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-13d (both touch game/engine/src/view/ending.ts), CL-16 (both touch game/engine/src/sim/assembly.ts), CL-18 (both touch game/engine/src/sim/assembly.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/sim/assembly.ts), WL-15 (both touch game/engine/src/sim/geo.ts)
- WL-25 A moon with a moon: a submoon on a large, distant moon, by the stability rulesim · M · sonnetWL-28 (depends), DK-13b (both touch game/engine/src/powers/index.ts), DK-05 (both touch game/engine/src/powers/index.ts), DK-06 (both touch game/engine/src/sim/commands.ts), CL-13 (both touch game/engine/src/powers/index.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-16 (both touch game/engine/src/sim/geo.ts), CL-18 (both touch game/engine/src/sim/geo.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/domain/assembly/physics/catch.ts), WL-15 (both touch game/engine/src/sim/geo.ts), WL-24 (both touch game/engine/src/sim/geo.ts)
- WL-16 Crack the crust: flood basalts warm and can kill, then weather and cool; provinces come on their own toosim · L · sonnetWL-12 (depends), DK-13b (both touch game/engine/src/powers/index.ts), SF-07zp (both touch game/engine/src/scene/scenes.impl.ts), DK-05 (both touch game/engine/src/powers/index.ts), DK-06 (both touch game/engine/src/sim/commands.ts), SF-07zq (both touch game/engine/src/scene/scenes.impl.ts), CL-13 (both touch game/engine/src/powers/index.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-16 (both touch game/engine/src/sim/geo.ts), CL-18 (both touch game/engine/src/sim/geo.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/sim/scope.d.ts), WL-15 (both touch game/engine/src/sim/geo.ts), WL-24 (both touch game/engine/src/sim/geo.ts), WL-28 (both touch game/engine/src/sim/scope.d.ts), WL-25 (both touch game/engine/src/powers/index.ts)
- WL-20 The sky flashes: a gamma-ray burst strips half the ozone for years, once in billionssim · L · sonnetDK-05 (both touch game/engine/src/sim/commands.ts), DK-06 (both touch game/engine/src/sim/commands.ts), CL-13 (both touch game/engine/src/sim/commands.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-16 (both touch game/engine/src/sim/geo.ts), CL-18 (both touch game/engine/src/sim/geo.ts)
- WL-05 Prebiotic delivery: a cargo of organics to a world with liquid water; life can seed across worldssim · L · sonnetDK-05 (both touch game/engine/src/sim/commands.ts), DK-06 (both touch game/engine/src/sim/commands.ts), CL-13 (both touch game/engine/src/sim/commands.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-13d (both touch game/engine/src/effects/rows/globe.rows.ts), CL-16 (both touch game/engine/src/sim/geo.ts), CL-18 (both touch game/engine/src/sim/geo.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts)
- WL-03 Interstellar cloud transit: the system passes through a dense cloud that dims the sun and pushes the wind backsim · L · sonnetDK-05 (both touch game/engine/src/sim/commands.ts), DK-06 (both touch game/engine/src/sim/commands.ts), CL-13 (both touch game/engine/src/sim/commands.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-13d (both touch game/engine/src/effects/rows/globe.rows.ts), CL-16 (both touch game/engine/src/sim/geo.ts), CL-18 (both touch game/engine/src/sim/geo.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts)
- WL-27 The thrown-out world still lives: an ejected wet world keeps an ocean under ice on its own heatsim · L · sonnetSF-07zp (both touch game/engine/src/scene/scenes.impl.ts), DK-05 (both touch game/engine/src/sim/scope.d.ts), DK-06 (both touch game/engine/src/sim/scope.d.ts), SF-07zq (both touch game/engine/src/scene/scenes.impl.ts), CL-13 (both touch game/engine/src/sim/assembly.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-13d (both touch game/engine/src/view/ending.ts), CL-16 (both touch game/engine/src/sim/assembly.ts), CL-18 (both touch game/engine/src/sim/assembly.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts)
- WL-15 Give the world a ring: a grazed asteroid becomes a ring that shades the world for millions of yearssim · L · sonnetSF-07zp (both touch game/engine/src/scene/scenes.impl.ts), DK-05 (both touch game/engine/src/sim/commands.ts), DK-06 (both touch game/engine/src/sim/commands.ts), SF-07zq (both touch game/engine/src/scene/scenes.impl.ts), CL-13 (both touch game/engine/src/sim/commands.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-13d (both touch game/engine/src/effects/rows/globe.rows.ts), CL-16 (both touch game/engine/src/sim/geo.ts), CL-18 (both touch game/engine/src/sim/geo.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/sim/scope.d.ts)
- WL-24 The ring–moon cycle: rings gather into moons that break into rings again, each time smallersim · L · sonnetWL-15 (depends), SF-07zp (both touch game/engine/src/render/gfx.ts), DK-05 (both touch game/engine/src/sim/scope.d.ts), DK-06 (both touch game/engine/src/sim/scope.d.ts), CL-13 (both touch game/engine/src/sim/assembly.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-16 (both touch game/engine/src/sim/assembly.ts), CL-18 (both touch game/engine/src/sim/assembly.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/sim/assembly.ts)
EP-04 · World climate & interiors
- WL-12 Deep water cycle: a card when the mantle would drain or flood the surface over the next billion yearssim · M · sonnetDK-12b (both touch game/engine/src/render/camera.ts), SF-07zo (both touch game/engine/src/render/camera.ts), SF-07zp (both touch game/engine/src/render/camera.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-16 (both touch game/engine/src/sim/geo.ts), CL-18 (both touch game/engine/src/sim/geo.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/sim/geo.ts), WL-15 (both touch game/engine/src/sim/geo.ts), WL-24 (both touch game/engine/src/sim/geo.ts), WL-28 (both touch game/engine/src/sim/geo.ts), WL-25 (both touch game/engine/src/powers/radiogenic.ts)
- WL-18 Drown it: past about 50 oceans the seafloor seals under high-pressure ice and the vents close, the thermostat with themsim · M · sonnetWL-12 (depends), DK-05 (both touch game/engine/src/sim/scope.d.ts), DK-06 (both touch game/engine/src/sim/scope.d.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-16 (both touch game/engine/src/sim/geo.ts), CL-18 (both touch game/engine/src/sim/geo.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/sim/scope.d.ts), WL-15 (both touch game/engine/src/sim/geo.ts), WL-24 (both touch game/engine/src/sim/geo.ts), WL-28 (both touch game/engine/src/sim/scope.d.ts), WL-25 (both touch game/engine/src/sim/geo.ts), WL-25b (both touch game/engine/src/view/intervene.ts), WL-16 (both touch game/engine/src/sim/geo.ts)
- WL-06 Continental uplift: raise a plateau and the weathering changes with itsim · L · sonnetWL-16 (depends), DK-12b (both touch game/engine/src/render/camera.ts), SF-07zo (both touch game/engine/src/render/camera.ts), SF-07zp (both touch game/engine/src/render/camera.ts), DK-05 (both touch game/engine/src/sim/commands.ts), DK-06 (both touch game/engine/src/sim/commands.ts), CL-13 (both touch game/engine/src/sim/commands.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-13d (both touch game/engine/src/effects/rows/globe.rows.ts), CL-16 (both touch game/engine/src/sim/geo.ts), CL-18 (both touch game/engine/src/sim/geo.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/sim/scope.d.ts), WL-15 (both touch game/engine/src/sim/geo.ts), WL-24 (both touch game/engine/src/sim/geo.ts), WL-28 (both touch game/engine/src/sim/scope.d.ts), WL-25 (both touch game/engine/src/sim/commands.ts), WL-25b (both touch game/engine/src/view/intervene.ts), WL-12 (both touch game/engine/src/sim/geo.ts), WL-18 (both touch game/engine/src/sim/geo.ts)
- WL-26 An ocean under hydrogen: a sub-Neptune kept as it is may hide a warm ocean under its hazesim · L · sonnetDK-05 (both touch game/engine/src/sim/commands.ts), DK-06 (both touch game/engine/src/sim/commands.ts), CL-13 (both touch game/engine/src/sim/commands.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-13d (both touch game/engine/src/view/ending.ts), CL-16 (both touch game/engine/src/sim/assembly.ts), CL-18 (both touch game/engine/src/sim/assembly.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/sim/assembly.ts), WL-15 (both touch game/engine/src/sim/geo.ts), WL-24 (both touch game/engine/src/sim/geo.ts), WL-28 (both touch game/engine/src/sim/assembly.ts), WL-25 (both touch game/engine/src/sim/commands.ts), WL-25b (both touch game/engine/src/view/ending.ts), WL-12 (both touch game/engine/src/sim/geo.ts), WL-16 (both touch game/engine/src/sim/geo.ts), WL-18 (both touch game/engine/src/sim/geo.ts), WL-06 (both touch game/engine/src/sim/geo.ts)
- WL-17 Roll the world: the crust slips over the mantle and the continents move toward the equator or the polessim · L · sonnetWL-06 (depends), DK-12b (both touch game/engine/src/render/camera.ts), DK-13b (both touch game/engine/src/powers/index.ts), SF-07zo (both touch game/engine/src/render/camera.ts), SF-07zp (both touch game/engine/src/render/camera.ts), DK-05 (both touch game/engine/src/powers/index.ts), DK-06 (both touch game/engine/src/sim/commands.ts), SF-07zq (both touch game/engine/src/scene/scenes.impl.ts), CL-13 (both touch game/engine/src/powers/index.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-16 (both touch game/engine/src/sim/geo.ts), CL-18 (both touch game/engine/src/sim/geo.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/sim/scope.d.ts), WL-15 (both touch game/engine/src/sim/geo.ts), WL-24 (both touch game/engine/src/sim/geo.ts), WL-28 (both touch game/engine/src/sim/scope.d.ts), WL-25 (both touch game/engine/src/powers/index.ts), WL-25b (both touch game/engine/src/view/intervene.ts), WL-12 (both touch game/engine/src/sim/geo.ts), WL-16 (both touch game/engine/src/sim/geo.ts), WL-18 (both touch game/engine/src/sim/geo.ts), WL-26 (both touch game/engine/src/sim/geo.ts)
- WL-22 Gather the lands / Split them: a supercontinent dries and warms; a breakup floods basalt and coolssim · L · sonnetWL-17 (depends), WL-16 (depends), DK-13b (both touch game/engine/src/powers/index.ts), DK-05 (both touch game/engine/src/powers/index.ts), DK-06 (both touch game/engine/src/sim/commands.ts), CL-13 (both touch game/engine/src/powers/index.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-16 (both touch game/engine/src/sim/geo.ts), CL-18 (both touch game/engine/src/sim/geo.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/sim/scope.d.ts), WL-15 (both touch game/engine/src/sim/geo.ts), WL-24 (both touch game/engine/src/sim/geo.ts), WL-28 (both touch game/engine/src/sim/scope.d.ts), WL-25 (both touch game/engine/src/powers/index.ts), WL-12 (both touch game/engine/src/sim/geo.ts), WL-18 (both touch game/engine/src/sim/geo.ts), WL-06 (both touch game/engine/src/sim/geo.ts), WL-26 (both touch game/engine/src/sim/geo.ts)
EP-05 · Life & lineages
- LG-09b The tree of life: every L-card and unbidden event registered in EVENTS.md and stubbed behind a flagtooling · S · haikuLG-09 (depends), WL-24 (both touch game/engine/EVENTS.md)
- WL-38 The end page speaks of the system: the verdict, the Goal names and their miss reasons, and the counts say worlds of a systemsim · M · sonnetCL-13b (both touch game/engine/src/sim/geo.ts), CL-16 (both touch game/engine/src/sim/geo.ts), CL-18 (both touch game/engine/src/sim/geo.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/sim/geo.ts), WL-15 (both touch game/engine/src/sim/geo.ts), WL-24 (both touch game/engine/src/sim/geo.ts), WL-28 (both touch game/engine/src/sim/geo.ts), WL-25 (both touch game/engine/src/sim/geo.ts), WL-12 (both touch game/engine/src/sim/geo.ts), WL-16 (both touch game/engine/src/sim/geo.ts), WL-18 (both touch game/engine/src/sim/geo.ts), WL-06 (both touch game/engine/src/sim/geo.ts), WL-26 (both touch game/engine/src/sim/geo.ts), WL-17 (both touch game/engine/src/sim/geo.ts), WL-22 (both touch game/engine/src/sim/geo.ts)
- LG-07 Richness on the end page: the system's richness score and its parts in the end page's story, shown beside the hands-off twin's (deferred from SF-27 on 7 Oct)ui · M · sonnetLG-02 (depends), DK-05 (both touch game/engine/src/sim/commands.ts), DK-06 (both touch game/engine/src/sim/commands.ts), CL-13 (both touch game/engine/src/sim/commands.ts), CL-16 (both touch game/engine/src/view/run.ts), CL-18 (both touch game/engine/src/sim/commands.ts), WL-20 (both touch game/engine/src/sim/commands.ts), WL-05 (both touch game/engine/src/sim/commands.ts), WL-03 (both touch game/engine/src/sim/commands.ts), WL-27 (both touch game/engine/src/content/goals.ts), WL-15 (both touch game/engine/src/sim/commands.ts), WL-28 (both touch game/engine/src/render/ending.ts), WL-25 (both touch game/engine/src/sim/commands.ts), WL-25b (both touch game/engine/src/render/ending.ts), WL-16 (both touch game/engine/src/sim/commands.ts), WL-06 (both touch game/engine/src/sim/commands.ts), WL-26 (both touch game/engine/src/sim/commands.ts), WL-17 (both touch game/engine/src/sim/commands.ts), WL-22 (both touch game/engine/src/sim/commands.ts), WL-38 (both touch game/engine/src/content/goals.ts)
- LG-08 The ladder on the end page: the bench's ladder (where a bad system went wrong) becomes one rung function and a line on the end page; its bench criterion is LG-08b (BAL, after the move)sim-read · M · sonnetLG-02 (depends), CL-16 (both touch game/engine/src/view/run.ts), WL-27 (both touch game/engine/src/content/goals.ts), WL-28 (both touch game/engine/src/render/ending.ts), WL-25b (both touch game/engine/src/render/ending.ts), WL-38 (both touch game/engine/src/content/goals.ts), LG-07 (both touch game/engine/src/view/run.ts)
- LN-10 The whole tree's gates: LN-05's rules over all 201 capabilities, six more world facts from real sim fields, the start the world and lineage pick (open sea, dry land, under the ice), each domain open, dim or shut by what the system did, and the cheapest route to any light, with the hook where pool costs will attachsim-read · M · sonnetDK-05 (both touch game/engine/src/sim/scope.d.ts), DK-06 (both touch game/engine/src/sim/scope.d.ts), CL-16 (both touch game/engine/src/sim/scope.d.ts), WL-20 (both touch game/engine/src/sim/scope.d.ts), WL-21 (both touch game/engine/src/sim/scope.d.ts), WL-05 (both touch game/engine/src/sim/scope.d.ts), WL-03 (both touch game/engine/src/sim/scope.d.ts), WL-27 (both touch game/engine/src/sim/scope.d.ts), WL-15 (both touch game/engine/src/sim/scope.d.ts), WL-24 (both touch game/engine/src/sim/scope.d.ts), WL-28 (both touch game/engine/src/sim/scope.d.ts), WL-16 (both touch game/engine/src/sim/scope.d.ts), WL-18 (both touch game/engine/src/sim/scope.d.ts), WL-06 (both touch game/engine/src/sim/scope.d.ts), WL-26 (both touch game/engine/src/sim/scope.d.ts), WL-17 (both touch game/engine/src/sim/scope.d.ts), WL-22 (both touch game/engine/src/sim/scope.d.ts)
- LN-13 The whole tree's detail: a tapped light opens Why, Still needed (with each need's steps) and Other route in the sheet or the side column, as LN-06's web does; a keystone adds What it changes and What it costs (the lights it slows and by how many steps), read-only, both stay openui · M · sonnetLN-11 (depends), LN-03 (depends), LG-02 (both touch game/engine/src/view/codex.ts), LN-06 (both touch game/engine/src/ui/lineage/{Web.tsx,WebDetail.tsx,Bodies.tsx,index.ts,fixtures.ts,web.css} ~ game/engine/src/ui/lineage/WebDetail.tsx), LN-02 (both touch game/engine/src/view/codex.ts)
- LN-03 The eight technologies: fire, metals, agriculture, architecture, writing, sailing, flight and astronomy as Codex entries, each with its science and a parametric model shaped by the lineage that would make it (scale from the body, grip from the manipulator, materials from the world)ui · M · sonnetLN-02 (depends), CL-16 (both touch game/engine/src/codex/registry.ts), WL-21 (both touch game/engine/src/codex/registry.ts), WL-24 (both touch game/engine/src/codex/registry.ts), LG-04 (both touch game/engine/src/codex/registry.ts), LG-02 (both touch game/engine/src/view/codex.ts), LN-01 (both touch game/engine/src/codex/registry.ts), LG-09 (both touch game/engine/src/domain/life/ ~ game/engine/src/domain/life/events/tech.codex.ts)
- LN-12 Route and search in the whole tree: search the lights by name, domain or era, with each result's status and distance, and a tap flies to it; Route here on any light draws the cheapest route in amber over a faint tree, with its steps listed by era and the other routes' countsui · M · sonnetLN-13 (depends), LN-06 (both touch game/engine/src/content/sentences.ts), LN-11 (both touch game/engine/src/view/lineageTree.ts)
- LG-09 The tree of life: rungs R0–R8 climb only when the planet meets each need, with branches, resets, a ledger and a rung's Effectsim · M · sonnetLN-01 (depends), DK-13b (both touch game/engine/test/golden/hashes.test.ts), DK-05 (both touch game/engine/src/sim/scope.d.ts), DK-06 (both touch game/engine/src/sim/scope.d.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-16 (both touch game/engine/src/sim/geo.ts), CL-18 (both touch game/engine/src/sim/geo.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/domain/kernel/stages.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/sim/scope.d.ts), WL-15 (both touch game/engine/src/sim/geo.ts), WL-24 (both touch game/engine/src/sim/geo.ts), WL-28 (both touch game/engine/src/sim/scope.d.ts), WL-25 (both touch game/engine/src/sim/geo.ts), WL-12 (both touch game/engine/src/sim/geo.ts), WL-16 (both touch game/engine/src/sim/geo.ts), WL-18 (both touch game/engine/src/sim/geo.ts), WL-06 (both touch game/engine/src/sim/geo.ts), WL-26 (both touch game/engine/src/sim/geo.ts), WL-17 (both touch game/engine/src/sim/geo.ts), WL-22 (both touch game/engine/src/sim/geo.ts), WL-38 (both touch game/engine/src/sim/geo.ts), LN-10 (both touch game/engine/src/domain/life/tree.ts ~ game/engine/src/domain/life/), LG-03 (both touch game/engine/src/sim/geo.ts), LG-04 (both touch game/engine/src/sim/geo.ts), LG-02 (both touch game/engine/src/domain/kernel/stages.ts)
- LG-09c The tree of life: the life stage's gloss and the end page name the branch and what the mind hasui · M · sonnetLG-09b (depends), LN-01 (depends), CL-13d (both touch game/engine/src/view/ending.ts), WL-27 (both touch game/engine/src/view/ending.ts), WL-28 (both touch game/engine/src/view/ending.ts), WL-25b (both touch game/engine/src/view/ending.ts), WL-26 (both touch game/engine/src/view/ending.ts), LG-02 (both touch game/engine/src/render/ending.ts), LG-07 (both touch game/engine/src/render/ending.ts), LG-08 (both touch game/engine/src/render/ending.ts), LN-06 (both touch game/engine/src/view/ending.ts)
- LG-03 Tides and the pond pathway: a moon's distance sets the tides, and the tides set the pond's chancesim · L · sonnetDK-12b (both touch game/engine/src/render/bar.ts), DK-10 (both touch game/engine/src/render/bar.ts), DK-05 (both touch game/engine/src/sim/scope.d.ts), DK-06 (both touch game/engine/src/sim/scope.d.ts), CL-13 (both touch game/engine/src/view/hold.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-13d (both touch game/engine/src/effects/rows/assembly.rows.ts), CL-16 (both touch game/engine/src/sim/assembly.ts), CL-18 (both touch game/engine/src/sim/assembly.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/sim/assembly.ts), WL-15 (both touch game/engine/src/view/hold.ts), WL-24 (both touch game/engine/src/sim/geo.ts), WL-28 (both touch game/engine/src/sim/assembly.ts), WL-25 (both touch game/engine/src/sim/geo.ts), WL-25b (both touch game/engine/src/view/intervene.ts), WL-25c (both touch game/engine/src/effects/rows/assembly.rows.ts), WL-12 (both touch game/engine/src/sim/geo.ts), WL-16 (both touch game/engine/src/sim/geo.ts), WL-18 (both touch game/engine/src/sim/geo.ts), WL-06 (both touch game/engine/src/sim/geo.ts), WL-26 (both touch game/engine/src/sim/geo.ts), WL-17 (both touch game/engine/src/sim/geo.ts), WL-22 (both touch game/engine/src/sim/geo.ts), WL-38 (both touch game/engine/src/sim/geo.ts), LN-10 (both touch game/engine/src/sim/scope.d.ts)
- LG-04 Unbidden twins the game still lacks: natural counterparts for radiogenic heat (each world's own spread), a caught planet and phosphorus (a natural uplift pulse)sim · L · sonnetWL-06 (depends), CL-13 (both touch game/engine/src/sim/assembly.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-16 (both touch game/engine/src/sim/assembly.ts), CL-18 (both touch game/engine/src/sim/assembly.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/sim/assembly.ts), WL-15 (both touch game/engine/src/sim/geo.ts), WL-24 (both touch game/engine/src/sim/geo.ts), WL-28 (both touch game/engine/src/sim/assembly.ts), WL-25 (both touch game/engine/src/domain/assembly/physics/catch.ts), WL-25c (both touch game/engine/src/moments/catch.ts), WL-12 (both touch game/engine/src/sim/geo.ts), WL-16 (both touch game/engine/src/sim/geo.ts), WL-18 (both touch game/engine/src/sim/geo.ts), WL-26 (both touch game/engine/src/sim/geo.ts), WL-17 (both touch game/engine/src/sim/geo.ts), WL-22 (both touch game/engine/src/sim/geo.ts), WL-38 (both touch game/engine/src/sim/geo.ts), LG-03 (both touch game/engine/src/sim/assembly.ts)
- LG-02 The end page as a causal chain: what you did, its aftershocks and the Goals it moved, as one timelinesim-read · L · sonnetDK-05 (both touch game/engine/src/sim/commands.ts), DK-06 (both touch game/engine/src/sim/commands.ts), CL-13 (both touch game/engine/src/sim/commands.ts), CL-16 (both touch game/engine/src/sim/assembly.ts), CL-18 (both touch game/engine/src/sim/assembly.ts), WL-20 (both touch game/engine/src/sim/commands.ts), WL-21 (both touch game/engine/src/codex/registry.ts), WL-05 (both touch game/engine/src/domain/kernel/stages.ts), WL-03 (both touch game/engine/src/sim/commands.ts), WL-27 (both touch game/engine/src/sim/assembly.ts), WL-15 (both touch game/engine/src/sim/commands.ts), WL-24 (both touch game/engine/src/sim/assembly.ts), WL-28 (both touch game/engine/src/sim/assembly.ts), WL-25 (both touch game/engine/src/sim/commands.ts), WL-25b (both touch game/engine/src/view/intervene.ts), WL-16 (both touch game/engine/src/sim/commands.ts), WL-18 (both touch game/engine/src/view/intervene.ts), WL-06 (both touch game/engine/src/sim/commands.ts), WL-26 (both touch game/engine/src/sim/assembly.ts), WL-17 (both touch game/engine/src/sim/commands.ts), WL-22 (both touch game/engine/src/sim/commands.ts), WL-38 (both touch game/engine/src/content/sentences/03-ending.ts), LG-03 (both touch game/engine/src/sim/assembly.ts), LG-04 (both touch game/engine/src/sim/assembly.ts)
- LN-06 The lineage web: Goals gains a Lineage chip that draws the living world's web over the scene (what it has now at the centre, what is within reach lit, what is shut dimmed), a switcher for each world in the system, and a tap opens Why, Still needed and Other route in the sheet or the side columnui · L · sonnetCL-13d (both touch game/engine/src/view/ending.ts), WL-27 (both touch game/engine/src/view/ending.ts), WL-28 (both touch game/engine/src/view/ending.ts), WL-25b (both touch game/engine/src/view/ending.ts), WL-26 (both touch game/engine/src/view/ending.ts), LG-02 (both touch game/engine/src/render/runsheet.ts), LG-07 (both touch game/engine/src/render/runsheet.ts)
- LN-01 The lineage sheet: for each living world at the run's end, the land and sea lineages its planet would raise, every trait derived by rule from the world's numbers with a because-line and its source, three words and a sentence, on the end page under "Who could wake here"sim-read · L · sonnetLG-02 (depends), DK-05 (both touch game/engine/src/sim/scope.d.ts), DK-06 (both touch game/engine/src/sim/scope.d.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-13d (both touch game/engine/src/view/ending.ts), CL-16 (both touch game/engine/src/sim/geo.ts), CL-18 (both touch game/engine/src/sim/geo.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/sim/scope.d.ts), WL-15 (both touch game/engine/src/sim/geo.ts), WL-24 (both touch game/engine/src/sim/geo.ts), WL-28 (both touch game/engine/src/sim/scope.d.ts), WL-25 (both touch game/engine/src/sim/geo.ts), WL-25b (both touch game/engine/src/view/ending.ts), WL-12 (both touch game/engine/src/sim/geo.ts), WL-16 (both touch game/engine/src/sim/geo.ts), WL-18 (both touch game/engine/src/sim/geo.ts), WL-06 (both touch game/engine/src/sim/geo.ts), WL-26 (both touch game/engine/src/sim/geo.ts), WL-17 (both touch game/engine/src/sim/geo.ts), WL-22 (both touch game/engine/src/sim/geo.ts), WL-38 (both touch game/engine/src/sim/geo.ts), LN-10 (both touch game/engine/src/sim/scope.d.ts), LG-03 (both touch game/engine/src/sim/geo.ts), LG-04 (both touch game/engine/src/sim/geo.ts), LG-07 (both touch game/engine/src/view/run.ts), LG-08 (both touch game/engine/src/view/run.ts), LN-06 (both touch game/engine/src/view/ending.ts)
- LN-02 The lineage's figure and name: a parametric body from the sheet's Body group (a mesh through the bake, a profile on the end page) and a seeded name from its voice, a 24-lineage contact sheet, and the land and sea lineages as Codex entries you can turn in the lightui · L · sonnetLN-01 (depends), CL-16 (both touch game/engine/src/codex/registry.ts), WL-21 (both touch game/engine/src/codex/registry.ts), WL-24 (both touch game/engine/src/codex/registry.ts), WL-28 (both touch game/engine/src/render/ending.ts), WL-25b (both touch game/engine/src/render/ending.ts), LG-04 (both touch game/engine/src/codex/registry.ts), LG-02 (both touch game/engine/src/render/ending.ts), LG-07 (both touch game/engine/src/render/ending.ts), LG-08 (both touch game/engine/src/render/ending.ts), LN-06 (both touch game/engine/test/v_run.ts), LG-09 (both touch game/engine/src/domain/life/ ~ game/engine/src/domain/life/events/figure.codex.ts), LG-09c (both touch game/engine/src/render/ending.ts)
- LN-11 The whole tree: a full-screen view opened from the lineage web (Whole tree, or a long press on a light) that draws all 201 capabilities as one constellation (the lineage now at the centre, nine eras as rings, nine domains as sectors, shut regions dark), with pinch and wheel zoom from the whole down to a cluster, pan, a minimap, labels by zoom, and the world switcherui · L · sonnetLN-06 (depends), LN-10 (depends)
EP-08 · Setup & turn flow
- SF-07zb The page fits a phone: the page the game serves carries a viewport meta, and wrap.py does not add a secondui · S · sonnetUI-38 (both touch game/engine/ui.html), UI-38b (both touch game/engine/ui.html), UI-39 (both touch game/engine/ui.html)
- SF-07zc No tap commits by accident: Begin the collapse exists once, as a button on step 4 at least 52 px tall, and nothing else starts the collapseui · S · sonnetUI-38 (depends), UI-38b (both touch game/engine/src/render/main.ts), UI-39 (both touch game/engine/src/render/main.ts), DK-12b (both touch game/engine/src/render/main.ts)
- SF-07ze Setup like a photo editor: on a phone Build your star's steps 3 and 4 sit in a half-height sheet with the cloud visible above, the tiles and sliders and 24 Power to start in that half, and while a finger is on a slider or a tile the sheet shrinks to that control so the cloud fills the glass and reacts live; release restores the stepui · S · sonnetUI-39 (depends), UI-38 (both touch game/engine/src/render/main.ts), UI-38b (both touch game/engine/src/render/main.ts), DK-12b (both touch game/engine/src/render/main.ts), SF-07zb (both touch game/engine/ui.html), SF-07zc (both touch game/engine/src/render/main.ts)
- SF-07zg Every turn says what changed: the turn card shows one line, the largest change since the last stop, under the heading, and repeats the newest Moments line so that tab is the historyui · S · sonnetSF-07zd (depends), DK-13b (both touch game/engine/src/view/turn.ts), WL-20 (both touch game/engine/src/view/moments.ts), WL-21 (both touch game/engine/src/view/moments.ts), WL-29b (both touch game/engine/src/view/turns.ts)
- SF-07zi Thumb-sized targets: the Codex filters are one sideways-scrolling row of 44 px chips with their counts keptui · S · sonnetLG-02 (both touch game/engine/src/view/codex.ts), LN-02 (both touch game/engine/src/view/codex.ts), LN-03 (both touch game/engine/src/view/codex.ts), LN-13 (both touch game/engine/src/view/codex.ts)
- SF-07zl The end page says the end: Archean shows its years or a line of its own instead of an empty stub, in a journey row of five equal columnsui · S · sonnetCL-16 (both touch game/engine/src/view/run.ts), WL-27 (both touch game/engine/src/content/goals.ts), WL-38 (both touch game/engine/src/content/goals.ts), LG-02 (both touch game/engine/src/view/run.ts), LG-07 (both touch game/engine/src/view/run.ts), LG-08 (both touch game/engine/src/view/run.ts), LN-06 (both touch game/engine/src/ui/runsheet/RunSheet.tsx ~ game/engine/src/ui/runsheet/*.tsx), LN-01 (both touch game/engine/src/view/run.ts)
- SF-07zm2 Goals in the Codex: a Goals chip in the Codex's filter row, listing the goals met (a tick) and in play (open), with the ones not reached only a countui · S · sonnetSF-07zm (depends), LG-02 (both touch game/engine/src/view/codex.ts), LN-02 (both touch game/engine/src/view/codex.ts), LN-03 (both touch game/engine/src/view/codex.ts), LN-13 (both touch game/engine/src/view/codex.ts), SF-07zi (both touch game/engine/src/view/codex.ts)
- SF-07zr The setup sheet leaves with the collapse: at Begin the collapse, the setup sheet and its step bar fade out in the cloud's 650 ms handoff instead of vanishing, a second tap commits nothing, and focus lands on Your moveui · S · sonnetSF-07zn (depends)
- WL-29b Name your worlds: the generated name on the card, the System view and the Year 0 Moments line, the letter keptui · M · sonnetCL-16 (both touch game/engine/src/view/system.ts), CL-18 (both touch game/engine/src/view/system.ts), WL-20 (both touch game/engine/src/view/moments.ts), WL-21 (both touch game/engine/src/view/moments.ts), WL-24 (both touch game/engine/src/render/worlds.ts), WL-28 (both touch game/engine/src/render/worlds.ts), WL-25c (both touch game/engine/src/render/worlds.ts), WL-18 (both touch game/engine/src/view/system.ts), LG-07 (both touch game/engine/src/view/madeof.ts)
- WL-29c Name your worlds: the name on Your run, the shots, the cinema and the end page, the sim's letters left as writtenui · M · sonnetWL-29b (depends), CL-13 (both touch game/engine/src/sim/assembly.ts), CL-13b (both touch game/engine/src/sim/geo.ts), CL-16 (both touch game/engine/src/sim/assembly.ts), CL-18 (both touch game/engine/src/sim/assembly.ts), WL-20 (both touch game/engine/src/sim/geo.ts), WL-21 (both touch game/engine/src/sim/geo.ts), WL-05 (both touch game/engine/src/sim/geo.ts), WL-03 (both touch game/engine/src/sim/geo.ts), WL-27 (both touch game/engine/src/sim/assembly.ts), WL-15 (both touch game/engine/src/domain/worlds/physics/deflect.ts ~ game/engine/src/domain/worlds/physics/{deflect,impact,radiogenic,water}.ts), WL-24 (both touch game/engine/src/sim/geo.ts), WL-28 (both touch game/engine/src/sim/assembly.ts), WL-25 (both touch game/engine/src/sim/geo.ts), WL-25b (both touch game/engine/src/render/ending.ts), WL-12 (both touch game/engine/src/sim/geo.ts), WL-16 (both touch game/engine/src/sim/geo.ts), WL-18 (both touch game/engine/src/sim/geo.ts), WL-06 (both touch game/engine/src/sim/geo.ts), WL-26 (both touch game/engine/src/sim/geo.ts), WL-17 (both touch game/engine/src/sim/geo.ts), WL-22 (both touch game/engine/src/sim/geo.ts), WL-38 (both touch game/engine/src/sim/geo.ts), LG-03 (both touch game/engine/src/sim/assembly.ts), LG-04 (both touch game/engine/src/sim/assembly.ts), LG-02 (both touch game/engine/src/render/ending.ts), LG-07 (both touch game/engine/src/view/run.ts), LG-08 (both touch game/engine/src/view/run.ts), LN-01 (both touch game/engine/src/sim/geo.ts), LG-09 (both touch game/engine/src/sim/geo.ts), LG-09c (both touch game/engine/src/render/ending.ts), LN-02 (both touch game/engine/src/render/ending.ts), SF-07zl (both touch game/engine/src/content/goals.ts)
- WL-29d Name your worlds: a rename on the world's card, filtered, read back after a reloadui · M · sonnetWL-29c (depends), WL-29b (both touch game/engine/src/render/panels.ts)
- SF-07za The nursery arrives with the camera: on Here from the galaxy, the bottom panel never goes empty. Its line cross-fades to the nursery step as the zoom starts, the step kicker changes on that first frame, and the three nurseries land one after another during the zoom, the last as the camera settles; under reduced motion they are all there on the first frameui · M · sonnetUI-38 (both touch game/engine/ui.html), UI-38b (both touch game/engine/ui.html), UI-39 (both touch game/engine/ui.html), SF-07zb (both touch game/engine/ui.html), SF-07ze (both touch game/engine/ui.html)
- SF-07zd The turn card: every stage's card is the grab, then the moment as the heading with its key term dotted (a tap opens that Codex entry; no Codex line, no kicker, no ×, no helper sentence), then at most three answer pills in a row at least 44 px (verb and cost; Intervene holds every other power), then one row of two equal buttons at least 52 px, Intervene with its Power count and End turn. A bare number takes its unit, and an answer's accessible name leaves the outcome out until the act landsui · M · sonnetUI-36b (both touch game/engine/src/render/keywords.ts), UI-38 (both touch game/engine/ui.html), UI-38b (both touch game/engine/ui.html), UI-39 (both touch game/engine/src/view/sheet.ts), DK-12b (both touch game/engine/src/render/bar.ts), DK-10 (both touch game/engine/src/render/bar.ts), WL-27 (both touch game/engine/src/content/cards.ts), WL-15 (both touch game/engine/src/content/cards.ts), WL-12 (both touch game/engine/src/content/cards.ts), LG-03 (both touch game/engine/src/render/bar.ts), SF-07zb (both touch game/engine/ui.html), SF-07ze (both touch game/engine/src/view/sheet.ts), SF-07za (both touch game/engine/ui.html)
- SF-07zf The first screen, along the arm: Build your star's first step is the galaxy, Step 1 of 4 and a Guided walkthrough checkbox sharing the top edge, the cost and Here in one bar, the old panel gone (the wordmark leaves with the header's redesign, UI-40), and the tour's card beside the control it teachesui · M · sonnetUI-38 (both touch game/engine/src/content/ui/05-sheets.ts), DK-05 (both touch game/engine/src/content/howto.ts), DK-06 (both touch game/engine/src/content/howto.ts), CL-16 (both touch game/engine/src/content/howto.ts), SF-07ze (both touch game/engine/panels/setup.{html,css} ~ game/engine/panels/setup.html), SF-07za (both touch game/engine/src/view/opening.ts), UI-40 (both touch game/engine/src/view/guide.ts), UI-40b (both touch game/engine/panels/** ~ game/engine/panels/setup.html), UI-11b (both touch game/engine/panels/** ~ game/engine/panels/setup.html)
- SF-07zk Year 0's worlds you can read: world labels are at least 14 px on solid chips, a dry disk says no comet water yet while the number is zero, and the primary is End turn with Let the worlds cool as its sub-lineui · M · sonnetUI-38 (both touch game/engine/src/render/main.ts), UI-38b (both touch game/engine/src/render/main.ts), UI-39 (both touch game/engine/src/render/main.ts), DK-12b (both touch game/engine/src/render/main.ts), SF-07zo (both touch game/engine/src/render/camera.ts), SF-07zp (both touch game/engine/src/render/camera.ts), CL-13 (both touch game/engine/src/sim/assembly.ts), CL-16 (both touch game/engine/src/sim/assembly.ts), CL-18 (both touch game/engine/src/sim/assembly.ts), WL-27 (both touch game/engine/src/sim/assembly.ts), WL-24 (both touch game/engine/src/sim/assembly.ts), WL-28 (both touch game/engine/src/sim/assembly.ts), WL-12 (both touch game/engine/src/render/camera.ts), WL-18 (both touch game/engine/src/view/system.ts), WL-06 (both touch game/engine/src/render/camera.ts), WL-26 (both touch game/engine/src/sim/assembly.ts), WL-17 (both touch game/engine/src/render/camera.ts), LG-03 (both touch game/engine/src/sim/assembly.ts), LG-04 (both touch game/engine/src/sim/assembly.ts), LG-02 (both touch game/engine/src/sim/assembly.ts), SF-07zc (both touch game/engine/src/render/main.ts), SF-07ze (both touch game/engine/src/render/main.ts), WL-29b (both touch game/engine/src/view/system.ts), WL-29c (both touch game/engine/src/sim/assembly.ts), UI-40 (both touch game/engine/src/render/main.ts), UI-40b (both touch game/engine/src/render/main.ts), UI-44 (both touch game/engine/src/render/main.ts), UI-46 (both touch game/engine/src/ui/scenehud/{SceneHud.tsx,scenehud.css} ~ game/engine/src/ui/scenehud/*.tsx), UI-47 (both touch game/engine/src/ui/scenehud/SceneHud.tsx ~ game/engine/src/ui/scenehud/*.tsx), UI-11b (both touch game/engine/panels/** ~ game/engine/panels/scene-hud.html)
- SF-07zm Goals get their own tab: the Goals screen, three counts (met, now, ahead), the live goal as the hero, the met ones quiet with ticks, Feats with their dots, anything not reached only a count, and no "this run"ui · M · sonnetUI-38 (depends), CL-16 (both touch game/engine/src/view/run.ts), WL-20 (both touch game/engine/src/sim/goals.ts), WL-27 (both touch game/engine/src/sim/goals.ts), WL-26 (both touch game/engine/src/sim/goals.ts), WL-38 (both touch game/engine/src/sim/goals.ts), LG-02 (both touch game/engine/src/view/run.ts), LG-07 (both touch game/engine/src/view/run.ts), LG-08 (both touch game/engine/src/view/run.ts), LN-06 (both touch game/engine/src/ui/runsheet/RunSheet.tsx ~ game/engine/src/ui/runsheet/*.tsx), LN-01 (both touch game/engine/src/view/run.ts), SF-07zl (both touch game/engine/src/content/goals.ts), WL-29c (both touch game/engine/src/view/run.ts)
- SF-07zn The cloud keeps its colour into the collapse: Begin the collapse hands the setup's look (light colour, dust reddening, knot, shape, size) to turn 1 unchanged, the new disk-to-be ring and gauges fade in once, the field lines and their label fade out, and nothing is applied and then taken away inside the handoffui · M · sonnetSF-07zo (depends), DK-12b (both touch game/engine/src/render/camera.ts), SF-07zp (both touch game/engine/src/render/camera.ts), SF-07zq (both touch game/engine/src/render/shots.ts), WL-12 (both touch game/engine/src/render/camera.ts), WL-06 (both touch game/engine/src/render/camera.ts), WL-17 (both touch game/engine/src/render/camera.ts), WL-22 (both touch game/engine/src/render/push.ts), UI-40 (both touch game/engine/src/render/shots.ts), UI-44 (both touch game/engine/src/render/shots.ts), UI-47 (both touch game/engine/src/render/shots.ts), UI-49 (both touch game/engine/src/render/shots.ts), SF-07zk (both touch game/engine/src/render/camera.ts)
- SF-07zs The setup, scene-first: Build your star becomes seven screens, one choice each, picked from thumbnail cards in one glass dock over the full-screen scene; sliders become presets on the existing price curves, and nothing on the page scrollsui · L · sonnetSF-07za (depends), SF-07ze (depends), SF-07zf (both touch game/engine/src/ui/picker/Picker.tsx), SF-07zr (both touch game/engine/src/ui/setup/SetupSheet.tsx)
- UI-51 The turn sheet names the move once: no Your turn, no YOUR MOVE eyebrow, and the scene's top title steps aside while the sheet is openui · L · sonnetUI-39 (depends), UI-38 (both touch game/engine/test/v_tabs.ts), DK-13b (both touch game/engine/src/view/turn.ts), UI-40 (both touch game/engine/src/render/turns.ts), UI-40b (both touch game/engine/test/v_tabs.ts), SF-07zg (both touch game/engine/src/view/turn.ts)
EP-11 · The game's site and brand
- MK-24 /play's head: once /play is a Next route, its layout names its title, description and canonical, and shares the site's Open Graph fieldsui · S · haikuUI-11d (depends), UI-11b (both touch game/app/play/layout.tsx), No mockups: head tags only; /play looks the same
- MK-14b The old brand page's tooling goes: page.html, the inline copies, inline.py, fragment.py, the workbench's data, the brand target and the artifact's brand stagingtooling · M · sonnetQA-10 (both touch .agents/skills/dustlife-ui-move/reference.md), UI-11d (both touch game/engine/tools/built.ts)
- MK-15 The brand page's checks and skills: page_check.py runs the same assertions against the Next build; workbench_check.py goes; brand-sync and page-check are rewrittentooling · M · sonnetMK-14b (depends)
- MK-25 Thinking lifeforms: the home page's top rung, "a mind", reads "thinking lifeforms" in the hero stat, the tree, the loops, the lineage words and the data they readui · M · sonnetMK-14b (depends), MK-24 (both touch game/test/home-page.browser.ts), No mockups: words only, the same boxes carry a longer phrase so no frame is redrawn, and the browser check at 390 and 1280 proves nothing clips
- MK-26 The home page loads fast on a phone: the Codex and Credits render on demand, deep links and a crawlable index keptui · M · sonnetMK-24 (both touch game/test/home-page.browser.ts), MK-25 (both touch game/test/home-page.browser.ts), No mockups: nothing on screen changes, the sections look as they do once loaded
- SF-47b The demo's end asks: the end-of-demo screen at Dispersal (the seed, Share, "Keep playing on Steam" behind the Steam app id, Play another seed); the seed of the week shown on the setup sheet and the end screen; a share image per seed (the link preview: a pre-rendered set for the weekly seeds; the phone's share attaches the run's own portrait)ui · M · sonnetSF-47 (depends), UI-38 (both touch game/engine/src/content/ui/ui-38.ts ~ game/engine/src/content/), UI-38b (both touch game/engine/src/content/ui/ui-38b.ts ~ game/engine/src/content/), UI-39 (both touch game/engine/src/content/ui/ui-39.ts ~ game/engine/src/content/), DK-12b (both touch game/engine/src/content/ui/dk-12b.ts ~ game/engine/src/content/), SF-07zo (both touch game/engine/src/content/composition.ts ~ game/engine/src/content/), DK-05 (both touch game/engine/src/content/howto.ts ~ game/engine/src/content/), DK-06 (both touch game/engine/src/content/howto.ts ~ game/engine/src/content/), CL-13c (both touch game/engine/src/content/keywords/cl-13c.ts ~ game/engine/src/content/), CL-16 (both touch game/engine/src/content/goals.ts ~ game/engine/src/content/), WL-27 (both touch game/engine/src/content/goals.ts ~ game/engine/src/content/), WL-15 (both touch game/engine/src/content/cards.ts ~ game/engine/src/content/), WL-24 (both touch game/engine/src/content/keywords/wl-24.ts ~ game/engine/src/content/), WL-28 (both touch game/engine/src/render/ending.ts), WL-25b (both touch game/engine/src/render/ending.ts), WL-12 (both touch game/engine/src/content/cards.ts ~ game/engine/src/content/), WL-26 (both touch game/engine/src/content/ui/wl-26.ts ~ game/engine/src/content/), WL-22 (both touch game/engine/src/content/keywords/wl-22.ts ~ game/engine/src/content/), WL-38 (both touch game/engine/src/content/goals.ts ~ game/engine/src/content/), LG-03 (both touch game/engine/src/content/cards.ts ~ game/engine/src/content/), LG-02 (both touch game/engine/src/render/ending.ts), LG-07 (both touch game/engine/src/render/runsheet.ts), LG-08 (both touch game/engine/src/render/ending.ts), LN-06 (both touch game/engine/src/render/runsheet.ts), LN-01 (both touch game/engine/src/render/ending.ts), LG-09c (both touch game/engine/src/render/ending.ts), LN-02 (both touch game/engine/src/render/ending.ts), LN-11 (both touch game/engine/src/content/sentences.ts ~ game/engine/src/content/), LN-13 (both touch game/engine/src/content/sentences.ts ~ game/engine/src/content/), LN-12 (both touch game/engine/src/content/sentences.ts ~ game/engine/src/content/), SF-07zc (both touch game/engine/src/content/ui/sf-07zc.ts ~ game/engine/src/content/), SF-07ze (both touch game/engine/panels/setup.{html,css} ~ game/engine/panels/setup.html), SF-07zl (both touch game/engine/src/content/goals.ts ~ game/engine/src/content/), WL-29c (both touch game/engine/src/content/goals.ts ~ game/engine/src/content/), WL-29d (both touch game/engine/src/content/ui/wl-29d.ts ~ game/engine/src/content/), SF-07zd (both touch game/engine/src/content/ui/sf-07zd.ts ~ game/engine/src/content/), UI-40 (both touch game/engine/src/content/ui/ui-40.ts ~ game/engine/src/content/), UI-40b (both touch game/engine/panels/** ~ game/engine/panels/setup.html), UI-44 (both touch game/engine/src/content/sentences.ts ~ game/engine/src/content/), UI-45 (both touch game/engine/src/content/sentences.ts ~ game/engine/src/content/), UI-46 (both touch game/engine/src/content/sentences.ts ~ game/engine/src/content/), UI-47 (both touch game/engine/src/content/sentences.ts ~ game/engine/src/content/), UI-11b (both touch game/engine/panels/** ~ game/engine/panels/setup.html), SF-07zf (both touch game/engine/panels/setup.html), SF-07zk (both touch game/engine/src/content/sentences/sf-07zk.ts ~ game/engine/src/content/), SF-07zm (both touch game/engine/src/content/ui/sf-07zm.ts ~ game/engine/src/content/), SF-07zm2 (both touch game/engine/src/content/ui/sf-07zm2.ts ~ game/engine/src/content/), SF-07zs (both touch game/engine/src/content/ui/sf-07zs.ts ~ game/engine/src/content/)
- SF-47 Play a seed: the demo and the share: the free demo cut (any seed to Dispersal, the seed of the week to the end; the build's edition decides, never the URL; the Steam build is edition full), the seed in the URL (?seed=heron opens that seed at setup), a Share button (the seed's link with UTM: the phone's share sheet, copy on desktop), with nothing recorded and no request madeui · L · sonnetUI-38 (both touch game/engine/src/render/main.ts), UI-38b (both touch game/engine/src/render/main.ts), UI-39 (both touch game/engine/src/render/main.ts), DK-12b (both touch game/engine/src/render/main.ts), CL-13 (both touch game/engine/src/sim/assembly.ts), CL-13d (both touch game/engine/src/view/ending.ts), CL-16 (both touch game/engine/src/sim/assembly.ts), CL-18 (both touch game/engine/src/sim/assembly.ts), WL-27 (both touch game/engine/src/sim/assembly.ts), WL-24 (both touch game/engine/src/sim/assembly.ts), WL-28 (both touch game/engine/src/sim/assembly.ts), WL-25b (both touch game/engine/src/view/ending.ts), WL-26 (both touch game/engine/src/sim/assembly.ts), LG-03 (both touch game/engine/src/sim/assembly.ts), LG-04 (both touch game/engine/src/sim/assembly.ts), LG-02 (both touch game/engine/src/render/ending.ts), LG-07 (both touch game/engine/src/render/ending.ts), LG-08 (both touch game/engine/src/render/ending.ts), LN-06 (both touch game/engine/src/view/ending.ts), LN-01 (both touch game/engine/src/view/ending.ts), LG-09c (both touch game/engine/src/render/ending.ts), LN-02 (both touch game/engine/src/render/ending.ts), SF-07zc (both touch game/engine/src/render/main.ts), SF-07ze (both touch game/engine/panels/setup.{html,css} ~ game/engine/panels/setup.html), WL-29c (both touch game/engine/src/render/ending.ts), UI-40 (both touch game/engine/src/render/main.ts), UI-40b (both touch game/engine/src/render/main.ts), UI-44 (both touch game/engine/src/render/main.ts), UI-11 (both touch game/engine/tools/assemble.ts), UI-11b (both touch game/engine/panels/** ~ game/engine/panels/setup.html), UI-11c (both touch game/engine/tools/assemble.ts), SF-07zf (both touch game/engine/panels/setup.html), SF-07zk (both touch game/engine/src/sim/assembly.ts)
EP-10 · Balance
- LG-06 The balance pass, after the stages: SF-27's search again over the full knob set, once every stage's cards are insim · S · sonnetSF-27 (depends), LG-04 (depends)
- BL-01 CL-01's balance: re-tune what it movedsim · S · sonnetSF-27 (depends), DK-13b (both touch game/engine/src/sim/disk.ts ~ game/engine/src/sim/), DK-10 (both touch game/engine/src/sim/disk.ts ~ game/engine/src/sim/), DK-05 (both touch game/engine/src/sim/disk.ts ~ game/engine/src/sim/), DK-06 (both touch game/engine/src/sim/disk.ts ~ game/engine/src/sim/), CL-13 (both touch game/engine/src/sim/commands.ts ~ game/engine/src/sim/), CL-13b (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), CL-16 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), CL-18 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), WL-20 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-21 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-05 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-03 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-27 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), WL-15 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-24 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-28 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), WL-25 (both touch game/engine/src/sim/commands.ts ~ game/engine/src/sim/), WL-12 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-16 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-18 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-06 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-26 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-17 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-22 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-38 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), LN-10 (both touch game/engine/src/sim/scope.d.ts ~ game/engine/src/sim/), LG-03 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), LG-04 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), LG-02 (both touch game/engine/src/sim/commands.ts ~ game/engine/src/sim/), LG-07 (both touch game/engine/src/sim/commands.ts ~ game/engine/src/sim/), LG-08 (both touch game/engine/tools/bench/check.ts), LN-01 (both touch game/engine/src/sim/bio.ts ~ game/engine/src/sim/), LG-09 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-29c (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), SF-07zd (both touch game/engine/src/sim/cloud.ts ~ game/engine/src/sim/), SF-07zk (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), SF-07zm (both touch game/engine/src/sim/goals.ts ~ game/engine/src/sim/), SF-47 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/)
- BL-02 DK-16's balance: re-tune what it movedsim · S · sonnetSF-27 (depends), DK-13b (both touch game/engine/src/sim/disk.ts ~ game/engine/src/sim/), DK-10 (both touch game/engine/src/sim/disk.ts ~ game/engine/src/sim/), DK-05 (both touch game/engine/src/sim/disk.ts ~ game/engine/src/sim/), DK-06 (both touch game/engine/src/sim/disk.ts ~ game/engine/src/sim/), CL-13 (both touch game/engine/src/sim/commands.ts ~ game/engine/src/sim/), CL-13b (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), CL-16 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), CL-18 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), WL-20 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-21 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-05 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-03 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-27 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), WL-15 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-24 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-28 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), WL-25 (both touch game/engine/src/sim/commands.ts ~ game/engine/src/sim/), WL-12 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-16 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-18 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-06 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-26 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-17 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-22 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-38 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), LN-10 (both touch game/engine/src/sim/scope.d.ts ~ game/engine/src/sim/), LG-03 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), LG-04 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), LG-02 (both touch game/engine/src/sim/commands.ts ~ game/engine/src/sim/), LG-07 (both touch game/engine/src/sim/commands.ts ~ game/engine/src/sim/), LG-08 (both touch game/engine/tools/bench/check.ts), LN-01 (both touch game/engine/src/sim/bio.ts ~ game/engine/src/sim/), LG-09 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-29c (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), SF-07zd (both touch game/engine/src/sim/cloud.ts ~ game/engine/src/sim/), SF-07zk (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), SF-07zm (both touch game/engine/src/sim/goals.ts ~ game/engine/src/sim/), SF-47 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), BL-01 (both touch game/engine/tools/bench/check.ts)
- BL-03 WL-37's balance: re-tune what it movedsim · S · sonnetSF-27 (depends), DK-13b (both touch game/engine/src/sim/disk.ts ~ game/engine/src/sim/), DK-10 (both touch game/engine/src/sim/disk.ts ~ game/engine/src/sim/), DK-05 (both touch game/engine/src/sim/disk.ts ~ game/engine/src/sim/), DK-06 (both touch game/engine/src/sim/disk.ts ~ game/engine/src/sim/), CL-13 (both touch game/engine/src/sim/commands.ts ~ game/engine/src/sim/), CL-13b (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), CL-16 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), CL-18 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), WL-20 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-21 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-05 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-03 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-27 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), WL-15 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-24 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-28 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), WL-25 (both touch game/engine/src/sim/commands.ts ~ game/engine/src/sim/), WL-12 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-16 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-18 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-06 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-26 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-17 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-22 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-38 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), LN-10 (both touch game/engine/src/sim/scope.d.ts ~ game/engine/src/sim/), LG-03 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), LG-04 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), LG-02 (both touch game/engine/src/sim/commands.ts ~ game/engine/src/sim/), LG-07 (both touch game/engine/src/sim/commands.ts ~ game/engine/src/sim/), LG-08 (both touch game/engine/tools/bench/check.ts), LN-01 (both touch game/engine/src/sim/bio.ts ~ game/engine/src/sim/), LG-09 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-29c (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), SF-07zd (both touch game/engine/src/sim/cloud.ts ~ game/engine/src/sim/), SF-07zk (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), SF-07zm (both touch game/engine/src/sim/goals.ts ~ game/engine/src/sim/), SF-47 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), BL-01 (both touch game/engine/tools/bench/check.ts), BL-02 (both touch game/engine/tools/bench/check.ts)
- BL-04 CL-07's balance: re-tune what it movedsim · S · sonnetSF-27 (depends), DK-13b (both touch game/engine/src/sim/disk.ts ~ game/engine/src/sim/), DK-10 (both touch game/engine/src/sim/disk.ts ~ game/engine/src/sim/), DK-05 (both touch game/engine/src/sim/disk.ts ~ game/engine/src/sim/), DK-06 (both touch game/engine/src/sim/disk.ts ~ game/engine/src/sim/), CL-13 (both touch game/engine/src/sim/commands.ts ~ game/engine/src/sim/), CL-13b (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), CL-16 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), CL-18 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), WL-20 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-21 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-05 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-03 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-27 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), WL-15 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-24 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-28 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), WL-25 (both touch game/engine/src/sim/commands.ts ~ game/engine/src/sim/), WL-12 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-16 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-18 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-06 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-26 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-17 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-22 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-38 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), LN-10 (both touch game/engine/src/sim/scope.d.ts ~ game/engine/src/sim/), LG-03 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), LG-04 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), LG-02 (both touch game/engine/src/sim/commands.ts ~ game/engine/src/sim/), LG-07 (both touch game/engine/src/sim/commands.ts ~ game/engine/src/sim/), LG-08 (both touch game/engine/tools/bench/check.ts), LN-01 (both touch game/engine/src/sim/bio.ts ~ game/engine/src/sim/), LG-09 (both touch game/engine/src/sim/geo.ts ~ game/engine/src/sim/), WL-29c (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), SF-07zd (both touch game/engine/src/sim/cloud.ts ~ game/engine/src/sim/), SF-07zk (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), SF-07zm (both touch game/engine/src/sim/goals.ts ~ game/engine/src/sim/), SF-47 (both touch game/engine/src/sim/assembly.ts ~ game/engine/src/sim/), BL-01 (both touch game/engine/tools/bench/check.ts), BL-02 (both touch game/engine/tools/bench/check.ts), BL-03 (both touch game/engine/tools/bench/check.ts)
- SF-27 The balance pass: the one slice that tunes the sprint's knobs to the curve and the criteriasim · M · sonnetDK-05 (depends), DK-13c (depends), CL-16 (depends), DK-06 (depends), WL-12 (depends), WL-16 (depends), WL-18 (depends), WL-20 (depends), WL-21 (depends), WL-05 (depends), WL-03 (depends), WL-06 (depends), CL-13d (depends), WL-27 (depends), WL-26 (depends), DK-10 (depends), LG-03 (depends), LG-04 (depends), LG-02 (depends), LG-08 (depends), LN-01 (depends), LN-06 (depends), WL-15 (depends), WL-24 (depends), WL-28 (depends), WL-25c (depends), LG-09c (depends), WL-17 (depends), WL-22 (depends), CL-18 (depends), SF-07zd (both touch game/engine/src/sim/cloud.ts)
- LG-08b The ladder as a bench criterion: npm run bench gains the ladder's rows (blind play's life that lasts and its Power, the hands-off rungs), read from LG-08's one rung function on whole runs; a balance check, so it lives in BAL, after the move, with SF-27 and LG-06tooling · M · sonnetLG-08 (depends), SF-27 (depends), BL-01 (both touch game/engine/tools/bench/check.ts), BL-02 (both touch game/engine/tools/bench/check.ts), BL-03 (both touch game/engine/tools/bench/check.ts), BL-04 (both touch game/engine/tools/bench/check.ts)
EP-14 · Gravitas earned
- GV-02 Influence lands light: the free drag plays a touch with no lean and no slowed clockui · S · sonnetGV-01 (depends), DK-12c (both touch game/engine/src/view/weight.ts), UI-44 (both touch game/engine/src/render/weight.ts), GV-20 (both touch game/engine/src/render/weight.ts), GV-27 (both touch game/engine/test/v_weight.ts), No mockups: timing only: Influence keeps its lane and ripples; its clock, lean and pace change
- GV-08 The bake frames the act: the Codex's stills show the Effect, not the whole disk or the core's glowui · S · sonnetDK-12c (both touch game/engine/bake/effect_diskwarp*.webp ~ game/engine/bake/effect_*.webp), LN-02 (both touch game/engine/src/visuals/index.ts), LN-03 (both touch game/engine/src/visuals/index.ts), No mockups: the Codex's layout is unchanged: only the baked stills' framing, which are the game's own renders measured by tools/lookdist.ts, not drawn by hand
- GV-20 The answer beat can draw: gather stays 1 into the answer, and a row opts in to its own answerui · S · sonnetUI-44 (both touch game/engine/src/render/weight.ts), No mockups: it marks no row, so no frame on screen changes until GV-21 (the cloud's rows); GV-21 to GV-24 carry the mocks
- GV-25 The generic answer wave goes: every Effect answers in its own lookui · S · sonnetGV-24 (depends), WL-24 (both touch game/engine/src/effects/index.ts), LG-04 (both touch game/engine/src/effects/rows.impl.ts), UI-44 (both touch game/engine/src/render/weight.ts), GV-20 (both touch game/engine/src/effects/types.ts), GV-01 (both touch game/engine/src/effects/types.ts), GV-02 (both touch game/engine/src/render/weight.ts), No mockups: it removes code every row already no longer uses; no frame on screen changes
- GV-26 Feed it's swell stays in view: the giant shot frames the whole swell at 390ui · S · sonnetSF-07zo (both touch game/engine/src/render/shots.ts), SF-07zp (both touch game/engine/src/render/shots.ts), SF-07zq (both touch game/engine/src/render/shots.ts), UI-40 (both touch game/engine/src/render/shots.ts), UI-44 (both touch game/engine/src/render/shots.ts), UI-47 (both touch game/engine/src/render/shots.ts), UI-49 (both touch game/engine/src/render/shots.ts), SF-07zn (both touch game/engine/src/render/shots.ts)
- GV-27 A power acted from a card plays its Effect with its shot, not beforeui · S · sonnetSF-07zo (both touch game/engine/src/render/shots.ts), SF-07zp (both touch game/engine/src/render/shots.ts), SF-07zq (both touch game/engine/src/render/shots.ts), LG-02 (both touch game/engine/src/render/moment.ts), UI-40 (both touch game/engine/src/render/shots.ts), UI-44 (both touch game/engine/src/render/shots.ts), UI-47 (both touch game/engine/src/render/shots.ts), UI-49 (both touch game/engine/src/render/shots.ts), SF-07zn (both touch game/engine/src/render/shots.ts), GV-26 (both touch game/engine/src/render/shots.ts)
- GV-28 Let it fall grows with its number: the star's flare and the dust shell scale with the number the player setsui · S · sonnetCL-13d (both touch game/engine/src/effects/rows/assembly.rows.ts), WL-25c (both touch game/engine/src/effects/rows/assembly.rows.ts), LG-03 (both touch game/engine/src/effects/rows/assembly.rows.ts)
- GV-01 The tier sets the clock: every Effect lands, jolts and sounds at its Codex tier, its mass placing it inside the bandui · M · opusDK-12c (both touch game/engine/src/effects/rows/disk.rows.ts), DK-13b (both touch game/engine/src/effects/rows/disk.rows.ts), DK-10 (both touch game/engine/src/effects/rows/disk.rows.ts), DK-05 (both touch game/engine/src/effects/rows/disk.rows.ts), DK-06 (both touch game/engine/src/effects/rows/disk.rows.ts), CL-13d (both touch game/engine/src/effects/rows/assembly.rows.ts), WL-05 (both touch game/engine/src/effects/rows/globe.rows.ts), WL-03 (both touch game/engine/src/effects/rows/globe.rows.ts), WL-15 (both touch game/engine/src/effects/rows/globe.rows.ts), WL-25c (both touch game/engine/src/effects/rows/assembly.rows.ts), WL-06 (both touch game/engine/src/effects/rows/globe.rows.ts), LG-03 (both touch game/engine/src/effects/rows/assembly.rows.ts), LG-04 (both touch game/engine/src/effects/rows.impl.ts), LG-02 (both touch game/engine/src/render/moment.ts), UI-44 (both touch game/engine/src/render/weight.ts), GV-20 (both touch game/engine/src/effects/player.ts), GV-26 (both touch game/engine/src/effects/doc/rows/067-feedgiant.md), GV-27 (both touch game/engine/src/render/moment.ts), GV-28 (both touch game/engine/src/effects/rows/assembly.rows.ts), No mockups: timing only: the land, the jolt, the cue and the answer's reach follow the tier; no Effect gets a new look
- GV-03 Tiers: the cloud and the disk set by the momentui · M · sonnetBL-01 (both touch game/engine/src/sim/ ~ game/engine/src/sim/cloud.codex.ts), BL-02 (both touch game/engine/src/sim/ ~ game/engine/src/sim/cloud.codex.ts), BL-03 (both touch game/engine/src/sim/ ~ game/engine/src/sim/cloud.codex.ts), BL-04 (both touch game/engine/src/sim/ ~ game/engine/src/sim/cloud.codex.ts), No mockups: tier only: the Codex's gravitas words change; with GV-01 the clock follows; no new look
- GV-04 Tiers: the collisions set by the momentui · M · sonnetGV-01 (depends), BL-01 (both touch game/engine/src/sim/ ~ game/engine/src/sim/assembly.codex.ts), BL-02 (both touch game/engine/src/sim/ ~ game/engine/src/sim/assembly.codex.ts), BL-03 (both touch game/engine/src/sim/ ~ game/engine/src/sim/assembly.codex.ts), BL-04 (both touch game/engine/src/sim/ ~ game/engine/src/sim/assembly.codex.ts), GV-03 (both touch game/engine/src/sim/cloud.codex.ts), No mockups: tier only: the Codex's gravitas words change; with GV-01 the clock follows; no new look
- GV-05 Tiers: the worlds' acts set by the moment, and the old price rule's test retiredui · M · sonnetGV-01 (depends), GV-03 (depends), GV-04 (depends), GV-06 (depends), GV-19 (depends), BL-01 (both touch game/engine/src/sim/ ~ game/engine/src/sim/geo.codex.ts), BL-02 (both touch game/engine/src/sim/ ~ game/engine/src/sim/geo.codex.ts), BL-03 (both touch game/engine/src/sim/ ~ game/engine/src/sim/geo.codex.ts), BL-04 (both touch game/engine/src/sim/ ~ game/engine/src/sim/geo.codex.ts), GV-15 (both touch game/engine/src/sim/geo.codex.ts), GV-16 (both touch game/engine/src/domain/worlds/physics/water.codex.ts), No mockups: tier only: the Codex's gravitas words change; with GV-01 the clock follows; no new look
- GV-06 Tiers: life's acts and the Late Bombardment set by the momentui · M · sonnetLG-09 (both touch game/engine/src/domain/life/ ~ game/engine/src/domain/life/physics/bless.codex.ts), BL-01 (both touch game/engine/src/sim/ ~ game/engine/src/sim/core.codex.ts), BL-02 (both touch game/engine/src/sim/ ~ game/engine/src/sim/core.codex.ts), BL-03 (both touch game/engine/src/sim/ ~ game/engine/src/sim/core.codex.ts), BL-04 (both touch game/engine/src/sim/ ~ game/engine/src/sim/core.codex.ts), No mockups: tier only: the Codex's gravitas words change; with GV-01 the clock follows; no new look
- GV-09 Catch it turns, Feed pours: the streamer bends into the spin; the core does not swellui · M · sonnetGV-08 (depends), GV-01 (both touch game/engine/src/effects/rows/cloud.rows.ts), GV-02 (both touch game/engine/src/effects/doc/rows/000-vector.md), GV-03 (both touch game/engine/src/domain/cloud/physics/catchstream.codex.ts)
- GV-10 Soot is dark: Seed with soot pours a shadow from its own side; the red-giant wind stays redui · M · sonnetGV-08 (depends), GV-01 (both touch game/engine/src/effects/rows/outside.rows.ts), GV-09 (both touch game/engine/tools/lookdist.test.ts)
- GV-11 Still, shaded, falling: Calm stills inside the core, Shielding coats it, the collapse falls inui · M · sonnetGV-08 (depends), BL-01 (both touch game/engine/src/sim/ ~ game/engine/src/sim/cloud.codex.ts), BL-02 (both touch game/engine/src/sim/ ~ game/engine/src/sim/cloud.codex.ts), BL-03 (both touch game/engine/src/sim/ ~ game/engine/src/sim/cloud.codex.ts), BL-04 (both touch game/engine/src/sim/ ~ game/engine/src/sim/cloud.codex.ts), GV-01 (both touch game/engine/src/effects/rows/cloud.rows.ts), GV-02 (both touch game/engine/src/effects/doc/rows/000-vector.md), GV-03 (both touch game/engine/src/sim/cloud.codex.ts), GV-04 (both touch game/engine/src/sim/cloud.codex.ts), GV-09 (both touch game/engine/src/effects/rows/cloud.rows.ts)
- GV-12 Four lights on the star: an outburst, a flare, a world dropped in and a world lost, each its own lightui · M · sonnetGV-08 (depends), DK-12c (both touch game/engine/src/effects/rows/disk.rows.ts), DK-13b (both touch game/engine/src/effects/rows/disk.rows.ts), DK-10 (both touch game/engine/src/effects/rows/disk.rows.ts), DK-05 (both touch game/engine/src/effects/rows/disk.rows.ts), DK-06 (both touch game/engine/src/effects/rows/disk.rows.ts), CL-13d (both touch game/engine/src/effects/rows/assembly.rows.ts), WL-25c (both touch game/engine/src/effects/rows/assembly.rows.ts), LG-03 (both touch game/engine/src/effects/rows/assembly.rows.ts), BL-01 (both touch game/engine/src/sim/ ~ game/engine/src/sim/assembly.codex.ts), BL-02 (both touch game/engine/src/sim/ ~ game/engine/src/sim/assembly.codex.ts), BL-03 (both touch game/engine/src/sim/ ~ game/engine/src/sim/assembly.codex.ts), BL-04 (both touch game/engine/src/sim/ ~ game/engine/src/sim/assembly.codex.ts), GV-26 (both touch game/engine/src/effects/doc/rows/067-feedgiant.md), GV-28 (both touch game/engine/src/effects/rows/assembly.rows.ts), GV-01 (both touch game/engine/src/effects/rows/assembly.rows.ts), GV-03 (both touch game/engine/src/domain/disk/physics/flare.codex.ts), GV-04 (both touch game/engine/src/sim/assembly.codex.ts)
- GV-13 Five ways to move an orbit: a shove, a drag, a rescue, a release and a capture, each with its own motionui · M · sonnetGV-08 (depends), CL-13d (both touch game/engine/src/effects/rows/assembly.rows.ts), WL-25c (both touch game/engine/src/effects/rows/assembly.rows.ts), LG-03 (both touch game/engine/src/effects/rows/assembly.rows.ts), GV-26 (both touch game/engine/src/effects/doc/rows/067-feedgiant.md), GV-28 (both touch game/engine/src/effects/rows/assembly.rows.ts), GV-01 (both touch game/engine/src/effects/rows/assembly.rows.ts), GV-04 (both touch game/engine/src/domain/assembly/physics/lock.codex.ts), GV-09 (both touch game/engine/tools/lookdist.test.ts), GV-10 (both touch game/engine/tools/lookdist.test.ts), GV-12 (both touch game/engine/src/effects/rows/assembly.rows.ts)
- GV-14 Ring, wave, puff, frost: the disk's four taps each draw their own shapeui · M · sonnetGV-08 (depends), DK-12c (both touch game/engine/src/effects/rows/disk.rows.ts), DK-13b (both touch game/engine/src/effects/rows/disk.rows.ts), DK-10 (both touch game/engine/src/effects/rows/disk.rows.ts), DK-05 (both touch game/engine/src/effects/rows/disk.rows.ts), DK-06 (both touch game/engine/src/effects/rows/disk.rows.ts), GV-01 (both touch game/engine/src/effects/rows/disk.rows.ts), GV-03 (both touch game/engine/src/domain/disk/physics/perturb.codex.ts), GV-12 (both touch game/engine/src/effects/rows/disk.rows.ts)
- GV-15 The world's own sky: the habitable zone, the methane, the oxygen, the frost and the cycle each read on the worldui · M · sonnetGV-08 (depends), WL-03 (both touch game/engine/src/effects/haze.ts), WL-24 (both touch game/engine/src/effects/methane.ts), WL-26 (both touch game/engine/src/effects/haze.ts), BL-01 (both touch game/engine/src/sim/ ~ game/engine/src/sim/geo.codex.ts), BL-02 (both touch game/engine/src/sim/ ~ game/engine/src/sim/geo.codex.ts), BL-03 (both touch game/engine/src/sim/ ~ game/engine/src/sim/geo.codex.ts), BL-04 (both touch game/engine/src/sim/ ~ game/engine/src/sim/geo.codex.ts), GV-01 (both touch game/engine/src/effects/doc/rows/041-breakmoon.md)
- GV-16 Ice or rock: the icy moonlet lands cold and steams; the asteroid lands hot and meltsui · M · sonnetGV-08 (depends), CL-13d (both touch game/engine/src/effects/rows/globe.rows.ts), WL-05 (both touch game/engine/src/effects/rows/globe.rows.ts), WL-03 (both touch game/engine/src/effects/rows/globe.rows.ts), WL-15 (both touch game/engine/src/effects/rows/globe.rows.ts), WL-06 (both touch game/engine/src/effects/rows/globe.rows.ts), GV-01 (both touch game/engine/src/effects/rows/globe.rows.ts), GV-15 (both touch game/engine/src/effects/doc/rows/041-breakmoon.md)
- GV-17 Field kept, field lost: the reversal's field breaks and greys; the guard's rises brightui · M · sonnetGV-08 (depends), CL-13d (both touch game/engine/src/effects/rows/globe.rows.ts), WL-05 (both touch game/engine/src/effects/rows/globe.rows.ts), WL-03 (both touch game/engine/src/effects/rows/globe.rows.ts), WL-15 (both touch game/engine/src/effects/rows/globe.rows.ts), WL-06 (both touch game/engine/src/effects/rows/globe.rows.ts), GV-01 (both touch game/engine/src/effects/rows/globe.rows.ts), GV-15 (both touch game/engine/src/effects/doc/rows/041-breakmoon.md), GV-16 (both touch game/engine/src/effects/rows/globe.rows.ts)
- GV-18 Felt at all: six acts that draw too little to be seen are sized to be seen at 390 and 1280ui · M · sonnetGV-08 (depends), CL-13d (both touch game/engine/src/effects/rows/assembly.rows.ts), WL-05 (both touch game/engine/src/effects/rows/globe.rows.ts), WL-03 (both touch game/engine/src/effects/rows/globe.rows.ts), WL-15 (both touch game/engine/src/effects/rows/globe.rows.ts), WL-25c (both touch game/engine/src/effects/rows/assembly.rows.ts), WL-06 (both touch game/engine/src/effects/rows/globe.rows.ts), LG-03 (both touch game/engine/src/effects/rows/assembly.rows.ts), GV-26 (both touch game/engine/src/effects/doc/rows/067-feedgiant.md), GV-28 (both touch game/engine/src/effects/rows/assembly.rows.ts), GV-01 (both touch game/engine/src/effects/rows/assembly.rows.ts), GV-12 (both touch game/engine/src/effects/rows/assembly.rows.ts), GV-13 (both touch game/engine/src/effects/rows/assembly.rows.ts), GV-15 (both touch game/engine/src/effects/doc/rows/041-breakmoon.md), GV-16 (both touch game/engine/src/effects/rows/globe.rows.ts), GV-17 (both touch game/engine/src/effects/rows/globe.rows.ts)
- GV-19 The Codex names what plays: each event points at the Effect it plays, and a line that draws nothing claims no tierui · M · sonnetWL-24 (both touch game/engine/src/effects/methane.ts), BL-01 (both touch game/engine/src/sim/ ~ game/engine/src/sim/geo.codex.ts), BL-02 (both touch game/engine/src/sim/ ~ game/engine/src/sim/geo.codex.ts), BL-03 (both touch game/engine/src/sim/ ~ game/engine/src/sim/geo.codex.ts), BL-04 (both touch game/engine/src/sim/ ~ game/engine/src/sim/geo.codex.ts), GV-03 (both touch game/engine/src/sim/cloud.codex.ts), GV-04 (both touch game/engine/src/sim/assembly.codex.ts), GV-06 (both touch game/engine/src/sim/core.codex.ts), GV-11 (both touch game/engine/src/sim/cloud.codex.ts), GV-12 (both touch game/engine/src/sim/assembly.codex.ts), GV-15 (both touch game/engine/src/effects/methane.ts), No mockups: the Codex's fields only (which Effect an entry names, its tier); no new look and no layout change
- GV-21 The cloud's answers draw: each Effect's own answer beat switches onui · M · sonnetGV-20 (depends), DK-12c (both touch game/engine/bake/effect_diskwarp*.webp ~ game/engine/bake/effect_*.webp), GV-08 (both touch game/engine/bake/effect_*.webp), GV-01 (both touch game/engine/src/effects/rows/cloud.rows.ts), GV-09 (both touch game/engine/src/effects/rows/cloud.rows.ts), GV-10 (both touch game/engine/src/effects/rows/outside.rows.ts), GV-11 (both touch game/engine/src/effects/rows/cloud.rows.ts), GV-12 (both touch game/engine/bake/effect_{outburst,flare,fall,lost}*.webp ~ game/engine/bake/effect_*.webp), GV-13 (both touch game/engine/bake/effect_{nudge,tug,catch,unlock,lock}*.webp ~ game/engine/bake/effect_*.webp), GV-14 (both touch game/engine/bake/effect_{wall,stir,perturb,icy}*.webp ~ game/engine/bake/effect_*.webp), GV-15 (both touch game/engine/bake/effect_{habshort,methane,oxygen,collapse,cycle}*.webp ~ game/engine/bake/effect_*.webp), GV-16 (both touch game/engine/bake/effect_{water}*.webp ~ game/engine/bake/effect_*.webp), GV-17 (both touch game/engine/bake/effect_{spinback}*.webp ~ game/engine/bake/effect_*.webp), GV-18 (both touch game/engine/bake/effect_{rogue,strip,encounter,comets,phosphorus,deflect}*.webp ~ game/engine/bake/effect_*.webp)
- GV-22 The disk's answers draw: each Effect's own answer beat switches onui · M · sonnetGV-21 (depends), DK-12c (both touch game/engine/src/effects/rows/disk.rows.ts), DK-13b (both touch game/engine/src/effects/rows/disk.rows.ts), DK-10 (both touch game/engine/src/effects/rows/disk.rows.ts), DK-05 (both touch game/engine/src/effects/rows/disk.rows.ts), DK-06 (both touch game/engine/src/effects/rows/disk.rows.ts), GV-08 (both touch game/engine/bake/effect_*.webp), GV-01 (both touch game/engine/src/effects/rows/disk.rows.ts), GV-09 (both touch game/engine/bake/effect_{catchstream}*.webp ~ game/engine/bake/effect_*.webp), GV-10 (both touch game/engine/bake/effect_{soot}*.webp ~ game/engine/bake/effect_*.webp), GV-11 (both touch game/engine/bake/effect_{calm,begincollapse}*.webp ~ game/engine/bake/effect_*.webp), GV-12 (both touch game/engine/src/effects/rows/disk.rows.ts), GV-13 (both touch game/engine/bake/effect_{nudge,tug,catch,unlock,lock}*.webp ~ game/engine/bake/effect_*.webp), GV-14 (both touch game/engine/src/effects/rows/disk.rows.ts), GV-15 (both touch game/engine/bake/effect_{habshort,methane,oxygen,collapse,cycle}*.webp ~ game/engine/bake/effect_*.webp), GV-16 (both touch game/engine/bake/effect_{water}*.webp ~ game/engine/bake/effect_*.webp), GV-17 (both touch game/engine/bake/effect_{spinback}*.webp ~ game/engine/bake/effect_*.webp), GV-18 (both touch game/engine/bake/effect_{rogue,strip,encounter,comets,phosphorus,deflect}*.webp ~ game/engine/bake/effect_*.webp)
- GV-23 The assembly's answers draw: each Effect's own answer beat switches onui · M · sonnetGV-22 (depends), DK-12c (both touch game/engine/bake/effect_diskwarp*.webp ~ game/engine/bake/effect_*.webp), CL-13d (both touch game/engine/src/effects/rows/assembly.rows.ts), WL-25c (both touch game/engine/src/effects/rows/assembly.rows.ts), LG-03 (both touch game/engine/src/effects/rows/assembly.rows.ts), GV-08 (both touch game/engine/bake/effect_*.webp), GV-26 (both touch game/engine/src/effects/doc/rows/067-feedgiant.md), GV-28 (both touch game/engine/src/effects/rows/assembly.rows.ts), GV-01 (both touch game/engine/src/effects/rows/assembly.rows.ts), GV-09 (both touch game/engine/bake/effect_{catchstream}*.webp ~ game/engine/bake/effect_*.webp), GV-10 (both touch game/engine/bake/effect_{soot}*.webp ~ game/engine/bake/effect_*.webp), GV-11 (both touch game/engine/bake/effect_{calm,begincollapse}*.webp ~ game/engine/bake/effect_*.webp), GV-12 (both touch game/engine/src/effects/rows/assembly.rows.ts), GV-13 (both touch game/engine/src/effects/rows/assembly.rows.ts), GV-14 (both touch game/engine/bake/effect_{wall,stir,perturb,icy}*.webp ~ game/engine/bake/effect_*.webp), GV-15 (both touch game/engine/bake/effect_{habshort,methane,oxygen,collapse,cycle}*.webp ~ game/engine/bake/effect_*.webp), GV-16 (both touch game/engine/bake/effect_{water}*.webp ~ game/engine/bake/effect_*.webp), GV-17 (both touch game/engine/bake/effect_{spinback}*.webp ~ game/engine/bake/effect_*.webp), GV-18 (both touch game/engine/src/effects/rows/assembly.rows.ts), GV-21 (both touch game/engine/bake/effect_*.webp)
- GV-24 The worlds' answers draw: each Effect's own answer beat switches onui · L · sonnetGV-23 (depends), DK-12c (both touch game/engine/bake/effect_diskwarp*.webp ~ game/engine/bake/effect_*.webp), CL-13d (both touch game/engine/src/effects/rows/globe.rows.ts), WL-20 (both touch game/engine/src/effects/supernova.ts), WL-05 (both touch game/engine/src/effects/rows/globe.rows.ts), WL-03 (both touch game/engine/src/effects/haze.ts), WL-15 (both touch game/engine/src/effects/rows/globe.rows.ts), WL-24 (both touch game/engine/src/effects/methane.ts), WL-06 (both touch game/engine/src/effects/rows/globe.rows.ts), WL-26 (both touch game/engine/src/effects/haze.ts), GV-08 (both touch game/engine/bake/effect_*.webp), GV-01 (both touch game/engine/src/effects/rows/globe.rows.ts), GV-09 (both touch game/engine/bake/effect_{catchstream}*.webp ~ game/engine/bake/effect_*.webp), GV-10 (both touch game/engine/bake/effect_{soot}*.webp ~ game/engine/bake/effect_*.webp), GV-11 (both touch game/engine/bake/effect_{calm,begincollapse}*.webp ~ game/engine/bake/effect_*.webp), GV-12 (both touch game/engine/bake/effect_{outburst,flare,fall,lost}*.webp ~ game/engine/bake/effect_*.webp), GV-13 (both touch game/engine/bake/effect_{nudge,tug,catch,unlock,lock}*.webp ~ game/engine/bake/effect_*.webp), GV-14 (both touch game/engine/bake/effect_{wall,stir,perturb,icy}*.webp ~ game/engine/bake/effect_*.webp), GV-15 (both touch game/engine/src/effects/haze.ts), GV-16 (both touch game/engine/src/effects/rows/globe.rows.ts), GV-17 (both touch game/engine/src/effects/rows/globe.rows.ts), GV-18 (both touch game/engine/src/effects/rows/globe.rows.ts), GV-19 (both touch game/engine/src/effects/methane.ts), GV-21 (both touch game/engine/bake/effect_*.webp), GV-22 (both touch game/engine/bake/effect_*.webp)
EP-16 · Gateway and accounts
- GW-02 The contract is current: the gateway job fails when the built gateway.json or the regenerated Orval client differs from what is committedtooling · S · haikuQA-11 (both touch .github/workflows/ci.yml), UI-11e (both touch .github/workflows/ci.yml)
- GW-05b The consent box at sign-up: the site's sign-up shows one unticked box for news email, and its answer goes with the new personui · S · sonnetGW-05 (depends)
- GW-09 The moments Customer.io hears: signed_up, system_saved with the person's count, and system_claimed go to Customer.io as events, off by defaulttooling · S · sonnetGW-08 (depends), SV-04c (depends), GW-05 (both touch thedivide/src/Services/Gateway/BoundedContexts/PersonService/PersonService.Internal/ ~ thedivide/src/Services/Gateway/BoundedContexts/PersonService/PersonService.Internal/Subscribers/), GW-10 (both touch thedivide/src/Services/Gateway/BoundedContexts/PersonService/PersonService.Internal/ ~ thedivide/src/Services/Gateway/BoundedContexts/PersonService/PersonService.Internal/Subscribers/), SV-04b (both touch thedivide/src/Services/Gateway/BoundedContexts/SavedSystemsService/SavedSystemsService.Internal/)
- GW-10 Unsubscribe comes back: Customer.io's signed reporting webhook turns a person's marketing consent off in the Gateway when they unsubscribe or complaintooling · S · sonnetGW-08 (depends), GW-05 (both touch thedivide/src/Services/Gateway/Api/Controllers/Anonymous/), GW-06 (both touch thedivide/src/Framework/Configuration/ConfigKeys.cs)
- GW-11 The welcome email, drafted: one welcome template's subject, preview and body committed as a draft for Customer.io, in the game's words, checked by the copy rules, sent by nothingtooling · S · haikuGW-09 (depends), QA-10 (both touch game/engine/tools/ci.ts), UI-11e (both touch game/engine/tools/ci.ts)
- GW-03 The API reference for staff: /developers/api on the site renders the committed gateway.json with Scalar, for signed-in dtl.admin onlyui · M · sonnetUI-11 (both touch game/package.json), UI-11b (both touch game/package.json), UI-11c (both touch game/package.json), UI-11d (both touch game/package.json), UI-11e (both touch game/package.json), No mockups: the page is Scalar's own reference UI inside the site's existing header/nav; no new design
- GW-06 The email code is sent: a sign-in code goes out through Amazon SES behind a sender port, and email joins the four OIDC providers outside Development once a sender is configuredtooling · M · sonnetGW-07 (both touch thedivide/infra/terraform/README.md), GW-05 (both touch thedivide/src/Services/Gateway/BoundedContexts/IdentityService/IdentityService.Internal/CommandHandlers/DefineExternalLoginSessionHandler.cs ~ thedivide/src/Services/Gateway/BoundedContexts/IdentityService/IdentityService.Internal/)
- GW-08 People and consent reach Customer.io: the Gateway identifies each person who signs up in Customer.io with their marketing opt-in and its timestamp, and an erasure deletes them there; off by defaulttooling · M · sonnetGW-05 (depends), GW-06 (both touch thedivide/src/Services/Gateway/BoundedContexts/IdentityService/IdentityService.Internal/ ~ thedivide/src/Services/Gateway/BoundedContexts/IdentityService/IdentityService.Internal/AccountErasureOrchestrator.cs)
EP-15 · Saved systems
- SV-04c Signing up claims the saves: a signed-in person claims a device token's saves for their PersonId, and an erasure turns them back to anonymoustooling · S · sonnetSV-04b (depends), GW-05 (depends), GW-06 (both touch thedivide/src/Services/Gateway/BoundedContexts/IdentityService/IdentityService.Internal/ ~ thedivide/src/Services/Gateway/BoundedContexts/IdentityService/IdentityService.Internal/AccountErasureOrchestrator.cs), GW-08 (both touch thedivide/src/Services/Gateway/BoundedContexts/IdentityService/IdentityService.Internal/AccountErasureOrchestrator.cs), GW-10 (both touch thedivide/openapi/gateway.json)
- SV-04d A credit and its word list: SetCredit stores anonymous, a chosen name or the account on a save, and the Gateway refuses a name its word list or PersonDisplayName's rules refusetooling · S · sonnetSV-04b (depends), GW-05 (both touch thedivide/src/Framework/Hosting/DtlHostingExtensions.cs), GW-10 (both touch thedivide/src/Services/Gateway/Api/Controllers/Anonymous/), SV-04c (both touch thedivide/src/Framework/Hosting/DtlHostingExtensions.cs), GW-09 (both touch thedivide/src/Services/Gateway/BoundedContexts/SavedSystemsService/SavedSystemsService.Internal/)
- SV-04e A reported name is hidden: ReportCredit hides a save's chosen name at once, and staff with dtl.admin can list the hidden ones and restore onetooling · S · sonnetSV-04d (depends), GW-05 (both touch thedivide/src/Framework/Hosting/DtlHostingExtensions.cs), GW-10 (both touch thedivide/openapi/gateway.json), SV-04b (both touch thedivide/src/Services/Gateway/BoundedContexts/SavedSystemsService/SavedSystemsService.Internal/), SV-04c (both touch thedivide/src/Framework/Hosting/DtlHostingExtensions.cs), GW-09 (both touch thedivide/src/Services/Gateway/BoundedContexts/SavedSystemsService/SavedSystemsService.Internal/)
- SV-08 Saves go to the Gateway: the page sends every record in its outbox to SaveSystem under this device's anonymous token, and removes it once the Gateway has itui · S · sonnetSV-03 (depends), SV-04b (depends), UI-11d (depends), UI-11 (both touch game/engine/package.json), SF-47 (both touch game/engine/src/adapters/index.ts), No mockups: the send draws nothing
- SV-09 The site claims this device's saves: after sign-up or sign-in on the site, the page claims dl.device's saves for the person, onceui · S · sonnetSV-04c (depends), SV-08 (depends), UI-11 (both touch game/package.json), UI-11b (both touch game/package.json), UI-11c (both touch game/package.json), UI-11d (both touch game/package.json), UI-11e (both touch game/package.json), GW-03 (both touch game/package.json), No mockups: the claim draws nothing; the saved line and the account page's list are SV-05's and SV-14's
- SV-14 Your saved systems on the account: /account lists the person's saved systems, newest first, each with its seed, how it ended and its credit, and plays its seed againui · S · sonnetSV-04c (depends), SF-47 (depends), GW-05b (both touch game/app/account/page.tsx)
- SV-16 Keep this system: the end page offers a Keep this system choice that marks the run's save kept, and the Gateway stores the markui · S · sonnetSV-05 (depends), SV-08 (depends), LN-06 (both touch game/engine/src/ui/ending/Report.tsx), SF-47b (both touch game/engine/src/content/ ~ game/engine/src/content/saved.ts), waiting for mocks
- SV-10 Keeping a system needs an account: choosing Keep this system on the end page asks a signed-out player to sign up first, then keeps itui · S · sonnetSV-05 (depends), SV-09 (depends), SV-16 (depends), LN-06 (both touch game/engine/src/ui/ending/Report.tsx), SF-47b (both touch game/engine/src/content/ ~ game/engine/src/content/saved.ts), waiting for mocks
- SV-11 Three systems saved: after SAVE_NUDGE_AT saved systems (3), a signed-out player's end page carries one soft line that an account keeps them all, onceui · S · sonnetSV-05 (depends), SV-06 (depends), LN-06 (both touch game/engine/src/ui/ending/Report.tsx), SF-47b (both touch game/engine/src/content/ ~ game/engine/src/content/saved.ts), SV-03 (both touch game/engine/src/application/save.ts), SV-16 (both touch game/engine/src/content/saved.ts), SV-10 (both touch game/engine/src/content/saved.ts)
- SV-12 The brand page asks too: the home page at / offers an account that keeps every system you play, beside Play, never in its wayui · S · sonnetSV-14 (depends), MK-26 (both touch game/test/home-page.test.ts)
- SV-03 Every play is saved: the page writes a run's DustToLifeSave/1 record to a local outbox at each stage's close and at its end, whatever the outcome, and keeps it until it is sentui · M · sonnetSV-02 (depends), UI-38 (both touch game/engine/src/render/main.ts), UI-38b (both touch game/engine/src/render/main.ts), UI-39 (both touch game/engine/src/render/main.ts), DK-12b (both touch game/engine/src/render/main.ts), SF-07zc (both touch game/engine/src/render/main.ts), SF-07ze (both touch game/engine/src/render/main.ts), UI-40 (both touch game/engine/src/render/main.ts), UI-40b (both touch game/engine/src/render/main.ts), UI-44 (both touch game/engine/src/render/main.ts), SF-07zk (both touch game/engine/src/render/main.ts), SF-47 (both touch game/engine/src/render/main.ts), No mockups: the capture draws nothing; the end page's saved line and its account ask are SV-05's
- SV-04b A save reaches the Gateway: SavedSystemsService stores a DustToLifeSave/1 under its device token in Marten, its routes in gateway.json and the regenerated clienttooling · M · sonnetGW-05 (both touch thedivide/src/Services/Gateway/Api/Controllers/Anonymous/), GW-08 (both touch thedivide/src/Services/Gateway/Worker/Program.cs), GW-10 (both touch thedivide/src/Services/Gateway/Api/Controllers/Anonymous/)
- SV-05 Your system is saved: the end page says the run's system is kept and offers an account on the site to keep it, name it and come back to itui · M · sonnetSV-03 (depends), SV-08 (depends), WL-28 (both touch game/engine/src/render/ending.ts), WL-25b (both touch game/engine/src/render/ending.ts), WL-38 (both touch game/engine/src/ui/ending/fixtures.ts), LG-02 (both touch game/engine/src/render/ending.ts), LG-07 (both touch game/engine/src/render/ending.ts), LG-08 (both touch game/engine/src/render/ending.ts), LN-06 (both touch game/engine/src/ui/ending/Report.tsx), LN-01 (both touch game/engine/src/render/ending.ts), LG-09c (both touch game/engine/src/render/ending.ts), LN-02 (both touch game/engine/src/render/ending.ts), WL-29c (both touch game/engine/src/render/ending.ts), SF-47 (both touch game/engine/src/render/ending.ts), SF-47b (both touch game/engine/src/render/ending.ts)
- SV-06 Who made this system: on the end page the player credits the saved system as anonymous, a chosen name or their account, and the Gateway's check answers a refused nameui · M · sonnetSV-05 (depends), SV-04d (depends), SV-08 (depends), LN-06 (both touch game/engine/src/ui/ending/Report.tsx), SF-47b (both touch game/engine/src/content/ ~ game/engine/src/content/saved.ts), SV-16 (both touch game/engine/src/content/saved.ts), SV-10 (both touch game/engine/src/content/saved.ts)
- SV-15 Come back to a saved system: Open on the account's list loads the saved run itself at /play?save=<id>, replayed from its record to where it was saved, when this sim made itui · M · sonnetSV-14 (depends), SV-02 (depends), SV-08 (depends), UI-38 (both touch game/engine/src/render/main.ts), UI-38b (both touch game/engine/src/render/main.ts), UI-39 (both touch game/engine/src/render/main.ts), DK-12b (both touch game/engine/src/render/main.ts), SF-07zc (both touch game/engine/src/render/main.ts), SF-07ze (both touch game/engine/src/render/main.ts), UI-40 (both touch game/engine/src/render/main.ts), UI-40b (both touch game/engine/src/render/main.ts), UI-44 (both touch game/engine/src/render/main.ts), SF-07zk (both touch game/engine/src/render/main.ts), SF-47 (both touch game/engine/src/render/main.ts), SF-47b (both touch game/engine/src/content/ ~ game/engine/src/content/saved.ts), GW-05b (both touch game/content/account.json), SV-03 (both touch game/engine/src/application/save.ts), SV-05 (both touch game/engine/src/content/saved.ts), SV-16 (both touch game/engine/src/content/saved.ts), SV-10 (both touch game/engine/src/content/saved.ts), SV-06 (both touch game/engine/src/content/saved.ts), SV-11 (both touch game/engine/src/application/save.ts), No mockups: it opens the existing play page at the saved run's step and uses the existing toast; the account row's Open sits beside SV-14's Play this seed in the same row
- SV-02 The close is logged: a card answered or closed goes into its own close log beside the command log, so a run's replay is the same run, its card queue and the coming-apart cooldown includedsim · L · sonnetUI-38 (both touch game/engine/src/render/main.ts), UI-38b (both touch game/engine/src/render/main.ts), UI-39 (both touch game/engine/src/render/main.ts), DK-12b (both touch game/engine/src/render/main.ts), WL-24 (both touch game/engine/tools/fixtures.ts), WL-17 (both touch game/engine/src/sim/core.ts), WL-22 (both touch game/engine/src/sim/core.ts), SF-07zc (both touch game/engine/src/render/main.ts), SF-07ze (both touch game/engine/src/render/main.ts), UI-40 (both touch game/engine/src/render/main.ts), UI-40b (both touch game/engine/src/render/main.ts), UI-44 (both touch game/engine/src/render/main.ts), SF-07zk (both touch game/engine/src/render/main.ts), UI-51 (both touch game/engine/src/render/cards.ts), SF-47 (both touch game/engine/src/render/main.ts), SF-27 (both touch game/engine/src/sim/core.ts), BL-01 (both touch game/engine/src/sim/ ~ game/engine/src/sim/core.ts), BL-02 (both touch game/engine/src/sim/ ~ game/engine/src/sim/core.ts), BL-03 (both touch game/engine/src/sim/ ~ game/engine/src/sim/core.ts), BL-04 (both touch game/engine/src/sim/ ~ game/engine/src/sim/core.ts)
EP-17 · AWS accounts
- AW-04 GitHub Environments and their roles: canary, ephemeral and gateway-production each get their own AWS_ROLE_ARN, and docs/GITHUB-AWS-SETUP.md says exactly how JT sets themtooling · S · haikuAW-03 (depends), AW-01 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-02 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md)
- AW-10b The pull-request teardown script: scripts/pr-stack-down.sh takes one pull request's stack down from any half-built or half-destroyed state, safe to reruntooling · S · sonnetAW-09 (depends), AW-01 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-02 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-03 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-04 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-05 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-07 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-12 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-13 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-08 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md)
- AW-11 The TTL sweeper: gateway-pr-sweep.yml, every hour, tears down any pull-request stack whose pull request is closed or idle past its TTL, and reports anything tagged Pr with no statetooling · S · sonnetAW-10 (depends), AW-01 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-02 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-03 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-04 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-05 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-07 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-12 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-13 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-08 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-09 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-10b (both touch thedivide/infra/terraform/docs/ACCOUNTS.md)
- AW-12 Promote the canary image by digest: deploy-gateway-prod copies the exact canary-built image digests from the canary account's ECR into prod's, and deploys thosetooling · S · sonnetAW-07 (depends), AW-01 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-02 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-03 (both touch thedivide/infra/terraform/modules/account-bootstrap/), AW-04 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-05 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md)
- AW-13 Prod in its own account: environments/prod is pinned to the prod account with its own state, zone and certificate on playdusttolife.com, and still deploys by hand behind the gateway-production reviewertooling · S · sonnetAW-12 (depends), GW-07 (depends), AW-01 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-02 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-03 (both touch thedivide/infra/terraform/environments/account-bootstrap/), AW-04 (both touch thedivide/infra/terraform/docs/GITHUB-AWS-SETUP.md), AW-05 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-07 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md)
- AW-01 The organization: environments/organization imports RockyMountainDev's existing AWS Organization (o-u7o37h67if), adds the Dust to Life OU, the canary, ephemeral and prod accounts, and the OU's three SCPstooling · M · opusAW-06 (depends), GW-07 (both touch thedivide/infra/terraform/README.md), GW-06 (both touch thedivide/infra/terraform/README.md)
- AW-02 Identity Center and the account budgets: permission sets for the three member accounts, and a budget per account from the management accounttooling · M · sonnetAW-01 (depends)
- AW-03 The account bootstrap: environments/platform becomes modules/account-bootstrap, run once in each member account for its own state bucket, lock table, ECR, GitHub deploy role and, for canary and prod, a delegated zonetooling · M · sonnetAW-01 (depends), GW-07 (both touch thedivide/infra/terraform/README.md), GW-06 (both touch thedivide/infra/terraform/README.md), AW-02 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md)
- AW-05 The non-prod zones and their delegations: environments/domains imports dusttolife.dev and dusttolife.app in the management account and delegates canary.dusttolife.dev and pr.dusttolife.app to their accountstooling · M · sonnetAW-03 (depends), GW-07 (depends), AW-01 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-02 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-04 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md)
- AW-07 Canary in its own account: environments/canary is pinned to the canary account, keeps its state there, and serves api.canary.dusttolife.dev from its own zone and certificatetooling · M · sonnetAW-04 (depends), AW-05 (depends), UI-11d (both touch .github/workflows/deploy-sites.yml), GW-06 (both touch thedivide/infra/terraform/modules/dtl-stack/), GW-08 (both touch thedivide/infra/terraform/modules/dtl-stack/main.tf ~ thedivide/infra/terraform/modules/dtl-stack/), AW-01 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-02 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-03 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md)
- AW-08 The ephemeral base: environments/ephemeral in the ephemeral account holds what every pull request's Gateway shares: one VPC, one Postgres, one ECS cluster, one ALB on *.pr.dusttolife.app, and a budget alarmtooling · M · sonnetAW-03 (depends), AW-04 (depends), AW-05 (depends), GW-07 (both touch thedivide/infra/terraform/README.md), GW-06 (both touch thedivide/infra/terraform/README.md), AW-01 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-02 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-07 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-12 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-13 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md)
- AW-09 The pull-request stack: modules/pr-stack and environments/pr-stack give one pull request its own Gateway at <n>.pr.dusttolife.app, in its own schemas prefixed pr_<n> on the shared Postgres databasetooling · M · sonnetAW-08 (depends), AW-01 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-02 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-03 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-04 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-05 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-07 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-12 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-13 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md)
- AW-10 The pull-request Gateway workflow: gateway-pr.yml builds and applies a pull request's stack when it touches thedivide/ or packages/api-client/, and drops its schemas and destroys it on merge or closetooling · M · sonnetAW-10b (depends), AW-01 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-02 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-03 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-04 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-05 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-07 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-12 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-13 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-08 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-09 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md)
Parked (5)
- OB-07 The OTLP endpoint: the exporter switch gains otlp, pointed at the backend the player picks, in the page and both Next appsui · M · sonnet
- OB-08 The Vercel spend cap: the $20 cap set by hand in the dashboard (infra/README.md), a signed spend webhook that logs to Upstash, and a one-button resume of paused projectstooling · M · sonnet
- LN-07 Design spike: JT's four open questions for the Life stage's lineages (life to intelligent life, resource pools, the caretaker building for a species, the system scale), recorded with no answers assumed, and the pool-clock options as inputtooling · S · opus
- SV-13 Saves protected from abuse: rate limits and a size budget per device and address on the saved-systems routes (parked: none for now, JT's call)tooling · S · sonnet
- AW-14 An organization trail: one CloudTrail trail from the management account that logs every Dust to Life account, which no member account can stop or deletetooling · S · sonnet