Owner guidance 2026-08-29 for governor review 10476 (PR #11), finding by finding:
1. Explicit tier rank/tie-break for equal Mining gates. pickaxe_tiers
declared bronze and iron both at Mining 1 / Attack 1 while the
level-1 worked example called bronze canonical and carried it (27
slots) — internally contradictory under the entry's own
highest-unlocked acquisition policy. pickaxe_tiers now carries an
explicit rank (bronze 1 .. rune 6) and the selection rule resolves
equal Mining gates by rank: Mining 1 deterministically selects IRON
(7-tick roll, rank 2) over bronze (rank 1), and Attack 1 EQUIPS it
(iron attack gate = 1) -> 28 ore slots. Stated at every policy
layer (summary, accounts.requires_other, best_practice.equipment,
prepare state, economy.supplies, a14 equip-tool gate, pickaxe_tiers
head comment). An owned-only bronze run is documented as an operator
choice, never the entry's selection rule.
2. Level-1 lifecycle/rate inputs recomputed. The level-1 worked
example now uses the equipped iron pickaxe: 28 ore slots per drop
load, iron cadence [4200, 6000] ms (midpoint 5.1 s), and the
copper/tin rate re-derived from that cadence: 1.6 rolls x 5.1 + 0.5
drop + 0.39 break = 9.05 s/ore -> 398 ores/hr -> ~6,960 XP/hr (pin
6,900), replacing the bronze-midpoint 360 ores/hr / 6,300 XP/hr.
Updated in mine_sites (se-varrock-copper / se-varrock-tin),
economy comment block, profit_drivers, worktree example, and risk
notes; no other rate changes (fast-xp iron 28,000 and banked rates
untouched).
3. Recomputed 1-Attack/1-Mining fixture + capacity proof. Schema:
pickaxe_tiers gains required rank (1..6); pickaxe_examples gain
required expected_slots (28 equipped / 27 carried). Validator:
select_pickaxe() ties by rank; every pickaxe_examples row is
recomputed including expected_slots, the 1-Attack/41-Mining
rune-carry fixture is preserved, and the 1-Attack/1-Mining row is
now mandatory (selects iron, equipped, 28). Committed negative
fixtures f18-f22: bronze-at-Mining-1, carried-at-Attack-1, wrong
slots, missing 1/1 fixture, and a tier missing rank are all
rejected (22 selftests pass).
Preserved: complete GE tool acquisition loop, structured copper/tin
below-15 fallback, fast-xp/banked-income modes, dynamic 27/28
inventory handling, declared banked targets, respawn/world-hop model,
and all prior rate gates. version 6 -> 7, updated 2026-08-29.
Gate: python3 tools/validate.py -> 2 entries, 0 errors, 1 pre-existing
F2P WARN (low-alch-f2p researched, untouched); --selftest -> 22 PASS;
git diff --check clean.