docs(runicnpc): stage 9 decisions D306–D314 and its design #324

Merged
whitlocktech merged 1 commits from docs/runicnpc-stage9-decisions into main 2026-10-06 15:21:41 +00:00
Member

What & why

Stage 9 (hardening and release) of runicnpc/PLAN.md, as the org lead answered it on 2026-10-06:

Decision
D306 Performance passes when 100 NPCs cost no more than stages 1 and 5 measured (about +1 ms idle, +5 ms fighting), on both 6000-map rigs
D307 A separate staging rig, rust-staging: Oxide only, a 2000 map at about 6 GB, with a permanent staging startup (the panel image always updates to public on start); the published egg is unchanged
D308 The drill is a daily Gitea CI job in runicnpc-rust, with a static half (compile against staging DLLs, field-list diff) and a live half (harness on rust-staging), both automatic; failures open an issue
D309 Its own Pterodactyl client key, in a Gitea org secret; it stops the Carbon rig if memory needs it and restores it
D310 Without RunicNPC every Place NPCs step is refused, Rust's own scientists included (this ends D243's fallback)
D311 v1.0.0 is published on Gitea only; uMod and Codefling come later
D312 One player-walk checklist, one session per rig, gathering every deferred in-game check
D313 One coordinated edge → main cutover of the five Rust repos after the walk
D314 Core's public phase label fixed (key, not id) in its own website PR (the open question from #323)

The stage 9 section now lays out four phases after this one: 9b hardening, 9c the staging drill, 9d the player walk, 9e the cutover and release. Each one ends in its own PRs, and I stop before starting the next. PLAN_REDESIGNS' pointer to the RunicNPC decision range moves to D214–D314.

How it was tested

Docs only. Read through for consistency with D224, D232 and D243. The egg's startup behavior behind D307 comes from the pterodactyl/yolks games/rust entrypoint and egg 25's install script.

Checklist

  • I have read CONTRIBUTING.md.
  • The change builds and existing tests/checks pass locally.
  • I have added or updated tests/docs where it makes sense.
  • My commits are reasonably scoped with clear messages.

AI-assisted contributions (required)

  • No AI tools were used to produce this contribution.
  • AI tools were used. Tool(s): Claude Code (Claude Opus 5.5). I have reviewed and understand
    every change, and take responsibility for it. AI-authored commits are
    marked with a Co-Authored-By / Assisted-By trailer.

License

  • I agree that my contribution is licensed under this project's license
    (GNU GPL v3.0 or later), and I have the right to contribute it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY

## What & why Stage 9 (hardening and release) of `runicnpc/PLAN.md`, as the org lead answered it on 2026-10-06: | | Decision | |---|---| | D306 | Performance passes when 100 NPCs cost no more than stages 1 and 5 measured (about +1 ms idle, +5 ms fighting), on both 6000-map rigs | | D307 | A separate staging rig, `rust-staging`: Oxide only, a 2000 map at about 6 GB, with a permanent staging startup (the panel image always updates to public on start); the published egg is unchanged | | D308 | The drill is a daily Gitea CI job in `runicnpc-rust`, with a static half (compile against staging DLLs, field-list diff) and a live half (harness on `rust-staging`), both automatic; failures open an issue | | D309 | Its own Pterodactyl client key, in a Gitea org secret; it stops the Carbon rig if memory needs it and restores it | | D310 | Without RunicNPC every Place NPCs step is refused, Rust's own scientists included (this ends D243's fallback) | | D311 | v1.0.0 is published on Gitea only; uMod and Codefling come later | | D312 | One player-walk checklist, one session per rig, gathering every deferred in-game check | | D313 | One coordinated `edge` → `main` cutover of the five Rust repos after the walk | | D314 | Core's public phase label fixed (`key`, not `id`) in its own website PR (the open question from #323) | The stage 9 section now lays out four phases after this one: **9b** hardening, **9c** the staging drill, **9d** the player walk, **9e** the cutover and release. Each one ends in its own PRs, and I stop before starting the next. PLAN_REDESIGNS' pointer to the RunicNPC decision range moves to D214–D314. ## How it was tested Docs only. Read through for consistency with D224, D232 and D243. The egg's startup behavior behind D307 comes from the `pterodactyl/yolks` games/rust entrypoint and egg 25's install script. ## Checklist - [x] I have read [CONTRIBUTING.md](CONTRIBUTING.md). - [x] The change builds and existing tests/checks pass locally. - [x] I have added or updated tests/docs where it makes sense. - [x] My commits are reasonably scoped with clear messages. ## AI-assisted contributions (required) - [ ] No AI tools were used to produce this contribution. - [x] AI tools were used. Tool(s): `Claude Code (Claude Opus 5.5)`. I have reviewed and understand every change, and take responsibility for it. AI-authored commits are marked with a `Co-Authored-By` / `Assisted-By` trailer. ## License - [x] I agree that my contribution is licensed under this project's license (**GNU GPL v3.0 or later**), and I have the right to contribute it. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
wtclaude added 1 commit 2026-10-06 15:12:24 +00:00
The org lead's answers of 2026-10-06: the performance bar is what stages 1
and 5 measured (D306); a separate small-map staging rig (D307) driven by a
daily Gitea CI drill, static and live (D308), with its own panel key in an
org secret (D309); no RunicNPC means every Place NPCs step is refused (D310,
ending D243's fallback); Gitea-only publishing for 1.0 (D311); one player
walk gathering every deferred in-game check (D312); one coordinated cutover
of the five Rust repos (D313); and core's phase label fixed (D314).

Stage 9 is laid out as four phases after this one: 9b hardening, 9c the
staging drill, 9d the player walk, 9e the cutover and release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
whitlocktech merged commit 6cd24bd302 into main 2026-10-06 15:21:41 +00:00
whitlocktech deleted branch docs/runicnpc-stage9-decisions 2026-10-06 15:21:42 +00:00
Sign in to join this conversation.
No description provided.