The deck

Every mock

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 health
    9 landed · 6 left
  • EP-01 Star & disk formation
    10 landed · 9 left
  • EP-02 Giant impacts & assembly
    0 landed · 7 left
  • EP-03 World events
    0 landed · 12 left
  • EP-04 World climate & interiors
    0 landed · 6 left
  • EP-05 Life & lineages
    2 landed · 18 left · 1 folded or retired
    • LN-04 The tech tree on the end page: folded into LN-05, LN-06
  • EP-14 Gravitas earned
    1 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 conversion
    52 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 flow
    2 landed · 19 left · 2 folded or retired
    • SF-07zh The bar in play, a glass capsule: folded into UI-40, UI-27, UI-38b
    • SF-07zj The card peeks: folded into UI-39b
  • EP-11 The game's site and brand
    13 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 accounts
    2 landed · 10 left
  • EP-15 Saved systems
    2 landed · 17 left

M-04 · Balance

The levers are tuned to the curve and every balance row a mechanic loosened passes again.

  • EP-10 Balance
    0 landed · 7 left

Up next (7)

  1. 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 rebuilt
    ui · M · sonnet
  2. QA-09 Schedule full coverage and cache canary
    tooling · S · sonnet
  3. QA-13 The gas giant Feel Lab's storms and activity follow the controls: storm age and drift are integrated, activity is the heat factor
    tooling · M · opus
  4. 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 pose
    tooling · M · opus
  5. 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_URL
    tooling · S · sonnet
  6. GW-05 Marketing consent on the person: the person records an opt-in to marketing email with its timestamp, off unless given, and nothing sends
    tooling · M · sonnet
  7. 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 them
    tooling · S · sonnet

Blocked (169)

EP-07 · UI foundation and the React conversion

  1. UI-36b kw() stops writing DOM: every keyword is a <Kw>
    ui · S · sonnet
    waiting for mocks
  2. 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 · sonnet
    UI-39 (depends), SF-07zd (depends), SF-07ze (both touch game/engine/src/view/sheet.ts)
  3. 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 chip
    ui · S · sonnet
    UI-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)
  4. 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 card
    ui · S · sonnet
    UI-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)
  5. 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 error
    tooling · S · haiku
    UI-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)
  6. UI-38b The history card and the More card move to React; More gains the hand's row (Influence), which leaves the header
    ui · M · sonnet
    UI-38 (depends)
  7. 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 imperative
    ui · M · sonnet
    UI-38b (depends), UI-38 (both touch game/engine/src/render/main.ts)
  8. 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 rebuilt
    ui · M · sonnet
    UI-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)
  9. 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's
    ui · M · sonnet
    UI-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)
  10. 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 system
    ui · M · sonnet
    UI-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)
  11. 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-up
    ui · M · sonnet
    UI-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)
  12. 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 chips
    ui · M · sonnet
    UI-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)
  13. 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 tiles
    ui · M · sonnet
    UI-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)
  14. 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-up
    ui · M · sonnet
    UI-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
  15. 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 React
    ui · M · opus
    UI-40b (depends)
  16. 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 shares
    ui · M · sonnet
    UI-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)
  17. 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 globals
    ui · M · sonnet
    UI-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
  18. 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 retired
    ui · M · sonnet
    UI-11c (depends), UI-11 (both touch game/app/play/next/page.tsx), UI-11b (both touch game/package.json)

EP-13 · Game engine health

  1. QA-10 Wire existing deck tests and correct commands
    tooling · S · haiku
    QA-09 (depends)
  2. QA-11 Run engine access on affected panels
    tooling · S · sonnet
    QA-10 (depends), UI-38 (both touch game/engine/test/v_access.ts)
  3. QA-12 Establish scheduled performance and visual proof
    tooling · S · sonnet
    QA-09 (depends), QA-11 (depends)

