docs(website): record the edge branch strategy and the Module-uo repo #123

Merged
whitlocktech merged 1 commits from docs/module-system-edge into main 2026-08-10 07:32:57 +00:00
Member

Follow-up to #122, which merged before these changes were pushed. Same file, website/MODULE_SYSTEM.md; docs only.

Branch strategy (new §2.9)

Website work lands on an edge branch and reaches main as a single cutover at the end — the same shape used for protocol v3 and the Android theming workstream. The reasoning worth keeping: a core that has grown a module loader but not yet lost its UO code is a coherent state, and a core mid-extraction is not.

Verified while writing it — edge does not currently exist on website. The protocol v3 cutover landed and the branch was cleaned up, so it gets cut fresh from main with nothing else riding on it. Module-uo develops on its own main from its first commit and has no cutover to perform, since nothing depends on it until the website cutover lands.

New Phase 0, because the strategy is blocked

pr-checks.yml is on: pull_request: branches: [main], so a PR into edge runs no checks at all. That is the same trap that let all nine Android M12 phase PRs merge with zero CI, and it matters more here because Phase 2's exit criterion is a CI result — a zero-line routes.manifest.json diff and a passing suite.

Fixed in website#127, which must land on website main before the first module PR. Phase 0 also covers cutting edge and giving Module-uo its initial commit.

The module repo

Recorded as RunicGateway/Module-uo — capital M, matching Android-app's casing rather than the lowercase directory name — and noted as empty as of 2026-08-10: no branches, no initial commit, so its first commit needs README, GPL-3.0-or-later license, CONTRIBUTING with the AI-disclosure clause, PR template and CI.

Also disambiguates repo from id: the module id is uo, which is what appears in module.json, installed_modules, the modules/<id>/ path and the URL segment. module-uo elsewhere in the document names the module and its artifact, not the repo.

Part 3 grows two rows (11, 12) for the branch strategy and the repo name.


  • AI-assisted: written with Claude Code (Claude Opus 5)

🤖 Generated with Claude Code

https://claude.ai/code/session_018ocYxQWk3EhZe5gWRJXFU8

Follow-up to #122, which merged before these changes were pushed. Same file, `website/MODULE_SYSTEM.md`; docs only. ## Branch strategy (new §2.9) Website work lands on an **`edge`** branch and reaches `main` as a single cutover at the end — the same shape used for protocol v3 and the Android theming workstream. The reasoning worth keeping: a core that has grown a module loader but not yet lost its UO code is a coherent state, and a core mid-extraction is not. Verified while writing it — **`edge` does not currently exist on `website`**. The protocol v3 cutover landed and the branch was cleaned up, so it gets cut fresh from `main` with nothing else riding on it. `Module-uo` develops on its own `main` from its first commit and has no cutover to perform, since nothing depends on it until the website cutover lands. ## New Phase 0, because the strategy is blocked `pr-checks.yml` is `on: pull_request: branches: [main]`, so a PR into `edge` runs **no checks at all**. That is the same trap that let all nine Android M12 phase PRs merge with zero CI, and it matters more here because Phase 2's exit criterion *is* a CI result — a zero-line `routes.manifest.json` diff and a passing suite. Fixed in **[website#127](https://gitea.whitlocktech.com/RunicGateway/website/pulls/127)**, which must land on website `main` before the first module PR. Phase 0 also covers cutting `edge` and giving `Module-uo` its initial commit. ## The module repo Recorded as **`RunicGateway/Module-uo`** — capital `M`, matching `Android-app`'s casing rather than the lowercase directory name — and noted as **empty** as of 2026-08-10: no branches, no initial commit, so its first commit needs README, GPL-3.0-or-later license, CONTRIBUTING with the AI-disclosure clause, PR template and CI. Also disambiguates repo from id: the module **id** is `uo`, which is what appears in `module.json`, `installed_modules`, the `modules/<id>/` path and the URL segment. `module-uo` elsewhere in the document names the module and its artifact, not the repo. Part 3 grows two rows (11, 12) for the branch strategy and the repo name. --- - [x] AI-assisted: written with Claude Code (Claude Opus 5) 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_018ocYxQWk3EhZe5gWRJXFU8
wtclaude added 1 commit 2026-08-10 07:32:29 +00:00
Website work lands on an `edge` branch and reaches `main` as a single cutover
at the end -- the same shape used for protocol v3 and the Android theming
workstream. A core that has grown a module loader but not yet lost its UO
code is a coherent state; a core mid-extraction is not.

Adds a Phase 0, because the strategy is blocked on one line of CI config:
pr-checks.yml is `on: pull_request: branches: [main]`, so every PR into edge
would run no checks at all -- the same trap that let all nine Android M12
phase PRs merge with zero CI. It matters more here, since Phase 2's exit
criterion IS a CI result (zero-line routes.manifest.json diff, passing
tests). The fix must land on website main before the first module PR.

Also records the real module repo: RunicGateway/Module-uo (capital M, as
Android-app), currently empty -- no branches, no initial commit -- and
disambiguates the repo name from the module id `uo`.

Co-Authored-By: Claude <noreply@anthropic.com>
whitlocktech merged commit 07d8390a17 into main 2026-08-10 07:32:57 +00:00
whitlocktech deleted branch docs/module-system-edge 2026-08-10 07:32:58 +00:00
Sign in to join this conversation.
No description provided.