# Long-horizon scenario model — public reproducibility edition Read ERRATA.txt first. This is internal scenario simulation and robust-decision analysis, not an empirical forecast or external validation. ## Reproduce the restored campaign Python 3.11+; verified using the versions in requirements.txt. In a virtual environment, install those dependencies, then run `python reproduce.py` from this directory. It takes several minutes. Original code is retained byte-for-byte. The wrapper imports it, overrides only its fixed output directory, and replaces the fixed import statement in the three support scripts. Equations, scenario/architecture/value parameters, seed formulas and iteration order are unchanged. Outputs go to `reproduced/`; supplied CSVs are never overwritten. The runner explicitly uses main=8,000, skeptic=800, ablation=1,200, reduced-form=15,000 samples per row, and support scripts’ recorded counts. Running the original main script with its defaults produces a different campaign. All ten output tables are compared with their supplied counterparts: exact labels and shapes, numeric tolerance 1e-10. Inspect verification.json for the measured differences, including failures. Numeric reproduction is distinct from byte-identical CSV serialization. ## What is included Four original model scripts; all 24 supplied CSVs (including earlier runs and derived summaries); three reports extracted into metadata-free text with an errata preface; seven original figures re-encoded without metadata; annotated source notes; verification record; corrected baseline rankings and architecture summary. SHA-256 inventory identifies the public files. Original Office documents, duplicate v1.2 reference documents and nested historical archive are excluded. The nested archive exactly matches the historical archive already reviewed for this website. The campaign has 2,314,000 dynamic architecture trajectories, nominally 60 periods each, plus 2,100,000 reduced-form parameter samples. Seed reuse means these are not independent base worlds. The reduced-form code calculates cumulative event probabilities from sampled hazards; it does not simulate individual Markov chains. The original manifest’s content hashes match, except its invalid self-hash; the public inventory excludes itself. ## Interpretive limits Use main_scenario_architecture_results_v2.csv, pulse_skeptic_sweep_v2.csv and pulse_doctrine_ablation_v2.csv for this verified campaign. Earlier unsuffixed files and their derived rankings/summary are provenance, not additional independent evidence. The baseline v2 comparison gives equal weight to each of 20 scenario archetypes. Six scoring systems share architecture assumptions, positive integration weights and common failure penalties. They are not six independent moral validations. The model’s free-and-integrated outcome requires avoiding its catastrophic failures and bifurcation and exceeding specified liberty, individuality, integration, anti-domination and legitimacy thresholds. Catastrophic-failure avoidance is distinct from survival_rate (absence of constitutional collapse). Human literature does not empirically calibrate future synthetic coefficients. Common seed schedules enable comparable starting draws; conditional random calls mean perfectly paired realized shocks are not guaranteed throughout. The PULSE-only illicit-origin share cap is a structural assumption; the post-hoc Lite variant does not share that exact name-gated rule. No constitutional change is inferred from the Lite experiment. Original figures and reports are historical artifacts, not new endorsements of their causal language. The capacity figure’s dotted 0.52 line is illustrative: the sampled PULSE-aligned score changes order between 0.50 and 0.55, without identifying an exact threshold. The skeptic crossover is against a fixed baseline liberal benchmark, averaged over six scores; it is not a separate robustness theorem for every value system.