# Gun Rack Summary — TL;DR **Gauntlet:** 5 adversaries × 10 rounds, 14 guns. Data: `/tmp/gun_stats.jsonl` ## Scoreboard | Adversary | Score | Real Hit% | Best Gun | |-----------|-------|-----------|----------| | SittingDuck | 1944 | 85% | AvgLead / WallBounce (99% vhit) | | OscillatorBot | 1645 | 59% | AvgLead (65% vhit) | | RandomMover | 1916 | 61% | Linear / WallBounce / AvgLead (82%) | | PatternMover | 1914 | 73% | AvgLead / Displace / Accel (96%) | | WaveSurfer | 1873 | 72% | AvgLead / StopShot / Accel (86%) | ## Verdict Table | Gun | Best Use | Verdict | |-----|----------|---------| | **HeadOn** | Stationary / pattern bots | KEEP — reliable floor, over-selected | | **Linear** | Random movers | KEEP — under-selected despite 82% | | **Tsetlin** | Unknown | TUNE — 0 selection ticks ever; investigate | | **Circular** | Orbit-heavy bots | KEEP (marginal) | | **GuessFactor** | General | KEEP — underperforms vs expectation; tune bins | | **Pattern** | Pattern movers | TUNE — catastrophic vs OscillatorBot (9%, 1081 ticks); raise MinObs gate | | **AntiSurf** | — | DROP — 0% vhit every adversary including stationary; broken | | **WallBounce** | All types | KEEP — most consistent overall | | **Accel** | Pattern / wave bots | KEEP — avoid vs random (19% cliff) | | **StopShot** | All types | KEEP — top rates, chronically under-selected | | **Displace** | Pattern / wave bots | KEEP | | **AvgLead** | All types | KEEP — best all-rounder in the rack | | **DecayGF** | Wave / pattern bots | KEEP | | **KNN** | Pattern / wave bots | KEEP — improves with history | ## Top Actions 1. **Fix AntiSurf** — 0% vhit against SittingDuck means wrong angle computation, not just weak targeting. 2. **Raise Pattern's MinObsBeforeCompete** — 15 is too low; 1081 wasted ticks at 9% hit rate vs OscillatorBot. 3. **Re-run gauntlet** with `onBulletHit` fix to get clean per-gun real hit attribution. 4. **AvgLead** is the star gun — confirm it stays in the top selection tier. 5. **HeadOn selection dominance** is a selector bias problem, not a gun problem — add ±2% tiebreak randomisation.