fix(atlas): address PR #100 review — star_type audit, data quality fixes

- Fix star_type/spectral_class mismatches across 36 proposals
- Differentiate GJ1002 copy-paste planets (c-g had identical params)
- Fix GJ880 malformed spectral_class (M2: → M2V) and Leirvik station pop
- Fix GJ3325 malformed spectral_class (K: → K)
- Correct white dwarf star_type (GJ1221, GJ3991 → D)
- Correct "unusual" star_type (GJ3877, GJ661A → K)
- Delete tooling/atlas-helpers.sh (superseded by clean scripts on main)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-26 08:16:18 +01:00
co-authored by Claude Opus 4.6
parent 841b81b443
commit 4b68cb455e
37 changed files with 5153 additions and 510 deletions
+271 -16
View File
@@ -1,25 +1,280 @@
{
"system_id": "GJ 402",
"proper_name": "Prospect Hill",
"star_type": "F",
"star_type": "M",
"spectral_class": "M4:",
"wiki_data": {"habitable_count": 1, "inhabited_count": 1, "has_gas_giant": true, "has_asteroid_belt": true, "has_horizon_station": true, "raw_bodies_line": null},
"wiki_data": {
"habitable_count": 1,
"inhabited_count": 1,
"has_gas_giant": true,
"has_asteroid_belt": true,
"has_horizon_station": true,
"raw_bodies_line": null
},
"bodies": [
{"body_id": "GJ402b", "proper_name": null, "body_type": "planet", "orbit_index": 1, "parent_body_id": null, "inhabited": false, "population": 0, "mass_class": "terrestrial", "surface_gravity": 0.28, "orbital_period_days": 3, "rotation_period_hours": 72, "atmosphere": "none", "biome_summary": "barren", "hydrosphere": "none", "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": "inner scorched, tidally locked"},
{"body_id": "GJ402c", "proper_name": "Arkwright", "body_type": "planet", "orbit_index": 2, "parent_body_id": null, "inhabited": true, "population": 80000000, "mass_class": "terrestrial", "surface_gravity": 0.82, "orbital_period_days": 10, "rotation_period_hours": 240, "atmosphere": "breathable", "biome_summary": "arid", "hydrosphere": "minimal", "economic_role": "extraction", "settlement_pattern": "urban", "industrial_corridor": null, "notes": "primary inhabited world, tidally locked, dim M4 red light, supplemental lighting agriculture, mineral extraction industry, Wave 3 settlement with 300 years of gradual cultural formation, Community Assembly, Prospect Hill Extraction Consortium"},
{"body_id": "GJ402c-1", "proper_name": null, "body_type": "moon", "orbit_index": 1, "parent_body_id": "GJ402c", "inhabited": false, "population": 0, "mass_class": "dwarf", "surface_gravity": 0.04, "orbital_period_days": 4, "rotation_period_hours": 96, "atmosphere": "none", "biome_summary": "barren", "hydrosphere": "none", "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": "small moon"},
{"body_id": "GJ402d", "proper_name": null, "body_type": "planet", "orbit_index": 3, "parent_body_id": null, "inhabited": false, "population": 0, "mass_class": "terrestrial", "surface_gravity": 0.35, "orbital_period_days": 28, "rotation_period_hours": 672, "atmosphere": "thin", "biome_summary": "frozen", "hydrosphere": "ice", "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": "cold rocky, tidally locked"},
{"body_id": "GJ402e", "proper_name": null, "body_type": "planet", "orbit_index": 4, "parent_body_id": null, "inhabited": false, "population": 0, "mass_class": "terrestrial", "surface_gravity": 0.28, "orbital_period_days": 80, "rotation_period_hours": 1920, "atmosphere": "none", "biome_summary": "frozen", "hydrosphere": "ice", "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": "frozen rocky, tidally locked"},
{"body_id": "GJ402f", "proper_name": null, "body_type": "gas_giant", "orbit_index": 5, "parent_body_id": null, "inhabited": false, "population": 0, "mass_class": "gas_giant", "surface_gravity": null, "orbital_period_days": 400, "rotation_period_hours": 10.0, "atmosphere": "dense", "biome_summary": null, "hydrosphere": null, "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": "moderate gas giant"},
{"body_id": "GJ402f-1", "proper_name": null, "body_type": "moon", "orbit_index": 1, "parent_body_id": "GJ402f", "inhabited": false, "population": 0, "mass_class": "dwarf", "surface_gravity": 0.05, "orbital_period_days": 5, "rotation_period_hours": 120, "atmosphere": "none", "biome_summary": "barren", "hydrosphere": "none", "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": "inner gas giant moon"},
{"body_id": "GJ402f-2", "proper_name": null, "body_type": "moon", "orbit_index": 2, "parent_body_id": "GJ402f", "inhabited": false, "population": 0, "mass_class": "dwarf", "surface_gravity": 0.03, "orbital_period_days": 12, "rotation_period_hours": 288, "atmosphere": "none", "biome_summary": "frozen", "hydrosphere": "ice", "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": "icy outer gas giant moon"},
{"body_id": "GJ402g", "proper_name": null, "body_type": "planet", "orbit_index": 6, "parent_body_id": null, "inhabited": false, "population": 0, "mass_class": "terrestrial", "surface_gravity": 0.22, "orbital_period_days": 1500, "rotation_period_hours": 18.0, "atmosphere": "none", "biome_summary": "frozen", "hydrosphere": "ice", "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": "outer ice world"},
{"body_id": "GJ402h", "proper_name": null, "body_type": "planet", "orbit_index": 7, "parent_body_id": null, "inhabited": false, "population": 0, "mass_class": "dwarf", "surface_gravity": 0.10, "orbital_period_days": 3800, "rotation_period_hours": 22.0, "atmosphere": "none", "biome_summary": "frozen", "hydrosphere": "ice", "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": "distant ice dwarf"},
{"body_id": "GJ402-belt", "proper_name": null, "body_type": "asteroid_belt", "orbit_index": 8, "parent_body_id": null, "inhabited": false, "population": 0, "mass_class": null, "surface_gravity": null, "orbital_period_days": null, "rotation_period_hours": null, "atmosphere": null, "biome_summary": null, "hydrosphere": null, "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": "sparse belt"},
{"body_id": "GJ402-oort", "proper_name": null, "body_type": "oort_cloud", "orbit_index": 9, "parent_body_id": null, "inhabited": false, "population": 0, "mass_class": null, "surface_gravity": null, "orbital_period_days": null, "rotation_period_hours": null, "atmosphere": null, "biome_summary": null, "hydrosphere": null, "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": "oort cloud"}
{
"body_id": "GJ402b",
"proper_name": null,
"body_type": "planet",
"orbit_index": 1,
"parent_body_id": null,
"inhabited": false,
"population": 0,
"mass_class": "terrestrial",
"surface_gravity": 0.28,
"orbital_period_days": 3,
"rotation_period_hours": 72,
"atmosphere": "none",
"biome_summary": "barren",
"hydrosphere": "none",
"economic_role": null,
"settlement_pattern": null,
"industrial_corridor": null,
"notes": "inner scorched, tidally locked"
},
{
"body_id": "GJ402c",
"proper_name": "Arkwright",
"body_type": "planet",
"orbit_index": 2,
"parent_body_id": null,
"inhabited": true,
"population": 80000000,
"mass_class": "terrestrial",
"surface_gravity": 0.82,
"orbital_period_days": 10,
"rotation_period_hours": 240,
"atmosphere": "breathable",
"biome_summary": "arid",
"hydrosphere": "minimal",
"economic_role": "extraction",
"settlement_pattern": "urban",
"industrial_corridor": null,
"notes": "primary inhabited world, tidally locked, dim M4 red light, supplemental lighting agriculture, mineral extraction industry, Wave 3 settlement with 300 years of gradual cultural formation, Community Assembly, Prospect Hill Extraction Consortium"
},
{
"body_id": "GJ402c-1",
"proper_name": null,
"body_type": "moon",
"orbit_index": 1,
"parent_body_id": "GJ402c",
"inhabited": false,
"population": 0,
"mass_class": "dwarf",
"surface_gravity": 0.04,
"orbital_period_days": 4,
"rotation_period_hours": 96,
"atmosphere": "none",
"biome_summary": "barren",
"hydrosphere": "none",
"economic_role": null,
"settlement_pattern": null,
"industrial_corridor": null,
"notes": "small moon"
},
{
"body_id": "GJ402d",
"proper_name": null,
"body_type": "planet",
"orbit_index": 3,
"parent_body_id": null,
"inhabited": false,
"population": 0,
"mass_class": "terrestrial",
"surface_gravity": 0.35,
"orbital_period_days": 28,
"rotation_period_hours": 672,
"atmosphere": "thin",
"biome_summary": "frozen",
"hydrosphere": "ice",
"economic_role": null,
"settlement_pattern": null,
"industrial_corridor": null,
"notes": "cold rocky, tidally locked"
},
{
"body_id": "GJ402e",
"proper_name": null,
"body_type": "planet",
"orbit_index": 4,
"parent_body_id": null,
"inhabited": false,
"population": 0,
"mass_class": "terrestrial",
"surface_gravity": 0.28,
"orbital_period_days": 80,
"rotation_period_hours": 1920,
"atmosphere": "none",
"biome_summary": "frozen",
"hydrosphere": "ice",
"economic_role": null,
"settlement_pattern": null,
"industrial_corridor": null,
"notes": "frozen rocky, tidally locked"
},
{
"body_id": "GJ402f",
"proper_name": null,
"body_type": "gas_giant",
"orbit_index": 5,
"parent_body_id": null,
"inhabited": false,
"population": 0,
"mass_class": "gas_giant",
"surface_gravity": null,
"orbital_period_days": 400,
"rotation_period_hours": 10.0,
"atmosphere": "dense",
"biome_summary": null,
"hydrosphere": null,
"economic_role": null,
"settlement_pattern": null,
"industrial_corridor": null,
"notes": "moderate gas giant"
},
{
"body_id": "GJ402f-1",
"proper_name": null,
"body_type": "moon",
"orbit_index": 1,
"parent_body_id": "GJ402f",
"inhabited": false,
"population": 0,
"mass_class": "dwarf",
"surface_gravity": 0.05,
"orbital_period_days": 5,
"rotation_period_hours": 120,
"atmosphere": "none",
"biome_summary": "barren",
"hydrosphere": "none",
"economic_role": null,
"settlement_pattern": null,
"industrial_corridor": null,
"notes": "inner gas giant moon"
},
{
"body_id": "GJ402f-2",
"proper_name": null,
"body_type": "moon",
"orbit_index": 2,
"parent_body_id": "GJ402f",
"inhabited": false,
"population": 0,
"mass_class": "dwarf",
"surface_gravity": 0.03,
"orbital_period_days": 12,
"rotation_period_hours": 288,
"atmosphere": "none",
"biome_summary": "frozen",
"hydrosphere": "ice",
"economic_role": null,
"settlement_pattern": null,
"industrial_corridor": null,
"notes": "icy outer gas giant moon"
},
{
"body_id": "GJ402g",
"proper_name": null,
"body_type": "planet",
"orbit_index": 6,
"parent_body_id": null,
"inhabited": false,
"population": 0,
"mass_class": "terrestrial",
"surface_gravity": 0.22,
"orbital_period_days": 1500,
"rotation_period_hours": 18.0,
"atmosphere": "none",
"biome_summary": "frozen",
"hydrosphere": "ice",
"economic_role": null,
"settlement_pattern": null,
"industrial_corridor": null,
"notes": "outer ice world"
},
{
"body_id": "GJ402h",
"proper_name": null,
"body_type": "planet",
"orbit_index": 7,
"parent_body_id": null,
"inhabited": false,
"population": 0,
"mass_class": "dwarf",
"surface_gravity": 0.1,
"orbital_period_days": 3800,
"rotation_period_hours": 22.0,
"atmosphere": "none",
"biome_summary": "frozen",
"hydrosphere": "ice",
"economic_role": null,
"settlement_pattern": null,
"industrial_corridor": null,
"notes": "distant ice dwarf"
},
{
"body_id": "GJ402-belt",
"proper_name": null,
"body_type": "asteroid_belt",
"orbit_index": 8,
"parent_body_id": null,
"inhabited": false,
"population": 0,
"mass_class": null,
"surface_gravity": null,
"orbital_period_days": null,
"rotation_period_hours": null,
"atmosphere": null,
"biome_summary": null,
"hydrosphere": null,
"economic_role": null,
"settlement_pattern": null,
"industrial_corridor": null,
"notes": "sparse belt"
},
{
"body_id": "GJ402-oort",
"proper_name": null,
"body_type": "oort_cloud",
"orbit_index": 9,
"parent_body_id": null,
"inhabited": false,
"population": 0,
"mass_class": null,
"surface_gravity": null,
"orbital_period_days": null,
"rotation_period_hours": null,
"atmosphere": null,
"biome_summary": null,
"hydrosphere": null,
"economic_role": null,
"settlement_pattern": null,
"industrial_corridor": null,
"notes": "oort cloud"
}
],
"stations": [
{"station_id": "GJ402c-S1", "proper_name": "Brindle", "orbits_body_id": "GJ402c", "station_type": "industrial", "population": 5000000, "economic_role": "extraction", "docking_class": "standard", "has_gate_infrastructure": false, "notes": "Prospect Hill Extraction Consortium, mineral export staging, Junction Liaison Committee, new transit services sector"},
{"station_id": "GJ402-oort-S1", "proper_name": "Standish", "orbits_body_id": "GJ402-oort", "station_type": "horizon", "population": 0, "economic_role": "transit", "docking_class": "major", "has_gate_infrastructure": true, "notes": "horizon station, 2 apertures"}
{
"station_id": "GJ402c-S1",
"proper_name": "Brindle",
"orbits_body_id": "GJ402c",
"station_type": "industrial",
"population": 5000000,
"economic_role": "extraction",
"docking_class": "standard",
"has_gate_infrastructure": false,
"notes": "Prospect Hill Extraction Consortium, mineral export staging, Junction Liaison Committee, new transit services sector"
},
{
"station_id": "GJ402-oort-S1",
"proper_name": "Standish",
"orbits_body_id": "GJ402-oort",
"station_type": "horizon",
"population": 0,
"economic_role": "transit",
"docking_class": "major",
"has_gate_infrastructure": true,
"notes": "horizon station, 2 apertures"
}
]
}