{ "repo": "https://gitea.whitlocktech.com/RunicGateway/website.git", "branch": "main", "ref": "66bb3b9a3fad01112c06f32d931c9bae56d22de6", "why": [ "The core this kit is written against, pinned to a commit rather than a branch.", "This one is the engagement cutover, the commit MODULE_API_VERSION 1.9.0 reached", "`main` on, and 1.9.0 is what template/module.json declares. It moved here from", "1.6.0 (the Teams cutover) because engagement expanded the contract the book", "teaches by three registrations and two calls: a module now declares what its", "game can announce and never who is told.", "", "Moving this pin is the moment someone re-reads the chapters: CI asserts the", "version template/module.json declares still equals this core's", "MODULE_API_VERSION, so a contract bump turns this repo red on purpose", "(MODULE_SYSTEM.md 2.11.1 d2, 2.10). Note what that means in the other", "direction, because it is easy to misread as a safety net: the check clones", "THIS ref, so a core that has moved past it does not turn the repo red on its", "own. Nothing goes red until someone moves the pin. Between cutovers the kit is", "not wrong, it is DATED - and this file is where the date is written down.", "", "The mechanism earned its keep again here. Writing chapter 2's engagement", "section against 1.9.0 found that the seeded body a module ships is the one", "thing registerEngagementSeeds does not validate - it checks that `blocks` is a", "non-empty array and stops - so the template's own example body had a heading", "level of 2 where the block registry takes 'h2', and no block ids at all. It", "would have registered, seeded, and failed the first time an operator opened it.", "Caught by running the template's register() through core's real registry at", "this ref, which is what a re-read is for; both the fix and the gap are now in", "the chapter and beside the code.", "", "That gap is also why this file's own instruction is not enough on its own. The", "template job builds and tests the template against fakes and checks this", "number; it does not load the module into core. A declaration a fake accepts", "and core refuses would ship green, so a pin move is a run against a real core,", "not just an edit here.", "", "The branch said `edge` until 2026-08-12, when the module system cut over and", "that branch was deleted (MODULE_SYSTEM.md 2.9). Two later workstreams cut an", "`edge` of their own and this pin skipped both: the kit is written against what", "shipped, never against what is in flight. Nothing in CI reads the branch field", "- it clones the repo and checks out the sha - which is why a wrong label here", "would sit unnoticed. It is for the person deciding whether a newer core is", "worth re-reading the book for.", "", "Same convention as Module-uo's ci/core-ref.json, deliberately - one file, one", "sha, reviewable in a diff." ] }