CB-WP-0050: every configuration, faceted by aspect — and F31
Some checks failed
ci / check (push) Failing after 4s
Some checks failed
ci / check (push) Failing after 4s
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>
This commit is contained in:
parent
3d4818b492
commit
3f2ba2ec5d
4 changed files with 425 additions and 0 deletions
|
|
@ -0,0 +1,98 @@
|
|||
---
|
||||
id: CB-WP-0050
|
||||
kind: product
|
||||
title: "Every configuration, faceted by aspect"
|
||||
status: done
|
||||
---
|
||||
|
||||
# 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
|
||||
```
|
||||
|
||||
**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.
|
||||
|
||||
## 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.
|
||||
- **F31 has no falsifier running.** A seat that attacks at the gate would
|
||||
settle whether `attack_relief.self_soothe_ge4` is real or merely
|
||||
unreachable; until one exists, no claim about that module is supported
|
||||
in either direction.
|
||||
- **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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue