R-267: a guarded home for the first disabling blow
Another session verified R-266's measurement, agreed the frame was better than its own, and declined to publish it because the figure had no guarded lineage a doubter could re-derive. It was right, and the fix costs 0.7s of build time -- which is the number I should have checked before calling it a reading tool and not a guard. first-blood.mjs gains --update/--check and is now both the reader and the measurement of record; check-firstblood.mjs is a thin wrapper over it, the same shape as check-bestiary. Compares the recorded figures exactly, then asserts only what a page would claim: first blood lands within 5 points of even in the cut, and its swing exceeds the six-a-side line's by more than both noises. Recording it moved the swing from the scratch run's 43 to 40 against a seed-to-seed spread of 2.1 -- high by more than its own noise, which is the argument in miniature. update-readme's COUNT_WORD could not reach thirteen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
8e5a30a263
commit
ce1103ec0d
+55
-11
@@ -5831,26 +5831,70 @@ average blow takes a fighter out of the fight. Every disable removes an attacker
|
||||
thins the return fire, which makes the next disable likelier. Nothing pulls a fight back
|
||||
toward the middle once it has tipped, which is the whole of the bimodality.
|
||||
|
||||
**Measured, `tools/first-blood.mjs`, 2000 runs at seed 11:**
|
||||
**Measured, `tools/first-blood.mjs`, 2000 runs across three seeds:**
|
||||
|
||||
| first fighter out | share of fights | mean round | wipes among those |
|
||||
|---|---|---|---|
|
||||
| the party strikes first | 49.7% | 1.7 | **23.1%** |
|
||||
| the column strikes first | 50.3% | 1.7 | **66.5%** |
|
||||
| the party strikes first | 50.3% | 1.8 | **25.5%** |
|
||||
| the column strikes first | 49.7% | 1.8 | **65.5%** |
|
||||
|
||||
A true coin, settled in round two, worth **43 points of wipe rate**. Six against six of the
|
||||
column is the control: first blood still matters there and matters far less — 8.6% against
|
||||
22.4%, a 14-point swing, at mean round 1.3. One fighter is a sixth of that line and a
|
||||
A true coin, settled in round two, worth **40 points of wipe rate**. Six against six of the
|
||||
column is the control: first blood still matters there and matters far less — 7.8% against
|
||||
23.2%, a 15-point swing, at mean round 1.3. One fighter is a sixth of that line and a
|
||||
quarter of the cut, so the same blow compounds less. This is a property of the cut, which
|
||||
is what the histogram said by a different route.
|
||||
|
||||
*Figures above are the recorded artifact, not the scratch run this entry was first written
|
||||
from. That run was one seed and gave 49.7/23.1/66.5 and a swing of 43. Averaging three
|
||||
seeds moves it to 40, and the seed-to-seed spread of the swing is 2.1 — so the single-seed
|
||||
figure was high by more than its own noise, which is the argument for recording it rather
|
||||
than quoting it. See R-267.*
|
||||
|
||||
**Dominic should be read before anyone is handed him.** In both narrations he attacks at
|
||||
`vs 1` — four attempts in the seed 5 fight, all of them hopeless. The four-player cut is
|
||||
three effective attackers, not four, and a table that assigns Ashcroft to a player without
|
||||
saying so has quietly made the coin worse.
|
||||
|
||||
**`tools/first-blood.mjs` is a reading tool, not a guard.** It records nothing and no
|
||||
figure from it belongs on a generated page — the bestiary and the scenarios read guarded
|
||||
artifacts only. It is in the repo rather than in a scratch directory for one reason: the
|
||||
number above was quoted to another session, and R-265's lesson is that a number the
|
||||
person quoted it cannot re-run is a claim, not a result.
|
||||
**`tools/first-blood.mjs` was a reading tool and not a guard when this was written.**
|
||||
That was the right place to stop and the wrong place to stay — see R-267, which is the
|
||||
consequence of being told so.
|
||||
|
||||
## R-267 — the thirteenth guard, built because a peer refused to print the twelfth's number
|
||||
|
||||
R-266 measured why the four-player cut is bimodal and said plainly that the figure had no
|
||||
guarded home, so it should not reach a page. The session holding the scenario agreed and
|
||||
went further: it verified both configurations, said the frame was better than its own, and
|
||||
**still would not publish it**, because the numbers already in CLEAN GROUND come out of the
|
||||
guarded lineage and can be re-derived by a doubter while mine could not. It offered to
|
||||
reframe the paragraph the moment a guarded home existed.
|
||||
|
||||
That is the correct call and it is the whole reason this entry exists. The refusal was
|
||||
worth more than the finding.
|
||||
|
||||
**What it cost to fix: 0.7 seconds of build time.** That was the number I should have
|
||||
checked before writing "a reading tool, not a guard" as though it were a considered
|
||||
position. `check-focus` runs 1000 fights x 3 seeds x 47 creatures and takes 8.6s; this
|
||||
runs 2000 x 3 x 2 configurations and takes 0.7s. There was never a cost argument.
|
||||
|
||||
**Shape.** `tools/first-blood.mjs` gained `--update` and `--check` and is now both the
|
||||
reading tool and the measurement of record; `tools/check-firstblood.mjs` is a thin wrapper
|
||||
that spawns it, the same arrangement as `check-bestiary`/`bestiary.mjs`. The reader and
|
||||
the guard cannot disagree, because they are the same code path — which is the defect this
|
||||
whole sequence started from, one layer down.
|
||||
|
||||
**What it asserts, and deliberately no more.** The recorded figures are compared exactly,
|
||||
so any movement at all shows as drift. On top of that, two claims, both of which a page
|
||||
would actually make: first blood in the cut lands within 5 points of even, and the swing
|
||||
it is worth in the cut exceeds the swing in the six-a-side line by more than both
|
||||
samplings' noise. A guard that asserted the swing's exact size would fail on news rather
|
||||
than on error — R-261, which this suite has already learned once.
|
||||
|
||||
**Recording it changed the number, which is the argument in miniature.** The scratch run
|
||||
said the first blow was worth 43 points. Three seeds say 40, against a seed-to-seed spread
|
||||
of 2.1 — so the figure I sent another session was high by more than its own noise. It was
|
||||
not wrong enough to mislead anybody and it was wrong enough to print.
|
||||
|
||||
**`tools/update-readme.mjs` could not count to thirteen.** Its `COUNT_WORD` table stopped
|
||||
at twelve, which is exactly the hardcoded-list failure its own comment warns about two
|
||||
lines above, committed by the file that exists to prevent it. Extended to sixteen, which
|
||||
defers the same defect rather than curing it.
|
||||
|
||||
Reference in New Issue
Block a user