EP-01 · Star & disk formation

  1. DK-13c Planet drift, in the Codex: the moment, the action, DriftSet and the term, linked with the disk and Ignition
    ui · S · haiku
    DK-13b (depends)
  2. DK-12b Drag the companion's plane: the armed row, the grab, the angle measure and the release on the pair's close-up
    ui · M · sonnet
    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)
  3. DK-12c DiskWarp: the outer disk heels over, the shadow's cold bands sweep it and ice glints in the dark
    ui · M · sonnet
    DK-12b (depends)
  4. 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 AU
    sim · M · sonnet
    DK-12c (both touch game/engine/src/effects/rows/disk.rows.ts)
  5. DK-10 Spin a whirl: a vortex gathers the dust into a crescent and seeds one large body fast
    sim · M · sonnet
    DK-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)
  6. 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 collapse
    ui · M · sonnet
    DK-12b (both touch game/engine/src/render/camera.ts)
  7. 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 key
    ui · M · sonnet
    SF-07zo (depends), DK-12b (both touch game/engine/src/render/camera.ts)
  8. DK-05 Inner cavity edge: a cleared middle where migration halts
    sim · L · sonnet
    DK-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)
  9. DK-06 Disk wind: a wind carries the gas off the disk's surface
    sim · L · sonnet
    DK-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

  1. CL-13b Hide a giant far out: the worlds' comet flux comes in showers of the same integral
    sim · S · sonnet
    CL-13 (depends)
  2. CL-13c Hide a giant far out: the receipt, each shower's line, the keywords and the Codex entries
    sim · S · sonnet
    CL-13b (depends)
  3. CL-13d Hide a giant far out: the giant drifts out and each shower is drawn, and the end page says unconfirmed
    ui · S · haiku
    CL-13c (depends)
  4. 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' own
    ui · S · sonnet
    SF-07zp (depends), SF-07zo (both touch game/engine/src/render/shots.ts), DK-06 (both touch game/engine/src/adapters/gl/scenevols.ts)
  5. CL-13 Hide a giant far out: Scatter sends the outermost ice giant past 300 AU, or a captured rogue counts, and the reservoir clusters
    sim · M · sonnet
    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)
  6. 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 world
    sim · M · sonnet
    CL-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)
  7. 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 read
    sim · L · sonnet
    DK-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

  1. WL-25b A moon with a moon: the end page and the Codex say none has been seen
    sim · S · sonnet
    WL-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)
  2. WL-25c A moon with a moon: the moonlet swings in and the speck circles the big moon
    ui · S · sonnet
    WL-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)
  3. WL-21 Let the shield falter: the field drops to a tenth for a thousand years; harmless unless a flare lands then
    sim · M · sonnet
    WL-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)
  4. 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 eclipsed
    sim · M · sonnet
    WL-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)
  5. WL-25 A moon with a moon: a submoon on a large, distant moon, by the stability rule
    sim · M · sonnet
    WL-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)
  6. WL-16 Crack the crust: flood basalts warm and can kill, then weather and cool; provinces come on their own too
    sim · L · sonnet
    WL-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)
  7. WL-20 The sky flashes: a gamma-ray burst strips half the ozone for years, once in billions
    sim · L · sonnet
    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 (both touch game/engine/src/sim/geo.ts), CL-18 (both touch game/engine/src/sim/geo.ts)
  8. WL-05 Prebiotic delivery: a cargo of organics to a world with liquid water; life can seed across worlds
    sim · L · sonnet
    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)
  9. WL-03 Interstellar cloud transit: the system passes through a dense cloud that dims the sun and pushes the wind back
    sim · L · sonnet
    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)
  10. WL-27 The thrown-out world still lives: an ejected wet world keeps an ocean under ice on its own heat
    sim · L · sonnet
    SF-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)
  11. WL-15 Give the world a ring: a grazed asteroid becomes a ring that shades the world for millions of years
    sim · L · sonnet
    SF-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)
  12. WL-24 The ring–moon cycle: rings gather into moons that break into rings again, each time smaller
    sim · L · sonnet
    WL-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

  1. WL-12 Deep water cycle: a card when the mantle would drain or flood the surface over the next billion years
    sim · M · sonnet
    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), 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)
  2. WL-18 Drown it: past about 50 oceans the seafloor seals under high-pressure ice and the vents close, the thermostat with them
    sim · M · sonnet
    WL-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)
  3. WL-06 Continental uplift: raise a plateau and the weathering changes with it
    sim · L · sonnet
    WL-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)
  4. WL-26 An ocean under hydrogen: a sub-Neptune kept as it is may hide a warm ocean under its haze
    sim · L · sonnet
    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/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)
  5. WL-17 Roll the world: the crust slips over the mantle and the continents move toward the equator or the poles
    sim · L · sonnet
    WL-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)
  6. WL-22 Gather the lands / Split them: a supercontinent dries and warms; a breakup floods basalt and cools
    sim · L · sonnet
    WL-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

  1. LG-09b The tree of life: every L-card and unbidden event registered in EVENTS.md and stubbed behind a flag
    tooling · S · haiku
    LG-09 (depends), WL-24 (both touch game/engine/EVENTS.md)
  2. 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 system
    sim · M · sonnet
    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/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)
  3. 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 · sonnet
    LG-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)
  4. 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 · sonnet
    LG-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)
  5. 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 attach
    sim-read · M · sonnet
    DK-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)
  6. 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 open
    ui · M · sonnet
    LN-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)
  7. 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 · sonnet
    LN-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)
  8. 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' counts
    ui · M · sonnet
    LN-13 (depends), LN-06 (both touch game/engine/src/content/sentences.ts), LN-11 (both touch game/engine/src/view/lineageTree.ts)
  9. 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 Effect
    sim · M · sonnet
    LN-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)
  10. LG-09c The tree of life: the life stage's gloss and the end page name the branch and what the mind has
    ui · M · sonnet
    LG-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)
  11. LG-03 Tides and the pond pathway: a moon's distance sets the tides, and the tides set the pond's chance
    sim · L · sonnet
    DK-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)
  12. 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 · sonnet
    WL-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)
  13. LG-02 The end page as a causal chain: what you did, its aftershocks and the Goals it moved, as one timeline
    sim-read · L · sonnet
    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/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)
  14. 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 column
    ui · L · sonnet
    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/runsheet.ts), LG-07 (both touch game/engine/src/render/runsheet.ts)
  15. 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 · sonnet
    LG-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)
  16. 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 light
    ui · L · sonnet
    LN-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)
  17. 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 switcher
    ui · L · sonnet
    LN-06 (depends), LN-10 (depends)

