Add simulator replica, persistence, planet scan, README; split empire state out of the repo

- tools/simulate.py + puga/simulate.py: replica of PRUNplanner's simulator (flows and
  efficiency verified against screenshots), reports real new capex (planned minus built)
- tools/scan.py: staffing variants, freight, HQ/experts, --planet mode, demolish-later,
  --min-n as a pure market-size filter, --json output
- tools/history.py, tools/persistence.py: margin history and short-horizon payback checks
- tools/plan_push.py: guarded delete; tools/state.py: syncs to empire/
- README with features and setup; CLAUDE.md made generic
- Own-empire material (profile, state, plans, notes) moved to gitignored empire/;
  generic examples in plans/examples and state/company.example.yaml

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-19 00:11:02 +02:00
co-authored by Claude Sonnet 5
parent 7a538cb300
commit 3bbf524ebb
26 changed files with 778 additions and 259 deletions
+12
View File
@@ -0,0 +1,12 @@
# Example only. `tools/state.py sync` writes the real file to private/state/company.yaml (gitignored).
as_of: "2026-01-01 00:00Z"
company: {name: Example Co, ticker: EXC, user: yourname, faction: ANTARES, home_cx: AI1, currency: AIC}
licence: FREE
hq: false # true if you have a corporation HQ (adds x1.1 efficiency)
permits: {used: 1, total: 2}
cash: {AIC: 10000}
bases:
- name: Example
planet: XX-000a
cogc: METALLURGY
buildings: {SME: 2, HB1: 1}
-50
View File
@@ -1,50 +0,0 @@
as_of: 2026-09-18 20:52Z
company: {name: greenish-blue Industries, ticker: GBI, user: dodox, faction: ANTARES, home_cx: AI1, currency: AIC}
licence: FREE
permits: {used: 1, total: 3}
bases:
- name: Deimos
planet: ZV-759c
cogc: METALLURGY
area: {used: 200, total: 500}
buildings: {SME: 5, EXT: 2, HB1: 4, CM: 1}
workforce:
pioneers: {required: 370, capacity: 400}
notes: flux recipe 6 ALO+FLX+C+O -> 4 AL (base 14h24m, divide by efficiency); buys ~29 ALO/day; refresh from live FIO/PROD
avg_condition: 0.9994
production:
- {type: extractor, count: 2, efficiency: 0.9993, queued_orders: 7}
- {type: smelter, count: 5, efficiency: 1.3361, queued_orders: 10}
ships:
- {name: null, reg: AVI-07JFC, mass: 1066.5760498046875, in_flight: true}
- {name: null, reg: AVI-07JFB, mass: 827.7999877929688, in_flight: false}
cash: {ICA: 5000.0, AIC: 21950.099609375, CIS: 5000.0, NCC: 5000.0}
storage:
- type: STORE
name: null
weight: 167/1500t
items: {OVE: 137, SF: 306, C: 25, O: 25, DW: 113, FLX: 25, FF: 200, PWO: 27, COF: 14, RAT: 113, ALO: 5}
- type: SHIP_STORE
name: AVI-07JFC
weight: 154/500t
items: {AL: 32, FE: 4}
- type: STL_FUEL_STORE
name: AVI-07JFB
weight: 0/90t
items: {SF: 0}
- type: STL_FUEL_STORE
name: AVI-07JFC
weight: 72/90t
items: {SF: 1198}
- type: FTL_FUEL_STORE
name: AVI-07JFC
weight: 13/15t
items: {FF: 264}
- type: FTL_FUEL_STORE
name: AVI-07JFB
weight: 0/15t
items: {FF: 0}
- type: SHIP_STORE
name: AVI-07JFB
weight: 0/500t
items: {}