Files
settled-reach/docs/workshops/system-economic-specialization/round-1-notes.md
T
jpmschweitzerandClaude Opus 4.8 33c083f0ef docs(workshops): system-economic-specialization rounds + outcomes
Three-round design workshop (Miri, Burnelli-Sheldon, Paula; documented by
Qatux, ticketed by SI) that produced D-237. Includes per-agent round
outputs, round notes, the independent scout critique, and the final
workshop-outcomes.md with the consolidated schema, 27-value economic
vocabulary, cultural + faction vocabularies, deterministic-varied fallback
spec, must-pin table, and CI guardrails.

Clerk-Skip: workshop discussion docs, no D-record surface (D-237 filed separately)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 18:40:08 +02:00

18 KiB
Raw Blame History

Round 1 Notes — System Economic-Specialization Workshop

Documenter: Qatux | Date: 2026-05-31

Source files:

  • docs/workshops/system-economic-specialization/miri-round1.md
  • docs/workshops/system-economic-specialization/burnelli-sheldon-round1.md
  • docs/workshops/system-economic-specialization/paula-round1.md

1. Confirmed Consensus (all three participants agree)

Topic Agreement
Authored lore wins The heuristic (economic_role + corp HQ + planet_class) becomes fallback only for unnamed/generic systems.
One authored field per system One primary authored field per system. Disagreement on form — see Fork 1.
Coexistence with prose economic_base_primary/secondary free-text survives unchanged. The new field is the machine-readable counterpart; the prose is the human record.
Source file wiki/economics/system_specialization.toml — new TOML, one record per system, compiled via import_economics.py → new column on system_economy.
Static, t=0, deterministic Field is build-time authored, D-010 compliant. No PressureState, no tâtonnement.
NULL for uninhabited systems NULL = absent = heuristic runs. Inhabited systems with NULL trigger CI error after the pass is complete.
economy_size OUT Unanimous. Population × prosperity_baseline (D-197) already cover the function. Adding economy_size risks contradicting existing fields. (Burnelli §Q3; Paula §Q3; Miri §Q3)
atlas_body_trait_bias hero pins in same pass Unanimous. ~3040 hero body pins using the existing D-232 pin mechanism. Authoring burden is per-hero-body, not per-system. Miri + Araminta author content; Burnelli confirms economic eligibility.
Content pass division Miri: GTTR truth, named/hero systems. Paula: faction homeworlds, Compact capitals, politically-complex systems. Burnelli: economic credibility review of all ~300 entries + economic plausibility + fallback validation for unnamed systems.
CI guardrails needed Hard errors: uninhabited FK integrity, vocabulary constraint. Soft warnings: monopoly assignments, prose/field divergence, distribution imbalance. Burnelli's §Q4 has the most detailed spec.
World-to-pin list is non-trivial At minimum 18 core/near-core systems + 5 D-177 terroir pins require explicit authoring before the generator runs on #982 / Layer 2.

2. Fork 1 — Primary Field Form (major structural fork)

This is the workshop's central unresolved question. Round 2 must resolve it.

Position A: Commodity FK (Burnelli + Miri)

Burnelli proposes:

dominant_commodity_id TEXT REFERENCES commodities(commodity_id)

One FK into the 36-commodity catalog. The commodity record's bulk_classBulkClass and production_ubiquityProductionUbiquity provide the D-233 mapping directly. The FK is the mapping.

Miri endorses Burnelli's FK, but adds one structural gap and a proposed second field:

"The catalog's production_ubiquity answers: 'how widely is this commodity produced across the Reach?' — a global market statement. D-233's ProductionUbiquity answers: 'how spatially concentrated is this commodity in THIS settlement's built form?' — a local identity statement."

Miri proposes dominant_production_scale TEXT (optional, same vocabulary as commodities.production_ubiquity) as an override when the catalog's global ubiquity would misrepresent the system's local identity. Allowed only equal-or-higher concentration than catalog default. Estimated ~2030 systems need this (Ran, Groombridge, Prometheus, Calloway, VGV, Keid, Lu Ban, Vuurkloof, Sindri, etc.).

Examples of scale-gap systems (Miri §Q1):

