feat(db): biosphere_class authoring pipeline + values (T-1085 workstream 3, D-247)

The D-247 chirality/edibility register as authored data on every body, via the
stamped regen-db path (import_economics) — not a manual bake.

- systems-schema.sql + migration.py: nullable bodies.biosphere_class column.
- economy_import/bodies.py: populate_biosphere_class — reads the authored
  environment.biosphere_class frontmatter override, else the D-247 two-gate default
  (Gate 0 habitability from atmosphere/hydrosphere/inhabited; Gate 1 Compatible/Mirror
  from economic_base_primary; neutral remainder -> stable ~50/50 split). Recomputes
  every body each regen (frontmatter + default are its complete source).
- import_economics.py: wired as import step 17.
- frontmatter overrides for the bodies whose default deviates from canon:
  Solandar=NativeMirror, GJ-524=NativeMirror (uninhabited-but-alive), Ha Long=
  NativeCompatible (its transit economy hides its aquaculture identity). Linnaeus,
  Arbour, Oshima, Freyburg, Puerto Ultimo, Edict all default correctly.

systems.db regenerated + stamped. All 9 canon exemplars verified; distribution is
111 Compatible : 108 Mirror among inhabited alive worlds (~50/50 target), Airless for
uninhabited bodies, TerraformedSterile for thin-atmosphere worlds.

Follow-up (rename completion): propagating Linnaeus to bodies.proper_name in the DB
(still "Cadwal" — proper_name is atlas-CLI-owned, and a wipe+reimport would drop
non-proposal columns like founding_age_years; needs a targeted approach).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-05 11:56:52 +02:00
co-authored by Claude Opus 4.8
parent 5fb34675eb
commit cc7c5ada04
10 changed files with 283 additions and 1 deletions
+1
View File
@@ -166,6 +166,7 @@ CREATE TABLE IF NOT EXISTS bodies (
rotation_period_hours REAL, -- rotation period in Earth hours (Earth = 24), NULL for tidally locked/gas giants
planet_class TEXT, -- temperate, arid, frozen, oceanic, volcanic, barren, etc.
hydrosphere TEXT, -- ocean, ice, rivers, none, subsurface
biosphere_class TEXT, -- D-247: NativeCompatible | NativeMirror | TerraformedSterile | Airless (NULL until authored/defaulted)
-- Settlement
inhabited INTEGER NOT NULL DEFAULT 0,