- 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>
3.3 KiB
Roadmap
Legend: [ ] todo, [x] done. Build order matters; each step is usable on its own.
-
Repo skeleton, git (master), venv, CLAUDE.md, mechanics from PRUNplanner.
-
puga/fio.py: cached FIO client (TTL per endpoint, keys from.env), pluspuga/prunplanner.pyforapi.prunplanner.org/data/*. Inspect whatexchanges/adds (VWAP?) vs FIO/exchange/all. -
(price + book tools done; cxpc trend history not needed, PRUNplanner has vwap7/30)
puga/market.py+tools/price.py,tools/book.py: prices across all CX, trends from cxpc, order-book walk for real fill price at quantity N. -
puga/econ.py(22 tests pass, expected values from PRUNplanner's suite): efficiency stack, workforce consumption, hab LP, extraction (port the formulas fromdocs/mechanics.md, with tests against PRUNplanner values). -
(v1 done; see saturation-design.md for refinements)
tools/scan.py(replaces prun_scan.py): depth-aware ROI. Per recipe report: buildings the market can absorb (output demand + traded volume, input supply), ROI at fill price for N buildings, absorbable profit/day. Filter--min-buildings. Both CX-local and universe. 5b. [ ]tools/arb.py(replaces prun_cxarb.py): inter-CX arbitrage onmarket.walkat real fill size; capital required, fuel/shipping cost from state, profit per trip within cash. Reason: old script uses top-of-book spread x min(supply,demand); on 2 of 4 top hits it overstated profit 7 to 11x (WAI, SCN). -
tools/chain.py: full bill of materials, make-vs-buy per node. -
tools/whatif.py: marginal ROI of adding a building to the actual state (usesstate/company.yaml, efficiency stack, imports). -
tools/planet.py,tools/found.py: rank planets for a resource; founding cost including environment extras. -
tools/route.py,tools/haul.py: jump graph, fuel, profit per trip. 9b. [x] (dry-run default, --apply after user yes)tools/plan_push.py: create/update[PuGa]plans in PRUNplanner from YAML (Api-Key auth; see decisions.md for guardrails). -
tools/state.py sync(sites, production efficiency, storage, ships, cash, permits): inventory, production, ships intostate/. -
Docs to fill:
docs/apex.md,docs/fio.md,docs/playbook.md(question type -> tool),docs/decisions.md. -
tools/portfolio.py: choose the set of 1-building opportunities for one base that maximises total profit given shared whole-building housing (HB1/HB2/...), capex, permits and (for demolish-later) 60-day value decay. Persistence check exists (tools/persistence.py); wire it into the ranking.
Open questions
- PRUNplanner auth is known (
Authorization: Api-Key <key>). FIO REST and FIO API are separate services with separate keys (separate services with separate keys; an earlier "one API" reading was wrong). Keys are in.env. Verified 2026-09-18: FIO_REST_KEY works on rest.fnar.net asAuthorization: <key>(own /sites, /storage etc. readable); FIO_API_KEY gives 401 there, host unknown. PRUNplanner key works (plans 0, empires 1, cx prefs 1 on his account). Still unknown: the OpenAPI spec at https://doc.fnar.net/api.json has no securitySchemes. Probe with read-only calls. - (resolved) PRUNplanner
exchanges/has vwap_daily/7d/30d and traded volume; merged intopuga/market.py. Trend history via cxpc still todo. - Extraction: concentration to daily rate formula.