feat(docs): phase 15 - the Rust group, its reference pages checked against their sources
All checks were successful
PR checks / checks (pull_request) Successful in 2m5s
All checks were successful
PR checks / checks (pull_request) Successful in 2m5s
PLAN.md §16 phase 15. A Rust group of fifteen pages after Ultima Online (D70): the module, installing the bridge (installer, Pterodactyl egg, by hand), connecting the site, verifying the bridge, linking Steam accounts, permissions and groups, mod config, who sees who is online, events, zones and rewards, optional plugins, the live map, troubleshooting, and three reference pages - rust-link's sidecar.toml, the plugin's RunicGateway.json, and the event kinds. checkReference.mjs gains three Rust sections rather than a new check: sidecar.toml keys and RUSTLINK_* overrides from Rust-Link config.rs, RunicGateway.json from the plugin's PluginConfig, and the event kinds in three classes against Module-Rust server/catalogue.js (D71). Every admin screen was walked on the walk site before it was described (D36). Core pages now hand off to the Rust group instead of linking out to the docs repository. Three defects the re-read found here are fixed: the UO /health sample's hard-coded protocol 4 (both games' samples now render platform.json through <Code>), Authentication's missing Steam tab, and two pages saying the site cannot reach EventsEnabled - false on Rust. Installer v0.8.1 moved checkFacts red mid-phase; platform.json follows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
77
PLAN.md
77
PLAN.md
@@ -237,7 +237,7 @@ Taken by the org lead (Colby Whitlock) on 2026-08-19. Recorded so they are not r
|
||||
|
||||
**Decisions after D13 are recorded where they were taken**, in the section describing the phase that
|
||||
raised them, rather than appended here — a decision is only re-litigated when its reasoning is
|
||||
somewhere other than the thing it decided. The count of record is **sixty-nine**:
|
||||
somewhere other than the thing it decided. The count of record is **seventy-one**:
|
||||
|
||||
| # | Where | What it settled |
|
||||
|---|---|---|
|
||||
@@ -258,6 +258,7 @@ somewhere other than the thing it decided. The count of record is **sixty-nine**
|
||||
| D66 | §16, "How phase 13 built it" | The hero and footer show the Module API only; a protocol and a bundle belong to a game |
|
||||
| D67 | §16, "One rule the phases need" | A screenshot belongs to its game: a capture tagged with a game may carry its words, beside the game's name |
|
||||
| D68–D69 | §16, "How phase 14 built it" | A game's real example on a core page is a tagged, labelled block; *Verify the whole stack* stays in Getting started, game-neutral (amending D60) |
|
||||
| D70–D71 | §16, "How phase 15 built it" | The Rust group is fifteen pages, one per admin screen where it can be; the Rust event kinds are checked against the module's own classification |
|
||||
|
||||
---
|
||||
|
||||
@@ -2094,6 +2095,80 @@ repositories):
|
||||
- **The installer's `--help` says "Which game's shard side"** for `--game`, and `--site-url` names
|
||||
"Admin → Shard (uo-link)" for both games.
|
||||
|
||||
### How phase 15 built it
|
||||
|
||||
Two decisions, taken by the org lead on 2026-10-22 before any page was written. The count of
|
||||
record is now **seventy-one**.
|
||||
|
||||
**D70 — the Rust group is fifteen pages.** D60 named the topics and not the pages. The group
|
||||
follows the Ultima Online group's shape: an overview, then the journey (*Install the bridge*,
|
||||
*Connect the site*, *Verify the bridge*), then one page per admin screen where there is one
|
||||
(*Permissions and groups*, *Mod config from the site*, *Who sees who is online*, *Events, zones
|
||||
and rewards*), then *Linking Steam accounts*, *Optional plugins*, *The live map* and
|
||||
*Troubleshooting*, and three reference pages (*sidecar.toml*, *RunicGateway.json*, *Event
|
||||
kinds*). *Who sees who is online* and *Optional plugins* got pages of their own rather than
|
||||
being folded into the overview and the events page, because each has a screen or a trap of its
|
||||
own — RaidableBases must be restarted, never reloaded. The alternative was ten longer pages. The
|
||||
question put to the org lead called this option "14 pages" while listing fifteen; the list is
|
||||
what was chosen. RunicNPC's subgroup is phase 16's.
|
||||
|
||||
**D71 — the Rust event kinds are checked against the module's classification.** The plan said the
|
||||
protocol-14 event list would be checked "against its sources". There were two candidates:
|
||||
`PROTOCOL.md`, whose kinds are spread across tables from §8.4 to §20.12, and `Module-Rust`
|
||||
`server/catalogue.js`, which holds three lists in code — public, staff, and the presence subset
|
||||
of public. The second was chosen, for D39's reason: the visibility ladder is checked against the
|
||||
module that enforces it, and so is this. The module's own test already holds its lists to
|
||||
`PROTOCOL.md`, so the chain reaches the spec without this repo parsing prose tables. The page
|
||||
shows three classes, and each is compared separately, so a kind moving from staff to public
|
||||
upstream fails here twice.
|
||||
|
||||
**`checkReference.mjs` gained three Rust sections**, as the plan said, rather than a new check:
|
||||
rust-link's `sidecar.toml` (parsed from its serde structs by the same function as uo-link's, now
|
||||
shared) and the six `RUSTLINK_…` variables that override it; the bridge plugin's
|
||||
`RunicGateway.json`, read from the public fields of `PluginConfig` in `RunicGateway.cs`; and the
|
||||
event kinds (D71). The canonical documents gained `OPERATING.md` and `CARBON.md` under Rust.
|
||||
|
||||
**Every admin screen was walked on the walk site first** (D36), signed in as the walk admin:
|
||||
Rust servers (Test, Edit, Chat titles, Optional mods), Rust permissions (a player, a group's four
|
||||
tabs), Rust mod config (the tree and `RunicGateway.json`'s read-only keys), Rust visibility, Rust
|
||||
zone presets, the event editor's action list, a user's Rust section, and the public server page's
|
||||
feed, map and leaderboard. Nothing was saved. The NPC screens are phase 16's. Writing from the
|
||||
walk and the source corrected three of my own drafts before they shipped: a reward does **not**
|
||||
need a linked account (rewards go to Steam ids), the bundle ships **three** helpers, not two, and
|
||||
the Test button prints the raw status (`protocol-mismatch`), not a phrase.
|
||||
|
||||
**What the re-read found in this repository**, fixed here:
|
||||
|
||||
- ***Verify the bridge* (Ultima Online) showed `"protocol":4`** in its `/health` sample, a
|
||||
hard-coded version four protocols stale. Both games' samples now render the protocol from
|
||||
`platform.json` through Starlight's `<Code>`, which is how a version gets into a code block
|
||||
without being typed.
|
||||
- ***Authentication* said "four tabs"** and never mentioned Steam, which core shipped with Module
|
||||
API 1.17.0. It now has five, and a *Steam* section the Rust pages link to.
|
||||
- ***Scheduled events* and *Events architecture* said the site cannot reach `EventsEnabled`.**
|
||||
True for Ultima Online, false for Rust: an administrator can edit `RunicGateway.json`, that switch
|
||||
included, from Admin → Rust mod config. Both pages now say so, the first as two tagged examples
|
||||
(D68).
|
||||
|
||||
**`checkFacts` went red mid-phase, as designed.** Installer v0.8.1 shipped on 2026-10-22 — the
|
||||
game-neutral `--help` that phase 14 reported, fixed in `installer` #43 alongside `website` #221 for
|
||||
the Teams panel — so `platform.json` moved to it. Its only change is that help text, which no page
|
||||
quotes.
|
||||
|
||||
**Findings in other repositories**, reported rather than fixed:
|
||||
|
||||
- **`Module-Rust` admin copy shows decision numbers.** A group's *Servers* tab reads "unless it is
|
||||
shared (D189)", and the *not imported yet* chip's tooltip ends "(D198)". Neither means anything
|
||||
to an operator.
|
||||
- **`Module-Rust`'s servers page reads "Last pushed: 1 player hold one."** — the plural verb is
|
||||
used for one.
|
||||
- **`Rust-Plugins`' `PluginConfig.EventsEnabled` comment says it "gates taking a lease only"**.
|
||||
That stopped being true at protocol 9, when it began gating every world write.
|
||||
- **`docs` `rust-link/INTEGRATION.md` predates the installer**: it says there is no installer
|
||||
support for Rust and shows protocol-1 samples. **`rust-link/INSTALL.md`'s by-hand step names two
|
||||
helpers**; the bundle ships three. The org lead approved a separate `docs` PR for these:
|
||||
`docs` #370.
|
||||
|
||||
---
|
||||
|
||||
[api]: https://gitea.whitlocktech.com/RunicGateway/docs/src/branch/main/website/MODULE_API.md
|
||||
|
||||
Reference in New Issue
Block a user