docs(modules): close Phase 5 — the acceptance run, and the page shell it found #147
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/module-phase5-slice3"
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?
Slice 3 of Phase 5 (§2.11.1), and the phase's last slice. Second of four PRs —
website#148should merge first (it carries 1.5.0, which this documents and which the kit's CI then pins to).docs/modules/kit-acceptance.md— decision 5's deliverableA cold agent, given the kit and the five documents it links to and denied core's source and
module-uo, was asked to build a module for a second game. What it produced was then installed into a real core onedgeand taken throughMODULE_API.md§7.7's browser smoke.Verdict: yes, with caveats. One pass, no core source, and three of the four normative documents never opened. It built
module-rust— two public routes over two tables, a chunk with two pages and a nav row, 44 server + 18 client tests, every guard green — and it loaded into a real core against an empty database: schema replayed,onBootran,started, both routes serving, deep-linked param route rendering on a cold load, zero CSP reports, zero console errors.The record includes the method, the findings, and an honest note that isolation was a clean tree plus instructions plus a self-reported read list, not a sandbox — a subagent inherits the workspace as its shell default. A future run should put the agent somewhere it cannot reach core.
The finding that justifies the two-stage shape
The agent could not have found the worst defect: it had no core to render against.
A module page built exactly as the kit teaches renders outside the site.
PublicLayoutsupplies the chrome and not the body; theshell-… page-bodywrapper each of core's nine public pages writes for itself is two class names appearing in no contract. Content at x=0, no padding, footer riding up underneath. That is §3.4's own stated failure — "a module page that does not look like the site it is installed in" — reached by following §3.4.Fixed in core rather than documented at the reader, so the class names stay core's private business and the theming workstream keeps its freedom to rename them:
PublicLayouttakes an opt-inshellwidth,MODULE_API_VERSION1.5.0.Contract changes
shellprop, why a module names a width and never a class, the footer symptom (it looks like a CSS bug in the module rather than a missing wrapper), and the eight-vs-seven miscount the run also turned up. The kit had faithfully carried that miscount out of the contract and into the template — the never-re-specify rule working exactly as designed, on a wrong input.rust-dryrun.md—coreApi^1.3.0→^1.5.0, as a dated correction (decision 33). It is the only completemodule.jsonin the kit's reading path, and the reusable half is that nothing checks a JSON block inside a Markdown file — where the template has CI holding it against core's version on every PR. A range is also the shape least likely to be noticed when it rots:^1.3.0is satisfied by a 1.5.0 core.check:swaggerfailed on a pristine template on Windows (CRLF vs the LF it writes) while blaming "the routes or their annotations" — green on the Linux runner forever, and the first command the kit tells a reader to run.Also from the run, adopted rather than merely recorded
Chapter 1 will tell readers to run every check on the untouched copy first (that is what found the CRLF defect — without a baseline the agent would have blamed its own edits), and the template will ship the §2.7 self-check the agent wrote for itself: the rule has no CI in general, but a module can make a decidable claim about its own tree. Both land in the
Integration-kitPR.The banner does not come off. Decision 32 makes that a person's to remove; this run exercised the website-module half only — the module has no sidecar, so chapters 3 and 4 were never tested — and an agent does not skim, get frustrated, or give up.
Sequencing
website#148→ this →Integration-kit(template + chapters, six findings, pin moves to 1.5.0) →.profile.Co-Authored-Bytrailer.