Files
RingBRP/tools/focus-baseline.json
T
slaguru666andClaude Opus 5 8627fa3536 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>
2026-09-13 01:11:41 +01:00

304 lines
5.0 KiB
JSON

{
"note": "Generated by tools/check-focus.mjs --update. Do not edit by hand.",
"party": [
"pc_holloway",
"pc_okonkwo",
"pc_nkemdirim",
"pc_ferriby"
],
"runs": 1000,
"seeds": [
11,
4242,
90210
],
"seedMode": "per-creature",
"measurableBand": [
15,
85
],
"creatures": {
"quiet_neighbours_npc": {
"n": 6,
"spread": 47,
"focus": 54.9,
"gain": 7.9,
"noise": 2.7
},
"keepers": {
"n": 5,
"spread": 60,
"focus": 69.8,
"gain": 9.8,
"noise": 2.7
},
"cleaner": {
"n": 6,
"spread": 59.4,
"focus": 70.1,
"gain": 10.7,
"noise": 1.4
},
"cleaner_marksman": {
"n": 5,
"spread": 51.8,
"focus": 61.9,
"gain": 10.1,
"noise": 0.5
},
"revenant": {
"n": 3,
"spread": 61.9,
"focus": 75.4,
"gain": 13.5,
"noise": 2.2
},
"duplicate": {
"n": 5,
"spread": 60.5,
"focus": 69.7,
"gain": 9.2,
"noise": 2.4
},
"barghest": {
"n": 3,
"spread": 24.8,
"focus": 36.5,
"gain": 11.8,
"noise": 3.5
},
"kelpie": {
"n": 3,
"spread": 52,
"focus": 67.1,
"gain": 15.1,
"noise": 2.8
},
"redcap": {
"n": 3,
"spread": 31.1,
"focus": 41.9,
"gain": 10.9,
"noise": 1.8
},
"boggart": {
"n": 2,
"pinned": 100
},
"churchgrim": {
"n": 3,
"spread": 43.7,
"focus": 55.7,
"gain": 12,
"noise": 2.1
},
"supporter": {
"n": 2,
"pinned": 4
},
"hollow_man": {
"n": 6,
"pinned": 91.8
},
"the_tenant": {
"n": 2,
"pinned": 100
},
"the_choir": {
"n": 6,
"pinned": 99.4
},
"precedent": {
"n": 3,
"spread": 61,
"focus": 72.2,
"gain": 11.2,
"noise": 0.7
},
"carrion_file": {
"n": 4,
"spread": 45.2,
"focus": 57.3,
"gain": 12.1,
"noise": 1.3
},
"the_understudy": {
"n": 5,
"spread": 61.5,
"focus": 73,
"gain": 11.5,
"noise": 6.3
},
"surveyor": {
"n": 2,
"spread": 28.8,
"focus": 34.4,
"gain": 5.6,
"noise": 1.9
},
"quarantine_unit": {
"n": 2,
"pinned": 0.2
},
"cuckoo_array": {
"n": 2,
"spread": 58.6,
"focus": 66.2,
"gain": 7.7,
"noise": 3.8
},
"long_walker": {
"n": 2,
"pinned": 0.1
},
"auditor": {
"n": 4,
"spread": 49.4,
"focus": 62.3,
"gain": 12.9,
"noise": 2.5
},
"washer_ford": {
"n": 2,
"pinned": 100
},
"lantern_man": {
"n": 2,
"pinned": 100
},
"grindylow": {
"n": 4,
"spread": 30.5,
"focus": 42.1,
"gain": 11.6,
"noise": 1.5
},
"knockers": {
"n": 6,
"pinned": 99.7
},
"spriggan": {
"n": 3,
"spread": 42.5,
"focus": 55.4,
"gain": 12.9,
"noise": 5.7
},
"nuckelavee": {
"n": 2,
"pinned": 8.2
},
"hedley_kow": {
"n": 6,
"pinned": 97.8
},
"apple_man": {
"n": 2,
"spread": 36.6,
"focus": 42.1,
"gain": 5.5,
"noise": 0.8
},
"the_committee": {
"n": 2,
"pinned": 100
},
"night_registry": {
"n": 4,
"spread": 63.1,
"focus": 73.9,
"gain": 10.7,
"noise": 2.5
},
"the_locum": {
"n": 5,
"spread": 49.2,
"focus": 63.1,
"gain": 13.9,
"noise": 1.9
},
"lost_property": {
"n": 2,
"spread": 54.3,
"focus": 63.2,
"gain": 8.9,
"noise": 1.3
},
"the_minutes": {
"n": 2,
"pinned": 100
},
"waiting_room": {
"n": 3,
"spread": 63.4,
"focus": 70.8,
"gain": 7.4,
"noise": 0.3
},
"the_predecessor": {
"n": 4,
"spread": 58.6,
"focus": 71,
"gain": 12.5,
"noise": 5.1
},
"switchboard": {
"n": 6,
"pinned": 86.9
},
"the_census": {
"n": 3,
"spread": 64.3,
"focus": 76.5,
"gain": 12.1,
"noise": 1
},
"the_courier": {
"n": 2,
"spread": 17.8,
"focus": 25,
"gain": 7.2,
"noise": 1.8
},
"the_relay": {
"n": 2,
"spread": 52.7,
"focus": 58.9,
"gain": 6.2,
"noise": 2.8
},
"the_stanchion": {
"n": 2,
"pinned": 5.8
},
"the_yield": {
"n": 2,
"spread": 46.8,
"focus": 57.8,
"gain": 11,
"noise": 1.5
},
"the_overwriter": {
"n": 3,
"spread": 64.1,
"focus": 72.7,
"gain": 8.6,
"noise": 1.9
},
"the_arrears": {
"n": 2,
"spread": 14.7,
"focus": 21,
"gain": 6.3,
"noise": 1.5
},
"the_margin": {
"n": 5,
"spread": 45.3,
"focus": 59.3,
"gain": 14.1,
"noise": 2.3
}
}
}