CB-REV-0003: round 3, and three of four FATAL came from round 2's fixes
Some checks failed
ci / check (push) Failing after 3s
Some checks failed
ci / check (push) Failing after 3s
The pattern is now measured over three rounds: 5 fatal, then 3 (2 from the previous round's corrections), then 4 (3 from them). The corrections are not getting safer. FATAL 1: round 2's short-cell assertion went into regulation.rs only. attack-value.rs — which produced every number in CB-EV-0030's DARVO table — still just warned, and the gate registered to close the finding claimed the property for both. FATAL 2, the sharpest of the three rounds: counting games proves they STARTED. Stopping the engine after one round gives 200 games, all-zero columns and exit 0 — byte for byte the signature CB-EV-0030 says the instrumentation distinguishes from a real result. Both harnesses now require every counted game to have reached an outcome over five rounds. FATAL 3: round 2's `.csv` filter was applied to all three loops, so catalog.yaml and rules_delta.yaml — whose missing digests were round 1's finding — were recorded and then never compared, and never checked against upstream at all. Only the parser loop filters now. FATAL 4: five of six tiebreak comparators had no coverage. GR-E04's tiebreak never executes in any scenario. All four are now covered and mutation-verified; the Blame key needed compensating claims to be reachable at all, since Blame also lowers the coalition score. SERIOUS: "peak held" computed the same number as "peak assigned" for every possible input — the real gap was that START_STRESS was an unchecked constant, now read off the dealt state; cadence="none" was a pure loophole, removed; sibling discovery swapped a hand-written list for hand-written globs and missed metadata.json and VARIANT.md, both named in the package's own changed_files — now walked, and it found them immediately; and "~72,000 games" was unsourced, make panels runs 17,600. Also separated two kinds of number that were presented alike: seats×games is invariant, 363 and 29 vary 7.1%-11.5% across samples. Round 4 owed. The conclusion is not that the work is nearly right — it is that author-made corrections to measurement work should be assumed defective until a fresh reader has attacked them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
feb68027f9
commit
c4a8a227c0
9 changed files with 386 additions and 57 deletions
|
|
@ -143,12 +143,18 @@ takes the **clamp** at 5 to collapse a gap and change who wins.
|
|||
|
||||
**Its impact was claimed and never measured, and the measurement is
|
||||
zero** (round 2, #5). This file said the pressure was invisible to *"the
|
||||
two modes CB-EV-0030 reports on"* without checking. The reviewer ran
|
||||
~72,000 games across all three modes with a divergence detector and found
|
||||
**no divergence at all**; `attack-value`'s output is byte-identical with
|
||||
the fix and without it. **The defect is real in principle and its only
|
||||
witness is a hand-constructed board.** It is worth fixing and it changed
|
||||
nothing that has been reported.
|
||||
two modes CB-EV-0030 reports on"* without checking. Reverting the fix
|
||||
leaves `attack-value`'s output **byte-identical across all 24 cells and
|
||||
all three modes**, including the two whose `won` column reads through the
|
||||
tiebreak. **The defect is real in principle and its only witness is a
|
||||
hand-constructed board.**
|
||||
|
||||
**The sample size quoted here was "~72,000 games" and was not
|
||||
derivable from anything in this repo** (round 3, #9). `make panels` runs
|
||||
**17,600**: `attack-value` is 2 variants × 3 modes × 3 policies × 4 seat
|
||||
counts × 200 = 14,400, and `regulation` is 2 × 4 × 2 × 200 = 3,200. The
|
||||
figure was adopted from a reviewer's message and never re-derived — in
|
||||
the file whose whole correction history is about exactly that.
|
||||
|
||||
**Inert arms, and a second wrong-subject error caught on the way.** A
|
||||
DARVO arm at the End of Round 5 can never advance a stage — `GameEnded`
|
||||
|
|
@ -162,19 +168,32 @@ follows immediately — and ground-game's criterion 1 is about DARVO
|
|||
| 4p | 800 | 0 |
|
||||
| 6p | 1200 | 0 |
|
||||
|
||||
**Two kinds of number are in that table and this file did not distinguish
|
||||
them** (round 3, #10). `600 / 800 / 1200` is **exactly `seats × games`**
|
||||
and holds on every sample tried. `363` and `29` are **sample-specific**:
|
||||
across four disjoint windows the 2p arms run 354–366 and the inert share
|
||||
runs **7.1%–11.5%**. So "92% of arms at 2p are live" is a fact about seeds
|
||||
`0..200`, not about the game — it reads 88.5% elsewhere.
|
||||
|
||||
The same applies to the baseline win counts quoted throughout
|
||||
(`132/165/190/200`): the *identity* of greedy and reactive under baseline
|
||||
holds on every sample, the **digits do not**.
|
||||
|
||||
**The first version of that metric was wrong and equalled `darvo` in
|
||||
every cell**, because it tested `g.rounds >= 5` — a property of the
|
||||
*game*, not of the *event*. Every arm in every completed game was marked
|
||||
inert, which briefly looked like "criterion 1 is not met after all". An
|
||||
arm is inert when no `RoundEnded` follows it.
|
||||
|
||||
**29-of-363 was independently confirmed twice**, and the citation for it
|
||||
was wrong the first time (round 2, #6): this file credited
|
||||
`CB-REV-0001`, which does not contain the figure. Round 1's reviewer *did*
|
||||
report it — 29 of 363 at 2p, 8% — but only in its message, and it was
|
||||
never transcribed into the review file. **The record is now corrected
|
||||
there.** Round 2 re-derived it independently, by a different definition
|
||||
(no later DARVO event names that player), and agrees in every cell.
|
||||
**The 29-of-363 citation has now been wrong twice and is stated plainly
|
||||
here.** Round 2 found it credited to `CB-REV-0001`, which did not contain
|
||||
the figure; round 1's reviewer *had* reported it, in its message only.
|
||||
Round 3 found the remaining problem (#10, #11): both "independent
|
||||
confirmations" used **seeds 0..200**, so what was confirmed twice is the
|
||||
**definition**, not the figure — and whether round 1's `StrictReactive`
|
||||
was the corrected one-arm policy or the five-difference one **cannot be
|
||||
determined from anything in this repo**, because that reviewer's code was
|
||||
never kept. Treat 29/363 as one sample of a quantity that varies.
|
||||
|
||||
**Criterion 1 stands as met**: 92% of arms at 2p and all of them above are
|
||||
live.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue