CB-REV-0001: the adversarial review, and it was not approvable
Some checks failed
ci / check (push) Failing after 4s
Some checks failed
ci / check (push) Failing after 4s
Thirteen challenges, five FATAL, all five conceded. Nothing had reached ground-game, which is the only reason this is a correction and not a retraction. The worst: `Reactive` was not "greedy with one preference changed". It differed in five, including SpendFreedom — ranked 95 unconditionally against greedy's `95 if gated else 0` — so the seat burned its Freedom token in round one of every game. A second change to the exact mechanism under study, and every number in CB-EV-0031 was measuring it. The pass claimed ADR-0018's one-varying-parameter discipline in its own workplan while violating it. GreedyPolicy::rank is now public and the policy delegates, overriding one match arm, so the control is structurally true. Withdrawn entirely: "H1-B suppresses DARVO in the attacker". Disabling H1-B under the corrected policy changes the arm count by exactly zero. The pass hedged the wrong variable — it disclaimed "the number 2" and defended "the direction", and the direction is what failed. The supporting inference was invalid anyway: final Stress cannot show who armed, because DarvoEnded resets the stage and REVERSE gives its owner -2. Corrected: criterion 1 was failed on the greedy column while the pass's own printed table showed 31-1000 arms in the other columns — the selective-column move, in the file that names it. "Peak Stress was 1" was a maximum over StressSet payloads, not held state (true: 2); the baseline game count was 1,600 not 3,200; and "a reckless policy plays identically to a careful one" is refuted by this repo's own rank-95 policy. Inert controls replaced, each verified red against the reviewer's own mutation: the baseline hash test compared two identically-constructed states (serde(skip) on variant left 57/57 green); the `unchanged:` test checked 3 of 7 entries and passed with SOLVE made illegal; H1-A's ordering and H1-B's OU-cancel path had no test at all. edition-check now covers catalog.yaml and rules_delta.yaml, whose digests CB-WP-0038 claimed and never recorded — the review found it and reported it unverified rather than absent, which was the right call. Still open: H1-B on the DARVO extra-Attack path is untested, regulation.rs still skips setup failures silently, and round-5 arms are counted though they can never act. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
38106791a6
commit
041c0e7c3e
9 changed files with 489 additions and 101 deletions
|
|
@ -323,7 +323,20 @@ impl Policy for RandomPolicy {
|
|||
pub struct GreedyPolicy;
|
||||
|
||||
impl GreedyPolicy {
|
||||
fn rank(state: &GroundState, seat: PlayerId, cmd: &GroundCommand) -> i32 {
|
||||
/// The ranking, **public so a variant policy can override exactly one
|
||||
/// arm and inherit the rest** (CB-WP-0039, after review).
|
||||
///
|
||||
/// It was private, so `regulation.rs` re-typed an abridged copy and
|
||||
/// called it "greedy with one preference changed". It differed in
|
||||
/// five places — including `SpendFreedom`, which the copy ranked 95
|
||||
/// unconditionally where this ranks it 0 unless the gate is biting,
|
||||
/// so the "reactive" seat burned its Freedom token in round one of
|
||||
/// every game. **A second change to the exact mechanism the pass was
|
||||
/// studying**, and every number in CB-EV-0031 was measuring it.
|
||||
///
|
||||
/// Making this callable removes the possibility rather than testing
|
||||
/// for it: a caller that delegates cannot drift.
|
||||
pub fn rank(state: &GroundState, seat: PlayerId, cmd: &GroundCommand) -> i32 {
|
||||
let gated = state
|
||||
.players
|
||||
.get(&seat)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue