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
|
|
@ -56,6 +56,7 @@ kinds, states and metrics: [`GameDesign.md`](GameDesign.md). Reported by
|
|||
| F26 | inert | ruled | `crates/cb-render-html/src/lib.rs::a_scoped_table_says_what_a_scope_does` | counterexample | 2026-08-08 | ground-game |
|
||||
| F27 | unplayed | reported | `games/ground/examples/scenario-panel.rs` | counterexample | 2026-08-08 | clay-borg |
|
||||
| F29 | inconsistent | applied | `games_ground::edition::card_text_tests::which_scenarios_are_mechanically_distinct` | counterexample | 2026-08-08 | ground-game |
|
||||
| F31 | unplayed | raised | `games/ground/examples/module-panel.rs` | counterexample | 2026-08-08 | clay-borg |
|
||||
| F30 | degenerate | ruled | `games/ground/examples/scenario-panel.rs` | counterexample | 2026-08-08 | ground-game |
|
||||
| F28 | underdetermined | applied | `games_ground::tests::the_mastery_rating_and_the_shared_score_count_different_things` | counterexample | 2026-08-08 | ground-game |
|
||||
|
||||
|
|
@ -66,6 +67,34 @@ Prose for **closed** findings (withdrawn or applied) lives in
|
|||
are the whole register and `make design` reads them from here.
|
||||
|
||||
|
||||
- **F31 — `attack_relief.self_soothe_ge4` cannot fire, so it has never
|
||||
been measured.** `module-panel` records **zero ATTACKs in every cell**,
|
||||
at every seat band, under both a mode-blind and a module-aware bot. The
|
||||
module only acts on an uncancelled ATTACK by a seat at Stress ≥ 4, so
|
||||
it has had no opportunity in any game this repo has run — including
|
||||
every game behind CB-EV-0030's H1 measurement, where it was half the
|
||||
package.
|
||||
|
||||
The mechanism is legible: `GreedyPolicy` ranks `Ground` at 100 when the
|
||||
stress gate bites and `Attack` at 10, so at exactly the position where
|
||||
self-soothe would pay, GROUND wins the comparison.
|
||||
`ModuleAwarePolicy` raises ATTACK by 55 at the gate and **that is still
|
||||
not enough**, which is a fact about the ranking rather than about the
|
||||
game.
|
||||
|
||||
**`unplayed`, emphatically not `inert`.** The kernel implements the
|
||||
module correctly; nothing has ever given it an opportunity. Reporting
|
||||
it as a null result is the error the panel now refuses to make: its
|
||||
row shows real numbers with `← never fired: UNMEASURED` attached,
|
||||
because the numbers belong to the *other* modules in the row.
|
||||
|
||||
**Sensitivity:** vary only the ATTACK rank. The falsifier is a policy
|
||||
that attacks at the gate — if group success then moves under
|
||||
`attack_relief.self_soothe_ge4` and not under the baseline, the module
|
||||
is real and only our seats were hiding it. Until such a seat exists,
|
||||
**no claim about this module is supported in either direction**, and
|
||||
CB-EV-0030's H1 verdict rests on its flat-pressure half alone.
|
||||
|
||||
- **F30 — SCN_04 is materially harder at 2 players.** 52/100 group
|
||||
success against 67 and 73, with **every other parameter held by the
|
||||
edition itself**: same deal shape, same 6 available points, same
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue