docs(modules): close Phase 4 — de-UO the backend reference, record the acceptance run #144
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/module-phase4-slice4"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Phase 4 slice 4 — the phase closes here. Pairs with website#146 (the one code change, a three-line reorder). Either order is safe; the docs describe the fix as landed, so merging this one second is tidier.
The thing nobody had checked:
BACKEND_DESIGN.mdwas never de-UO'dPhase 3 rewrote core's code, and slice 5 did core's README and OpenAPI metadata. But §5.2's identifier check reads code, not prose — so nothing ever looked at the design document. A phase after core stopped being able to serve any of it,
BACKEND_DESIGN.mdstill described 27shard_*tables, 20 UO route rows and the shard visibility ladder as core's.Moved, text unchanged (a relocation that also reworded makes it impossible to tell what changed meaning):
shard_*schema sections, 226 linesmodules/uo/SCHEMA.md(new)/admin/shardtier prosemodules/uo/API.md(new)modules/uo/API.md§4What core keeps is the seam:
installed_modules,/public/modules, the extension slot, and — new here — the eight/admin/modulesroutes, which slices 1–3 shipped and never documented. §6.5 becomes "Module-owned audience boundaries": core's security boundary ends at authentication, roles and the session, and a module that serves game data brings its own.The general rule, added as settled decision 27: documentation follows the code out. §2.10 already said module docs aggregate in
docs/modules/<id>/; that has to include the parts core used to own, or core's reference silently becomes wrong the first time someone runs it without the module.Two stale claims fell out
users.router.jswas still listed as 15 routes. It is 9 — six went to the extension slot in Phase 2 PR 4.config/shardStreams.js"belongs to module-uo and moves out with it", in the future tense, four slices after it left.SHARD_VISIBILITY.mdandSPAWN_ATLAS.mdnow point at the module docs for the contract and the column listings.The acceptance table has results
modules/<id>/Criterion 2 was the one nobody had run.
module-uov0.3.0 from the real release, onto a brand-new empty database: 27 tables, a real atlas and a 67,496-row cliloc import, a marker row, then taken away twice.purged: 27, every table gone, row gone, directory gone409whilestarted,200whiledisabledIt also exposed the ordering defect website#146 fixes — the purge ran before the stop, so 27 tables were dropped under a module that was still serving and ingesting. Generalises: an ordering that is only wrong for a few seconds is invisible to every test and to any smoke without a live producer.
And one thing worth writing down because it surprised the run: after purge-and-reinstall the atlas and cliloc content comes back — it is re-derived from the operator's own ServUO tree at the next
onBoot. What is gone is everything the shard and its players produced. The twosettingsrows survive on purpose.AI disclosure
🤖 Generated with Claude Code
https://claude.ai/code/session_018ocYxQWk3EhZe5gWRJXFU8