# ─────────────────────────────────────────────────────────────────────────────
# arms_gun_b4.txt — PHASE 2 BATCH 2 of the GUN campaign: higher-power
# confirmation of the Batch-1 `len6` wins signal, on the wider 33-opponent
# panel, with the bearing-invariant `rad_offset` as a structural control.
#
# Format:  name | ENV=value ENV=value | label
#
# ONE frozen binary (tournament_run.sh builds it from `git archive HEAD`); every
# arm below differs ONLY by its env dict. No per-arm rebuild.
#
# MOVEMENT IS PINNED IN EVERY ARM (`TR_MOVEMENT=strafe`) — same rationale as
# Batch 1 (movement-default / concurrent-job hygiene + analyzer liveness rule).
#
# Why `rad_offset` is here: job j99 proved exactly that the radial correction
# changes only the aim DISTANCE and leaves the BEARING untouched, so it cannot
# move the real shot direction; its live effect was a tie (+0.28 pp, p=0.62). In
# Batch 1 it nonetheless showed +0.42 wins/run (sign test p=0.065) — and so did
# ALL five arms, including this structural no-op. If it repeats the nominal wins
# gain on 33 opponents, the Batch-1 wins signal is a session-level reference
# anomaly rather than a gun effect.
# ─────────────────────────────────────────────────────────────────────────────

# 1. REFERENCE. The shipped `onlyPattern` rack, movement pinned, no shape env.
pattern | TR_MOVEMENT=strafe | shipped onlyPattern rack (REFERENCE)

# 2. The Batch-1 candidate: 6-tick match key (+0.49 wins/run on 15 opponents).
len6 | TR_MOVEMENT=strafe TR_PATTERN_LEN=6 | match key = 6 ticks (Batch-1 candidate)

# 3. Dose-response on the key-length axis.
len16 | TR_MOVEMENT=strafe TR_PATTERN_LEN=16 | match key = 16 ticks

# 4. STRUCTURAL POSITIVE CONTROL: bearing-invariant radial knob; cannot change
#    the real aim direction (job j99), so a hits/wins gain here is an artifact.
rad_offset | TR_MOVEMENT=strafe TR_PATTERN_RAD_OFFSET=-20 | structural control: aim short 20 px