EP-08 · Setup & turn flow

  1. SF-07zb The page fits a phone: the page the game serves carries a viewport meta, and wrap.py does not add a second
    ui · S · sonnet
    UI-38 (both touch game/engine/ui.html), UI-38b (both touch game/engine/ui.html), UI-39 (both touch game/engine/ui.html)
  2. 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 collapse
    ui · S · sonnet
    UI-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)
  3. 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 step
    ui · S · sonnet
    UI-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)
  4. 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 history
    ui · S · sonnet
    SF-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)
  5. SF-07zi Thumb-sized targets: the Codex filters are one sideways-scrolling row of 44 px chips with their counts kept
    ui · S · sonnet
    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)
  6. 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 columns
    ui · S · sonnet
    CL-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)
  7. 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 count
    ui · S · sonnet
    SF-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)
  8. 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 move
    ui · S · sonnet
    SF-07zn (depends)
  9. WL-29b Name your worlds: the generated name on the card, the System view and the Year 0 Moments line, the letter kept
    ui · M · sonnet
    CL-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)
  10. WL-29c Name your worlds: the name on Your run, the shots, the cinema and the end page, the sim's letters left as written
    ui · M · sonnet
    WL-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)
  11. WL-29d Name your worlds: a rename on the world's card, filtered, read back after a reload
    ui · M · sonnet
    WL-29c (depends), WL-29b (both touch game/engine/src/render/panels.ts)
  12. 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 frame
    ui · M · sonnet
    UI-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)
  13. 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 lands
    ui · M · sonnet
    UI-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)
  14. 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 teaches
    ui · M · sonnet
    UI-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)
  15. 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-line
    ui · M · sonnet
    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-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)
  16. 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 · sonnet
    UI-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)
  17. 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 handoff
    ui · M · sonnet
    SF-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)
  18. 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 scrolls
    ui · L · sonnet
    SF-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)
  19. 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 open
    ui · L · sonnet
    UI-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

  1. 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 fields
    ui · S · haiku
    UI-11d (depends), UI-11b (both touch game/app/play/layout.tsx), No mockups: head tags only; /play looks the same
  2. 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 staging
    tooling · M · sonnet
    QA-10 (both touch .agents/skills/dustlife-ui-move/reference.md), UI-11d (both touch game/engine/tools/built.ts)
  3. 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 rewritten
    tooling · M · sonnet
    MK-14b (depends)
  4. 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 read
    ui · M · sonnet
    MK-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
  5. MK-26 The home page loads fast on a phone: the Codex and Credits render on demand, deep links and a crawlable index kept
    ui · M · sonnet
    MK-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
  6. 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 · sonnet
    SF-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/)
  7. 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 made
    ui · L · sonnet
    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), 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

  1. LG-06 The balance pass, after the stages: SF-27's search again over the full knob set, once every stage's cards are in
    sim · S · sonnet
    SF-27 (depends), LG-04 (depends)
  2. BL-01 CL-01's balance: re-tune what it moved
    sim · S · sonnet
    SF-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/)
  3. BL-02 DK-16's balance: re-tune what it moved
    sim · S · sonnet
    SF-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)
  4. BL-03 WL-37's balance: re-tune what it moved
    sim · S · sonnet
    SF-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)
  5. BL-04 CL-07's balance: re-tune what it moved
    sim · S · sonnet
    SF-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)
  6. SF-27 The balance pass: the one slice that tunes the sprint's knobs to the curve and the criteria
    sim · M · sonnet
    DK-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)
  7. 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-06
    tooling · M · sonnet
    LG-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

  1. GV-02 Influence lands light: the free drag plays a touch with no lean and no slowed clock
    ui · S · sonnet
    GV-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
  2. GV-08 The bake frames the act: the Codex's stills show the Effect, not the whole disk or the core's glow
    ui · S · sonnet
    DK-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
  3. GV-20 The answer beat can draw: gather stays 1 into the answer, and a row opts in to its own answer
    ui · S · sonnet
    UI-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
  4. GV-25 The generic answer wave goes: every Effect answers in its own look
    ui · S · sonnet
    GV-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
  5. GV-26 Feed it's swell stays in view: the giant shot frames the whole swell at 390
    ui · S · sonnet
    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-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)
  6. GV-27 A power acted from a card plays its Effect with its shot, not before
    ui · S · sonnet
    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-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)
  7. GV-28 Let it fall grows with its number: the star's flare and the dust shell scale with the number the player sets
    ui · S · sonnet
    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)
  8. GV-01 The tier sets the clock: every Effect lands, jolts and sounds at its Codex tier, its mass placing it inside the band
    ui · M · opus
    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-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
  9. GV-03 Tiers: the cloud and the disk set by the moment
    ui · M · sonnet
    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), No mockups: tier only: the Codex's gravitas words change; with GV-01 the clock follows; no new look
  10. GV-04 Tiers: the collisions set by the moment
    ui · M · sonnet
    GV-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
  11. GV-05 Tiers: the worlds' acts set by the moment, and the old price rule's test retired
    ui · M · sonnet
    GV-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
  12. GV-06 Tiers: life's acts and the Late Bombardment set by the moment
    ui · M · sonnet
    LG-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
  13. GV-09 Catch it turns, Feed pours: the streamer bends into the spin; the core does not swell
    ui · M · sonnet
    GV-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)
  14. GV-10 Soot is dark: Seed with soot pours a shadow from its own side; the red-giant wind stays red
    ui · M · sonnet
    GV-08 (depends), GV-01 (both touch game/engine/src/effects/rows/outside.rows.ts), GV-09 (both touch game/engine/tools/lookdist.test.ts)
  15. GV-11 Still, shaded, falling: Calm stills inside the core, Shielding coats it, the collapse falls in
    ui · M · sonnet
    GV-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)
  16. GV-12 Four lights on the star: an outburst, a flare, a world dropped in and a world lost, each its own light
    ui · M · sonnet
    GV-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)
  17. GV-13 Five ways to move an orbit: a shove, a drag, a rescue, a release and a capture, each with its own motion
    ui · M · sonnet
    GV-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)
  18. GV-14 Ring, wave, puff, frost: the disk's four taps each draw their own shape
    ui · M · sonnet
    GV-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)
  19. GV-15 The world's own sky: the habitable zone, the methane, the oxygen, the frost and the cycle each read on the world
    ui · M · sonnet
    GV-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)
  20. GV-16 Ice or rock: the icy moonlet lands cold and steams; the asteroid lands hot and melts
    ui · M · sonnet
    GV-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)
  21. GV-17 Field kept, field lost: the reversal's field breaks and greys; the guard's rises bright
    ui · M · sonnet
    GV-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)
  22. GV-18 Felt at all: six acts that draw too little to be seen are sized to be seen at 390 and 1280
    ui · M · sonnet
    GV-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)
  23. GV-19 The Codex names what plays: each event points at the Effect it plays, and a line that draws nothing claims no tier
    ui · M · sonnet
    WL-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
  24. GV-21 The cloud's answers draw: each Effect's own answer beat switches on
    ui · M · sonnet
    GV-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)
  25. GV-22 The disk's answers draw: each Effect's own answer beat switches on
    ui · M · sonnet
    GV-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)
  26. GV-23 The assembly's answers draw: each Effect's own answer beat switches on
    ui · M · sonnet
    GV-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)
  27. GV-24 The worlds' answers draw: each Effect's own answer beat switches on
    ui · L · sonnet
    GV-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

  1. GW-02 The contract is current: the gateway job fails when the built gateway.json or the regenerated Orval client differs from what is committed
    tooling · S · haiku
    QA-11 (both touch .github/workflows/ci.yml), UI-11e (both touch .github/workflows/ci.yml)
  2. 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 person
    ui · S · sonnet
    GW-05 (depends)
  3. 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 default
    tooling · S · sonnet
    GW-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/)
  4. 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 complain
    tooling · S · sonnet
    GW-08 (depends), GW-05 (both touch thedivide/src/Services/Gateway/Api/Controllers/Anonymous/), GW-06 (both touch thedivide/src/Framework/Configuration/ConfigKeys.cs)
  5. 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 nothing
    tooling · S · haiku
    GW-09 (depends), QA-10 (both touch game/engine/tools/ci.ts), UI-11e (both touch game/engine/tools/ci.ts)
  6. GW-03 The API reference for staff: /developers/api on the site renders the committed gateway.json with Scalar, for signed-in dtl.admin only
    ui · M · sonnet
    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), No mockups: the page is Scalar's own reference UI inside the site's existing header/nav; no new design
  7. 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 configured
    tooling · M · sonnet
    GW-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/)
  8. 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 default
    tooling · M · sonnet
    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)

