refactor(tooling): T-1288 — planet-gen becomes reach atlas planet

The 30-file tree moves under atlas as its third rung (D-243), ten verbs
fronting it. Each verb restates its module's options so `--help` describes
something; tooling/test_planet_router.py hands every declared option to the
module's own argparse and fails on drift, and now runs in make test-tooling.

The 2026-09-02 half of this move had converted the top-level imports and the
repo roots. Finishing it found what the half-move left:

- Lazy in-function imports, and all of sol_data/, still named siblings bare.
  They resolved only through sys.path.insert hacks, so under reach the first
  globe render in generate, batch or sol-import would have raised
  ModuleNotFoundError. Qualified; the hacks are gone.
- 247 print() calls and a stdout progress writer that fired once per 8 KB
  block. Report verbs (audit, quality) write through console.out, progress
  through console.event, and download progress is throttled to 10% steps
  so a job log is not tens of thousands of lines.
- Every error exit raises ReachError with a fix.

Two checks that could not fail:

- batch --verify-determinism printed a warning and exited 0 on a mismatch.
- import-provinces exited 0 with errors > 0.

Both now raise. The 271-body bake is only safe to re-run because the first
one holds.

sol-import --body is action="append" in the module but the router took one
value, so --body GJ0d --body GJ0e kept one. Now repeatable, and _flags repeats
list options.

test_conformance walked one level, so a nested group was reported as a verb
missing @command and its ten verbs were never checked. It recurses now;
proven by stripping @command from `planet quality` and watching it fail.

Stray PNGs from the 2026-09-03 runaway router-test run are parked in
.cache/t1288-stray-pngs/, not committed. Their reliefmaps differ from HEAD
while the heightmap regenerated byte-identical — filed as T-1291.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-23 16:08:02 +02:00
co-authored by Claude Opus 5.5
parent 201dabd19b
commit 668772075c
56 changed files with 1130 additions and 509 deletions
+2 -2
View File
@@ -41,8 +41,8 @@ the registry itself) is defined once in `tooling/generator_sources.py` (T-1067)
— imported by both the importer's stamp writer and `check-systems-db-stamp`,
and listed via `python3 tooling/generator_sources.py --list`.
The surviving planet-gen importers (`import_heightmaps`,
`import_province_boundaries`) are one-time build imports baked into the
The surviving `reach atlas planet` importers (`import-heightmaps`,
`import-provinces`) are one-time build imports baked into the
committed DB — not part of `make regen-db`, and intentionally not stamped.
---
+4 -4
View File
@@ -200,11 +200,11 @@ session once already.
| tool | does |
|---|---|
| `tooling/db/wiki_sync.py` | systems.db → star-system page sections |
| `tooling/planet-gen/scaffold_bodies.py` | creates body dirs/pages |
| `tooling/planet-gen/body_definition_parser.py` | reads body frontmatter |
| `reach atlas planet scaffold` | creates body dirs/pages |
| `tooling/domains/atlas/planet/body_definition_parser.py` | reads body frontmatter |
| `tooling/db/populate_gttr_hook.py` | GTTR prose → `gttr_hook` |
| `tooling/planet-gen/populate_terrain_reference.py` | terrain asset paths |
| `tooling/planet-gen/atlas_cohesion_audit.py` | audits atlas coherence |
| `reach atlas planet terrain-reference` | terrain asset paths |
| `reach atlas planet audit` | audits atlas coherence |
| `make regen-db` | economics TOML + corp frontmatter → systems.db |
`pql` queries the vault: `pql search`, `pql backlinks`, `pql related`,