migration: close candidate maintenance audit

This commit is contained in:
leefer
2026-07-31 21:24:37 +08:00
parent bc25e06416
commit aabfb621aa
10 changed files with 728 additions and 91 deletions
+11 -6
View File
@@ -1,12 +1,15 @@
# Governance Registries
These registries describe the approved product surface during architecture migration.
These registries describe the approved product surface of the modular preservation candidate.
- `pages.config.json`: primary page identity, navigation group, access expectation, scrolling,
and mobile composition policy.
- `features.config.json`: feature ownership, backend access class, data scope, and availability.
- `api.config.json`: transitional inventory of current routes, generated from `server.py` and
assigned to a feature owner.
- `api.config.json`: current routes generated from the preserved `server.py` API surface, with
one feature owner and backend access class per route. Its dispatcher implementation lives in
`backend/application.py`.
- `architecture-inventory.json`: generated inventory of candidate pages, routes, tables,
providers, model entry points, CSS layers, and remaining code hotspots.
- `data-fields.config.json`: canonical data products, provider eligibility, intended use, and
known blocked datasets.
- `data-quality.config.json`: freshness, coverage, units, adjustment, point-in-time, and
@@ -14,13 +17,15 @@ These registries describe the approved product surface during architecture migra
- `jobs.config.json`: background schedules, dependencies, lock keys, retry policy, timeouts,
and output versions.
During Stage 04 these files are contract inputs, not runtime replacements. Backend access in
`api_access.py` remains authoritative until the HTTP governance phase switches it atomically.
Frontend visibility remains a presentation concern and never grants backend access.
The registries are governance contracts, not substitutes for runtime authorization. Backend
access in `backend/http/routes.py` is authoritative; frontend visibility is only a presentation
concern and never grants access.
Regenerate the transitional API inventory after a route change:
```shell
python tools/build_api_registry.py
python tools/build_api_registry.py --check
python tools/build_architecture_inventory.py
python tools/build_architecture_inventory.py --check
```