docs: plan complete ase housekeeping cutover

This commit is contained in:
Simo committed 2026-08-26 20:26:19 +02:00
1 parent d42cd2af53
commit 74756dfed2
2 files changed
+1225 -23

No files matched your search

File diff suppressed because it is too large. Load diff
@@ -18,6 +18,10 @@ delivery details differ, this document is authoritative for phases 02 onward.
The master architecture remains authoritative for domain ownership and product The master architecture remains authoritative for domain ownership and product
behavior. behavior.
This completion specification supersedes the earlier documents only for the
route namespace: the new surface uses `/ase`, never `/admin`, as its canonical
production root.
## Approved decisions ## Approved decisions
- Build complete verticals behind the existing non-production gate. - Build complete verticals behind the existing non-production gate.
@@ -26,8 +30,9 @@ behavior.
- Implement in vertical slices rather than UI-first placeholders. - Implement in vertical slices rather than UI-first placeholders.
- Keep current `/admin` and `/mod` behavior unchanged until the final cutover - Keep current `/admin` and `/mod` behavior unchanged until the final cutover
commit. commit.
- At cutover, make the new Command Deck the real `/admin`, remove `/mod`, and - At cutover, make the new Command Deck live at `/ase`, remove the legacy
remove obsolete legacy routes without redirects. `/admin`, `/admin-next`, and `/mod` trees, and remove obsolete legacy routes
without redirects.
- Use hybrid personalization: mandatory content is capability-derived; operators - Use hybrid personalization: mandatory content is capability-derived; operators
may pin and reorder allowed shortcuts and optional widgets. may pin and reorder allowed shortcuts and optional widgets.
- Add only backward-compatible database migrations before cutover. - Add only backward-compatible database migrations before cutover.
@@ -55,10 +60,12 @@ All work is committed to `codex/housekeeping-complete`, based on the latest
`origin/main`. No pull request is opened until every vertical and the cutover are `origin/main`. No pull request is opened until every vertical and the cutover are
implemented, reviewed, and verified. implemented, reviewed, and verified.
The existing `/admin-next` entry remains unavailable when The foundation currently exposes `/admin-next`. The first completion change
`NODE_ENV=production`. Development and test environments use it to exercise the renames that preview tree and its links to `/ase-next`; the preview remains
new shell before cutover. The final cutover changes the canonical `/admin` route; unavailable when `NODE_ENV=production`. Development and test environments use
it does not weaken the production preview gate. `/ase-next` to exercise the new shell before cutover. The final cutover publishes
the canonical `/ase` tree and removes the preview entry; it does not weaken the
production preview gate before that point.
The branch is built in this order: The branch is built in this order:
@@ -75,17 +82,18 @@ The branch is built in this order:
After cutover the public administration route tree is: After cutover the public administration route tree is:
```text ```text
/admin Operations workspace /ase Operations workspace
/admin/people/* users, tickets, CFH, bans, moderation, teams /ase/people/* users, tickets, CFH, bans, moderation, teams
/admin/content/* articles, events, polls, media, engagement /ase/content/* articles, events, polls, media, engagement
/admin/economy/* catalog, shop, transactions, vouchers, values /ase/economy/* catalog, shop, transactions, vouchers, values
/admin/hotel/* rooms, furni, badges, radio, emulator, Studio /ase/hotel/* rooms, furni, badges, radio, emulator, Studio
/admin/system/* settings, ACL, logs, DevOps, maintenance /ase/system/* settings, ACL, logs, DevOps, maintenance
``` ```
`/admin` is the operational home, not a duplicate menu page. `/mod` has no route `/ase` is the operational home, not a duplicate menu page. `/admin`,
after cutover. A workflow has one canonical owner and one canonical destination; `/admin-next`, and `/mod` have no route after cutover. A workflow has one
the new tree must not retain duplicate hubs or aliases. canonical owner and one canonical destination; the new tree must not retain
duplicate hubs or aliases.
## Module ownership ## Module ownership
@@ -331,11 +339,13 @@ legacy UI routes is an application cutover, not a destructive data migration.
The final cutover commit is created only after all vertical gates pass. It: The final cutover commit is created only after all vertical gates pass. It:
1. moves the completed shell and Operations workspace to `/admin`; 1. moves the completed shell and Operations workspace from `/ase-next` to
2. changes domain preview hrefs to canonical `/admin/<domain>` hrefs; `/ase`;
2. changes domain preview hrefs to canonical `/ase/<domain>` hrefs;
3. updates internal links, navigation configuration, and authorization fallback 3. updates internal links, navigation configuration, and authorization fallback
destinations; destinations;
4. removes `/mod` and every legacy route marked `REMOVE`; 4. removes the legacy `/admin`, `/admin-next`, and `/mod` route trees plus every
legacy route marked `REMOVE`;
5. removes legacy pages whose behavior moved or merged into canonical routes; 5. removes legacy pages whose behavior moved or merged into canonical routes;
6. removes the temporary preview entry and flag if no longer used by tests; 6. removes the temporary preview entry and flag if no longer used by tests;
7. adds no compatibility redirects. 7. adds no compatibility redirects.
@@ -363,8 +373,8 @@ The final branch requires:
- production build with temporary environment restoration; - production build with temporary environment restoration;
- visual verification at desktop and mobile widths for every domain and shared - visual verification at desktop and mobile widths for every domain and shared
state; state;
- route-level smoke checks for canonical pages, denied access, and removal of - route-level smoke checks for canonical `/ase` pages, denied access, and
`/mod`/obsolete routes; removal of `/admin`, `/admin-next`, `/mod`, and obsolete routes;
- a broad whole-branch code review followed by one reviewed fix wave if needed. - a broad whole-branch code review followed by one reviewed fix wave if needed.
Repository-wide pre-existing formatter debt is reported separately and must not Repository-wide pre-existing formatter debt is reported separately and must not
@@ -389,7 +399,8 @@ before serving the cutover release.
- A new task-assignment system for inbox items. - A new task-assignment system for inbox items.
- A replacement authentication or ACL model. - A replacement authentication or ACL model.
- Rank-based authorization thresholds. - Rank-based authorization thresholds.
- Compatibility redirects for removed admin/mod routes. - Compatibility redirects for removed `/admin`, `/admin-next`, or `/mod`
routes.
- Destructive cleanup of legacy database data. - Destructive cleanup of legacy database data.
- Rewriting specialized domain engines that already work; they are integrated - Rewriting specialized domain engines that already work; they are integrated
behind consistent domain contracts instead. behind consistent domain contracts instead.
@@ -406,6 +417,6 @@ The program is complete only when:
operate against real domain services; operate against real domain services;
- capability enforcement and audit evidence cover every exposed read and - capability enforcement and audit evidence cover every exposed read and
mutation path; mutation path;
- `/admin` serves the new HK, `/mod` and removed legacy routes are unreachable, - `/ase` serves the new HK; `/admin`, `/admin-next`, `/mod`, and removed legacy
and no compatibility redirects exist; routes are unreachable; and no compatibility redirects exist;
- final local, CI, deployment, health, and visual evidence are all recorded. - final local, CI, deployment, health, and visual evidence are all recorded.