Canvas now 16:9 with circle filling height. Radial fade gradient uses
userSpaceOnUse for true circular shape. Hop 15+ folded into final ring.
Margins trimmed to fit content.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Script now auto-converts to PNG after generating SVG. Tries magick,
convert, or rsvg-convert in order.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Reproducible concentric-ring star map: Gateway at center, hop rings
radiating outward, sectors in cardinal wedges (N/E/S/W), alternating
band colors per sector, hop 15+ folded into final ring with fade-out
zone. Sol pinned due west.
Run: python3 tooling/generate-star-map-svg.py
Output: docs/diagrams/design/star-map-concentric.svg
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
GJ 702A was a deprecated binary system entry. Replace with GJ 1221,
a real catalog star — DXP9 peculiar magnetic white dwarf at 20.03 ly.
Dead-end topology connecting to EZ Aqr (GJ 866A).
Updates: star-map.json, systems.db, gj-catalog-real.json, catalog.md,
EZ Aqr topology reference. New wiki entry and Drifter's Guide entry.
System count restored to 301.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Two north_reach brands with reach-wide flavor presence: Calloway
single malt whisky from GJ 3325, thrds cold-weather technical
clothing from Braemar (GJ 475).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Mabaso Junction, Ashfield, Carrington's Post, Braemar (thrds),
Gemini Point, Calloway Reach (whisky), Prospect Hill, Oude Kraal,
Holgersen's Landing, Ngata's Star. Hops 5-7, includes brand
flavor (thrds clothing, Calloway single malt, Ngata jade).
Reviewed by Paula — fixed 5 topology errors: Mabaso supply routing,
Gemini Point header type, Prospect Hill stub misclassification,
Holgersen's Landing false cross-reference, Ngata's Star inverted
supply dependency.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Write 14 new Guide entries completing hop 2 (Cairn) and all hop 3
systems with wiki content: Okafor Station, Tanegashima, Altair, EZ Aqr,
Johannsen's Star, Lalande, Ross 154, Wolf 359, Yongjin, Caldwell Point,
Suzhou, Puerto Rivera, Kensho.
Also: write Kensho wiki entry (Miri, reviewed by Paula), delete
deprecated GJ-702A placeholder, update core chapter with Kensho rating.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replaces manual Explore agent searches with a fast Python script
that finds unwritten wiki stubs by sector and hop range. Reads
star-map.json for topology and wiki stubs for star type/sector/wave.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ten systems at hops 7-9: Gammelstad, Thorvaldsen's Circuit,
Sonnwend, Nyrheim, Bergtor, Stilmark, Groenland, Halvøy,
Lichtbrücke, Ostmark. Compact of Westphalia heartland — includes
agricultural breadbaskets (Sonnwend, Groenland) and founding
member Ostmark. Paula review fix for Stilmark wave timing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ten systems at hops 6-8: Hwaseong, Devereux Point, Yeongwol,
Lam's Prospect, Songjiang, Hạ Long, Murakami's Lantern, Chandra
Deep, Oshima, Dài Lộ. Includes Paula review fixes for Kovács Loop
agricultural attribution, Murakami/Dài Lộ hop-distance anomaly
framing, and Oshima wave timing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Write 21 new Guide entries for all core systems (24 total with the 3
existing), plus the Guide index with preface and 6 sector chapter files
(core complete, cardinal stubs in Guide voice).
In-universe publication by Adams & Ford Publishing Syndicate. Voice
inspired by Douglas Adams — homage, not pastiche.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Ten systems at hops 3-4: Lalande, Confluência, Zenzele, Ribeiro's
Star, Kruger 60, Carvalhais, Crux Station, 96 Piscium, Morales'
End, Koeberg. Includes Paula review fixes for gate list naming,
header star types, and hop count arithmetic.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ten systems at hops 4-5: Pemberton's Loop, Nkosi's Bridge, UV Ceti,
Lindström Station, Okoro's Claim, Havnfjord, Koskinen's Reach,
Dunbar, Ashworth Junction, Holmgren's Passage. Includes Paula
review fixes for Assembly routing reference and header star type.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New corporation page for Adams & Ford Publishing (GJ 280A).
Drifter's Guide template and initial entries for Tau Ceti,
Sirius, and Gateway. Updated corporations index.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ten systems at hops 3-4: Wolf 359, New Ballarat, Johannsen's Star,
Tanegashima, Puerto Rivera, Lacaille, Okafor Station, Kampala Gate,
Singh's Landing, Uusi Vantaa. Includes Paula review fixes for
supply chain accuracy, topology cross-references, and wave_5
procedural culture framing. Updates naming guidelines in
cultural-migration-pressure.md.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
10 systems: Caldwell Point, Grünfeld, Solheim, Kapteyn's Star,
Brennan's Drift, Voss, Port Mäkelä, Dokkum, Neustadt, Kraków Junction.
Paula review fixes applied: Kapteyn's Star topology corrected (Caldwell
Point not adjacent), routing directionality fixed in Brennan's Drift,
spur_end definition corrected in Port Mäkelä, Solheim calibration note
cleaned, Dokkum food transit clarified.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Corridors are migration tendencies, not ethnic boundaries. Cross-corridor
heritage at any hop distance is normal and expected.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ross 154 (GJ 729), Hansestadt (GJ 832), Freiholt (GJ 453),
Randsholm (GJ 775), Alshain (GJ 771A), Langemark (GJ 42),
Yttermark (GJ 529).
Germanic/Scandinavian corridor from hop 3 to hop 17 — Compact
of Westphalia signatories at hops 7-9, fully autonomous beyond.
Yttermark at hop 17 is the deepest system in the Settled Reach.
Includes Paula review fixes: topology cross-references, header
type correction, Hansestadt routing clarification.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Yongjin (GJ 34B), Haodu (GJ 566A), Shenwei (GJ 3379),
Tanaka Station (GJ 555), Kaelong (GJ 172), Trung's Crossing
(GJ 3533), Mabuhay (GJ 1073).
East Asian corridor from hop 3 to hop 9 — technocratic
governance, corporate-cooperative hybrids, credential-based
advancement. Includes Paula review fixes: review count math,
wave_1 timeline correction, header type fix, Haodu rename.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Caparica (GJ 1002), Karoo (GJ 222A), Kumasi (GJ 86),
Rionegro (GJ 3250).
Iberian/Southern African corridor from hop 4 to hop 8, with
West African Early Arrival exception (Kumasi) and DSMC ore
hauler corridor through Van Maanen's Star.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fremantle (GJ 273), Athabasca (GJ 1289), Carnarvon (GJ 680),
Enugu (GJ 75), Ratnagiri (GJ 575A), Pemberton (GJ 194B),
Murchison (GJ 716), Moyale (GJ 1292), Rekohu (GJ 770).
Commonwealth corridor from hop 4 to hop 12, with Early Arrival
exceptions (Cape, Igbo, Indian, East African heritage) and a
Gate Silence Survivor at the terminus.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds Section 6.3 (Naming Variety) with guidelines for avoiding
theme-park naming — max 30-40% Earth transplants, mix in founder
names, local features, corporate designations, and evolved forms.
Also adds foundational note clarifying that culture, politics, and
economics are independent axes along corridors: systems can share
any combination with neighbours without cultural branding.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
High-level design doc for outer sector system-writing. Covers:
- Four cultural corridors (Commonwealth north, Iberian/Southern African
south, East Asian east, Germanic/Scandinavian west)
- Five industrial corridors (MVG, Gate Corp, DSMC, Prometheus, Ag Syndics)
- Political philosophy gradient by sector and hop distance
- Compact of Westphalia breakaway coalition in the west_reach
- Central authority gradient from core to frontier
- Exception density guidelines and six exception archetypes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tessera (GJ 3877) — Compact/Records, institutional memory, 5-aperture hub
Vargr (GJ 3522) — Mining/DSMC, 3-aperture junction with MVG/GateCorp stakes
Written by Miri agents, reviewed by Paula with fixes applied:
- Registry authority reframed as accumulated soft power, not constitutional grant
- Perpetual/Syndic categories collapsed correctly
- Silence topic ambiguity signal added (directed vs undirected drift)
- Kensho description hedged (stub system, no established facts)
- Five centuries → three centuries (wave_2 timeline correction)
- DSMC observer-of-observers asymmetry made explicit
- Commission/Guardians misclassification mechanism expanded
- Capital investment discrepancy attribution deepened
All 28 core systems now have full prose. Stub section removed from index.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move Parallax, Keid, Ross 128, Lu Ban from stub to fully written.
Add Tessera, Vargr, Cairn as remaining stubs needing prose.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Parallax (GJ 280A) — media world, narrative manufacturing
Lu Ban (GJ 15A) — failed corp mixed industrial bazaar
Keid (GJ 166A) — garden world, ecological reservation
Ross 128 (GJ 447) — ocean world, fishing/research/tourism
Written by Miri agents, reviewed by Paula with fixes applied:
star type headers corrected, silence topics sharpened, MVG
territorial language made precise, Institute timeline clarified.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Renamed catalog-index.md to star-systems/catalog.md where it
belongs. Updated references in wiki root and star-systems index.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Gate builders don't place two horizon stations in one star system.
Binary pairs (A/B components of same physical star) split to
independent stars. Each "move" system keeps its connections and
content, only the host star changes.
Migrations:
- GJ 559A (Rigil Kentaurus) -> GJ 768 (Altair) — rewritten for new star
- GJ 725A (Renaissance) -> GJ 251
- GJ 820A -> GJ 3877 (Tessera — compact/records world)
- GJ 570B -> GJ 1156
- GJ 783B -> GJ 299
- GJ 663B (Guniibuu B) -> GJ 1286 (Kensho — university world)
- GJ 338A -> GJ 4053
- GJ 280B -> GJ 3991
- GJ 15B -> GJ 4274
New system names and roles assigned:
- Tessera: founding compact + institutional records
- Kensho: university world, largest Institute presence
- Vargr: mining (DSMC, MVG/GC minority stakes)
- Parallax: media world (was Procyon)
- Lu Ban: failed corp / mixed industrial (was Groombridge 34)
- Altair: southern gateway (was Rigil Kentaurus)
- Keid: garden world / ecological reservation
- Ross 128: ocean world (fishing, research, tourism)
Also adds docs/design/gj-catalog-full.json (3801 GJ entries from
HYG v4.2) for future star assignment.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update wiki_sync.py and process-wiki-system-changes to remove
astronomical_id references. Add migrate-s-to-gj.py migration script.
Update generate-stubs.py and validate-ron for new schema.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add index.md to: star-systems, corporations, factions, technology,
contraband, concepts. Each lists its contents with brief descriptions.
Rewrite wiki/index.md to link to category indexes instead of inlining
all entries. Regenerate catalog-index.md from DB (remove redundant
System ID column after S-number migration).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Gate Corporation (Renaissance/GJ 725A): span gate infrastructure
monopoly, Institute licensing relationship.
Mastroianni Vehicle Group (Nova Roma/GJ 764): transit vehicles and
trains for the gate network, Perpetual-class family dynasty.
Prometheus Labs (Prometheus/GJ 702B): longevity hardware and implants,
dead-end system, created the Perpetuals.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove S-number from page headers and replace S-number references in
topology sections with GJ astronomical IDs. Headers now show
"**GJ XXX** | type | sector" instead of "**GJ XXX** | S-NNN | type | sector".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace all S-XXX system identifiers with GJ astronomical IDs in
star-map.json nodes and edges. The astronomical_id field is removed
from nodes (now redundant with system_id). 301 nodes, 335 edges.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
founder-gates.md: account for dormant aperture activation (Struve).
span-gates.md: add Institute origin and Gate Corporation licensing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sol, Gateway (Tau Ceti), Sirius, Ran — core 4 with full prose.
ACB, Struve, Cygni B, Arbour, Groombridge, Bastion — inner orbit 6.
Each page has DB-generated infobox (READ-ONLY) plus 5 authored prose
sections: supply dependency, faction notes, silence topic, narrative
hook, calibration note. Cross-system relationships established
(Bastion-ACB adjacency, Institute geographic pattern, Cygni B design
rights connecting to Gateway silence).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
D-095: clarify inter-system gates are alien-determined (humans cannot
add/remove apertures). Intra-system span gates are Institute-derived
human tech licensed to the Gate Corporation. Dormant activations
(Struve) are alien infrastructure events, not human actions.
Q-039: resolved — 301-system star map generated with alien-determined
topology (334 edges, hub/junction/loop/spur distribution).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replaces flat star_systems table with 7 normalized tables: star_systems,
system_gates (with hop_distance_from_gateway), system_history,
historical_events (1:N), system_economy, system_factions, system_culture.
Primary key is now the GJ astronomical ID (e.g., "GJ 244A") — S-number
identifiers removed entirely. The astronomical_id column is dropped as
redundant. Database moved to server/data/systems.db (ships with game).
10 core systems fully populated with structured data.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New data flow: wiki → star-map.json + SQLite.
- tooling/process-wiki-system-changes: unified script that reads
wiki, updates star-map.json topology, syncs to SQLite
- tooling/db/wiki_sync.py: wiki frontmatter parser + SQLite upsert
- generate-stubs.py: updated for full-frontmatter wiki format
- Removed extract-csv.py (replaced by SQLite queries)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
star-map.json now only carries topology fields (system_id,
astronomical_id, gate_topology, aperture/connections, hop distance)
plus edges. All per-system data lives in wiki frontmatter.
Added Sol as S-000/GJ 0 connected to Gateway. Added star_systems
table to schema for wiki sync mirror.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wiki pages are the single source of truth for all per-system data.
Each stub contains all 68 columns in YAML frontmatter, pre-filled
from star-map.json for identity/infrastructure fields. Includes
Sol (S-000/GJ 0) and Van Maanen's Star (S-057/GJ 35) with Sova
station content.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
System S-057 assigned to real star GJ 35 (Van Maanen's Star, DG white
dwarf at 13.9 ly). Renamed across all content, server code, docs,
decisions, wiki lore, and config files. 224 files updated.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>