clay-borg/workplans/CB-WP-0050-every-configuration-faceted-by-aspect.md

144 lines
5.7 KiB
Markdown
Raw Normal View History

CB-WP-0050: every configuration, faceted by aspect — and F31 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>
2026-08-09 01:45:53 +02:00
---
id: CB-WP-0050
kind: product
title: "Every configuration, faceted by aspect"
status: done
state_hub_workstream_id: "7d92daec-eb6a-4647-a1dc-5d374fdc9f0d"
CB-WP-0050: every configuration, faceted by aspect — and F31 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>
2026-08-09 01:45:53 +02:00
---
# 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"
CB-WP-0050: every configuration, faceted by aspect — and F31 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>
2026-08-09 01:45:53 +02:00
```
**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.
CB-WP-0050 T02: F31 falsified — the module is unreachable, then real 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>
2026-08-09 02:30:08 +02:00
## 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.
CB-WP-0050: every configuration, faceted by aspect — and F31 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>
2026-08-09 01:45:53 +02:00
## 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.
CB-WP-0050: every configuration, faceted by aspect — and F31 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>
2026-08-09 01:45:53 +02:00
- **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.