Ranged policy limits — 9 September 2026
The current aggression grid [0.5, 0.75, 1] excludes an existing cautious range-management behavior. A deterministic position probe demonstrates that the omitted settings 0 and 0.25 retreat while retaining ranged attacks; the sampled settings stay within, or move farther into, a melee opponent’s next ordinary-movement reach. This establishes a policy-coverage limitation, not a prediction that cautious bots win or that melee is balanced.
Reproducible position probe
Use probe.ts:
pnpm exec tsx docs/tuning/evidence/2026-09-09-ranged-policy-limits/probe.ts /tmp/ranged-policy-probe.json
Retained output pins the cloned catalog, complete setup, resolved rules, initial snapshots, exact legal paths, planning results, source hashes and script hash. It refuses to overwrite an existing output. Source excerpts retain the relevant scoring code.
Setup: empty 18×9 board, no objectives; stock Foreman A at offset (6,4), dual-Blade Reaver B at (10,4); seed 123; safeapproach enabled. Both are fresh and intact, with ordinary Speed 4. Enraged is configured but inactive. Only A’s aggression changes. No activation begins, no attack or game runs, and instrumented RNG methods confirm zero draws. Mech snapshots and event arrays remain unchanged; repeated planning returns the same endpoint.
| A aggression | Foreman endpoint | Legal move cost / 4 | Distance to Reaver | Reaver can reach adjacent within its ordinary Move |
|---|---|---|---|---|
| 0 | (2,4) | 4 | 8 | No |
| 0.25 | (4,4) | 2 | 6 | No |
| 0.5 | (6,4) | 0 | 4 | Yes — cost 3 |
| 0.75 | (8,4) | 2 | 2 | Yes — cost 1 |
| 1 | (9,4) | 3 | 1 | Already adjacent |
All five endpoints preserve line of sight and usable ranged weapon options. Witness paths use hypothetical occupancy after A’s endpoint, freeing its original cell and blocking its destination. “Can reach” is a safe-route existence statement; it does not predict B’s selected action, a successful attack, survival through reactions or victory. The probe isolates one open-board position, not a complete strategic policy.
What the implementation models
In engine/ai.ts, the threat loop evaluates attacks from the enemy’s current position to each candidate hex. It does not search enemy Move-plus-Melee destinations. A pure melee enemy at distance two therefore contributes zero current attack-option threat even though it can move one hex and initiate a Full melee exchange. All of the probe’s distance-two and distance-four endpoints have this blind spot.
The spacing coefficient is (aggression − 0.5) × 0.4: negative at 0/0.25, zero at 0.5, positive at 0.75/1. The current grid consequently omits every negative-spacing coefficient. Aggression changes threat weighting and other terms together, so this is not an isolated spacing-knob experiment. Other terrain, objectives and weapon opportunities can override the spacing term; the table does not claim those settings always make the same movement choice.
activationValue still adds a best weapon attack, an improvised strike, and 0.6 of a second weapon attack. That estimate does not resolve the current Full-action melee exchange: initial successful opportunities, source counts, parry allocation, first actor and alternating expenditures. It cannot be read as expected exchange damage. Increasing threat weighting therefore magnifies an approximate current-position estimate rather than adding the missing enemy movement horizon or correct exchange model.
The bot also selects its movement before attacking. Its second movement/Boost branch requires that the first plan has no target. It does not optimize a shoot-then-retreat sequence or deliberately Boost away while retaining a firing target. These are action-policy limitations, separate from whether the rules permit useful ranged counterplay.
Prospective finite-policy amendment
Before further outcome inspection, declare [0, 0.25, 0.5, 0.75, 1] as the policy set and evaluate the full 25 joint assignments, preserving each side/orientation/initiative/seed factor. A focused panel should include all five melee-versus-other families across all four maps. A separately declared non-melee control, such as mobile versus gunline, can check whether the broader settings change an unrelated matchup too. The parent protocol owns final panel size and seed allocation.
Derive any selected comparison policies from the corrected-control data, then keep those policies fixed across numerical candidates for the primary comparison. Label candidate-adapted choices as secondary. Preserve the original screen unchanged and identify this amendment prospectively; do not retroactively describe the old grid as testing cautious ranged play.
Even the expanded grid is finite and shares these tactical-model limitations. It can measure sensitivity within the implemented controller, but cannot establish optimal human counterplay, a strategy’s full ceiling or broad strategic balance. Numerical catalog screening remains useful conditional evidence; it is insufficient by itself to justify a final balance verdict while a demonstrated counterplay policy is absent from the evaluated set.