docs(website): record slice 4, and the §5.2 check as built #139

Merged
whitlocktech merged 1 commits from docs/module-de-uo-core into main 2026-08-12 03:00:38 +00:00
Member

The docs half of Phase 3 slice 4. Pairs with Module-uo#5 and website#140.

MODULE_SYSTEM.md §2.7.1 — the slice 4 record

The slice table row is corrected to what actually moved, and README.md is recorded as deliberately deferred to slice 5 rather than quietly skipped.

Four subsections:

  • The bindings were dead a whole slice before anyone noticed — 190 lines of UO API bindings with zero consumers, which is exactly why nothing caught them. Worth naming as a class: the same is true of any leaf a deletion slice leaves behind.
  • The copy, and where a game's name belongs instead — why the words stay in code and become neutral, rather than becoming a config surface for prose. Plus the wiki-slug trap: seedDefault* only inserts what is absent, so a rename adds a page.
  • Two settings rows core had no business seeding — one of them broken. This one gets the SQL, because the shape will recur: a guard in core and the statement it guards in a fragment run in the wrong order, since core's schema is replayed in full before any fragment. Verified against a real MariaDB in all three states, including the pinned-instance case that makes it a one-shot rather than a re-bump.
  • The check — what checkModuleIdentifiers.js learned by getting things wrong first.

MODULE_API.md §5.2 — from sketch to contract

§5.2 stopped describing a grep and describes what was built. Four details promoted to contract, each because a first attempt got it wrong:

  • whole-word matching (a substring pass flags defaultImage, which contains "ultIma")
  • the comments-then-strings character walk, masking rather than deleting
  • grandfathering exemptions that name file + identifier + reason, and fail the build when they stop matching
  • git ls-files rather than a directory walk

Plus the note that the check needs its own test suite — a boundary check is written when the boundary is already clean, so nothing distinguishes "still checking" from "quietly broken" without cases it must reject.

BACKEND_DESIGN.md

The settings table's seeded-keys list was missing player_registration and mobile_app_links_enabled, and gains a new paragraph on the keys a module seeds — with the fragment-ordering rule behind them.

No route changes this slice, so api-route-inventory.json needs no refresh (verified in sync at 158 public + 2 internal).


  • AI-assisted (Claude Code)
The docs half of Phase 3 slice 4. Pairs with **Module-uo#5** and **website#140**. ## `MODULE_SYSTEM.md` §2.7.1 — the slice 4 record The slice table row is corrected to what actually moved, and `README.md` is recorded as **deliberately deferred to slice 5** rather than quietly skipped. Four subsections: - **The bindings were dead a whole slice before anyone noticed** — 190 lines of UO API bindings with zero consumers, which is exactly why nothing caught them. Worth naming as a class: the same is true of any leaf a deletion slice leaves behind. - **The copy, and where a game's name belongs instead** — why the words stay in code and become neutral, rather than becoming a config surface for prose. Plus the wiki-slug trap: `seedDefault*` only inserts what is absent, so a rename adds a page. - **Two settings rows core had no business seeding — one of them broken.** This one gets the SQL, because the shape will recur: a guard in core and the statement it guards in a fragment run in the wrong order, since core's schema is replayed in full before any fragment. Verified against a real MariaDB in all three states, including the pinned-instance case that makes it a one-shot rather than a re-bump. - **The check** — what `checkModuleIdentifiers.js` learned by getting things wrong first. ## `MODULE_API.md` §5.2 — from sketch to contract §5.2 stopped describing a grep and describes what was built. Four details promoted to contract, each because a first attempt got it wrong: - whole-**word** matching (a substring pass flags `defaultImage`, which contains "ultIma") - the comments-then-strings character walk, masking rather than deleting - grandfathering exemptions that name file + identifier + reason, and **fail the build** when they stop matching - `git ls-files` rather than a directory walk Plus the note that the check needs its own test suite — a boundary check is written when the boundary is already clean, so nothing distinguishes "still checking" from "quietly broken" without cases it must reject. ## `BACKEND_DESIGN.md` The settings table's seeded-keys list was missing `player_registration` and `mobile_app_links_enabled`, and gains a new paragraph on the keys a **module** seeds — with the fragment-ordering rule behind them. No route changes this slice, so `api-route-inventory.json` needs no refresh (verified in sync at 158 public + 2 internal). --- - [x] AI-assisted (Claude Code)
wtclaude added 1 commit 2026-08-12 02:56:44 +00:00
MODULE_SYSTEM.md §2.7.1 gains the slice 4 record: the 190 dead lines of UO API
bindings slice 3 left behind (with zero consumers, which is why nothing caught
them), the copy rewrite and why the words stay in code rather than becoming a
config surface, the two settings rows core had no business seeding, and the
check that keeps all of it out. The slice table row is corrected to what
actually moved, and README.md is recorded as deliberately deferred to slice 5
rather than quietly skipped.

The defect gets its own subsection with the SQL, because it is a shape that will
recur: a guard in core and the statement it guards in a fragment run in the wrong
order, since core's schema is replayed in full before any fragment. Verified
against a real MariaDB in all three states, including the pinned-instance case
that makes it a one-shot rather than a re-bump.

MODULE_API.md §5.2 stops describing a grep and describes what was built — four
details promoted to contract because each was wrong first: whole-word matching
(a substring pass flags `defaultImage`, which contains "ultIma"), the
comments-then-strings character walk, grandfathering exemptions that fail the
build when they stop matching, and `git ls-files` over a directory walk.

BACKEND_DESIGN.md's settings table gains the keys a MODULE seeds, and the
ordering rule behind them.

Co-Authored-By: Claude <noreply@anthropic.com>
whitlocktech merged commit 404158b10f into main 2026-08-12 03:00:38 +00:00
whitlocktech deleted branch docs/module-de-uo-core 2026-08-12 03:00:38 +00:00
Sign in to join this conversation.
No description provided.