feat(simulation): add corporate behavioral archetypes — Layer 3 (#809)
Implements the 6 behavioral archetypes from D-175 (Burnelli-Sheldon): Producer — 1.15× production scale, neutral price signal Distributor — 0.9× production, −3% price discount to move volume Specialist — 1.0× production, +10% price premium for expertise Monopolist — 0.8× production, withholds 25% of output, +20% premium Cooperative — 1.0× production, −5% community discount Intermediary — 0.7× production, relies on traded goods Archetype loading: - Reads from corporations.behavioral_archetype (currently NULL for all corps) - Falls back to heuristic inference from specialization text (freight → Distributor, extraction → Producer, luxury goods → Specialist, etc.) - 48 corps loaded on current DB, all inferred (DB column to be populated when wiki corp frontmatter is extended with the behavioral_archetype field) Applied in model.rs step(): - Per-corp effective_capacity = BASELINE_CAPACITY × production_scale - Monopolist supply_withheld fraction reduces net output to stockpile - Price premium: small ALPHA-scaled nudge to node price for primary commodity All D-179 stability checks still pass with archetypes active. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,7 @@ use std::process;
|
||||
|
||||
use clap::Parser;
|
||||
|
||||
mod agents;
|
||||
mod currency;
|
||||
mod db;
|
||||
mod model;
|
||||
@@ -93,6 +94,13 @@ fn main() {
|
||||
let productivity = seed::seed_all_productivity(&economy, cli.seed);
|
||||
eprintln!(" {} corp×site productivity records seeded", productivity.len());
|
||||
|
||||
// --- Behavioral archetypes ---
|
||||
let archetype_map = agents::build_archetype_map(economy.corp_archetype_data.clone());
|
||||
eprintln!(
|
||||
" {} corporation behavioral archetypes loaded (inferred where not set in DB)",
|
||||
archetype_map.len()
|
||||
);
|
||||
|
||||
// --- Gate adjacency ---
|
||||
let adjacency = trade::build_adjacency(&economy);
|
||||
eprintln!(
|
||||
|
||||
Reference in New Issue
Block a user