Some checks failed
ci / check (push) Failing after 4s
Reported to ground-game as a CORRECTION to GROUND-RPT-0004, not a new result. Half of H1 was never measured: every game behind that verdict was played by bots that never attacked, and H1-B acts only on an uncancelled ATTACK at the stress gate. The rejection stands on H1-A, but 'H1-B does nothing' was never established and is false. Also carries the structural finding -- a module can be unreachable because of an aspect it does not name -- with an ask: should a module declare its reachability preconditions, so a consumer reports 'not reachable in this configuration' rather than a number that reads as a null result? Repeats the two unanswered items from RPT-0006: the competitive modes are weakly tested (no bot models a rival), and problem_stress.scoped cannot reach a decision in round one. Left uncommitted in their tree, as with every prior report. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
143 lines
5.7 KiB
Markdown
143 lines
5.7 KiB
Markdown
---
|
||
id: CB-WP-0050
|
||
kind: product
|
||
title: "Every configuration, faceted by aspect"
|
||
status: done
|
||
state_hub_workstream_id: "7d92daec-eb6a-4647-a1dc-5d374fdc9f0d"
|
||
---
|
||
|
||
# Purpose
|
||
|
||
```
|
||
structural tier S (a new panel; no rule, no state, no artifact
|
||
contract moved)
|
||
declared tier S
|
||
```
|
||
|
||
CB-RES-0010 §5.4: *"hold all aspects fixed, vary one."* The selector
|
||
(CB-WP-0048) made configurations selectable and the policies (CB-WP-0049)
|
||
made them judgeable. This measures them.
|
||
|
||
## Task: sweep the points, and say what could not be measured
|
||
|
||
```task
|
||
id: CB-WP-0050-T01
|
||
status: done
|
||
priority: high
|
||
state_hub_task_id: "c7ec2919-7a1e-4f49-b989-67bfb7d25d98"
|
||
```
|
||
|
||
**Controls:**
|
||
- **one module at a time first**, every other aspect held at its default,
|
||
so a row measures a module rather than a bundle;
|
||
- **profiles after**, where an interaction is the hypothesis — and a
|
||
single-module profile is skipped, because it is the row above;
|
||
- **nothing is omitted**: a module with no kernel path prints as such;
|
||
- **a module that never acted is reported UNMEASURED**, by name.
|
||
|
||
**Done 2026-08-08.** `make panels` gained `module-panel`.
|
||
|
||
## What it found
|
||
|
||
**1. `attack_relief.self_soothe_ge4` has never fired. Not once.**
|
||
|
||
Zero ATTACKs in every cell, at every seat band, under both bots. The
|
||
module acts only on an uncancelled ATTACK by a seat at Stress ≥ 4, and
|
||
`GreedyPolicy` ranks `Ground` at 100 when the gate bites 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**.
|
||
|
||
Filed as **F31, `unplayed`**. This also reaches backwards:
|
||
**CB-EV-0030's H1 verdict rests on its flat-pressure half alone**, since
|
||
H1's other half never had an opportunity in any of those games either.
|
||
|
||
**2. `problem_stress.scoped` is the only module with a measured effect.**
|
||
3p group success 85 → 60 (greedy) and 86 → 63 (module-aware); peak Stress
|
||
2 → 4. `problem_stress.flat_any_open` drives group success to **0** at
|
||
every seat band, which is the H1 rejection reproduced from the module
|
||
side rather than the package side.
|
||
|
||
**3. `scoped_plus_attack_soothe` is exactly `problem_stress.scoped`.**
|
||
Identical in every cell — necessarily, given (1). The first intentional
|
||
multi-aspect combination in the catalog **cannot currently be evaluated
|
||
as a combination**, and the panel says so on its own row rather than
|
||
letting the equality read as "no interaction".
|
||
|
||
## The defect the panel had, on its first run
|
||
|
||
It printed `85 / 86` for `attack_relief.self_soothe_ge4` — real-looking
|
||
numbers that invite the reading *"measured, no effect"*, when the truth
|
||
is that no seat ever created the precondition. **Its own docstring said
|
||
it would not do this**, which is the same shape as CB-WP-0046's wrong
|
||
reason for an open item: the claim was written before the behaviour was.
|
||
|
||
Two iterations to get the reporting honest:
|
||
|
||
- first, whole rows marked `never fired — unmeasured` — which **threw away
|
||
a real result**, because `h1`'s flat-pressure half fires in every game
|
||
and drives group success to 0;
|
||
- then, the **specific module** named, with the row's numbers kept:
|
||
`0 0 4 0 0 ← attack_relief.self_soothe_ge4 never fired: UNMEASURED`.
|
||
|
||
The numbers in such a row are real for the modules that did fire. Saying
|
||
which one did not is what stops the row being read as a verdict on all of
|
||
them.
|
||
|
||
## Task: F31's falsifier
|
||
|
||
```task
|
||
id: CB-WP-0050-T02
|
||
status: done
|
||
priority: high
|
||
```
|
||
|
||
`GateAttackPolicy` ranks ATTACK above GROUND at the stress gate and
|
||
delegates everything else. **A probe, not a better bot** — its win rate
|
||
is not a recommendation, and the panel's banner says so, because a
|
||
column that looks like a policy comparison will be read as one.
|
||
|
||
**Controls:**
|
||
- **it actually attacks, and at the gate** — asserted on real games, not
|
||
on the ranking: a rank of 110 proves an intention where the panel needs
|
||
an occurrence;
|
||
- **blind** (ADR-0023);
|
||
- **the probe's row decides "never fired"**, not the others — a module is
|
||
unreachable only if the seat built to reach it could not reach it
|
||
either.
|
||
|
||
**Done 2026-08-08.** F31 answered, in two parts.
|
||
|
||
**(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 +9 / +9 / +7 at 3/4/6p, and DARVO arming down
|
||
by a quarter to a half.
|
||
|
||
Stated as the conditional it is: *given seats that attack at the gate*.
|
||
The probe wins 12/100 where greedy wins 60/100 under the same module, so
|
||
this is not advice to attack and not evidence against F17.
|
||
|
||
**And it changes what we told ground-game about H1.** 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.
|
||
|
||
## Not done here
|
||
|
||
- **The panel measures SHARED GROUND only.** Mode × module is a
|
||
three-dimensional sweep and nothing yet says the modules behave the
|
||
same under the competitive modes — where, per CB-EV-0033, *who wins*
|
||
moves even when group success does not.
|
||
- ~~**ground-game has not been told about F31.**~~ Reported 2026-08-09 as
|
||
GROUND-RPT-0007, as a correction to GROUND-RPT-0004.
|
||
- **The scope term is inert at round-one positions** (CB-WP-0049 T04), so
|
||
`problem_stress.scoped`'s measured effect is driven by later rounds.
|
||
The panel does not report per-round effect, and that is where the
|
||
module actually lives.
|