One generator, so a citation names one fight (R-265)

tools/playthrough.mjs exists to show a reader why a measured number is what it is. I cited
it to another session — read seed 2, see the wipe the 45% row is made of — and the
reproduction failed in front of them. They reported different outcomes at both seeds and
guessed the cause correctly from outside: the two tools were not drawing from the same
stream.

They were not. simulate.mjs used a private mulberry32 makeRng; playthrough.mjs had its own
LCG written to look like it. Both deterministic, both reproducible alone, and "seed 2"
named a different fight in each — which breaks the only thing the tool is for. Its own
comment claimed a seed here names the same fight there. check-focus carried a third copy of
that LCG, so the two guards described the same game with different dice.

makeRng is exported and both files use it. A playthrough seed is now exactly the first
fight of simulate.mjs --seed <n>: --runs 1 --seed 2 and the playthrough give 9 rounds, 4 of
4 down, 1 dead, both.

The other half was my citation rather than the code: the command I sent omitted --mode, so
it plays both targeting arms and prints two fights. They read the last line, I quoted the
first. The summary line now names the arm.

check-focus re-recorded under the shared stream; figures move a point or two. What it buys
is that the bimodality analysis now reproduces the published means exactly — 2.31, 3.03,
0.40, 0.42 against the four rows CLEAN GROUND publishes. Under the old LCG it agreed to
within a decimal, which looked like corroboration and was two experiments landing near each
other.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
slaguru666
2026-09-13 01:11:41 +01:00
co-authored by Claude Opus 5
parent 796bb7df73
commit 8627fa3536
8 changed files with 201 additions and 146 deletions
+44
View File
@@ -5765,3 +5765,47 @@ than the page needs to: the bestiary prints the above-noise COUNT from the artif
cannot overstate it however it moves, and what the page actually asserts outright is that
concentrating fire helps. The guard now checks exactly that, and the page rewrote itself
to "in 28 of them" on regeneration.
## R-265 — two generators, so a citation named two different fights
`tools/playthrough.mjs` exists to show a reader WHY a measured number is what it is. I
cited it to another session — read seed 2, see the wipe the 45% row is made of — and the
reproduction failed in front of them. They reported different outcomes at both seeds and
guessed the cause correctly from the outside: the two tools were not drawing from the same
stream.
They were not. `simulate.mjs` used a private mulberry32 `makeRng`; `playthrough.mjs` had
its own linear congruential generator, written to look like it. Both deterministic, both
reproducible on their own, and **"seed 2" named a different fight in each** — which
quietly breaks the only thing the tool is for. Its own comment claimed "a seed here names
the same fight there". `check-focus` had a third copy of the same LCG, so the two lethality
guards described the same game with different dice.
`makeRng` is exported, and both files use it. A playthrough seed is now exactly the first
fight of `simulate.mjs --seed <n>`: verified by running `--runs 1 --seed 2` and the
playthrough side by side — 9 rounds, 4 of 4 down, 1 dead, both.
**The other half was my citation, not the code.** The command I sent omitted `--mode`, so
it plays BOTH targeting arms and prints two fights; they read the last line, I quoted the
first. The summary line now names the arm — `→ [random] PARTY WIPED …` — so a quotation
cannot be ambiguous.
**What it cost.** check-focus re-recorded under the shared stream: 31 of 47 measurable
again, and the numbers move by a point or two each. What it buys is that every figure in
the focus baseline is now drawn from the same dice as the lethality baseline, and the
bimodality analysis below reproduces the published means **exactly** — 2.31, 3.03, 0.40 and
0.42 of 4 or 6 down, against the four rows CLEAN GROUND publishes. Under the old LCG it
agreed to within a decimal, which looked like corroboration and was really two different
experiments landing near each other.
**The finding that started it survives, and is now checkable.** The four-player cut against
three of the column is bimodal: 23.1% of fights end with nobody down, 45.0% with everybody
down, and 11% land on the published mean of 2.31. Six players against six of the column is
not bimodal at all — 10 to 18% at every outcome — so this is a property of the cut rather
than of the creature. The mechanism is a race: put one of the three down inside five rounds
and the wipe rate falls from 58.5% to 19.7%; put down two and it is zero in 2000 fights.
68% of fights reach round five with none of them down.
**The lesson is the one this log keeps recording, one layer out.** A number that cannot be
reproduced is a claim, whoever holds it. It was caught because another session tried the
citation rather than trusting it, which is exactly what a citation is for.