EP-15 · Saved systems

  1. 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 anonymous
    tooling · S · sonnet
    SV-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)
  2. 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 refuse
    tooling · S · sonnet
    SV-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/)
  3. 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 one
    tooling · S · sonnet
    SV-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/)
  4. 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 it
    ui · S · sonnet
    SV-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
  5. 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, once
    ui · S · sonnet
    SV-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
  6. 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 again
    ui · S · sonnet
    SV-04c (depends), SF-47 (depends), GW-05b (both touch game/app/account/page.tsx)
  7. 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 mark
    ui · S · sonnet
    SV-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
  8. 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 it
    ui · S · sonnet
    SV-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
  9. 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, once
    ui · S · sonnet
    SV-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)
  10. 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 way
    ui · S · sonnet
    SV-14 (depends), MK-26 (both touch game/test/home-page.test.ts)
  11. 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 sent
    ui · M · sonnet
    SV-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
  12. 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 client
    tooling · M · sonnet
    GW-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/)
  13. 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 it
    ui · M · sonnet
    SV-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)
  14. 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 name
    ui · M · sonnet
    SV-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)
  15. 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 it
    ui · M · sonnet
    SV-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
  16. 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 included
    sim · L · sonnet
    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), 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

  1. 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 them
    tooling · S · haiku
    AW-03 (depends), AW-01 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md), AW-02 (both touch thedivide/infra/terraform/docs/ACCOUNTS.md)
  2. 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 rerun
    tooling · S · sonnet
    AW-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)
  3. 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 state
    tooling · S · sonnet
    AW-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)
  4. 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 those
    tooling · S · sonnet
    AW-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)
  5. 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 reviewer
    tooling · S · sonnet
    AW-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)
  6. 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 SCPs
    tooling · M · opus
    AW-06 (depends), GW-07 (both touch thedivide/infra/terraform/README.md), GW-06 (both touch thedivide/infra/terraform/README.md)
  7. AW-02 Identity Center and the account budgets: permission sets for the three member accounts, and a budget per account from the management account
    tooling · M · sonnet
    AW-01 (depends)
  8. 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 zone
    tooling · M · sonnet
    AW-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)
  9. 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 accounts
    tooling · M · sonnet
    AW-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)
  10. 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 certificate
    tooling · M · sonnet
    AW-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)
  11. 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 alarm
    tooling · M · sonnet
    AW-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)
  12. 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 database
    tooling · M · sonnet
    AW-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)
  13. 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 close
    tooling · M · sonnet
    AW-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)

  1. OB-07 The OTLP endpoint: the exporter switch gains otlp, pointed at the backend the player picks, in the page and both Next apps
    ui · M · sonnet
  2. 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 projects
    tooling · M · sonnet
  3. 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 input
    tooling · S · opus
  4. 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
  5. 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 delete
    tooling · S · sonnet