Adds two reusable scripts for the core-world hand-refine pass: - atlas_cohesion_audit.py: SQL analysis against atlas_* tables. Reports empty names, lazy/generic outputs, cardinal direction density, earth-echo concentration, same-body cross-feature stem duplicates, and cross-body stem collisions within a system. Supports --system, --body, --db flags. Baseline run ranked Ran and Tau Ceti as highest-priority targets. - apply_name_fixes.py: Applies curated name replacement tables to markers.json files (name fields only; geometry preserved). Supports --dry-run. After running, caller syncs DB via generate_atlas.py --body. - refine_log_849.md: Hand-refine log documenting each body touched, the rationale per change, cross-reference arcs established, and systems flagged as blocked or needing follow-up (Sol, Barnard's Star, Proxima). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
187 lines
7.9 KiB
Markdown
187 lines
7.9 KiB
Markdown
# Hand-Refine Log — Ticket #849
|
|
# Core-world atlas cohesion pass (Sprint 36)
|
|
|
|
Analyst: paula
|
|
Date: 2026-04-19
|
|
|
|
---
|
|
|
|
## Analysis infrastructure
|
|
|
|
Created `tooling/planet-gen/atlas_cohesion_audit.py` — reusable SQL audit script for the
|
|
atlas_* tables. Checks: empty/single-char names, generic/lazy outputs (% Fork, % Run, etc.),
|
|
cardinal direction density, earth-echo concentration, same-body cross-feature stem duplicates,
|
|
cross-body stem duplicates within a system. Accepts `--system`, `--body`, `--db` flags.
|
|
|
|
Created `tooling/planet-gen/apply_name_fixes.py` — applies curated name replacement tables to
|
|
markers.json files (name fields only; geometry preserved). `--dry-run` supported. After running,
|
|
caller must sync DB via `generate_atlas.py --body <id>`.
|
|
|
|
---
|
|
|
|
## Bodies touched
|
|
|
|
### GJ 144 — Ran system
|
|
|
|
#### GJ144d — Kallast (2B pop, urban_concentrated, ocean world)
|
|
|
|
**Priority reason:** Highest-population body in the Ran system; repeated player destination.
|
|
Prior naming pass had done good Nordic groundwork (Rán's Landing, Seterfjellet, Rán's Run/Ranfall
|
|
Beck cross-reference arc) but left residual generic oceans and one cross-system stem collision.
|
|
|
|
**Changes:**
|
|
|
|
| Feature type | Old name | New name | Reason |
|
|
|---|---|---|---|
|
|
| river | Aldren Pass | Randalfoss | "Aldren" stem collides with Lendel (GJ380c) capital + river "The Aldren" — cross-system noise |
|
|
| ocean | Boulder Bluff | Keldmere | Generic; "Boulder Bluff" is a geographic descriptor for a landform, not a sea |
|
|
| ocean | High Mesa | Seterfjord | "High Mesa" is nonsensical for an ocean; renamed to cross-ref mountain "Seterfjellet" |
|
|
| poi | Summit Point | Kallast Gate Terminal | Generic; terminal should reference the capital city name |
|
|
|
|
**Cross-reference arcs post-fix:**
|
|
- Rán-: Rán's Landing (city), Rán's Run (river), Randalfoss (river), Ranfall Beck (river), Rán Sea (ocean)
|
|
- Seter-: Seterfjellet (mountain), Seterfjord (ocean)
|
|
- Keld-: Keldmere (ocean), Timber Keld (river)
|
|
|
|
**DB sync:** `generate_atlas.py --body GJ144d` ✓
|
|
|
|
---
|
|
|
|
#### GJ144e — Vethis (1.2B pop, agricultural, dispersed_rural)
|
|
|
|
**Priority reason:** Second-most-populated Ran body; the rural agricultural contrast to Kallast.
|
|
Prior naming pass was partial — extensive cardinals (West Bend), earth-echoes (Blue Ridge),
|
|
overused stems (Ash-: 3 features; Iron-: 2 features), and many pure generics (Golden Valley,
|
|
Broad Fork, Stone Point).
|
|
|
|
**Changes:**
|
|
|
|
| Feature type | Old name | New name | Reason |
|
|
|---|---|---|---|
|
|
| river | West Bend | Greywash Fork | Cardinal → cross-refs Greywash river (shared Grey- stem arc) |
|
|
| river | Blue Ridge | Ashvale Beck | Earth-echo → cross-refs Ashvale city (shared Ash- stem arc) |
|
|
| river | Stone Point | Thornrun | Generic → cross-refs Thorncrests mountain (shared Thorn- arc) |
|
|
| river | Ironside Run | Kelside Run | Iron- overuse → cross-refs Kelbridge city (shared Kel- arc) |
|
|
| ocean | Ashbluff Sea | Veth Mere | Ash- overuse (3 Ash- names) → cross-refs Veth Delta river (shared Veth- arc) |
|
|
| mountain | Golden Valley | Greymoor Range | Generic → extends Grey- arc |
|
|
| mountain | Broad Fork | Keld Spur | Generic → Nordic compound (keld = spring/source) |
|
|
| mountain | Ashstone Ridge | Greystone Ridge | Ash- overuse → extends Grey- arc |
|
|
| poi | Ridge Crossing | Vethis Gate Terminal | Generic → terminal named for the planet |
|
|
|
|
**Cross-reference arcs post-fix:**
|
|
- Grey-: Greywash (river), Greywash Fork (river), Greymoor Range (mountain), Greystone Ridge (mountain)
|
|
- Thorn-: Thorncrests (mountain), Thornrun (river)
|
|
- Kel-: Kelbridge (city), Kelside Run (river), Keld Spur (mountain)
|
|
- Veth-: Vethis (planet), Veth Delta (river), Veth Mere (ocean)
|
|
- Ash-: Ashvale (city), Ashvale Beck (river) ← 2 names, was 3 before fix
|
|
|
|
**DB sync:** `generate_atlas.py --body GJ144e` ✓
|
|
|
|
---
|
|
|
|
### GJ 71 — Tau Ceti system
|
|
|
|
#### GJ71c — Threshold (600M pop, agricultural, urban_concentrated)
|
|
|
|
**Priority reason:** Tau Ceti's primary inhabited body; high player footfall.
|
|
All six rivers were named after the original Commission survey team — a strong narrative hook
|
|
("Latin personal names = founding scientists"). "Aethelred" broke the pattern (Anglo-Saxon,
|
|
wrong naming tradition).
|
|
|
|
**Changes:**
|
|
|
|
| Feature type | Old name | New name | Reason |
|
|
|---|---|---|---|
|
|
| river | Aethelred | Gaius | Anglo-Saxon name breaks all-Latin river pattern (Octavius, Septimus, Quintus, Valeria, Marcus, Gaius) |
|
|
|
|
**DB sync:** `generate_atlas.py --body GJ71c` ✓
|
|
|
|
---
|
|
|
|
#### GJ71d — Arden (500M pop, agricultural, dispersed_rural)
|
|
|
|
**Priority reason:** Tau Ceti's sister body; shares corridor with GJ71c, so cross-body stem
|
|
duplicates matter most here. Two collisions found: exact POI name match + ocean/city stem match.
|
|
|
|
**Changes:**
|
|
|
|
| Feature type | Old name | New name | Reason |
|
|
|---|---|---|---|
|
|
| city | Concordia Hall | The Praxis | "Concordia" = GJ71c ocean name; cross-body stem collision within same system/corridor |
|
|
| river | Basilica Nova | Via Principia | Exact name match with GJ71c POI "Basilica Nova"; direct duplicate across bodies |
|
|
|
|
**DB sync:** `generate_atlas.py --body GJ71d` ✓
|
|
|
|
---
|
|
|
|
#### GJ71d-1 — Verantis (20M pop, transit moon)
|
|
|
|
**No changes.** Discovered that Verantis was already updated in a prior sprint pass —
|
|
mountains renamed to unique Latin institutional names (The Lateranum, The Curia Magna, The Exedra,
|
|
The Aedes Sacra, The Macellum, The Oracle, The Comitium, Moeribee), capital updated to "Praetorium".
|
|
DB was stale relative to markers.json; synced only.
|
|
|
|
**DB sync:** `generate_atlas.py --body GJ71d-1` ✓
|
|
|
|
---
|
|
|
|
## Systems NOT yet touched
|
|
|
|
### Sol (GJ 0) — BLOCKED
|
|
|
|
Body directories do not exist. `wiki/star-systems/GJ-0/bodies/` has no subdirectories for Earth
|
|
(GJ0d), Luna (GJ0d-1), Mars (GJ0e), or other inhabited bodies. `sol_import.py` must be run first
|
|
to create body directories and initial markers.json from the real-world geographic data in
|
|
`tooling/planet-gen/sol_markers/`. Flagged to team-lead.
|
|
|
|
### Barnard's Star (GJ 699) — FLAGGED, not yet addressed
|
|
|
|
Audit revealed significant cross-body naming issues on Verada (1.9B pop), a hop-0 system:
|
|
|
|
- "Central District" appears as BOTH a GJ699b ocean and GJ699b-1 mountain (exact duplicate)
|
|
- "Capitol Heights" appears as GJ699b city and GJ699b-1 mountain
|
|
- "Liberty" stem hits 3 separate bodies
|
|
- "Meridian" stem hits 3 separate bodies
|
|
- "Zenith" stem hits 3 separate bodies
|
|
- Predominantly civic/Earth-style naming (Liberty Plaza, Meridian City, Zenith Station) without
|
|
system-internal cross-referencing
|
|
|
|
Not addressed yet — flagged to team-lead to decide if within #849 scope or a separate ticket.
|
|
|
|
### Proxima (GJ 551) — FLAGGED, not yet addressed
|
|
|
|
Cross-body stem duplicates found: Basilica, Pantheon, Senate appear on multiple Ancora sibling
|
|
bodies. Not addressed — flagged to team-lead.
|
|
|
|
---
|
|
|
|
## Audit metrics (before/after comparison)
|
|
|
|
Run `python3 tooling/planet-gen/atlas_cohesion_audit.py --system "GJ 144"` to verify Ran
|
|
improvement. Run `--system "GJ 71"` for Tau Ceti. Baseline run captured issues above; post-fix
|
|
re-run showed all named changes reflected in DB correctly.
|
|
|
|
Spot-check verification queries:
|
|
```bash
|
|
SR_DB_PATH="$(pwd)/server/data/systems.db" tooling/db/sqlite-query \
|
|
"SELECT local_id, name FROM atlas_rivers WHERE body_id = 'GJ144d'"
|
|
# Should show "Randalfoss" not "Aldren Pass"
|
|
|
|
SR_DB_PATH="$(pwd)/server/data/systems.db" tooling/db/sqlite-query \
|
|
"SELECT local_id, name FROM atlas_cities WHERE body_id = 'GJ71d'"
|
|
# Should show "The Praxis" not "Concordia Hall"
|
|
```
|
|
|
|
---
|
|
|
|
## Files changed
|
|
|
|
- `tooling/planet-gen/atlas_cohesion_audit.py` (new)
|
|
- `tooling/planet-gen/apply_name_fixes.py` (new)
|
|
- `tooling/planet-gen/refine_log_849.md` (this file)
|
|
- `wiki/star-systems/GJ-144/bodies/GJ144d/markers.json` (4 name edits)
|
|
- `wiki/star-systems/GJ-144/bodies/GJ144e/markers.json` (9 name edits)
|
|
- `wiki/star-systems/GJ-71/bodies/GJ71c/markers.json` (1 name edit)
|
|
- `wiki/star-systems/GJ-71/bodies/GJ71d/markers.json` (2 name edits)
|
|
- `server/data/systems.db` (synced: GJ144d, GJ144e, GJ71c, GJ71d, GJ71d-1)
|