| Record noun-mapped FRAIL architecture and fixtures | Dami | | +9 | -8 | |
| Clarify mechanic plan and lifecycle phase contract | Dami | | +22 | -10 | |
| Align FRAIL spec with noun-mapped leftovers | Dami | | +130 | -101 | |
| Add noun-mapped frail regression fixtures | Dami | | +1071 | -0 | |
| Add derived gate regression fixtures | Dami | | +1644 | -9 | |
| Record public schema revision and release gates | Dami | | +2 | -0 | |
| Fix title diagnostic requirement wording | Dami | | +2 | -2 | |
| Archive completed level schema boundary | Dami | | +127 | -0 | |
| Record shared schema release gates | Dami | | +39 | -13 | |
| Record shared schema boundary and mechanic seam | Dami | | +25 | -0 | |
| Reject conflicting authored object fields | Dami | | +12 | -1 | |
| Unify level validation across engine and packs | Dami | | +394 | -231 | |
| Document derived gate state in Crate Works bible | Dami | | +18 | -9 | |
| Archive completed world-index navigation change | Dami | | +138 | -0 | |
| Record completed world navigation and release gates | Dami | | +23 | -5 | |
| Verify world progress and locks stay isolated | Dami | | +39 | -0 | |
| Unify world-card screen-reader narration | Dami | | +21 | -9 | |
| Archive completed active-level identity change | Dami | | +86 | -0 | |
| Complete active-level identity handoff evidence | Dami | | +11 | -4 | |
| Guard delayed Win handoffs by game and level identity | Dami | | +64 | -3 | |
| Record revision 13 chapter release and next engine gates | Dami | | +2 | -0 | |
| Record post-D20 engine architecture priorities | Dami | | +26 | -0 | |
| Archive accepted world-index presentation change | Dami | | +152 | -0 | |
| Record accepted D20 world-card presentation contract | Dami | | +61 | -24 | |
| Record active-proof identity verification and remaining gate | Dami | | +21 | -9 | |
| Resolve active proofs by stable catalog identity | Dami | | +113 | -31 | |
| Keep world-card narration and touch QA aligned | Dami | | +11 | -3 | |
| Specify one level schema boundary across engine and mods | Dami | | +311 | -0 | |
| Polish world cards for authored chapter identity | Dami | | +74 | -27 | |
| Give Core its authored world identity | Dami | | +27 | -3 | |
| Cover bundled worlds in browser share flow | Dami | | +56 | -8 | |
| Capture mobile Workshop world card handoff | Dami | | +17 | -0 | |
| Verify reduced motion world handoff in browser | Dami | | +15 | -1 | |
| Record verified world index presentation tasks | Dami | | +13 | -13 | |
| Polish world index hierarchy and touch navigation | Dami | | +391 | -40 | |
| Specify world index presentation and touch controls | Dami | | +298 | -0 | |
| Align proof title contract with mobile fitting ceiling | Dami | | +99 | -45 | |
| Align world index contract with approved bundle and handoff | Dami | | +21 | -10 | |
| Record world integration and browser verification checkpoint | Dami | | +2 | -0 | |
| Align automata beat strip and carrier cues | Dami | | +41 | -13 | |
| Fit long proof titles within mobile HUD and cap authored length | Dami | | +104 | -15 | |
| Bundle approved Crossword Crate Works and Tidewater worlds | Dami | | +2 | -3 | |
| Present first-entry world cards across INDEX and Workshop | Dami | | +126 | -16 | |
| Index world navigation by stable nodes and preserve cursors | Dami | | +127 | -23 | |
| Specify stable active proof identity and catalog reads | Dami | | +206 | -0 | |
| Define approved bundled world order | Dami | | +54 | -0 | |
| Record completed world navigation milestones | Dami | | +8 | -8 | |
| Archive rules revision compatibility contract | Dami | | +86 | -3 | |
| Explain rules revision errors to players | Dami | | +55 | -7 | |
| Render world identity and progress on INDEX | Dami | | +118 | -18 | |
| Route world navigation through stage input | Dami | | +105 | -5 | |
| Validate and expose world identity metadata | Dami | | +193 | -9 | |
| Show authoring notes without rule-word rewriting | Dami | | +22 | -0 | |
| Add pure world entry card renderer | Dami | | +257 | -0 | |
| Mark Word Lab as current rules content | Dami | | +3 | -1 | |
| Align Word Lab lesson with PUSH precedence | Dami | | +23 | -5 | |
| Record world and mechanic state integration boundaries | Dami | | +8 | -0 | |
| test(browser): cover long authored title layouts | Dami | | +127 | -0 | |
| Specify derived versus stateful mechanic contracts | Dami | | +129 | -31 | |
| Fix proof title clearance beside step counter | Dami | | +25 | -12 | |
| spec: define custom property presentation contract | Dami | | +310 | -0 | |
| spec: align world identity diagnostics with D20 | Dami | | +58 | -34 | |
| Keep authored proof titles visible | Dami | | +143 | -27 | |
| Record Crossword W6 verification | Dami | | +2 | -2 | |
| Gate Crossword in sequential world checks | Dami | | +1 | -1 | |
| Document authored world packs and friction | Dami | | +2437 | -0 | |
| Add post-W6 authored world packs | Dami | | +698 | -0 | |
| fix world index lookup freshness | Dami | | +17 | -5 | |
| Polish automata cue glyphs and gutters | Dami | | +44 | -25 | |
| test: cover rules revision previews and persistence | Dami | | +92 | -19 | |
| feat: normalize pack rules compatibility revisions | Dami | | +33 | -5 | |
| model world-owned index navigation | Dami | | +210 | -47 | |
| spec: define world index navigation contract | Dami | | +381 | -0 | |
| Add MIAU favicon identity assets | Dami | | +10 | -1 | |
| spec: add rules compatibility revision contract | Dami | | +234 | -0 | |
| Refine automata beat strip presentation | Dami | | +74 | -56 | |
| Specify no-truncation proof title fitting | Dami | | +197 | -0 | |
| feat: warn on overlong proof titles | Dami | | +39 | -5 | |
| spec: define long proof title diagnostics | Dami | | +68 | -0 | |
| Record automata parity and remaining beat presentation | Dami | | +12 | -6 | |
| Record public revision twelve release gate | Dami | | +2 | -0 | |
| Cover blocked and transferred automata beats in browser | Dami | | +108 | -0 | |
| Reuse scene exit timing for initial Win handoff | Dami | | +3 | -3 | |
| test: preserve catalog on malformed shared automata | Dami | | +49 | -0 | |
| Clarify FRAIL crumbling requires another occupant departure | Dami | | +19 | -13 | |
| Archive accepted stage motion specification | Dami | | +40 | -28 | |
| Record accepted stage motion browser gate | Dami | | +5 | -1 | |
| Constrain player stage to the full viewport | Dami | | +92 | -0 | |
| Plan mechanics delivery through shared lifecycle and codec | Dami | | +14 | -3 | |
| Open initial Win after proof scene handoff | Dami | | +17 | -3 | |
| fix: align ledger property colors with board palette | Dami | | +38 | -8 | |
| Honor external scene requests during menu exit | Dami | | +74 | -1 | |
| Update browser expectation for revised proof two | Dami | | +1 | -1 | |
| Clip step roll to one digit height | Dami | | +18 | -4 | |
| Record solver and design acceptance checkpoint | Dami | | +2 | -0 | |
| Avoid proof iris on same-scene reset | Dami | | +22 | -4 | |
| Archive verified compact solver change | Dami | | +57 | -0 | |
| Record passing bundled-world solver gate | Dami | | +1 | -1 | |
| Record D22 menu and keycap integration | Dami | | +11 | -11 | |
| Specify frail leftover tile mechanics | Dami | | +353 | -0 | |
| Specify channel linked gate behavior | Dami | | +383 | -0 | |
| Derive gate state from visible occupancy | Dami | | +1 | -1 | |
| Record mechanics and world integration roadmap | Dami | | +12 | -1 | |
| Specify declarative mechanic state contract | Dami | | +378 | -0 | |
| Give mobile Win progress more room | Dami | | +3 | -3 | |
| Animate Gift and Workshop scene transitions | Dami | | +109 | -5 | |
| Align stage touch targets with animated menus | Dami | | +86 | -29 | |
| Teach unmaking PUSH in core proof two | Dami | | +20 | -25 | |
| Make Win card opaque in early slam frame | Dami | | +4 | -3 | |
| Restore destination after scene iris | Dami | | +7 | -1 | |
| Animate Title and INDEX scene exits | Dami | | +149 | -13 | |
| Animate Win action keycap presses | Dami | | +16 | -2 | |
| Polish Win card states and touch actions | Dami | | +118 | -18 | |
| Make core push lesson require breaking STOP | Dami | | +3 | -3 | |
| Animate keycap feedback across stage scenes | Dami | | +61 | -21 | |
| Align pause shutter with menu choreography | Dami | | +32 | -13 | |
| Plan D22 motion for remaining menu scenes | Dami | | +11 | -1 | |
| Add sequential bundled-world solver gate | Dami | | +158 | -0 | |
| Refine pause hint timing and mobile controls | Dami | | +39 | -5 | |
| Fix pause highlight layering and mobile hints | Dami | | +44 | -7 | |
| Extract stage input and pointer event wiring | Dami | | +250 | -216 | |
| Record W3 and D22 polish progress | Dami | | +6 | -0 | |
| Integrate slow motion and staged Win controls | Dami | | +148 | -193 | |
| Render physical ledger motion in proof HUD | Dami | | +136 | -15 | |
| Preserve physical ledger tokens through exits | Dami | | +20 | -6 | |
| Keep skipped Win card active through exit | Dami | | +1 | -1 | |
| Animate pause menu motion language | Dami | | +334 | -131 | |
| Animate in-play keycaps and step counter | Dami | | +205 | -21 | |
| Project physical ledger sentence timing | Dami | | +115 | -0 | |
| Model Win skip and exit as explicit scene phases | Dami | | +134 | -0 | |
| Animate pushed word tiles with directional skid | Dami | | +10 | -0 | |
| Honor win exit after skipped entrance | Dami | | +33 | -9 | |
| Extract D22 win card renderer and timeline | Dami | | +311 | -0 | |
| Document shell-game solver proof limits | Dami | | +17 | -0 | |
| Expose win beat start for scene choreography | Dami | | +2 | -1 | |
| Add presentation slow motion review clock | Dami | | +245 | -0 | |
| Specify stage motion language and review timing | Dami | | +124 | -0 | |
| Make Workshop notes touch-first on narrow screens | Dami | | +32 | -8 | |
| Archive designer-approved Gift card layout | Dami | | +18 | -2 | |
| Archive validated W11 mod diagnostics contract | Dami | | +59 | -1 | |
| Show plain-language pack notes across Gift and Workshop | Dami | | +158 | -45 | |
| Animate copied share links as rising word tiles | Dami | | +75 | -1 | |
| Recognize pack nouns and flag cross-proof rule ambiguity | Dami | | +84 | -12 | |
| Gate author solver proofs with level search metadata | Dami | | +120 | -5 | |
| Record W3 solver parity and measured memory savings | Dami | | +55 | -7 | |
| Run author solver CLI on compact fast search | Dami | | +231 | -0 | |
| Bound retained solver states independently of move attempts | Dami | | +35 | -2 | |
| Reuse codec validators across search states | Dami | | +28 | -11 | |
| Cache authored lookups across solver restores | Dami | | +29 | -3 | |
| Compare compact solver routes speed and memory | Dami | | +24 | -1 | |
| Apply transient rule and motion constraints in fast solver mode | Dami | | +171 | -24 | |
| Record fast engine parity across authored worlds | Dami | | +26 | -0 | |
| Record fast turn boundary and parity coverage in OpenSpec | Dami | | +2 | -2 | |
| Share authoritative turn phases with fast solver transitions | Dami | | +277 | -38 | |
| Add compact solver adapter with public engine fallback | Dami | | +219 | -0 | |
| Record solver routes and expansion baselines across worlds | Dami | | +16 | -1 | |
| Use collision-safe numeric buckets for solver visits | Dami | | +45 | -6 | |
| Verify compact state parity after gameplay transitions | Dami | | +108 | -1 | |
| Track compact search core separately from CLI integration | Dami | | +4 | -3 | |
| Add parent-linked BFS over compact solver states | Dami | | +207 | -0 | |
| Compare compact solver payloads with full snapshots | Dami | | +2 | -0 | |
| Add canonical compact codec for solver states | Dami | | +308 | -3 | |
| Inventory authoritative fields for solver state identity | Dami | | +22 | -1 | |
| Record pre-optimization solver time and memory baseline | Dami | | +14 | -0 | |
| Plan canonical solver state and fast search in OpenSpec | Dami | | +177 | -0 | |
| Specify idempotent restore for one-link transformations | Dami | | +5 | -0 | |
| Preserve settled transformations when restoring solver states | Dami | | +17 | -3 | |
| Record W6 parser budget and verification status | Dami | | +21 | -8 | |
| Document rule precedence and parser scalability | Dami | | +29 | -0 | |
| Exercise stacked rules and contact precedence in browser | Dami | | +121 | -0 | |
| Apply rule precedence with atomic turn rollback | Dami | | +239 | -42 | |
| Reject packs with excessive initial rule stacks | Dami | | +117 | -4 | |
| Bound stacked rule parsing and preserve spatial reading | Dami | | +217 | -47 | |
| Settle stacked-word reading contract for W6 | Dami | | +39 | -23 | |
| Draft rule precedence and reading OpenSpec change | Dami | | +163 | -0 | |
| Expose pack notes to screen readers | Dami | | +47 | -6 | |
| Separate mod diagnostics and share engine tokens | Dami | | +83 | -79 | |
| Enlarge Gift note touch targets | Dami | | +5 | -1 | |
| Record W11 implementation and verification progress | Dami | | +4 | -4 | |
| Keep mobile pack notes clear of controls | Dami | | +50 | -14 | |
| Surface installed pack notes in Workshop | Dami | | +76 | -15 | |
| Show nonblocking rule notes in Gift previews | Dami | | +179 | -12 | |
| Expose installed pack notes and document mod diagnostics | Dami | | +43 | -6 | |
| Warn on proof-local unknown rule words | Dami | | +76 | -31 | |
| Refine mod notes for proof-local word meaning | Dami | | +39 | -26 | |
| Expose mod warnings through local and shared previews | Dami | | +63 | -5 | |
| Validate mod feature words and engine property nouns | Dami | | +171 | -2 | |
| Specify mod feature and rule-word diagnostics | Dami | | +155 | -0 | |
| Document revision ten and Tidewater rule fix | Dami | | +11 | -5 | |
| Archive settled rule refresh specification | Dami | | +24 | -8 | |
| Refresh settled rules after contact destruction | Dami | | +65 | -7 | |
| Specify settled rule refresh after contact destruction | Dami | | +127 | -0 | |
| Record world authoring blockers in architecture review | Dami | | +2 | -0 | |
| Document runtime boundaries and archive architecture spec | Dami | | +307 | -3 | |
| Rebuild engine indexes when Undo restores a snapshot | Dami | | +15 | -0 | |
| Split stage scenes and unify overlay action routing | Dami | | +993 | -984 | |
| Split board rendering into model and entity passes | Dami | | +350 | -256 | |
| Separate index progress storage from map navigation | Dami | | +86 | -80 | |
| Extract pure visual and effect projections from juice | Dami | | +166 | -67 | |
| Route application intents through a scene adapter | Dami | | +139 | -1 | |
| Separate turn lifecycle and developer view from app bootstrap | Dami | | +365 | -50 | |
| Extract rule parsing and indexed engine lookups | Dami | | +192 | -78 | |
| Format stage and app styles for maintainable reviews | Dami | | +741 | -7 | |
| Centralize data cloning across pack boundaries | Dami | | +53 | -41 | |
| docs(openspec): archive MIAU facing correction and revision 8 | Dami | | +35 | -23 | |
| fix(facing): orient MIAU from its declared native pose | Dami | | +127 | -49 | |
| docs(openspec): specify native MIAU facing from travel | Dami | | +106 | -0 | |
| docs: record automata demo and public revision 7 | Dami | | +15 | -7 | |
| fix(stage): make mobile wait control readable | Dami | | +5 | -5 | |
| feat(stage): show automata beats, cues, and wait controls | Dami | | +1024 | -140 | |
| feat(mods): validate and share declarative automata packs | Dami | | +178 | -0 | |
| feat(engine): run rule-driven automata on accepted turns | Dami | | +380 | -49 | |
| docs(openspec): define rule-driven automata and mechanic stressors | Dami | | +279 | -7 | |
| docs: record revision 5 Gift and Undo verification | Dami | | +12 | -8 | |
| docs(openspec): archive death undo recovery | Dami | | +136 | -0 | |
| docs(openspec): specify Gift layout acceptance | Dami | | +153 | -0 | |
| test(browser): cover mobile death undo recovery | Dami | | +137 | -0 | |
| fix(juice): restore death visuals on undo and reset | Dami | | +54 | -0 | |
| test(browser): guard Gift placement on desktop and mobile | Dami | | +57 | -0 | |
| fix(gift): separate preview and action regions | Dami | | +105 | -18 | |
| docs: record accepted revision 4 and next review items | Dami | | +27 | -19 | |
| docs(openspec): archive accepted game stage | Dami | | +272 | -53 | |
| test(browser): guard operator labels and Win card spacing | Dami | | +46 | -1 | |
| fix(stage): restore operator labels and space Win card copy | Dami | | +83 | -38 | |
| fix(index): size keycaps and keep mobile banner readable | Dami | | +38 | -8 | |
| fix(workshop): align Import row and sentence-case heading | Dami | | +12 | -10 | |
| docs: record revision 3 acceptance and Workshop entry | Dami | | +60 | -22 | |
| docs(openspec): specify facing, map links, and Workshop access | Dami | | +73 | -2 | |
| test(browser): verify mobile Workshop entry and actions | Dami | | +10 | -1 | |
| fix(workshop): fit pack actions on mobile screens | Dami | | +61 | -19 | |
| feat(render): preserve and animate directional actor facing | Dami | | +169 | -24 | |
| feat(mods): validate directional palette metadata | Dami | | +42 | -2 | |
| fix(engine): prove same-entity wins after hazard resolution | Dami | | +170 | -3 | |
| test(browser): cover proof transitions and direct Workshop flow | Dami | | +150 | -1 | |
| feat(stage): expose Workshop from Title and INDEX | Dami | | +127 | -24 | |
| feat(title): show Workshop entry and preserve cat facing | Dami | | +100 | -10 | |
| feat(render): face moving character glyphs horizontally | Dami | | +52 | -1 | |
| fix(play): reset level visuals and surface immediate wins | Dami | | +80 | -4 | |
| fix(engine): resolve self win after settled hazards | Dami | | +44 | -4 | |
| fix(index): move along visible serpentine path | Dami | | +79 | -3 | |
| fix(stage): align scene overlays and controls with design review | Dami | | +103 | -41 | |
| fix(workshop): improve pack actions and player copy | Dami | | +83 | -15 | |
| fix(index): clarify locked proofs and align sheet controls | Dami | | +91 | -35 | |
| docs(openspec): track ink stage contract and design gate | Dami | | +388 | -0 | |
| docs: record public stage revision and pending design review | Dami | | +31 | -18 | |
| fix(win): keep mobile action labels inside card | Dami | | +1 | -1 | |
| feat(app): connect stage progress, font readiness, and accessibility | Dami | | +39 | -7 | |
| feat(stage): complete ink scene interactions and responsive feedback | Dami | | +507 | -57 | |
| feat(input): request spoken board summary with T | Dami | | +11 | -3 | |
| fix(stage): remove viewport canvas focus outline | Dami | | +1 | -1 | |
| fix(copy): call developer level list proofs | Dami | | +1 | -1 | |
| docs(openspec): clarify presentation spec purpose | Dami | | +2 | -2 | |
| fix(title): show the playable door objective in footer | Dami | | +2 | -0 | |
| feat(title): animate responsive rule tiles and controls | Dami | | +109 | -10 | |
| feat(index): render proof progress and solved-node feedback | Dami | | +97 | -24 | |
| fix(content): use full cat glyph in Word Lab | Dami | | +1 | -1 | |
| fix(render): keep physical sentence bars neutral | Dami | | +8 | -4 | |
| feat(index): place bundled proofs on one campaign sheet | Dami | | +52 | -7 | |
| docs(openspec): archive level pack sharing contract | Dami | | +545 | -2 | |
| feat(app): connect scene input, turn effects, and pack previews | Dami | | +121 | -24 | |
| feat(stage): add full-screen ink scenes and responsive controls | Dami | | +705 | -11 | |
| test(browser): verify mobile touch and reduced-motion fallback | Dami | | +31 | -0 | |
| chore: ignore local preview and browser artifacts | Dami | | +1 | -0 | |
| docs: describe nine-proof stage and pack sharing workflow | Dami | | +131 | -21 | |
| test(browser): cover pack preview, conflict, removal, and play flows | Dami | | +565 | -0 | |
| docs(openspec): archive physical sentence span contract | Dami | | +18 | -5 | |
| test(juice): preserve pre-push sentence cells on removal | Dami | | +27 | -0 | |
| feat(audio): add opt-in looping music for the stage | Dami | | +69 | -2 | |
| feat(workshop): confirm pack removal and show service errors | Dami | | +111 | -19 | |
| feat(gift): preview active rules and named pack conflicts | Dami | | +42 | -9 | |
| feat(render): draw sentence bars and settled turn effects | Dami | | +110 | -23 | |
| feat(juice): animate physical sentences and turn effects | Dami | | +184 | -13 | |
| feat(packs): return preview conflicts and player-safe results | Dami | | +223 | -62 | |
| docs(content): use proof names in the basics pack | Dami | | +15 | -13 | |
| feat(title): teach movement with a playable door proof | Dami | | +116 | -0 | |
| feat(workshop): manage installed packs in canvas menus | Dami | | +273 | -0 | |
| feat(gift): preview shared packs before explicit install | Dami | | +128 | -0 | |
| feat(type): self-host Recursive for the game stage | Dami | | +110 | -0 | |
| feat(audio): buffer Kenney effects with persistent mute | Dami | | +258 | -22 | |
| feat(juice): derive rule and movement effects from turn events | Dami | | +390 | -0 | |
| feat(index): lay out proof sheets and track progress | Dami | | +607 | -0 | |
| feat(render): draw ink board and physical sentence bars | Dami | | +253 | -0 | |
| feat(input): add tuned keyboard gamepad and touch controls | Dami | | +353 | -0 | |
| feat(packs): add explicit install hooks and saved library | Dami | | +429 | -0 | |
| feat(packs): encode data-only links and CommonJS exports | Dami | | +175 | -0 | |
| feat(packs): validate stable IDs and register multiple packs | Dami | | +385 | -11 | |
| feat(content): add Garden Basics and Word Lab proof packs | Dami | | +391 | -0 | |
| feat(engine): expose physical sentence spans for rule effects | Dami | | +145 | -1 | |
| docs: record public test origin and completed workflow | Dami | | +12 | -3 | |
| docs: archive verified dynamic-rule OpenSpec change | Dami | | +321 | -44 | |
| feat: resolve dynamic rules and emit settled turn events | Dami | | +410 | -0 | |
| docs: clarify mod roadmap and verification progress | Dami | | +10 | -5 | |
| feat: add playable emoji canvas interface | Dami | | +129 | -0 | |
| feat: add three rule-learning puzzle levels | Dami | | +144 | -0 | |
| docs: explain gameplay and staged engine roadmap | Dami | | +89 | -0 | |
| feat: load validated local CommonJS puzzle mods | Dami | | +389 | -0 | |
| docs: establish OpenSpec plan and rule design backbone | Dami | | +1429 | -0 | |
| chore: bootstrap Vite app and Kenney audio assets | Dami | | +879 | -0 | |