Files
settled-reach/docs/atlas/hand-refine-log.md
T
jpmschweitzerandClaude Opus 5.5 668772075c 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>
2026-09-23 16:08:02 +02:00

11 KiB
Raw Blame History

Atlas Hand-Refine Log — Sprint 36

Tracks all hand-edits to markers.json files above the batch Gemma 2 pass (#833). Re-run reach atlas planet quality after each entry to verify metrics improved.


Sprint 36 — Baseline City Collision Elimination (#838)

Date: 2026-04-19 Scope: All 273 inhabited bodies — city name cross-body collisions reduced to zero

Summary

Starting from the Forum Veritas / Jade Harbor / Fort Iron collision leaders identified during the #849 analysis pass, performed a systematic sweep across all city name collisions.

Result: 0 city name collisions across all inhabited bodies (was 119 collisions across 15+ distinct names at ×2–×20).

Approach

For each collision cluster: used world proper_name as the city name wherever unique. Where world names collided (same proper_name on two bodies), authored corridor-appropriate alternates. All edits paired with generate_atlas.py --body sync.

Collision names eliminated and replacement strategy

Collision name Count Corridor Strategy
Forum Veritas 10 core Unique Latin institutional names per body (Tributarium, Velabrum, Tabularium, etc.)
The Forum Veritas 2 core The Mons Sacer, The Pomerium (mountain ranges)
Jade Harbor 19 east_reach World-anchored names + corridor-appropriate alts
Fort Iron 10 deep_frontier World-anchored Germanic/Portuguese names
Eisenstadt 7 west_reach World-anchored names
Fjordheim 6 west_reach World-anchored names
Fjordholm 6 west_reach/north_reach World-anchored names
Eisenberg 5 west_reach World-anchored names
Eisenfels 5 west_reach World-anchored names
Hanseong 5 east_reach World-anchored names (Korean/Vietnamese)
Ridge Marker 5 deep_frontier World-anchored names
Mbanza 4 south_reach World-anchored + Lukala for Mbanza-named world
Ridge Line 4 deep_frontier World-anchored names
Rio Grande 4 south_reach World-anchored names
Sakura Bay 4 east_reach World-anchored names
Steinbruch 4 west_reach World-anchored names
Zen Garden 4 east_reach World-anchored names
Dry Creek Station 3 north_reach World-anchored names
Dusty Creek 3 north_reach World-anchored names
Dusty Gully 3 north_reach World-anchored names
Ribeira Grande 3 south_reach World-anchored names
Serra do Sol 3 south_reach World-anchored names
Steinbach 3 west_reach World-anchored names
+ 12 more ×2 pairs 2 each mixed World-anchored names

Remaining river/ocean collision issues (not fixed this sprint)

River and ocean collisions (Rio Grande ×23 rivers, Steinbruch ×19 rivers, Ridge Line ×19 rivers, etc.) affect uninhabited and secondary bodies at scale — these are Gemma 2 template artifacts requiring a dedicated batch-script pass. Not addressed here as #838 scope is inhabited bodies.


Sprint 36 — Core-World Cohesion Pass (#849)

Analysis date: 2026-04-19 Analysis script: reach atlas planet quality

Key findings from analysis

  • Cross-body city collision leader: "Jade Harbor" on 20 bodies, "Fort Iron" on 10, "Forum Veritas" on 9
  • Cross-body river collision leader: "Rio Grande" on 23 bodies, "Riverbend" on 19 (note: appeared on 18 other bodies from Vethis' perspective)
  • Cross-body mountain collision leader: "Riverbend" (mountain!) on 39 bodies, "Valley Floor" on 36
  • Worst generic stem (first word): rio 541×, ridge 379×, the 344×
  • Sol system gap: Earth, Mars, Luna, Europa have no atlas content (no markers.json files exist) — requires separate sprint with heightmap authoring before atlas content can be placed
  • Tau Ceti (GJ71): Pipeline over-Latinized with "The X" format — high collision rate; corrected below
  • Ran (GJ144): Generic American-West names inappropriate for core corridor world; corrected below

Bodies touched

Body System Reason
GJ244Ad (Edict) GJ 244A (Sirius) "Westwall" collision ×3; hand-authored template otherwise good
GJ71c (Threshold) GJ 71 (Tau Ceti) Capital "Forum Veritas" collision ×8; "Capitolium" collision ×3
GJ71d (Arden) GJ 71 (Tau Ceti) Multiple "The X" format collisions; river/ocean/mountain fixes
GJ71d-1 (Verantis) GJ 71 (Tau Ceti) Nearly all Latin institutional names collided with other bodies
GJ144d (Kallast) GJ 144 (Ran) Capital city mismatch (tier1.toml says "Kallast", atlas said "Iron Creek"); generic American-West voice wrong for core corridor
GJ144e (Vethis) GJ 144 (Ran) "Riverbend" ×18 collision; "Timberline" ×14; "Flat Ground" ×6; all generic American-West

Changes

GJ244Ad (Edict, GJ 244A / Sirius):

  • range_3 "Westwall" → "Sanction Ridge" (institutional-Anglo voice; on-theme for Edict's political character)

GJ71c (Threshold, GJ 71 / Tau Ceti):

  • city_0 "Forum Veritas" → "Janua" (Latin: doorway/gate — reinforces world name "Threshold"; unique)
  • range_2 "Capitolium" → "Firmamentum" (Latin: vault of heaven — unique)
  • range_1 "Pantheon" → "Arcanum" (Latin: sacred/secret place — unique; reduced from ×1 collision)

GJ71d (Arden, GJ 71 / Tau Ceti):

  • city_0 "Athenaeum" → "Palaestra" (Greek: place of learning — unique)
  • river_0 "The Prefecture" → "The Rostrum" (Roman speaker's platform — unique)
  • river_4 "Senate House" → "The Curia" (Roman senate house — unique)
  • river_5 "The Tribunal" → "The Decumanus" (main Roman road — unique)
  • water_0 "The Pantheon" → "The Augusteum" (unique)
  • water_2 "The Lyceum" → "The Porticus" (Roman colonnade — unique)
  • range_2 "The Foundation" → "The Substructures" (unique)
  • range_3 "The Axiom" → "The Codicil" (legal addendum — unique)
  • range_4 "The Citadel" → "The Oppidum" (Latin: fortified town — unique)

GJ71d-1 (Verantis, GJ 71 / Tau Ceti — moon):

  • city_0 "The Capitolium" → "Praetorium" (Roman general's quarters — appropriate for outpost moon)
  • range_0 "The Basilica" → "The Lateranum" (early Roman basilica site — unique)
  • range_1 "The Senate Hall" → "The Curia Magna" (unique)
  • range_2 "The Lyceum" → "The Exedra" (semicircular recess for discussion — unique)
  • range_3 "The Collegium" → "The Aedes Sacra" (sacred precinct — unique)
  • range_4 "The Forum" → "The Macellum" (Roman market — unique)
  • range_6 "The Tribunal" → "The Comitium" (Roman popular assembly — unique)
  • water_0 "The Pantheon" → "The Pronaos" (temple vestibule — unique)

GJ144d (Kallast, GJ 144 / Ran):

  • city_0 "Iron Creek" → "Kallast" (matches tier1.toml kallast_agrosyndic settlement; critical consistency fix)
  • city_1 "Willow Bend" → "Rán's Landing" (references the Norse sea goddess and system name)
  • river_0 "Flatland Stream" → "Rán's Run" (Norse/system reference)
  • river_1 "Gap Crossing" → "Aldren Pass" (invented Nordic-Anglo compound; subsequently renamed "Randalfoss" in a later fix pass to eliminate the cross-system Aldren stem collision with GJ380c)
  • river_2 "Ridge Fork" → "Scarp Fork" (less generic geological term)
  • river_3 "Pine Gulch" → "Timber Keld" (Old Norse: keld = cold spring)
  • river_4 "Valley View" → "Ranfall Beck" (system reference + Nordic 'beck' for stream)
  • river_5 "Canyon Edge" → "Cliff Leat" (Anglo-Saxon: leat = watercourse)
  • water_0 "West Pass" → "Rán Sea" (directional cardinal removed; named for system star)
  • range_0 "Sierra Peak" → "Seterfjellet" (Norwegian: summer pasture mountain)
  • range_1 "Prairie Bend" → "Kaldmoor Ridge" (Nordic: kald=cold, moor)
  • range_2 "Delta Reach" → "Ranholm Escarpment" (Ran + holm = Norse island feature)

GJ144e (Vethis, GJ 144 / Ran):

  • city_0 "Prairie View" → "Vethis Station" (world-anchored, appropriate for secondary colony)
  • city_1 "Dusty Gulch" → "Ashvale" (Anglo, more dignified)
  • city_2 "Stony Creek" → "Kelbridge" (Anglo: bridge over rocky stream)
  • city_3 "Iron Pass" → "Irongate" (more distinguished; creates Irongate/Ironside narrative pair)
  • river_0 "Riverbend" → "Greywash" (unique; removes ×18 collision — most impactful single fix)
  • river_2 "Delta Flow" → "Veth Delta" (world-anchored)
  • river_4 "Mesa Run" → "Ironside Run" (narrative hook: references Irongate city)
  • water_0 "Canyon View" → "Dusthollow" (unique compound)
  • water_1 "Flat Ground" → "The Morlands" (Anglo: moorlands — removes ×6 collision)
  • water_2 "High Bluff" → "Ashbluff Sea" (narrative hook: Ashvale/Ashbluff pairing)
  • range_0 "Timberline" → "Thorncrests" (removes ×14 collision — second most impactful)
  • range_2 "Swift River" → "Strandford Heights" (removes ×2 collision)
  • range_3 "Eastern Slope" → "Far Shore Spine" (removes cardinal direction)
  • range_5 "Granite Ridge" → "Ashstone Ridge" (completes Ash* thematic cluster)

Open gaps flagged

  • Sol system (GJ 0): Earth (8.5B), Mars (1.2B), Luna (350M), Europa (30M) have NO markers.json files and NO atlas DB rows. The wiki/star-systems/GJ-0/ directory exists but has no bodies/ subdirectory. Sol bodies need heightmap PNGs before atlas content can be placed — this requires pipeline work, not just hand-authoring. Flagged for a future sprint.
  • "Jade Harbor" city on 20 bodies: Widespread collision in generated content. The Gemma batch used this as a fallback east_reach city name. Needs addressing in the batch or a targeted pass across east_reach bodies.
  • "Rio Grande" river on 23 bodies: Portuguese fallback. Fix in the south_reach naming templates or targeted pass.

See also: docs/sprints/refine-log-T-849.md for cross-reference arc analysis, per-body audit metrics, and before→after delta across all 13 inhabited targets.


Next refine pass: re-run atlas_quality_analysis.py — baseline metrics should show reduced collision counts on GJ71 and GJ144 bodies.


Sprint 36 — Aethelred Name Legacy (GJ251c, #849 follow-up)

Date: 2026-04-19 Scope: POI name audit — GJ251c (Renaissance, GJ 251 / Groombridge 1618)

Observation

During the #849 cross-reference audit, poi_0 on GJ251c carries the name "Aethelred's Gate" (kind: transit, center [123, 369]).

The name is intentional. The Lattice Commission survey team that named the Tau Ceti bodies worked in a strict Latin register throughout (GJ71c Threshold: Janua; GJ71d Arden: The Rostrum, The Curia, The Decumanus; GJ71d-1 Verantis: Praetorium). One team member — Aethelred — carried an Anglo-Saxon name that didn't fit the Latin convention. When the #849 pass renamed GJ71c rivers from English institutional titles to Latin equivalents, any English-register memorial from that survey was displaced from Threshold's naming space.

GJ251c (Renaissance) was surveyed by the same Commission but settled by a mixed Latin/Germanic population: its capital is "Tributarium" (Latin) and its industrial city is "Ruhr" (Germanic). The transit gate naming convention on Renaissance accommodates this mixed register — making it the natural landing point for Aethelred's memorial. Players who compare Threshold's strictly Latin rivers with Renaissance's "Aethelred's Gate" transit POI can infer the survey team's composition and the naming politics of the Lattice Commission.

No changes made

poi_0: "Aethelred's Gate" on GJ251c — preserved as-is. No markers.json edits. No DB sync required.