Economics simulation sprint — skeleton binary through corporate agents. 13 tickets across server/copy/client/ci. Stability tests (D-179) are the sprint exit condition. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
6.0 KiB
Sprint 33: Pecunia — Joint Notes
Goal: Full economics simulation running — Leontief production, spatial price equilibrium, currency zones, corporate behavioral agents across all three corporation tiers, stability tests passing.
Sprint Completion Proof
When Sprint 33 is done, you can:
- Run
economy-sim --stability-checkand see all four D-179 tests pass: cold-start convergence (±5% within 100 days), long-run stability (no drift > ±2% over 1,000 days), shock response (recovery within 200 ticks, no negative prices), cross-zone re-stabilization (within 50 ticks). - See Compact systems with
MARK_PRIMARYcurrency zones inserver/data/systems.db—SELECT system_id, currency_zone FROM star_systems WHERE currency_zone != 'TRACTUS_PRIMARY'returns a non-trivial list matching Compact membership. - See 150 Tier-2 corporations in
wiki/economics/corporations/tier2/with distinct names, corridors, backstories, and branded product lists. - See
generated_corporations.tomlwith 5,000+ Tier-3 template instances covering all inhabited systems. - Read 36 commodity wiki pages at
wiki/economics/commodities/with full flavor text, lore context, and production chain descriptions. - See
wiki/economics/shadow_economy.tomlwith per-system-type intensity ranges authored and annotated. - See the
icon_tint.gdshaderin the client with recoloring working on both stroke and fill icon types at all implant theme semantic colors. - Grep for
qdrantin the repo and find no references (removal complete).
Phase 2 Context
Phase 2 deliverable (D-166): "Economics spreadsheets/graphs with runtime-tweakable simulation."
Sprint 33 is the first economics implementation sprint. The economics schema (#804, DONE), commodity catalog (wiki/economics/commodities.toml), and production chains (wiki/economics/production_chains.toml) were completed in Sprint 32. The Tier-1 corporation corpus (38 named corporations, #797, DONE) and archetype taxonomy (#798, DONE) are also in place.
This sprint builds the simulation binary and completes the corporation corpus (Tier 2 authored, Tier 3 generated). It does not close Phase 2 — the phase deliverable includes the full signal pipeline and runtime-tweakable parameters, which will be Sprint 34+ work. But passing all four stability tests in Sprint 33 validates the model architecture and unblocks everything downstream.
Pre-Sprint Checklist
Before any simulation code is written, verify:
| Item | Owner | Status |
|---|---|---|
server/data/systems-schema.sql has currency_zone on star_systems |
server | Done (#804) |
corp_presence table exists in schema |
server | Done (#804) |
wiki/economics/commodities.toml — 36 types present |
copy | Done (#801) |
wiki/economics/production_chains.toml — 21 chains present |
copy | Done (#801) |
wiki/economics/archetypes/lore.toml — 28 archetypes defined |
copy | Done (#798) |
wiki/economics/archetypes/behavioral.toml — 6 archetypes defined |
copy | Done (#798) |
| 38 Tier-1 corporations in DB + wiki | copy | Done (#797) |
Cross-Team Dependencies
The server simulation chain (#806 → #807 → #808 → #809) has hard blockers on copy team output:
- #809 (corporate agents) cannot be started until #799 (Tier-2 corps) is in a queryable state. Server team must be able to read
behavioral_archetypefrom Tier-2 TOML records. - #808 (currency zones) consumes
wiki/economics/shadow_economy.toml(#803) for per-nodeshadow_economy_intensity. Copy team should deliver #803 by mid-sprint. - #805 (corp pipeline) will wire in Compact zone assignments from #820. Copy team must finalize the list of
MARK_PRIMARYsystem IDs before #805 runs its full validation pass. - #800 (Tier-3 pipeline) is a server Rust binary but reads archetype TOML format authored by copy. Schema for
wiki/economics/archetypes/must be stable before #800 starts. Server and copy teams: align on this format in the first two days of the sprint.
Iterative Development Cycle (D-183)
This sprint follows the iterative economics cycle: skeleton sim (#806) → data population (copy work running in parallel) → test (#807 stability) → currency layer (#808) → agents (#809). Copy and server work in parallel — they are not sequentially gated except at the #809 merge point.
If stability tests fail in #807, do not proceed to #808 until Tests 1 and 2 pass. The tâtonnement parameters (α=0.03, β=0.4) are starting values — Dudley/Tyre should tune them if the model oscillates or drifts. Report to team lead before making architectural changes.
Dependency Chain
Server chain:
#813 (energy-over-gate schema) ─────────────────────────────────────────┐
#805 (corp pipeline + validation) → #806 (skeleton sim) |
→ #807 (trade flows + stability) |
→ #808 (currency zones) ←───┘
→ #809 (corporate agents)
Copy unblocks server:
#820 (MARK_PRIMARY assignments) → feeds #805 validation
#803 (shadow economy ranges) → feeds #808 shadow modifier
#799 (Tier-2 corps) ─────────────────────────────────────────────────→ #809
#800 (Tier-3 pipeline, server executes) ───────────────────────────→ #809
Independent:
#812 (commodity copy) → standalone
#818 (icon_tint shader, client) → standalone
#816 (remove Qdrant, CI) → standalone
Not In Scope
- Phase 2 signal delivery to the Godot client — that is Phase 4 player interaction territory
- Event input port exercising — port is stubbed in #809, not exercised until Phase 3+
- Heightmap batch (#794) — deferred from Sprint 32, carries into a later sprint
- Character creation UI (#694, #618, #619) — Phase 4
- World generation — Phase 5