docs(governance): D-263 — domains mirror the implant apps, and atlas is one ladder

reach's domain names should not be a fresh taxonomy. Where the game already
presents something to the player, the CLI takes that name and that shape: what
you browse in-game is what you generate and inspect from the terminal.

That splits domains in two. atlas, ledger and wiki mirror implant apps and
follow their structure. check, validate, godot, visual, jobs and dev mirror
nothing — no app exists for a lint gate, and inventing a player-facing framing
for one would be worse than having none.

The first consequence corrects a contradiction rather than a preference. D-191
already says "Atlas is the star map extended downward, not a separate app —
implant/map at different zoom levels", four rungs from Reach map to regional.
The domain map had atlas, starmap and planet as peers, which would have
presented as three unrelated things what the game presents as one descent.
Generation now nests by rung; authoring and inspection verbs stay flat on
atlas, because they act on the whole thing rather than a rung.

The second is a rename with the same reasoning: db becomes ledger, after the UI
component that will aggregate economics — markets, wealth, transactions, the
economic counterpart to what the Atlas offers for topography. db named a
storage layer nobody looks at.

One caution recorded because the words collide. D-191's MVP criterion 7 says
"Atlas is read-only (no verbs execute from map)". That governs the app. The
atlas tooling writes — it commits proposals, mutates fields, syncs the wiki —
and a later reader must not take the app's constraint as licence to delete the
authoring verbs.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-02 14:15:03 +02:00
co-authored by Claude Opus 5
parent a384ec0c7c
commit 6daaa2235f
4 changed files with 37 additions and 4 deletions
+27 -4
View File
@@ -57,16 +57,39 @@ two doors, because the inconsistency only shows up at a failure.
A **bash** source turns a port from mechanical into a rewrite that needs its own
parity evidence. Each per-domain ticket must say which of its sources are bash.
## Revised 2026-09-02: domains mirror the implant apps
The first version of this map invented a taxonomy. It should have read one off
the game, and D-263 now says so: **where the game presents something to the
player, the CLI uses that name and that shape.**
Two corrections follow, and the first was a contradiction of an existing record
rather than a matter of taste:
- **`atlas` absorbs `starmap` and `planet`.** D-191: *"Atlas is the star map
extended downward, not a separate app — `implant/map` at different zoom
levels"*, four rungs Reach map → system → planetary → regional. This map had
them as three peer domains, presenting as unrelated what the game presents as
one descent. Generation now **nests by rung**; authoring and inspection verbs
stay flat on `atlas`, because they act on the whole thing.
- **`db` becomes `ledger`.** Named for the UI component that aggregates
economics — markets, wealth, transactions — the economic counterpart to what
the Atlas offers for topography. `db` named a storage layer nobody looks at.
Domains that mirror nothing — `check`, `validate`, `godot`, `visual`, `jobs`,
`dev` — are unaffected. No app exists for a lint gate and none should be
invented.
## Domains
| domain | what it is | sources |
|---|---|---|
| `check` | repo consistency gates the push hook runs | `check-client-version` ✅, `check-canvas-version`, `check-systems-db-stamp`, `check-fact-ids`, `check-dataflow-graph.py` |
| `validate` | content and schema validation | `validate-content`, `validate-checklist`, `validate-ron` |
| `atlas` | the Atlas map data surface | `atlas`, `atlas-check`, `atlas-names`, `atlas-commit-and-sync`, `atlas-systems-done`, `atlas-update-field`, `atlas-verify`, `atlas-flatness` |
| `starmap` | the star map and its renders | `generate-star-map.py`, `generate-star-map-data.py`, `generate-star-map-svg.py`, `sculpt-star-map.py`, `tune-star-map-topology.py`, `star-map-seed.json` |
| `planet` | planetary generation and its guards | `planet-gen/` (30 files) |
| `db` | the economics DB pipeline | `economy-db/` (17 files), `schema_version.py` |
| `atlas` | **the whole spatial ladder** (D-191). Flat verbs for authoring and inspection; nested groups per rung for generation | flat: `atlas` (Rust binary), `atlas-check`, `atlas-names`, `atlas-commit-and-sync`, `atlas-systems-done`, `atlas-update-field`, `atlas-verify`, `atlas-flatness` · `atlas map`: the 5 star-map files · `atlas planet`: `planet-gen/` (30) |
| ~~`starmap`~~ | **folded into `atlas map`** — the top rung of the same ladder | — |
| ~~`planet`~~ | **folded into `atlas planet`** — the third rung of the same ladder | — |
| `ledger` | the economics pipeline, named for the UI component that will aggregate it | `economy-db/` (17 files), `schema_version.py` |
| `wiki` | wiki sync and content maintenance | `wiki/`, `db/wiki_sync.py`, `db/populate_gttr_hook.py`, `db/backfill_cultural_corridor.py`, `assign-astro-ids.py`, `fill-missing-globes.py`, `migrate-s-to-gj.py`, `patch-core-sector.py`, `process-wiki-system-changes` |
| `assets` | connectors to the tower-of-joy generators | `db/audio_*.py`, `db/audio-*`, `db/image_connector.py`, `db/trellis_connector.py`, `db/common.py`, `trellis-batch.sh`, `synth_ui_sounds.py` |
| `character` | bodies, garments, GLB handling | `garment-fit/make_logo.py`, `garment-qa/analyze_captures.py`, `convert_outfit.py`, `glb_strip_utility_nodes.py`, `inspect_glb.py`, `check_hair_symmetry.py`, `check_icosphere.py`, `render_quaternius_test.py`, `setup_clothing_metadata.py`**note this is far smaller than `garment-fit/`'s file count suggests; 22 of its 23 files are Blender payloads and belong to the carve-out** |