System Commodity Catalog production_ubiquity Required scale Why
Ran agricultural_produce ubiquitous concentrated THE breadbasket — scattered instances wrong
Groombridge financial_services common concentrated Financial district identity, not scattered
Prometheus medical_services regional monopolistic Only facility of its kind in the Reach
Calloway Reach processed_food ubiquitous monopolistic D-177 terroir lock — cannot be reproduced
VGV system agricultural_produce ubiquitous monopolistic D-177 F8V stellar spectrum lock

Position B: Specialization Enum (Paula)

Paula proposes:

system_specialization — 9-value enum

Values: transit_hub, governance_center, financial_hub, research_station, military_bastion, manufacturing_hub, precision_industry, agricultural_base, extraction_colony. Each value directly maps to a (BulkClass, ProductionUbiquity) pair.

Paula's rationale: the heuristic fails for political reasons (institutional mandate, Compact self-sufficiency doctrine, corporate homeworld identity), not just geographic ones. A 9-value vocabulary is more politically legible than asking authors to choose among 36 commodity IDs.

Key note on governance_center vs research_station: Both map to (NonPhysical, Specialist) and produce the same building vocabulary under D-233. Paula explicitly notes: differentiation is achieved at the D-232 level via dominant_faction weighting — Assembly → institutional templates, Veil Institute → research/observatory templates. This means Paula's proposal depends on dominant_faction being authored (see Fork 2).

Comparison Table

Dimension Position A (Burnelli+Miri FK) Position B (Paula enum)
Vocabulary size 36 commodity IDs 9 enum values
Authoring clarity Requires knowing which commodity Politically legible
D-233 mapping Derived from commodity catalog Directly encoded
Scale gap handling Miri's optional dominant_production_scale field Some implicit (enum values encode concentration level)
governance_center vs research_station Two different commodity IDs (commission_certification vs tourism/medical_services) Same enum output; relies on dominant_faction to differentiate at D-232
Services economy Any NonPhysical commodity works Two dedicated enum values
D-177 monopoly cases dominant_production_scale = monopolistic precision_industry or extraction_colony as applicable

Unresolved tension: Positions A and B are not mutually exclusive (could be combined), but they are not the same design. Round 2 must produce a single schema.


3. Fork 2 — dominant_faction Authored Pin: In or Out of This Pass?

Paula's position: Author dominant_faction for all named systems in this same pass. This field already exists as a required input in D-199's 6-field minimum read-set for CityGenerationContext. It is consumed by D-214 (PoliticalArchetype) and D-232 (template weight). Three specific heuristic failures demonstrate why the value needs to be authored, not derived:

  • Groombridge: syndics govern, not the Assembly; affects D-214 layout archetype
  • Ostmark: Compact founding member, not generic frontier; affects D-232 and D-214
  • Altmark: genuinely independent, neither Assembly nor Compact; affects everything downstream

Paula proposes vocabulary: concord_assembly | compact | compact_sympathetic | syndic_dominant | veil_institute | lattice_commission | independent | disputed

Paula further notes D-172 compliance gap: without authored dominant_faction, the system infers Compact membership from currency zone (circular) or hop distance (explicitly wrong per D-172).

Miri's position: Does not explicitly oppose dominant_faction authoring. Notes that system_culture already has cultural_register, cultural_register_secondary, primary_archetype, secondary_archetype, atmospheric_tone — and characterizes adding cultural fields as out of scope. dominant_faction is a different category (political, not cultural), and Miri's rejection is directed at cultural register duplication, not at faction authoring.

Burnelli's position: Notes political_register is "Paula's domain" and defers; neither advocates for nor against it. From economic integration perspective, political_register would not touch the commodity-building pipeline — consumed by NPC generation and dialogue only (Burnelli §Q5).

Assessment: This is a domain-boundary question more than a design disagreement. Paula needs dominant_faction to make her enum differentiation work (see Fork 1). Burnelli defers. Miri's objection is specifically to cultural duplication, not to faction authoring.


4. Fork 3 — dominant_production_scale Field: Needed or Not?

Miri (yes): Proposes dominant_production_scale TEXT as an optional field. Identifies 7 explicit cases in §Q1 where the catalog's global production_ubiquity understates the system's local identity. If not present, Ran looks like any farming moon; Groombridge looks like scattered financial services; Prometheus looks like a regional medical center.

