GateAttackPolicy ranks ATTACK above GROUND at the stress gate and
delegates everything else. A PROBE, not a better bot: it wins 12/100
where greedy wins 60/100 under the same module, and the panel's banner
says so, because a column that looks like a policy comparison will be
read as one.
(a) THE MODULE IS UNREACHABLE IN THE PRINTED GAME. Selected alone it
still never fires: peak Stress never exceeds 2, so the gate never bites
and no ATTACK is ever gated. A module can be unreachable because of an
aspect it does not name -- attack_relief needs a problem_stress module
before it can act at all, and nothing in its own declaration says so.
(b) ONCE REACHABLE IT IS REAL. Holding the probe fixed and varying only
the module: group wins 12->21, 19->28, 50->57 at 3/4/6p, and DARVO arms
299->221, 294->213, 334->164. Under flat pressure the same shape appears
in DARVO alone: h1 arms 200 against flat_any_open's 300/400/600.
Stated as the conditional it is: GIVEN seats that attack at the gate.
Not advice to attack, and not evidence against F17.
AND IT CHANGES WHAT WE TOLD GROUND-GAME. CB-EV-0030 rejected H1 with
policies that never attacked, so H1-B was inert for every game behind
that verdict. The rejection stands on flat pressure alone -- wins are 0
either way -- but "H1-B does nothing" was never established and is now
known to be false. We owe them that correction.
Sensitivity: vary only the ATTACK rank. At 10 (greedy) and +55
(module-aware) the module never fires; at 110 it fires in every game.
Nothing about the module changed -- only whether any seat gave it a turn.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
module-panel sweeps points in aspect space the way scenario-panel sweeps
boards: one module at a time with every other aspect held, then the
profiles where an interaction is the hypothesis.
F31: attack_relief.self_soothe_ge4 HAS NEVER FIRED. Zero ATTACKs in
every cell, every seat band, both bots. The module acts only on an
uncancelled ATTACK by a seat at Stress >= 4, and greedy ranks Ground 100
at the gate against Attack's 10 -- so at exactly the position where
self-soothe would pay, GROUND wins. ModuleAwarePolicy adds 55 and that
is still not enough. `unplayed`, not `inert`: the kernel implements it
correctly and nothing has ever given it an opportunity.
This reaches backwards: CB-EV-0030's H1 verdict rests on its
flat-pressure half alone, because H1's other half never had an
opportunity in those games either.
Also: problem_stress.scoped is the only module with a measured effect
(3p 85->60 greedy, 86->63 module-aware, peak Stress 2->4);
flat_any_open drives group success to 0 at every band, reproducing the
H1 rejection from the module side; and scoped_plus_attack_soothe is
EXACTLY scoped alone -- necessarily, given F31 -- so the catalog's first
intentional multi-aspect combination cannot currently be evaluated as a
combination.
THE PANEL'S OWN DEFECT, first run: it printed 85/86 for a module that
never fired -- real-looking numbers inviting "measured, no effect" when
no seat ever created the precondition. Its docstring already said it
would not do that; the claim was written before the behaviour was.
First fix marked whole rows unmeasured, which threw away h1's real
flat-pressure result; the shipped fix names the specific module and
keeps the row's numbers, which are real for the modules that did fire.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>