written 2026-09-26 12:45:31 · claude-fable-5-1
Your directive: You are a fork with the whole design conversation in context. Write the ISSUE FILES for PHASE 9 of Double Diaper Dungeon (901 through 910), plus issues/phase-9-progress.md. Project root: /mnt/cmdo/ritz/games/tq/ai-stuff/double-diaper-dungeon. Read docs/019-roadmap.md for the exact issue list and titles, docs/001 for vocabulary, docs/017 for the mechanisms (and 002, 011, 012, 016 where they touch), docs/018 for house style, docs/020 for open question ids (H group), and assets/023-balance-table.lua for entry names. Also look at how hero-less-moba built its HTML documentation (/mnt/mtwo/programming/ai-stuff/hero-less-moba/build-documentation and its docs/HTML layout) so issue 909 can describe the same shape adapted here. Do not touch any file outside issues/. Do not run git. Do not run new-source-file.
File naming: issues/{PHASE}{ID}-{dashed-lowercase-title}.md, e.g. issues/905-emoji-through-a-fallback-font.md. One file per roadmap row, exact titles.
Format of every issue (the hero-less-moba shape you read):
| Phase | 9 โ Watching It Happen |
| Blocked by | issue numbers, or โ |
| Blocks | issue numbers |
| Reads | links to the documents it builds from, ../docs/NNN-name.md |
| Open questions | ids from docs/020-open-questions.md (e.g. H1, H2, H3, H4), or none |
What exists now: nothing runs and there is no window; every earlier phase is assumed built headless (name what this issue needs from them). LOVE 11.5 and LuaJIT 2.1 are installed; the facts verified on this machine during design are in docs/017 and must be restated where they matter: emoji render as monochrome outlines tinted with the text color through a fallback TrueType font, the installed EmojiOne SVGinOT font loads and every tested glyph has ink, color emoji fonts do not work on 11.5, a single draw call takes a colored-text table, slicing a name by byte percentage can split a multibyte letter and LOVE throws on invalid text, so bands are apportioned by letters through the bundled utf8 library.
The blueprint: what it is, how it works mechanically, the data with datatypes, every branch and where it leads, what it refuses (errors, never fallbacks, nothing nil), and how it is tested (the viewer reads snapshots only; a headless run and a windowed run of the same seed must produce the same event log, and that is the test). Plain English and fixed vocabulary; list files, functions and structures by descriptive name rather than code. Numbers by balance-table entry name, never values. The viewer never decides anything; every player action is a command queued to the simulation and applied on a tick boundary.
Numbered. Files to create (dashed names for ./new-source-file, no indices claimed; main.lua and conf.lua at the root are the two unnumbered LOVE files), what each holds, the test, the order.
Facts that must be right: the fixed-timestep accumulator with a clamp and the speed control (pause, half, normal) as a multiplier on ticks per real second; the hex map in axial coordinates with doors drawn per edge by state, a camera transform with inverse picking, fonts cached per zoom step, and a far-zoom symbol per hex that survives when no emoji fits (H14 open); the click-to-open draggable scrolling log window fed by the simulation's event stream at tick time (one per battle or merged is H3 open), ring-buffer size from the table; names colored by slider share apportioned by letters with a thin bar under names too short for their bands, monsters one fixed color each, the stat palette beyond dexterity green open (H15); emoji through the fallback font with a startup validator over a closed emoji list that refuses to run if a glyph is missing (H2 open on the list), and an image-atlas hook kept for a future artist; the priority slider widget with draggable tabs on one bar, plus and minus, one stat per tab, the minimum share, and the divider-versus-independent-tab model open (H1); the sheet, journal, shop and intro as windows (modal or not, and whether the world ticks, is H4 open); the ghost scene window where approaches are chosen and the commune meter is shown; the documentation as browsable HTML with a table of contents on the left, unified style, every page reachable from every other, syntax-highlighted code, issue numbers clickable, companions linked wherever a file is named, built by a tool into docs/HTML and never edited by hand; and the capstone, a full run end to end with the window open, which is the game. Issue 910 is the phase capstone and creates issues/completed/demos/phase-9-demo (house-convention bash) that launches the game with a fixed seed and also runs the same seed headless and compares the two event logs. Also write issues/phase-9-progress.md in the hero-less-moba shape: goal, ends with, a table of issues with status "not started", Blocking, "Demo: not yet built".
Length: 500 to 1200 words per issue. When done, reply with the list of files written and their word counts, and any NEW open questions you noticed (topic plus one sentence). Nothing else.
You've hit your session limit ยท resets 2:20pm (America/Los_Angeles)