Burnelli (not proposed): Burnelli's proposal does not include a scale override. The implicit assumption is that production_ubiquity from the catalog is correct as-is. If Ran is pinned to agricultural_produce, it gets Ubiquitous → scattered instances in mixed-use, which Miri identifies as wrong.

Paula (not applicable): Paula's enum directly encodes concentration into the value (e.g., agricultural_base = Perishable × Ubiquitous). This does not resolve the Ran-vs-Arbour distinction — both would be agricultural_base but one is the Reach's breadbasket and the other is an estate world.

Note to user: This fork is directly tied to Fork 1. If Position A (commodity FK) is chosen, Miri's dominant_production_scale field may be necessary to achieve correct built-form output for hero systems. If Position B (enum) is chosen, some scale cases are handled by the enum directly, but the Ran-vs-Arbour distinction remains.


5. Consensus on Named Systems: Must-Pin List

The following systems were named by two or more participants as requiring explicit authoring before the generator runs. GJ IDs from Paula and Miri where provided.

Core/Near-Core (Unanimous Priority)

System GJ ID Burnelli pin Paula pin Miri pin Overlap status
Sirius GJ 244A commission_certification governance_center commission_certification All three agree; form differs by Fork 1
Gateway GJ 71 commission_certification transit_hub commission_certification All three agree
Groombridge GJ 380 financial_services financial_hub financial_services (concentrated) All three agree
Keid GJ 166A legal_services (implied) research_station tourism (monopolistic) Paula and Miri diverge on commodity
Prometheus GJ 702B medical_services implied precision_industry medical_services (monopolistic) All three agree on identity
Ran GJ 144 agricultural_produce agricultural_base agricultural_produce (concentrated) All three agree; Miri adds scale override
Bastion GJ 570A commission_certification implied military_bastion commission_certification All three agree
Cygni B GJ 820B refined_metals (fallback) manufacturing_hub freight_haulers Fork: Miri says outputs, not inputs
Renaissance GJ 251 refined_metals (fallback) precision_industry gate_components Fork: Miri identifies specific commodity
Altmark GJ 357 transit_hub (independent) Paula only; high-stakes political case

D-177 Terroir Pins (Non-Negotiable per Miri)

System Commodity Scale D-177 constraint GJ confirmation needed?
Calloway Reach processed_food monopolistic Terroir lock, 12-20y aging Yes — GJ 3325 (Paula confirms)
VGV system agricultural_produce monopolistic F8V stellar spectrum lock GJ designation needs confirmation
Braemar organic_compounds monopolistic Brach fiber: herd expansion decades Yes — GJ 475 (Paula confirms)
Kvitfjell / Nyrheim stone monopolistic ~800t/y geological ceiling Yes — GJ 3737 (Paula confirms)
East reach lattice anchor lattice_grade_material — (catalog already monopolistic) Strategic material, D-177 GJ designation needs confirmation

North Reach, West Reach, Other Named (Paula + Miri coverage)

System GJ ID Paula pin Miri pin Notes
Ostmark GJ 601A agricultural_base (compact) Paula: Compact founding member, 5-century agricultural base
Confluent GJ 395 agricultural_base (compact_sympathetic) Paula: VGV wine, F8V lock, D-177
Dagat GJ 482A agricultural_base (independent) Paula: deep ocean kelp, Blue dye monopoly
Arbour GJ 338B agricultural_produce (no scale override) Miri: catalog ubiquitous IS correct for estate farming
Sindri GJ 3522 metallic_ore (concentrated) Miri: DSMC dominance understated at common
Nova Roma GJ 764 transport_vehicles (concentrated) Miri: MVG output identity
Vuurkloof GJ 35 fusion_fuel (concentrated) Miri: unusual stellar type; heuristic has no path
Lu Ban GJ 15A consumer_goods (concentrated) Miri: 300-workshop bazaar; heuristic has no signal
Tessera GJ 3877 legal_services (concentrated) Miri: Assembly Interpretive Registry
Parallax GJ 280A entertainment (concentrated) Miri: media/news economy; heuristic can't reach this
Barnard's Star GJ 699 no pin needed Miri: residential suburb for Cygni B; heuristic correct

6. Open Questions (Q-record candidates for Round 2 agenda)

Q-??-A: Field form — FK or enum?

