The sweep (main's item 1): 199 tracked text files, 783 lines. The founder's full name, first name and possessive become "the founder" (sentence starts capitalised); the lowercase operating-system user name in WSL paths and commands becomes <user>; the second owner login becomes "the second owner login"; the three earlier businesses and the two other brands become "the other business", "the earlier entity", "the earlier business" and "another brand"; the Chrome profile rule names the igneum.network profile, not the profile's label. The standing commit login igneum-labs is not a founder term here: the fresh-repository step renames it in the history (docs/plans/history-rewrite.md, tools/repo/fresh-repo.sh). The patterns never appear in plain text in the tree (a plaintext list would be the hit): tools/ci/founder-strings.b64 (perl regex, tab, a sample per row) is read by tools/ci/founder-strings-check.sh (every tracked text file, perl, known-failed first: the self-test plants each row's sample in a fixture and the hit must name the file), by tools/community/discord-hooks.mjs (the guard's founder and business rows; the test takes its fixtures from the samples) and by tools/repo/fresh-repo.sh (the business names of the rewrite rules). site/forbidden-strings.txt carries the same patterns as b64: lines, decoded case-insensitive by site/scrub.mjs and tools/ci/launch-gates-check.mjs (whose fixture now plants an encoded made-up name). The check runs in the gate's tree checks on every merge. Not in this commit, by main's word: the 105 commit messages and 40 personal-identity commits that need the history rewrite (listed, not run), and the secrets found by gitleaks over the history (reported with owners). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| results | ||
| devfee.py | ||
| devfee_out.md | ||
| README.md | ||
| security_budget_10y.py | ||
| security_budget_10y_out.md | ||
| signal_game.py | ||
| signal_game_out.md | ||
| stress.py | ||
| utility.py | ||
| utility_out.md | ||
sim/horizon/economy-and-utility
Models behind docs/analysis/horizon/economy-and-utility.md (Horizon lane 4, 6 October 2026). Python 3.10, numpy only for stress.py.
| File | What | Run |
|---|---|---|
utility.py |
Task 1: proving supply cost per measured card (alone, beside the miner, rented), the published prices it competes with, demand curves (a) to (e) with dollars per day and burn at launch, year 2, year 5 under low/base/high and three IGN prices, proof storage | python3 utility.py > utility_out.md (arithmetic, no lock) |
stress.py |
Task 2: sim/economy/sim.py with the eleven measured cards, the measured rental price for the farm, the 25-s window and 120-s timeout, a FIFO backlog with the 600-s record window (stranded pool credit), burn per day; scenarios a, p10, pd10, c, x100, cartel, refuse, halving (b, d, e, f kept) |
/Users/joshm/Projects/igneum/tools/lock/with-lock.sh run nice -n 19 python3 stress.py --seeds 3 > results/stress_main.md (about 20 s a run on the M5 Max) |
security_budget_10y.py |
Task 3: ten years of subsidy, pool, fees (utility.py section 4), the hash the subsidy sustains at the measured card economics, the 34% weight attack in rented hash at USD 281 per GH/s-day, the audit lines against the entity's income | python3 security_budget_10y.py > security_budget_10y_out.md |
signal_game.py |
Task 5: the 60/90/95 thresholds, forcing and blocking costs, the 30% pool, signal-then-defect by what is signalled | python3 signal_game.py > signal_game_out.md |
devfee.py |
Task 4: the Ember dev fee in dollars by year, price and the share of miners who keep it on; per tier | python3 devfee.py > devfee_out.md |
results/ |
The stress runs as they ran tonight (stress_main.md: 8 scenarios x 3 seeds; stress_busy.md: 3 shards a block; stress_elecfarm.md: the farm on electricity instead of rent; its renter farm margin row printed a division by zero rent and is blank in the current script) |
Every input is labelled in the script (measured, cited, designed, approximate). Nothing here is a price prediction.