Which structure is adopted as the primary authored field? Burnelli + Miri favor dominant_commodity_id FK (36-value). Paula favors system_specialization enum (9-value). Could they coexist (an enum that compiles to the FK via a mapping table)?

Stakes: If the 9-value enum is adopted, what is the commodity identity for the generator? If the 36-value FK is adopted, what is the political legibility for authors?

Q-??-B: dominant_production_scale — in or out?

If Position A (FK) is chosen, does dominant_production_scale earn its slot? Miri identifies 7 specific cases where it is required for correct D-233 output. The authoring burden is small (~2030 entries), but it is an additional schema column and CI maintenance surface.

Q-??-C: dominant_faction in this pass or deferred?

Paula makes a credible case for authoring dominant_faction during this pass (D-172 compliance, D-214 archetype accuracy, ~3040 entries for named systems). Burnelli defers. Miri's objection is to cultural field duplication, not to faction authoring. Decision needed.

Q-??-D: Keid's commodity identity

Paula pins Keid to research_station (NonPhysical, Specialist). Miri pins to tourism (monopolistic). Both note the Conservancy biosphere as the identity, but they choose different commodities. One of these is wrong, or the field (under Fork 1 resolution) subsumes the question differently.

Q-??-E: Cygni B — freight_haulers or manufacturing_hub?

Miri: freight_haulers (the OUTPUT of the system). Paula: manufacturing_hub (the PROCESS of the system). Burnelli's heuristic would land on refined_metals or similar (the inputs). All three would agree on the identity — Cygni B built the Reach — but they land on different commodity IDs.

Q-??-F: GJ confirmation for D-177 terroir systems

The east reach lattice anchor, VGV system (F8V spectrum), and possibly others need GJ catalog IDs confirmed before the content pass can proceed. This is a pre-pass lookup task.

Q-??-G: Flagged systems requiring Miri confirmation

Paula flags two systems where GTTR and corp presence diverge:

  • Dài Lộ (GJ 136) — GTTR says "Grand Road" (transit) vs Takamori Lattice Works HQ (precision industry / lattice substrate). Paula's instinct: precision_industry; needs Miri's lore confirmation.
  • Zenzele (GJ 1111) — GTTR emphasizes electromagnetic hardening expertise vs Baektu Mining Alliance + Umoja Freight HQ. May be manufacturing_hub rather than extraction_colony. Needs Miri's confirmation.

7. Implicit Decisions Observed

For the record — these were stated or assumed by participants but not formally voted on:

Implicit decision Basis
D-233 will be re-amended Workshop brief explicitly states this; all participants design within that expectation
#982 design-blocked stubs in city_context_reader.rs will be replaced by this field Burnelli §integration summary; confirms pipeline endpoint
Trait catalog authoring (D-232) is a downstream co-authoring task for Miri + Araminta Miri §Q5; confirmed that the trait definitions themselves are not part of this pass
Compact member systematic review rule Paula proposes: any Compact system where heuristic would produce extraction_colony → flag before committing

8. Summary Table: Q1Q5 by Participant

Question Burnelli-Sheldon Paula Miri Status
Q1 — The field dominant_commodity_id FK (36 values) system_specialization enum (9 values) Endorses FK + adds dominant_production_scale override FORK 1 (unresolved)
Q2 — Weighted variation Integer weighted draw; W_SYS=10,000; algorithm specified Three-level priority; political modifiers for Compact/Assembly Endorses algorithm; adds 3 lore-specific patterns Consensus on mechanism, details in Fork 1 resolution
Q3 — economy_size? OUT — redundant with pop × prosperity OUT — redundant OUT — redundant Unanimous
Q4 — Content pass TOML source; DB schema; detailed CI spec; 300 system authoring division Same TOML source; 19 specific must-pin systems; Compact systematic rule 18 core/near-core pins; 5 D-177 terroir pins; 6 high-risk contradiction cases Consensus on structure; specific pins need reconciliation
Q5 — Additional fields atlas_body_trait_bias hero pins only + dominant_faction authored pin + dominant_production_scale (2030 systems); no political register (already in system_culture) FORK 2 (dominant_faction); FORK 3 (production_scale)

Round 1 documented. No final proposal is recorded here — that is Round 2's deliverable after the user checkpoint. Source files read: miri-round1.md, burnelli-sheldon-round1.md, paula-round1.md. Qatux — 2026-05-31