HALLPASSResearch Play the game

The lab

How the game gets measured.

The simulation is deterministic: the same seed, inputs and frame times produce the same night. That lets two harnesses written independently, one by Claude and one by Codex, replay exactly the same sixteen nights and compare results. Findings go into a ledger that is only ever appended to, and this page is generated from it.

Activity

Experiments per day, Aug 30 to Sep 17.

One manifest per experiment, named by date. The quiet stretches are days the game itself was moving and the lab waited for a clean simulation surface.

  1. 76
  2. 66
  3. 66
  4. 13
  5. 14
  6. 67
  7. 95
  8. 6
  9. 3
  10. 22

Who found what

Findings by source and status.

The playtest loop mints I-001 to I-399, the tuner I-400 to I-499, Codex I-500 and up. Open means measured once and not yet reproduced on a second seed bank.

Acceptance gates

A finding enters the ledger only if it clears all six.

  1. n of at least 16 per cell from a named seed bank, and at least 64 for any novice claim about a continuous metric. Novice cells are bimodal: a sixteen-seed win rate at skill 0.25 can land anywhere between 13 and 56 percent.
  2. Both skill levels, 0.25 novice and 0.8 competent, unless the claim is explicitly about one. Most balance mistakes are visible at one skill and invisible at the other.
  3. A clean sim surface. A view edit does not invalidate a measurement; a change to the sim's import closure does.
  4. The sim commit pinned in the manifest, not just HEAD.
  5. The effect stated with its size. "Win rate fell" is not a finding. "Win rate fell 62 to 38 percent at skill 0.8, n 16" is.
  6. A rerun on a second bank or second commit agrees before status moves to Validated. One measurement is Open, no matter how clean.

A finding that fails a gate still gets a manifest. Negative and inconclusive results are the cheapest thing to lose and the most expensive to rediscover. It just does not get promoted.

Addictiveness heuristics

Every experiment is judged against these ten.

They come from the lab protocol. When a measurement and a heuristic disagree, the disagreement itself is written up as the finding.

  1. 1
    Reward drip

    First level-up under 30 seconds; no drought over 90 seconds before the pre-bell ramp. Droughts are where phones get put down.

  2. 2
    Threat pulse

    A good run has two or more near-misses. A win where health never fell below 70% was never in danger.

  3. 3
    Dead air

    Under 10% of windows.

  4. 4
    The ladder points down before up

    A stalled player drops a period, gets paid, buys power, comes back. Fresh-save FINAL stays near zero; perk-invested competent FINAL sits around half.

  5. 5
    The energy band

    Judged with a full kit only: 35% to 65% average means the specials pool is being spent; above 80% means nothing is spending it.

  6. 6
    Deaths must be narratable

    FINAL deaths should cluster near the bell or at a named boss, never at an anonymous mid-night wall.

  7. 7
    No dominant choice

    No upgrade, character, domain kit or card may be a win-rate outlier above 15 points at equal skill.

  8. 8
    The quickie contract

    QUIZ is winnable but score-variable; its replay hook is chasing stars, not surviving.

  9. 9
    The sink contract

    Long sessions chain because each run banks visible permanent progress and leaves something concrete to come back for.

  10. 10
    The push-on power curve

    A carried build must not outgrow the night. Fails when threat goes flat for two stages, or when power outruns the grades while the clear rate stays above 85%.

Promoted to the punchlist

What the lab escalated to a human.

Only a validated finding can be promoted into the development punchlist. These are the ones that were.

Findings index

227 findings, as written.

Claims are quoted word for word from the ledger, shorthand included. Numbering: I-001 to I-399 is the playtest loop, I-400 to I-499 the tuner, I-500 and up is Codex.

IdStatusClaimHeuristicEvidence
I-001VALIDATEDQUIZ threat curve is flat at every skill, not just for competent players8), but—
I-003VALIDATEDcompetent threat curve is flat across the whole ladder, not just QUIZ—2026-08-30-claude-curves-midterm
I-004VALIDATEDnovice deaths pile into an anonymous mid-night wall——
I-006VALIDATEDfresh-save FINAL crosses 50% win between skill 0.5 and 0.6; the ceiling is soft at any calibration—2026-08-30-claude-skill-calibration-final
I-009VALIDATEDthe investment step is at skill 0.5, not 0.6; the "+31 at 0.6" was a single-bank artifact—2026-08-30-claude-2026-08-30-claude-2bank-perk-high-final
I-010VALIDATEDfront-loading perk ranks fixes the dead zone exactly where the ladder needs it—2026-08-30-claude-frontload-perk-mid-final-a
I-011OPENthe mid-night wall has a name; and nobody ever almost-reaches dawn—2026-08-30-claude-death-autopsy-final-midterm
I-012VALIDATEDbare character kits span 25%→97% win rate at equal skill; yui is the only novice rescue ever measured——
I-013VALIDATEDno headless lab run had ever cast an elective; fixed at `c9fbe18`—2026-08-30-claude-rebaseline-c9fbe18-final
I-015VALIDATEDfocus and regen are dominant upgrade picks, step is a trap everywhere; the pool has a 69-point policy spread—2026-08-30-claude-upgrade-dominance-06
I-017REJECTEDthe "domain engine" was a single-bank artifact, and the freeze is not the mechanism—2026-08-30-claude-i017-domain-freeze
I-018VALIDATEDa 2-club is the field-time-weighted MIXTURE of its members; a mixed-strength club dilutes the stronger player—2026-08-30-claude-i018-club-dilution
I-019VALIDATEDn=16 is far too weak at novice, and novice MEDIANS are unmeasurable there; the cause is bimodality—2026-08-30-claude-i019-novice-variance
I-020OPENnovice yui is a coin flip, and that may be a feature—2026-08-30-claude-i019-novice-variance
I-021VALIDATEDthe iframe tune moved the FINAL ceiling 81% → 47%, the largest effect the lab has measured—2026-08-30-claude-rebaseline-246f428
I-022OPENthe tune made competent FINAL bimodal: the top of the ladder now has real uncertainty—2026-08-30-claude-rebaseline-246f428
I-023VALIDATEDthe iframe tune largely fixed I-011: deaths are late and named for competent players, still mid-night for novi—2026-08-30-claude-i023-death-autopsy-postiframe
I-024VALIDATEDthe novice wall is NOT the boss: it is time-locked at ~215s and three separate levers do not move it—2026-08-30-claude-i024-novice-wall-not-the-boss
I-025VALIDATEDthere is no wall EVENT: 88% of novice damage is husk + grub contact, and the intake curve is smooth—2026-08-30-claude-i025-what-kills-novices
I-026VALIDATEDthe husk knob moves the novice wall, but it is SHARED and both settings overshoot competent—2026-08-30-claude-i026-husk-threshold
I-027VALIDATEDthe perk track is not a novice-only axis either: a flat power grant rewards whoever already survives—2026-08-30-claude-i027-frontload-remeasure
I-028VALIDATEDthe valve produces the best engagement numbers ever recorded here, and "novice-targeted by construction" is FA—2026-08-31-claude-i028-recovery-valve-sketch
I-029VALIDATEDa TIME-GATED valve is containable: the first change measured that improves engagement without moving win rates—2026-08-31-claude-i029-valve-time-gate
I-030VALIDATEDthe valve confirms across characters, except it amplifies the one outlier the ledger already had—2026-08-31-claude-i030-valve-confirm
I-031VALIDATEDsolo play is bit-for-bit unaffected by the LINE CHANGE, so every solo baseline carries forward—2026-08-31-claude-linechange-solo-final-carryforward
I-032OPENthe lab cannot measure the LINE CHANGE, because the bot cannot play it——
I-033OPENtaught to rotate, the club beats its parts for the first time; the free entrance alone is inert——
I-034VALIDATEDan EQUAL club is break-even with its best solo member (heading corrected at iteration 44; the original "the LI—2026-08-31-claude-solo-ren-elective-9730eeb
I-035OPENthe LINE CHANGE has two opposite characters, and on a high-pressure map it is the first sighting of I-007's wh——
I-036VALIDATEDthe yui+sora trap survives the LINE CHANGE and is the lab's largest standing heuristic-7 violation7's 15-point tolerance, roughl—
I-037OPENthe ten-room ladder is not a ramp: room 1 is gentle, rooms 2–10 all open near full pressure——
I-038OPENthe gold star is now effectively reachable only in room 1, inverting the reward ladder——
I-039OPENthe domain is a two-minute entitlement with no gradient across the night, and it is the common verb rather tha—2026-08-31-claude-ladder-yard-high800
I-040OPENthe hour-1→hour-2 cliff is an INTERACTION, not a lever; I-037's roster hypothesis was about a third right——
I-041VALIDATEDthe near-miss detector is sound; heuristic 2's THRESHOLD is what does not match the game2's THRESHOLD is what does not match the—
I-042OPENboard #16 baseline: domains take ~half of all kills, the first one still lands at ~100s everywhere, and the la——
I-043OPENthe ten-room night is a SAWTOOTH, not a ramp; room 2 is the second-hardest room in the game——
I-044OPENeight of ten rooms sit below SILVER at the median, and the reward ladder points the opposite way to achievable——
I-045VALIDATEDthe progression economy is bought out well before the night ends, leaving a large unspendable surplus9 (sink contract) / 42026-08-31-claude-l4-seedb-s05
I-046VALIDATEDFINAL in the deep rooms is near-unwinnable with the perk tree fully MAXED; 5.6% pooled vs a ~50% target4 (perk-invested competent FINAL)2026-08-31-claude-l4-seedb-s08
I-047OPENthe pool is a wall wherever it is reached; the roof is at or near the floor everywhere (2 retractions)6 (narratable deaths)2026-08-31-claude-l4-seedb-s05
I-048VALIDATEDthe yard -> gym FINAL cliff: 6 cells, 3 skills, 2 seed families, same direction in every one7 / 62026-08-31-claude-l5-comp-s08-seedb
I-049VALIDATEDgold stars are driven by ATTEMPT COUNT, not by room or route (revises I-044; scoped to bot policies)9 (sink contract)2026-08-31-claude-l5-comp-s05-seedb
I-050OPENrunNight() passes no `steps`/`shiki`/`mastery`, so the surplus-to-power question is unanswerablelab capability2026-08-31-claude-l4-full-s08
I-051OPENthe full-economy ladder charges for power it does not deliver: only 43% of the 5755 shop reaches the simlab capability2026-08-31-claude-l5-chris-econ
I-052OPENwiring step training moves mid-skill players past the pool choke: pool 13% -> 29% at skill 0.54 (ladder points down)2026-08-31-claude-l5-steps-live
I-053VALIDATEDthe bot never dashes below skill 0.3, so NO dash-based power is measurable at novicelab capability2026-08-31-claude-l5-steps-live
I-054OPENthe surround is not geometric: players die with a 45 deg exit open, killed by stacked contact damage6 / 22026-08-31-claude-surround-geometry
I-055OPENthe domain clears a route by construction but cycles at ~20s and is dark (charge 0.6-0.84) at death2 / 62026-08-31-claude-surround-geometry
I-056OPEN5th driver-gap instance fixed: steps/shiki now reach the sim and the animal now casts (board #17/#21)lab capability2026-09-01-claude-steps-shiki-live-final
I-057OPENthe unspendable surplus converts to wins once steps/shiki reach the sim: FINAL skill 0.8 75%->100%4 / 92026-09-01-claude-steps-shiki-live-final
I-058OPENboard #29 closed: bot CURRENT-camping inflated FINAL 0.8 win 62%->measured 44% and MIDTERM 0.8 dead-air 16%->4% once fixed (lab/harness `bbe6467`)3 (dead air) / measurement validity2026-09-01-claude-antikite-after-final
I-059OPENfull clean-sim re-baseline on `bbe6467`: QUIZ 100/100%, MIDTERM 50/75%, FINAL 6/44% (0.25/0.8) — MIDTERM novice 2%->50% is the largest delta vs the old table4 / 82026-09-01-claude-rebaseline-bbe6467-final
I-060OPENI-059's FINAL skill-0.8 win rate fails cross-bank agreement: 44% vs 75% (31 pts, standard-16 vs -16b), pooled 59% — possible bimodality in a WIN RATE, not just novice mediansmeasurement validity2026-09-01-claude-rebaseline-bbe6467-final-16b
I-061OPENlate play does not collapse toward move+domain specifically; dash is the true late-game dominant verb (~8x domain's rate) at skill 0.8, held-fire duty cycle falls 30% — do not file heuristic 10 off the earlier read—2026-09-01-claude-verbmix-final-early-late
I-062OPENCE-at-crisis: the elective is castable in only 4.0% of HP-crisis ticks at skill 0.8 (under the board's own ~10% bar) because firing already drained the pool by the time a fight counts as a crisis2 / 62026-09-01-claude-ce-at-crisis
I-063OPENboard #12 closed: rotation policy moved to run every tick instead of level-up-only; ren+kaito+SHIKIGAMI FINAL skill 0.8 win rate 48%->69% on first clean-sim measurement, matching the earlier exploratory estimate—2026-09-01-claude-club-renkaito-rotation-clean
I-064OPENthe CE-split (`9b962b1`) pins CE near 100% at every period measured and blows past every win-rate target: MIDTERM 50/75%->81/100%, FINAL 6/44%->12.5/93.8% (0.25/0.8) — the spam failure mode the commit itself named is still present5 (CE band) / 4 (ladder points down)2026-09-01-claude-rebaseline-9b962b1-{quiz,midterm}, 2026-09-01-claude-ce-split-{before,after}
I-065OPENmechanism for I-064: CE never dips below 40% anywhere; novice CE is inert (bot never spends it, dash-gated below skill 0.3); competent dash spend roughly matches passive regen income, so the pool barely leaves the ceiling even at peak dash usage5 (CE band)2026-09-01-claude-ce-trace-tick-level
I-066SUPERSEDEDsee iter-91 club matrixI-064's win-rate jump generalizes to club play: ren+kaito FINAL 0%->25% novice, 68.8%->93.8% competent on the same rotation-every-tick bot before/after the CE-split; CE avg still pins 94-97% with a shared 2-member pool4 (ladder points down) / 5 (CE band)2026-09-01-claude-rebaseline-9b962b1-club-renkaito-final
I-067OPENTHE HELD BELL (`a3a75ba`) never triggers in either bare-kit ren@yard baseline population at either skill — all 32 FINAL runs end by t=720 with bossKills already maxed or the player dead; the new finale is currently unreachable by this lab's default test population6 (narratable finale) / coverage gap2026-09-01-claude-rebaseline-a3a75ba-final
I-068SUPERSEDEDsee iter-91 club matrixthe yui+sora trap (I-036, the lab's largest heuristic-7 violation, 14% vs ren+kaito's 50%) is gone on the current sim — now 1/16 novice, 16/16 (100%) competent, AT OR ABOVE ren+kaito and solo ren; CE saturation appears to be flattening pairing differences at the ceiling rather than fixing them7 (no dominant choice) / 5 (CE band)2026-09-01-claude-rebaseline-a3a75ba-club-yuisora-final
I-069SUPERSEDEDsee I-084solo sora is the only build this run found that still fully loses — 0/16 (0%) novice FINAL — while competent sora sits at 93.8% same as everything else; the CE-split's trivialization is a competent-only effect, novice still shows real character-dependent variance4 (ladder points down) / 7 (novice end)2026-09-01-claude-rebaseline-a3a75ba-solo-sora-final
I-070OPEN[CORRECTED, board #55] post-drift bare-kit re-baseline vs `b32d158`: win rates ~flat within n=16 noise vs I-064 (QUIZ 100/100, MIDTERM 69/100 vs 81/100, FINAL 19/94 vs 12.5/93.8) despite dashCost 10->20 (I-414) cutting skill-0.8 CE avg 100%->82%; skill-0.25 CE is still bit-identical pinned at 100%. Bare-kit CE pinning is BY CONSTRUCTION under the current heuristic 5 (kitted-only band), not itself a violation — the win-rate numbers stand as the measurement of record4 (calibration item, not a violation — see PROTOCOL.md)2026-09-03-claude-rebaseline-bda12fb-{quiz,midterm,final}
I-071OPEN[CORRECTED, board #55] first-ever maxed-perk-kit CE trace (closes I-065's flagged gap): CE avg 45% at BOTH skills, a real 37-55pt drop off bare kit at the same sha, confirming perks/electives are the dominant CE sink, dwarfing dashCost — **45% is INSIDE the current 35-65% target band (heuristic 5, CE-as-specials, kitted-only) — a PASS**, not the violation iteration 73 wrongly called it. Kitted competent FINAL hits an absolute 100% ceiling (16/16) at default tier-1/yard, worth reading alongside board #55's KITTED TIERS ask (tier 2/3 as the real power-ceiling cells)5 (CE band) — PASS2026-09-03-claude-kitted-bda12fb-final
I-072SUPERSEDEDsee iter-91 club matrix — clutch dropped 5/16->3/16club ren+kaito FINAL post "builds are per student" shop rewrite (`20e0606`, club shop removed): within n=16 noise of solo ren at both skills (13/100 vs 19/94), but skill-0.8 shows 5/16 clutch wins (minHP<20% then recovered) vs 0/16 for both solo bare-kit and kitted at this sha — the only heuristic-2-satisfying competent cell in this iteration's batch; confirms I-066's "club no longer diluted" survives the rewrite2 (threat pulse)2026-09-03-claude-club-renkaito-bda12fb-final-v2
I-073OPENboard #55 0g: THE HELD BELL still never fires at kitted FINAL, tier 2 OR tier 3 (0/64 across 4 cells, both skills) — extends I-067's tier-1 coverage gap to the two harder named tiers as well. Every winning run's `t` lands marginally over 720s from step (dt=1/30) granularity alone, not a held duel, confirmed by inspecting individual run times. Bespoke hand-rolled trace, win counts cross-checked bit-for-bit against the official runner (I-074's manifests) before trusting it6 (narratable finale) / coverage gap2026-09-03-claude-kittedtier{2,3}-final
I-074OPENboard #55 0f: KITTED TIERS as the actual power-ceiling cell — tier 2 win 6%/88% (novice/competent), tier 3 win 13%/81%, BOTH inside the 35-65% heuristic-5 CE band (36-55% avg across cells) unlike tier 1's flat 100% ceiling (I-071). Tier 3 shows real heuristic-2 threat texture at both skills (near-miss mean 0.88 novice, 0.25 competent, 5/16 clutch wins competent) — a much healthier signature than tier 1's chore-win ceiling. This is the cell heuristic 4's fresh/kitted calibration question should be read against5 (CE band) — PASS / 4 (calibration) / 2 (threat pulse)2026-09-03-claude-kittedtier2-final, 2026-09-03-claude-kittedtier3-final
I-075OPENboard #55 0h diagnostic (code read, no sim run): `scripts/night.mjs` (the ladder simulator) is LESS stale than assumed — `INSURANCE` was wired the same day by a concurrent Chris+Fable session (`d63af7f`, landed while this loop was mid-iteration; bought reactively after 2 losses, sets `stats.revive` so it genuinely changes `won`, tracked separately from the bought-out denominator) and `bonusMult` is inherited for free since `sim.js` applies it to fragment gems internally before `runNight()` ever sees the total. The real gap is narrower: `FAVOR` is not modeled anywhere in the ladder (would need a continue-vs-restart design decision the current one-attempt-per-room loop doesn't have a slot for) and `REROLL` is unmeasurable LAB-WIDE, not just in the ladder — `bot.js` never calls `sim.reroll()` in any headless run this lab has ever produced, the same shape as I-032 (LINE CHANGE) and I-053 (dash below skill 0.3)lab capability(code read: scripts/night.mjs, src/sim.js:1222,2257-2260, src/bot.js)
I-076OPENladder simulator (`night.mjs`) first read post-`d63af7f`, skill 0.5 only (**gates FAIL — single skill, informational**): 16/16 players cleared all 10 rooms and bought out the ENTIRE economy (median run 8), ending with a median 34030◆ unspent against a 5255◆ economy total — the unspendable-surplus problem (I-045) persists and looks WORSE in absolute terms under rooms-pay-more. Per-room win% is not the old sawtooth (I-037/I-043): a clean ramp (yard 100%→gym 94%→library 96%) then a real cliff (halls/cafeteria ~72-73%) and a striking deep-room spike at POOL (41%, the hardest room measured), partially recovering after (56-70%). Insurance uptake unreadable this run — `night.mjs`'s summary silently dropped `insuranceBought`/`insuranceSpent` despite `playLadder()` computing them (self-landed fix, `7373cd7`); a properly-gated both-skill re-run is queued9 (sink contract) / 4 (ladder points)2026-09-03-claude-2026-09-03-claude-ladder-threebets-s05
I-077VALIDATEDcompetent skill only — see I-079board #36 CLOSED (accepted): the yard-gym FINAL cliff survives the corner-trap fix (`38e5b1a`) — stock gym is 0%/75% (novice/competent, bank A) vs yard's 19%/94% (I-070 same sha). A stripped-obstacle arm (bespoke, `Sim` built directly with a cloned gym map, `obstacles: []`) recovers almost all of the COMPETENT-skill gap: 75%→100%, near-miss mean falling 0.19→0.06 despite winning MORE — confirms board #36's geometry × CURRENT hypothesis as a real competent-skill mechanism. The novice-skill "0%→6.3% recovery" reading does NOT replicate on a second bank — see I-0797 (no dominant map) / 4 (ladder points)2026-09-03-claude-gymcliff-postcornertrap-final
I-078VALIDATEDboth-skill ladder run, CONFIRMED at n=16 (gates PASS — n>=16, both skills, clean sim, sha pinned). Near-identical replication of the n=10 read: insurance uptake is skill-differentiated with precision, not noise (novice 21x/player 4040◆ spent vs competent 4x/player 520◆ — n=10 was 21x/3820◆ vs 4x/580◆). Novice STILL fails to clear the ladder despite the spend: 0/16 stalled. ROOF is an even starker wall at n=16: 13% novice win on 241 attempts (vs n=10's 14%/143) — by far the deepest attempt sink in the ladder — while competent ROOF sits at 66% (softest competent room, nowhere near as severe). POOL remains a secondary dip (28%/59%) but ROOF dominates. Strongest ladder finding since I-045/I-046 — flagged for `docs/IDEAS.md` (Loop 1 does not own that file, see iteration 78's ownership note)4 (ladder points, deep-room wall) / 9 (sink contract, insurance)2026-09-03-claude-ladder-n16-threebets
I-079OPENI-077's second-bank confirmation (`standard-16b`, board #55 0h5) — MIXED. Competent skill REPLICATES cleanly: stock gym 93.8% (well below yard's ceiling, same direction as bank A's 75%), stripped 100% on BOTH banks — the competent-skill obstacle cost is now genuinely two-bank VALIDATED. Novice skill does NOT replicate and reverses sign: bank A stock/stripped was 0%→6.3% (stripping helped), bank B is 6.3%→0% (stripping hurt) — but the two stock baselines themselves disagree (0% vs 6.3%), matching I-019's old n=16-too-noisy-at-novice finding. Honest read: gym novice FINAL is uniformly near-unplayable (0-6% either way) regardless of obstacles; the novice-skill obstacle effect is unmeasurable at this n, not confirmed in either direction — any fix recommendation should be scoped to competent skill only7 (no dominant map) — competent PASS, novice UNMEASURED2026-09-03-claude-gymcliff-postcornertrap-final
I-080OPENskill sweep (board #55 0ae2) closes the fresh-save FINAL calibration question with a MECHANISM, not just a curve: bare-kit FINAL win rate is 0.25=19% (I-070), 0.3=31%, 0.4=62.5%, 0.5=100%, 0.8=94% (0.5/0.8 within n=16 noise, both at ceiling). The cliff maps directly onto I-053's dash-gate threshold (`bot.js` hard-gates dash off at skill<=0.3): CE avg stays pinned 100% at both 0.25 and 0.3, then drops to 84% the instant skill crosses into 0.4 — exactly where win rate takes its steepest single jump (31%→62.5%). Reframes heuristic 4: it's not that competent players are too strong across a smooth range, it's that ANY skill above the dash gate unlocks CE spend and rockets to the ceiling almost immediately — the real lever is the gate itself (I-053's unanswered design question), not a numeric difficulty knob4 (calibration — mechanism found) / 5 (CE band mechanism)2026-09-03-claude-skillsweep-final-{03,04,05}
I-081OPENthe STATE baseline table (`bda12fb`, 09:08) predates Runner 2.0.0's policy-RNG split (`3f39f7f`, same day 19:31) and is numerically incomparable per PROTOCOL.md; re-measured on `1af63db`, FINAL skill 0.25 diverges hardest — near-miss mean 0.19→0.38, deathT p50 7:05→5:12, score p50 131222→54033 (−59%) — while QUIZ/MIDTERM and FINAL skill 0.8 stay within n=16 noisemeasurement validity2026-09-04-claude-claude-rebaseline-1af63db-{quiz,midterm,final}
I-082VALIDATEDsee I-084novice FINAL now has a two-character floor: kaito and sora both 0/16 (0%) wins on `1af63db`, vs ren 2/16 and yui 2/16 (12.5% each) — updates I-069 (`a3a75ba`, stale), which found only solo sora fully losing9 (sink contract) / 7 (borderline)2026-09-04-claude-char-matrix-1af63db-{yui,kaito,sora}
I-083SUPERSEDEDsee I-085solo kaito is the only bare-kit character whose competent (skill 0.8) FINAL win shows a real heuristic-2 signature — near-miss mean 0.38, 8/16 clutch wins — vs ren/yui/sora's near-zero near-miss (chore wins) at the same skill on the same sim. **Second-bank check found the near-miss-mean framing noisy (yui's bank-B mean exceeds kaito's) — see I-085 for the metric that actually holds.**2 (threat pulse)2026-09-04-claude-char-matrix-1af63db-kaito, 2026-09-04-claude-claude-rebaseline-1af63db-final
I-084VALIDATEDsecond-bank (`standard-16b`) confirmation of I-082: kaito and sora stay 0/16 novice FINAL on both banks, ren/yui keep occasional novice wins on both — a real character-specific novice wall, not sampling noise9 (sink contract) / 7 (borderline)2026-09-04-claude-char-matrix-1af63db-{kaito,sora}, 2026-09-04-claude-charmatrix-16b-1af63db-{kaito,sora}
I-085VALIDATEDcorrects I-083: the bank-stable heuristic-2 signal is CLUTCH WINS, not near-miss mean — kaito's competent-FINAL clutch-win rate holds at 8/16 (50%, bank A) and 9/16 (56%, bank B) vs 1-3/16 (6-19%) for ren/yui/sora on both banks, even where win rates themselves swung hard bank-to-bank (yui/sora 100%→75%)2 (threat pulse)2026-09-04-claude-char-matrix-1af63db-kaito, 2026-09-04-claude-charmatrix-16b-1af63db-{ren,yui,kaito,sora}
I-086OPENthe yui/sora 100%→75% bank swing is sampling noise, not bimodality: n=64 on `standard-64` lands yui 90.6% (58/64) and sora 85.9% (55/64), both near the n=16 midpoint (87.5%); clutch-win rate stays low for both (12.5%/10.9%), matching I-085's chore-win pattern rather than joining kaito's signaturemeasurement validity2026-09-04-claude-winrate-swing-n64-1af63db-{yui,sora}
I-087OPENmechanism corrected, see I-088at bare-kit NOVICE skill, club composition (who's on the bench) is inert — yui+sora and yui+kaito are bit-identical across all 16 seeds — but having ANY bench member vs. solo changes outcomes on 6/16 seeds (37.5%) even though the swap trigger never fires either way; the active (first-listed) character effectively solos the night. **Candidate mechanism (shared CE-pool sizing) was WRONG — see I-088 for the confirmed cause.**9 (sink contract) / measurement validity2026-09-04-claude-club-1af63db-{ren-kaito,yui-sora,ren-sora,yui-kaito}
I-088OPENcode-read CONFIRMS I-087's mechanism: `sim.js:812` applies an 8s post-cast `DOMAIN_SWAP_LOCK` whenever `party.length>1`, unconditionally — even if the bench is never swapped in. Intentional (prices bench-domain-dumping) but fires on dead-bench novice clubs too, reshuffling domain-cast timing and cascading through the seeded RNG stream. Not a strict tax (yui: 2/16→3/16 club; ren: 2/16→2/16 unchanged) — redistribution, not penalty9 (sink contract) / lab capabilitycode read: src/sim.js:812, src/config.js:711-715
I-089OPENfirst standalone tier-1 FINAL coverage of the full room roster on `1af63db`: at novice skill only yard (12.5%) and library (18.75%) are winnable at all — gym/halls/cafeteria/detention/boiler/lab are all 0/16. Competent-skill spread is 68.75pt (yard/library 100% down to lab 31.25%), a huge heuristic-7 violation, and difficulty does NOT track shop-cost order — library (400◆) is tied for easiest, ahead of the cheaper gym (150◆) and halls (300◆). Extends I-037/I-043's old sawtooth claim with fresh, full-roster numbers7 (dominant avoidance) / 4 (ladder points down)2026-09-04-claude-map-coverage-1af63db-{library,halls,cafeteria,detention,boiler,lab}
I-090OPENANSWERS I-089's question decisively: full gear rescues novice yard/library/gym (+25 to +37.5pt) but does NOTHING for halls/cafeteria/detention/boiler/lab — flat 0/16 novice even fully kitted. Competent spread barely moves either (68.75pt bare-kit vs 68.75pt kitted). Rules out "shop gates access by design" for the five hardest rooms — they're miscalibrated independent of player power7 (dominant avoidance) / 4 (ladder points down)2026-09-04-claude-map-kitted-1af63db-{yard,library,gym,halls,cafeteria,detention,boiler,lab}
I-091OPENrotation-H (elective/domain uptime), via re-analysis of I-090's raw dumps (no new sim run): novice-skill elective-cast rate is roughly halved in the five hard rooms (lab 3.9/min, boiler 3.7/min, detention 4.0/min) vs. yard/library (~9/min); domain-cast rate shows the same shape more sharply (3-6x gap). Mostly flattens at competent skill. Adds texture to I-090 — hard-room novices aren't just losing more, they're pressing their kit's core buttons at half the rate1 (reward drip) / extends I-089/I-090derived from 2026-09-04-claude-map-kitted-1af63db-{yard,library,gym,halls,cafeteria,detention,boiler,lab}
I-092OPENrefined/confirmed, see I-126rotation-D (upgrade dominance): `bot.js`'s fixed PREFER order always grabs 'Cursed Output' (+20% dmg) first whenever offered — every run this lab has measured took this path. Bespoke A/B forcing the bot to SKIP it entirely does not hurt and often helps: novice score +78% (57001->101364), kills +74%, competent win rate 87.5%->100%. The opposite of what removing a dominant upgrade should do — suggests the bot's fixed greedy preference order may be locking in a mediocre first pick, and every ledger finding to date has been measured under that one untested order7 (no dominant choice) / lab capabilitybespoke script (non-canonical harness, see manifest method.notes), 2026-09-04-claude-forced-pick-output
I-093OPENrotation-G (After Hours EV), first-ever measurement of this mechanic (zero prior harness hits): pushing past the FINAL bell for 5 more minutes is essentially free value, not a real risk-reward choice — only 1/14 competent bell-winners died, and a plain After-Hours death does not erase sim-level fragments/score (confirmed by reading `sim.js`). Median gain over 300s: +356 fragments, +240665 score — a scoring rate (~800pt/s) HIGHER than the main night's own average (~397pt/s), since the player enters AH already leveled and kitted9 (sink contract) / 2 (threat pulse absent)bespoke script, 2026-09-04-claude-after-hours-ev-{competent,novice}
I-094OPENrotation-J (perk economy pacing), via re-analysis of I-081's raw dumps + current `config.js` prices: fragment-earn rate is flat ~68-96/min across QUIZ, MIDTERM and competent FINAL, EXCEPT novice FINAL where a struggling player earns 29.3/min — under half. Full single-character economy (PERKS+STEP_TRAINING+elective+shikigami ≈4305◆) takes ~45-47 min of QUIZ/MIDTERM grinding vs 2.5x longer per-fragment in a losing FINAL. Clean current-sim quantification of heuristic 4's own "drop a tier, get paid" principle — the economy already does this, sharply. Side note: PERKS track now totals 1535◆, not the 2035◆ an old finding (I-045) cited — likely tuner drift, not chased further4 (ladder points down) / 9 (sink contract pacing)derived from 2026-09-04-claude-claude-rebaseline-1af63db-{quiz,midterm,final} + src/config.js
I-095OPENrotation-A (funnel drift), first-ever citation of `scripts/playtest.mjs`'s funnel table: at skill 0.5 and skill 1, adding perks appears to LOWER win rate (skill 0.5: fresh 16/16 -> 270◆ 11/16 -> 800◆ 13/16). Best explanation by analogy to I-088: different `bonuses` reorder kill/cast timing, reshuffling the downstream enemy-spawn RNG stream, so a fresh-vs-perked comparison on "the same seed" draws a different population, not a paired night. Not a balance defect — but a methodological point the lab hadn't stated plainly: single-seed funnel comparisons across perk tiers aren't paired the way character/room comparisons aremeasurement validity / lab capability2026-09-04-claude-funnel-drift-playtest-mjs
I-096OPENranking corrected, see I-097room-geometry follow-up on I-090's three hardest rooms (bespoke obstacle-strip A/B, same method as I-077's gym fix): detention 12.5%->31.25%, boiler 25%->31.25% (modest), LAB 25%->56.25% with score nearly QUADRUPLING (94331->429548) — the largest obstacle-strip effect this lab has measured, bigger than gym's. **Second-bank check (I-097) found the "lab is the worst offender" ranking does not replicate — read I-097 before citing which room is worst.** Novice stays flat 0/16 for all three regardless of stripping7 (no dominant map) / 4 (ladder points down)2026-09-04-claude-room-strip-detention-boiler-lab
I-097OPENtwo-bank check of I-096: DIRECTION replicates cleanly (stripping obstacles never hurts, generally helps, all three rooms both banks) but the RANKING does not — lab's bank-A score gain (+355%) shrinks to +12% on bank B, while boiler's "modest" bank-A gain (+41%) balloons to +585% on bank B. n=16 is too noisy to rank these three rooms against each other; treat all three as roughly equally worth a level-editor pass rather than prioritizing lab7 (no dominant map) / measurement validity (n=16 ranking noise)2026-09-04-claude-room-strip-detention-boiler-lab-16b
I-098OPENrotation-B (engagement curves per period), via re-analysis of I-081's raw dumps: full heuristic-1/2/3 scorecard across QUIZ/MIDTERM/FINAL. H1 (reward drip) and H3 (dead air) PASS everywhere. H2 (threat pulse) FAILS uniformly at competent skill across ALL THREE periods — near-miss mean is a flat 0.00 at QUIZ/MIDTERM/FINAL skill 0.8, not just FINAL. Novice near-miss mean climbs with period length (0.06->0.25->0.38) but never reaches the 2+ bar. Extends I-001/I-003 with fresh current-sim numbers: the chore-win problem is competent-skill-wide, not FINAL-specific, and never was1 (PASS) / 2 (FAIL) / 3 (PASS)derived from 2026-09-04-claude-claude-rebaseline-1af63db-{quiz,midterm,final}
I-099OPENrotation-F (death autopsy), via re-analysis of already-recorded deathContext data: heuristic 6 fails on BOTH axes for novice FINAL. Timing: deathT p50 is only 43% into the 720s night (not late) vs MIDTERM's 86% into its own shorter period (genuinely late). Cause: only 6/14 (43%) FINAL novice deaths are boss-attributed (HALL MONITOR x5, THE SUBSTITUTE x1) vs MIDTERM's already-modest 1/4 (25%) — the rest are anonymous mob pressure. FINAL is the period heuristic 6 explicitly names and currently delivers neither a late death nor (mostly) a named-boss one for a struggling novice6 (narratable finale)derived from 2026-09-04-claude-claude-rebaseline-1af63db-{final,midterm}
I-100OPENrotation-I prep: checked precisely (not by sparkline) whether FINAL already has late-game tension before proposing a new mechanic. It does, for competent survivors — per-window mean threat rises from a ~0.02-0.10 mid-game baseline to 0.17-0.25 in the last 90s, a real ~2.5x pre-dawn ramp. This contrasts directly with I-093's After Hours finding (near-zero death rate over 5 more minutes) — worth checking whether the ramp continues past t=720 or resets. A parallel novice-curve pull was abandoned: `windows[]` appears to hold constant count past a run's death, which would bias a naive per-window average for any period with real death population — flagged as a metric-validity gap, not published as a confounded finding2 (threat pulse) / 6 (narratable finale) / measurement validityderived from 2026-09-04-claude-claude-rebaseline-1af63db-final--skill-0-8 raw dump
I-101OPENANSWERS I-100's queued follow-up via code read: the difficulty ramp splits sharply past t=720. Enemy HP is UNCAPPED and exponential (config comment: "then owns After Hours — the bell is reachable, staying out isn't") — computed ~14.2x base at t=720 rising to ~186x by t=1020, a 13x jump within I-093's own 300s AH window. But enemy DAMAGE is hard-capped at 2.2x, a cap reached at EXACTLY t=720 and never increased again; speed is mostly capped too. So AH enemies get dramatically tankier without hitting any harder than at the bell — the likely mechanism behind I-093's near-zero AH death rate, though it doesn't fully reconcile with I-093's continued strong kill rate (player damage output presumably compensating, not yet measured directly)2 (threat pulse) / 9 (sink contract) — explains I-093code read: src/sim.js:1660-1661,1675, src/config.js:131-137
I-102OPENREFUTES I-101's throttling hypothesis: kill rate does NOT degrade across the 300s AH window despite the HP ramp climbing 13x over the same span — kills per 60s bucket run 236, 244, 293, 285, 290 (flat to mildly rising, not falling). Player damage output evidently outpaces the uncapped HP ramp within this window at competent skill. I-093's "free value" read stands even more cleanly: neither death rate nor reward rate shows a cost to pushing on, at least within 5 minutes9 (sink contract) / 2 (threat pulse) — closes I-101's thread2026-09-04-claude-ah-killrate-buckets
I-103OPENconfirmed 2-bank, see I-104rotation-E (map/tier ladder), first tier 2/3 read on the current sim: the ladder itself restores heuristic 2 that tier 1 completely lacks (I-098), even bare-kit. Tier 1 competent FINAL is a flat chore (16/16, near-miss 0.00). Tier 2: 68.75% win, near-miss mean 0.19, 5/16 CLUTCH wins — a genuinely healthy threat signature. Tier 3: only 18.75% win but near-miss mean climbs to 0.31 — real danger that mostly doesn't convert to a win, too hard rather than chore-easy. Novice unplayable at both (0/16) — tiers read as a gear/skill-gated ladder, not novice-facing. Extends I-074's kitted-tier finding to bare-kit play2 (PASS at tier 2) / 4 (coherent difficulty curve)2026-09-04-claude-tier-coverage-1af63db-{t2,t3}
I-104OPEN2-bank solid; kept OPEN not VALIDATED on a gate technicality — see manifestsecond-bank confirmation of I-103: tier 2 win 68.75%(A)/75%(B), near-miss 0.19(A)/0.13(B), clutch 31%(A)/25%(B) — stable. Tier 3 win 18.75%(A)/37.5%(B), near-miss 0.31(A)/0.81(B, the highest this lab has recorded anywhere), clutch 6%(A)/31%(B) — magnitudes shift, direction (real, bank-stable danger) doesn't. The tier-ladder threat-pulse claim is now two-bank solid2 (threat pulse) / 4 (coherent tier ladder)2026-09-04-claude-tier-coverage-16b-1af63db-{t2,t3}
I-105OPENfirms up I-099 at n=64 (novice continuous-claim bar): both numbers hold almost exactly — deathT p50 43.6% into the night (n=16 was 43%), boss-attribution 42.9% (n=16 was 43%). HALL MONITOR alone is 79% of all boss deaths (19/24), confirming its dominance isn't a small-sample artifact. Win rate also held (12.5% vs original 12.5%). No longer a 14-death curiosity — a solid, properly-sized read6 (narratable finale) — firms up I-0992026-09-04-claude-deathcontext-n64-1af63db-final
I-106VALIDATEDsecond-bank confirmation of I-089 for halls/cafeteria (the two rooms never individually re-checked before). Novice replicates PERFECTLY: 0/16 both banks, both rooms, four-for-four. Competent: halls exact match both banks (9/16=56.25%); cafeteria drifts moderately (56.25%->43.75%) but stays in-band, no reversal. Every one of I-089's 8 measured rooms has now had at least a partial second-bank check across this session's work — the room-roster finding is the most thoroughly validated claim in the ledger7 (dominant avoidance) / 4 (ladder points down)2026-09-04-claude-map-coverage-16b-1af63db-{halls,cafeteria}
I-107VALIDATEDsecond-bank confirmation of I-098's heuristic-1/2/3 scorecard across QUIZ/MIDTERM/FINAL. H1/H3 replicate cleanly on both banks. H2 replicates almost exactly: competent near-miss mean 0.00 at QUIZ/MIDTERM both banks, near-flat at FINAL (0.00 A / 0.06 B). The chore-win problem at competent skill is now two-bank VALIDATED as period-wide, definitively closing the measurement question I-001/I-003 opened1 (PASS) / 2 (FAIL) / 3 (PASS) — all 2-bank2026-09-04-claude-engagement-16b-1af63db-{quiz,midterm,final}
I-108VALIDATEDsecond-bank confirmation of I-100's pre-dawn threat ramp, free re-analysis of I-107's own raw data (no new sim run): windows 43-48 read 0.136/0.162/0.201/0.222/0.259/0.169 on bank B vs 0.170/0.188/0.250/0.202/0.212/0.121 on bank A — near-identical ~2x pre-dawn ramp on both. Bonus texture: both banks show periodic mid-game threat bumps that plausibly track the scripted SPAWN_LADDER surge schedule, not yet confirmed by direct correlation2 (threat pulse) / 6 (narratable finale) — 2-bank confirms I-1002026-09-04-claude-engagement-16b-1af63db-final
I-109VALIDATEDchases I-108's surge-periodicity thread, free re-analysis (no new sim run): the scripted surges split cleanly by whether they register as threat bumps, two-bank-consistent. SWARM/WISP TIDE/HUSK PARADE combine into one early peak (window 12: bank A 0.153, bank B 0.277); BRUTE SQUAD produces a second clear peak (window 21: 0.161/0.291). But NIGHT CLASS and STUDY HALL — both LARGER waves than the early ones — produce NO bump on either bank (windows 24-42 sit flat, 0.02-0.14). Best reading: the player out-scales these waves by t=470-560, consistent with non-negotiable #3 (spawn count is the XP economy, not difficulty)2 (threat pulse) / 1 (quiet-middle cause identified)2026-09-04-claude-claude-rebaseline-1af63db-final
I-110OPEN2-bank solid; kept OPEN not VALIDATED on the same gate technicality as I-097/I-104second-bank confirmation of I-102: kill rate stays flat/mildly rising on bank B too (213,260,299,276,270 vs bank A's 236,244,293,285,290), death rate matches (0/13 vs 1/14). The After Hours thread (I-093/I-100/I-101/I-102/I-108/I-109/I-110) is now consistently two-bank supported across every dimension measured9 (sink contract) / 2 (threat pulse) — 2-bank confirms I-1022026-09-04-claude-ah-killrate-buckets-16b
I-111OPEN2-bank supports the core claim; kept OPEN on the same gate technicalitysecond-bank confirmation of I-090's rescue asymmetry: yard/detention replicate EXACTLY (43.75%/0%), library/gym swap rank (56.25%->25% / 25%->43.75%, n=16 ranking noise per I-096/I-097). The load-bearing claim survives cleanly: detention stays a hard 0% on both banks regardless of gear, while yard/library/gym all show real nonzero win rates with full gear on both banks7 (dominant avoidance) / 4 (ladder points down)2026-09-04-claude-map-kitted-16b-1af63db-{yard,library,gym,detention}
I-112OPEN2-bank confirmed, see I-113genuinely fresh ground: does I-103/I-104's tier-2 threat-pulse restoration generalize across characters? NO — tier 2 produces the lab's largest heuristic-7 violation yet, 56.25pt spread at equal skill/tier: ren 68.75%, yui 68.75%, sora 31.25%, KAITO 12.5%. Kaito was the roster's healthiest character at tier 1 (94% win, near-miss 0.38, I-085's threat-pulse standout) but at tier 2 his win rate collapses while near-miss climbs to 0.50 (highest this session) — tier 2's added danger converts to losses for kaito specifically, not competent recoveries. Reframes I-103/I-104: tier 2 was measured on ren alone, and ren sits near the generous end of its response7 (largest spread measured) / 2 (present, not converting for kaito/sora)2026-09-04-claude-tier2-char-1af63db-{yui,kaito,sora}
I-113OPEN2-bank solid; gate technicality onlysecond-bank confirmation of I-112: kaito remains unambiguously the worst tier-2 performer on bank B too (18.75% vs bank A's 12.5%, near-miss stays elevated at 0.50 both banks), and the roster spread is nearly identical magnitude (56.25pt both banks, though individual values shift as expected). Sora matched exactly (31.25% both banks). I-112's correction to the I-103/I-104 recommendation is now two-bank solid, not a single-bank fluke7 (2-bank confirmed) / 2 (present, not converting)2026-09-04-claude-tier2-char-16b-1af63db-{yui,kaito,sora}
I-114OPENextends I-112/I-113 to tier 3: kaito's collapse gets WORSE — flat 0/16 (0%) win rate, near-miss mean 0.88, the highest this lab has ever recorded, converting to zero wins. Roster doesn't degrade uniformly: yui holds up best at tier 3 (50%), ren 18.75% (I-103), sora drops to 12.5%, kaito bottoms out completely. Kaito's kit-vs-tier-scaling interaction is now the clearest single character-balance problem this lab has found — the roster's healthiest tier-1 character (I-085) to fully unplayable at tier 37 (kaito now a hard floor) / 2 (record near-miss, zero conversion)2026-09-04-claude-tier3-char-1af63db-{yui,kaito,sora}
I-115OPENcode-read mechanism for I-114: kaito has the roster's SLOWEST base speed (5.0) and a uniquely low-frequency, non-homing weapon (orb fires once/1.0s vs everyone else's 0.15-0.38s, lands as a slow-drifting projectile that settles and ticks anything wandering into a 1.6-radius zone for 3.6s — confirmed via `_fireOrb`, sim.js:2061-2074). Peak DPS is comparable to ren's (~67 vs ~68/s) but reliability isn't: at tier 2/3, scaled enemy speed (wisp ~6.16-6.62) outpaces kaito's kiting AND makes enemies harder to keep lingering in a static zone, while enemyHpMult simultaneously demands more total tick-time — a compounding problem specific to a placement-dependent weapon that direct-hit kits don't sharelab capability — explains I-112/I-113/I-114code read: src/config.js:33-34,53-57, src/sim.js:2061-2074,2104
I-116OPENconfig micro-experiment testing I-115's candidate fix (b): orb radius 1.6->2.4 (+50%, ~2.25x area) at tier 3. NEGATIVE result — win rate barely moved (0/16->1/16) while near-miss mean climbed even higher (0.88->1.06, new session record). Radius is likely not the dominant lever; kaito survives marginally longer without converting fights, consistent with speed/kiting or cast-frequency (cd=1.0, untested) mattering more than zone size. Config restored byte-identical, `npm test` 111/111 confirmed clean afterwardlab capability — rules out one of two candidate fixesconfig micro-experiment on 2026-09-04-claude-tier3-char-1af63db-kaito (no lasting change)
I-117OPENshipped as a real tune, see I-427config micro-experiment testing candidate fix (a): orb cd 1.0->0.5 (fires 2x as often) at tier 3. POSITIVE result, different shape than I-116: win rate 0/16->2/16 (double I-116's radius arm) AND near-miss mean DROPS 0.88->0.44 (opposite direction from radius's rise to 1.06) — winning more AND facing less danger, the signature of a real fix vs I-116's "surviving marginally longer without converting." Still a small effect (12.5% vs ren/yui's 18.75-50%), single n=16 arm, not a tuned recommendation. Config restored byte-identicallab capability — identifies the more promising fix directionconfig micro-experiment on 2026-09-04-claude-tier3-char-1af63db-kaito (no lasting change)
I-118OPENREFINES I-112/I-113/I-114 significantly: kaito's tier-3 collapse is FINAL-specific, not tier-3-specific — a monotonic degradation with PERIOD LENGTH. Win rate at tier 3: QUIZ 87.5% (14/16), MIDTERM 50% (8/16), FINAL 0% (0/16, I-114). Kaito is nearly as healthy as anyone at tier-3 QUIZ; the problem only emerges and compounds as the run gets longer, matching I-115's mechanism (the time-based ramp needs runway to compound against his weapon's reliability weakness). Any fix should be judged primarily against FINAL, not the tier as a whole7 (period-dependent, not just tier) / lab capability2026-09-04-claude-tier3-kaito-{quiz,midterm}-1af63db
I-119OPENrotation-J extension (higher-tier economy), free re-analysis: extends I-094's "drop a tier, get paid" to climbing too high, not just being undergeared. Tier 2 frag/min (77.6) is essentially identical to tier 1's (77.0) even as win rate craters — a player isn't economically punished for pushing into tier 2. But tier 3 is a genuine economy cliff: frag/min drops to 26.8 (less than half) because the median run now dies partway through (332s vs 720s) — the same early-death-crashes-economy mechanism I-094 found for undergeared novices, now showing at competent skill when the tier itself is too hard4 (symmetric ladder principle) / 9 (sink contract pacing)derived from 2026-09-04-claude-tier-coverage-1af63db-{t2,t3} raw dumps
I-120OPENrotation-H at higher tiers (domain uptime — elective unmeasurable, bare-kit), free re-analysis: domain-cast rate tier 1 2.25/min, tier 2 2.67/min (HIGHER despite lower win rate), tier 3 1.67/min. Tier 2's higher rate is independent corroboration of I-103/I-104's positive finding — the domain mechanic gets exercised MORE, not just near-misses/clutch wins going up, consistent with genuinely more sustained pressure. Tier 3's lower rate matches I-119's early-death economy-cliff story — same mechanism, different metric2 (corroborates I-103/I-104) / 9 (corroborates I-119)derived from 2026-09-04-claude-tier-coverage-1af63db-{t2,t3} + FINAL baseline raw dumps
I-121OPENsim surface moved (`1af63db`->`edf1329`) mid-loop — a live session landed a `maps.js` change (yard `decalPlacements`, 20 cosmetic decal positions, per `git show`). Verified empirically rather than trusting the diff read: reran I-081's exact cell and it's BIT-IDENTICAL (16/16 wins, score p50 286173, exact match). Confirms this is purely cosmetic — every yard-based finding from this session (the large majority of the session's work) remains valid, no re-baseline needed. Also validates the lab's own methodology: `simSurface` file-matching is necessary but not sufficient, an empirical check is what actually settles itlab capability (validates sim-surface heuristic against a real false positive)2026-09-06-claude-simsha-check-edf1329-final
I-122OPENscope corrected — ren-specific, not roster-wide, see I-150sim surface moved again, this time for real (`edf1329`->`6c96799`): Chris landed a 10-room environment rebuild (12 commits) that expanded `SIM_SURFACE` itself (`map-space.js`/`navigation.js`/`ground-layout.js`) and touched 235 lines of `maps.js` + 215 of `sim.js`. Reran I-081's exact ren@yard bare-kit FINAL cell: REAL drift this time, consistently positive both skill cells — competent score p50 286173->294952 (+3%), hits taken 31->24 (-22.6%), novice score 54033->59398 (+10%), first level-up faster in both. Read as cleaner room geometry ("eliminate overlapping ground surfaces") helping bot movement/aim, not a balance regression — too small to call breaking (contrast Runner 2.0.0/I-081's -59%). Baselines table's FINAL rows updated below; QUIZ/MIDTERM not yet re-measured at this sha. Also: extended `insight.mjs`/`playtest-runner.mjs` with a `--exclude=id,id` levelPolicy override for I-092's canonical re-implementation (self-landed `6c96799`, verified against baseline first) — the re-run itself is queued for next iteration since the sim moved mid-tasklab capability (baseline drift, real this time) / 1 (first level-up got faster)2026-09-06-claude-rebaseline-6c96799-final, ...-16b
I-123OPENQUIZ half of I-122's baseline refresh at `6c96799`: both skills moved positive, competent skill by a lot — score p50 16679->21489 (+28.8%), hitsTaken_p50 collapsed to 2 in a 3-minute quickie. Flags a possible heuristic-2 (threat pulse) chore risk at competent QUIZ — not acted on, just noted2 (threat pulse)2026-09-06-claude-rebaseline-6c96799-quiz
I-124OPENMIDTERM half of I-122's baseline refresh — the one cell that regressed. Two n=16 banks disagreed wildly on novice win rate (75%->31% vs 75%->50%), textbook I-019 bimodality noise; settled at n=64: 35/64 (54.7%), a real ~20pp drop, while score_p50 stayed within noise (66349 vs 68834) — regression is in survival, not scoring. Competent MIDTERM stayed flat/positive like every other cell measured. Clean demonstration of why the novice n>=64 rule exists: the two n=16 reads would have supported opposite headlines4 (ladder points down before up) / lab capability (n=64 rule vindicated)2026-09-06-claude-rebaseline-6c96799-midterm, ...-16b, ...-midterm-novice-n64
I-125OPENI-124's death-context follow-up: 41% of novice MIDTERM deaths (up from 25%) are boss-adjacent (`boss:HALL MONITOR`), plus a new `near:husk` category (34%, absent before). Candidate mechanism (unconfirmed, low confidence): a new navmesh-connectivity-gated `_roomSpawnPoint()` added this rebuild may concentrate spawns closer to the player in a constrained boss arena than the old radial spawn did. Not this lab's fix — touches `sim.js`/`navigation.js`, Chris's territory6 (narratable deaths, just more frequent)2026-09-06-claude-rebaseline-6c96799-midterm-novice-n64
I-126OPENCanonical re-implementation of I-092 via the real `runNight()` path (`--exclude=output`, built at iteration 134). Replicates the novice headline: score p50 59398->123406 (+107.8%) when 'output' is excluded, win rate 3/16->5/16, near-miss mean 0.13->0.38 (more real threat pulses). But the bespoke harness had competent skill BACKWARDS: it reported 14/16->16/16 (improvement); canonical reports 16/16->15/16, score -4.9% (small decline, near noise floor). Confirms the original manifest's own caution that bespoke numbers shouldn't be pooled with insight.mjs numbers — the qualitative direction differed, not just the magnitude7 (no dominant choice) / lab capability (validates why canonical re-implementation mattered)2026-09-06-claude-i092-canonical-control-6c96799, ...-nooutput-6c96799
I-127OPENContrast to I-126: excluding 'hands' (bot's 2nd PREFER pick, +15% attack rate) genuinely HURTS at competent skill — win rate 16/16->13/16 (-18.75pp), score -4.0%, hits taken +50%, near-miss mean 0->0.13. Novice closer to a wash (flat win rate, score +11.7%, opposite direction from output's result). First PREFER-list upgrade tested that behaves like a normal, correctly-valued pick when removed — the fixed order isn't uniformly bad, just inconsistent7 (no dominant choice — argues 'hands' is correctly valued, not a dominant trap)2026-09-06-claude-i092-hands-nooutput-6c96799
I-128OPENThe yard->gym FINAL cliff (I-037/I-048/I-077/I-079/I-411) survives the environment rebuild despite Gym being one of the rebuilt rooms (cosmetic: interiors/flooring/lighting, not structural). Same-sha (6c96799) yard-vs-gym: novice 18.75% vs 6.25% win rate, competent 100% vs 81.25%, near-miss mean 0.13 vs 0.56. No clean before/after available (nearest pre-rebuild gym baseline predates 3+ days of unrelated sim changes) so this uses the same-sha comparison per I-048's original method7 (no dominant map) / 4 (ladder points)2026-09-06-claude-gymcliff-rebaseline-6c96799
I-129OPENExtends I-103/I-104/I-120's domain-uptime thread to 6c96799: tier 1's own domain-cast rate is stable (2.25->2.27/min, computed free from I-122's data), but tier 2's rate dropped (2.67->2.33/min competent skill), narrowing the tier2-over-tier1 premium from +18.7% to +2.6%. I-120's 'tier 2 casts domain more despite lower win rate' headline is much weaker at this sha. Derived-metric observation from two snapshots, no mechanism claimed9 (sink contract, domain-pressure signal)2026-09-06-claude-domainrate-tier2-6c96799
I-130OPENcorrected at n=64, see I-133Rotation A funnel drift, `scripts/playtest.mjs`, sim 1af63db (I-095) -> 6c96799, same tool/seeds/config. Most cells held or improved; fresh-save skill 0.5 dropped from a perfect 16/16 dawns to 12/16 (75%) — a genuine same-config before/after read, the largest single-cell move in the table. Second, independently-toolset-confirmed instance of the environment rebuild costing real win rate at lower/moderate skill without perk investment (echoes I-124's MIDTERM novice regression on a totally different cell/tool)4 (ladder points down before up) / lab capability (two tools now agree on the shape)2026-09-06-claude-funnel-drift-6c96799
I-131OPENFirst fragments/hour reading in the ledger (rotation J, fresh baseline). Competent skill: ~4186 frags/hr, affords the basic club PERKS shelf (1535◆ maxed) in ~22 min/~2 FINAL runs. Novice sharply bimodal: p50 161 frags but mean 351 — pacing is 'wins banked' not a steady rate. Scoping note: the 1535◆ shelf is small next to I-076's 5255◆ whole-game economy — an early on-ramp, not the long-arc sink9 (sink contract) / 4 (ladder points)2026-09-06-claude-perk-economy-pacing-6c96799
I-132OPENI-077's gym obstacle-stripping fix re-tested at 6c96799 via `runNight()` with a cloned map object — FULLY REPLICATES post environment rebuild. Competent skill 13/16->16/16 (100%), score +7.1%, hits taken -2. Same magnitude as I-077's original recovery (75%->100%) at an earlier sha. Novice: no win-rate change (matches I-079), but score +23.5%. Now twice-replicated across two shas spanning the whole rebuild — highest-confidence room-geometry fix in the ledger7 (no dominant map) / 4 (ladder points)2026-09-06-claude-gymcliff-obstaclestrip-6c96799
I-133OPENI-130's n=64 confirmation, corrects it substantially: fresh-save skill-0.5 dawn rate is 58/64 (90.6%) at n=64, not the 75% the n=16 sample suggested — spot-checked the n=64 sample is a genuine superset (first 16 seeds reproduce 12/16 exactly). Real effect is a modest -9.4pp vs the old 100% baseline, not the -25pp that made it look like a matching pair with I-124. Same lab-capability lesson as I-124 (novice n>=64 rule) but pointing the OTHER way — softens rather than confirms. The 'two tools agree on a regression' framing should now be scoped down to I-124/I-125 onlylab capability (n=64 rule, this time softening rather than confirming)2026-09-06-claude-funnel-n64-fresh05-6c96799
I-134OPENRotation I paper design (first this session): 'Study Streak', a session-start hook stacking fragment income for consecutive night clears, decaying/resetting on a loss. Sim sketch via the existing 'owl' perk as a structural proxy (+45% nominal -> +34.6% novice / +21.0% competent practical frags/hour, I-131 baselines). Design risk flagged: only pays out on a win, so it concentrates benefit in the same lucky-win-dependent novice subset I-131 found, not the larger non-clearing population — recommend decay over hard reset. Paper proposal for Chris's queue, not an implementation9 (sink contract) / 4 (ladder points)2026-09-06-claude-streak-mechanic-sketch-owl3-6c96799
I-135OPENFirst full-roster reading at 6c96799: I-082/I-084's VALIDATED two-character novice floor (kaito+sora both 0/16 at 1af63db) is now one-character. Kaito graduated to 2/16 (12.5%), near-miss mean 0.69. Sora unchanged at 0/16, exactly where I-428 left her after three ruled-out single-constant fixes — needs a mechanism-level look, not a fourth config guess. Secondary: ren has highest win rate (16/16) but lowest score (294952) of the roster at competent skill; yui/kaito/sora win less (13-14/16) but score 35-59% higher — healthy survivability-vs-scoring split, not a defect9 (sink contract, character floor) / 7 (no dominant choice)2026-09-06-claude-charmatrix-kaito-6c96799, ...-yui-6c96799, ...-sora-6c96799
I-136OPENSora's novice wall is period-specific, same shape as I-118's kaito tier-3 finding — not broadly unplayable at novice skill. QUIZ 16/16 (100%!), MIDTERM 10/16 (62.5%), FINAL 0/16 (I-135). Reframes I-428: judge any fix against FINAL specifically, not her kit as a whole. Open question whether she shares kaito's I-115 mechanism (placement-dependent low-frequency weapon vs time-based ramp) or has a distinct weakness7 (character floor, scoped to FINAL) / 4 (ladder points)2026-09-06-claude-sora-quiz-6c96799, ...-midterm-6c96799
I-137OPENwisp-matchup hypothesis ruled out, see I-138Death-context read (analysis of already-archived I-135 data, no new sim run) on sora's novice FINAL wall: wisp-adjacent deaths dominate (7/16, 44%) over any single boss; deathT NOT clustered near the bell (p50 463s, 200+s of runway left) unlike I-125's tight MIDTERM pattern; hitsTaken_p50 52, high. Wisps (hp 14, speed 4.6, weave AI, from t=100) plausibly poorly matched by her spread/pierce:1 volley weapon, compounding against her roster-low 90 HP over a long run — a wear-down/matchup story, not a flat HP-buffer problem (explains why I-404's HP bump did nothing)6 (anonymous wear-down death, the worse case) / 7 (character floor, specific suspect)2026-09-06-claude-charmatrix-sora-6c96799
I-138OPENI-137's own proposed follow-up FAILS the hypothesis: per-window comparison during WISP TIDE (t=125) shows sora takes LESS relative damage than ren (hits-avg 1.56 vs 1.69, minHp-avg 0.83 vs 0.70), same ranking in a control window before any surge — wisps are not specifically her problem, she just takes fewer hits than ren in general. Her death-context wisp dominance likely reflects wisp population density (58% of the spawn mix), not a damage mechanism. Four single-axis hypotheses now ruled out (dmg, hp, weapon.life, wisp-matchup) — strengthens the case she needs a real design look, not another config guesslab capability (a hypothesis test reported plainly after it failed)2026-09-06-claude-charmatrix-sora-6c96799
I-139OPENAfter Hours EV (I-093/I-101), first check post environment rebuild — clean replication. Caught and fixed a hand-approximated `derivePolicySeed` before trusting results (verified 16/16 against I-122's canonical win rate). 16/16 bell-winners into a 300s AH window, 0/16 died (down from 1/14), median gains +345 frags/+231475 score, within ~4% of pre-rebuild numbers, still ~2x the main night's scoring pace. Confirms I-101's HP-uncapped/damage-capped mechanism is unaffected by the geometry rebuild9 (sink contract) / 2 (threat pulse absent)2026-09-06-claude-after-hours-ev-6c96799
I-140OPENI-109's surge-threat pattern mostly replicates at 6c96799 with a ~15s timing shift (early combined peak window 12->13, same magnitude; BRUTE SQUAD peak still in range; NIGHT CLASS/STUDY HALL stay flat, no bump). NEW: the two latest surges (LAST PERIOD, FINAL BELL RUSH), never covered by I-109, DO show real threat bumps — plausible mechanism is the uncapped HP ramp (I-101) catching back up by the final stretch. One bank/sha, needs two-bank confirmation2 (threat pulse) / 1 (quiet-middle mechanism, extended)2026-09-06-claude-rebaseline-6c96799-final
I-141OPENTwo-bank confirmation of I-140 — holds cleanly. LAST PERIOD/FINAL BELL RUSH windows: bank A 0.19/0.172/0.125, bank B 0.153/0.133/0.121, same elevated range. Early peak and BRUTE SQUAD peak both replicate; NIGHT CLASS/STUDY HALL flat on both banks — the most consistently replicated part of the whole curve-shape read2 (threat pulse) / 1 (quiet-middle mechanism, now 2-bank)2026-09-06-claude-surge-latethreat-16b-6c96799
I-142OPENThird PREFER-list upgrade tested: 'vital' costs nothing to exclude — competent win rate unchanged (16/16), score flat; novice win rate unchanged (3/16), score +12.9%, near-miss mean 0.13->0.44 (more real threat). Confirmed via code read that `chooseUpgradeFiltered` disables BOTH the ordinary pick and botChoose's emergency low-HP branch (same filtered `ids` list) — the bot survived equally often with its safety net entirely unavailable. Three PREFER items, three profiles: output=trap, hands=load-bearing, vital=insurance rarely needed7 (no dominant choice, genuinely mixed order)2026-09-06-claude-i092-vital-nooutput-6c96799
I-143OPENRotation B, kitted CE-band check (heuristic 5's CORRECT kitted-only definition, 35-65% band — not the retired 27-40% bare-kit band). CE avg 44% at both skills post-rebuild, replicating I-071's pre-rebuild 45% almost exactly — clean PASS. Nearly misreported this as a violation using bare-kit numbers (80-100%) before catching the board #55 correction already in the ledger. Secondary: kitted novice win rate 50% vs bare-kit's 18.75% at FINAL, a real heuristic-4 signal5 (CE band, kitted-only) — PASS / 4 (ladder points down)2026-09-06-claude-engagement-kitted-6c96799
I-144OPENFourth PREFER-list item ('multi', +1 projectile) reveals a cost win rate alone misses entirely: competent win rate unchanged (16/16), score even up (+2.3%), but hitsTaken_p50 +75% (24->42) when excluded. Novice win rate down 1 (noise), score -6.4%, near-miss up. Four profiles now: output=trap, hands=load-bearing, vital=insurance, multi=hidden-cost. Proposes always checking hitsTaken/near-miss alongside win rate for upgrade-dominance tests7 (no dominant choice) / 2 (threat pulse — the metric that caught it)2026-09-06-claude-i092-multi-nooutput-6c96799
I-145OPENscope corrected — ren-specific, not roster-wide, see I-150Completing the ren@yard FINAL tier ladder at 6c96799 surfaces the session's biggest drift — a big POSITIVE, two-bank confirmed. Tier3 competent win rate more than doubled (18.75%->50%/56.25% across two banks, score 47766->~242000, +407%). Full ladder now: tier1 100%, tier2 56.25%, tier3 50% (was 100%/68.75%/18.75% — a much steeper old cliff). Likely mechanism: room-geometry cleanup compounding more at tier3's harder mods than tier1's baseline4 (ladder points down before up) / 9 (sink contract, deep tier now reachable)2026-09-06-claude-tierladder-tier3-6c96799, ...-16b-6c96799
I-146OPENframing overturned, see I-147Mechanism dig for I-145 — corrects a naive read. Pooled hitsTaken_p50 actually INCREASED (40->67), which reads as 'more dangerous' until split by outcome: winners flat (hits 102->92, kills 3211->3239), losers flat (hits 24->23, deathT 316->318, kills 990->1014). Entire pooled shift is population composition — 5 more seeds fell into the winner bucket, neither bucket itself changed. Rules out a smooth geometry-friction story in favor of a discrete per-seed threshold effectlab capability (pooled medians across a changed win-rate population are confounded — split by outcome)2026-09-06-claude-tierladder-tier3-6c96799
I-147OPENPer-seed comparison overturns I-146's framing: ALL THREE old-sim winning seeds became losses in the new sim; 8 previously-losing seeds became wins; zero seeds won under both shas. Complete winner-population turnover, not a few borderline seeds fixed — I-146's 'winners flat' comparison was two entirely different seed sets that happened to look similar in aggregate. Reframes the mechanism as RNG-stream reshuffling (same pattern as I-088/I-095), likely from the new navmesh-gated spawn system (I-125) changing spawn-RNG consumption order. The two-bank aggregate (I-145) still stands as trustworthy; no individual seed's story carries overlab capability (a net-positive drift can still be a full reshuffle, not a targeted fix)2026-09-06-claude-tierladder-tier3-6c96799
I-148OPENNegative control for I-146/I-147: kaito's tier3 FINAL collapse (I-114) persists EXACTLY post-rebuild — 0/16 wins both skills, unchanged, while ren's tier3 more than doubled over the same sha range. Near-miss mean moderated (0.88->0.38) but conversion to a win stayed zero. Argues the RNG reshuffle specifically favors ren's kit capitalizing on luckier spawns, not a blanket tier3 easing — kaito's structural weakness (I-115) needs its own fix, this rebuild doesn't substitute for it7 (character floor, confirmed structural) / 2 (threat pulse, still elevated)2026-09-06-claude-kaito-tier3-6c96799
I-149OPENThird character checked, third different outcome: sora's tier3 FINAL competent win rate WORSENED post-rebuild, 2/16(12.5%)->0/16(0%), score -56.9%. Completes a clean contrast table: ren +31.25pp (I-145), kaito 0pp (I-148), sora -12.5pp (I-149) — strong evidence against any blanket tier3 difficulty change, for the reshuffle-interacts-per-kit explanation. Near-miss mean fell even as win rate hit zero, matching her established attrition profile (I-137/I-138), now generalizing to competent-tier3-FINAL too7 (character floor, competent ceiling now compromised too) / lab capability2026-09-06-claude-sora-tier3-6c96799
I-150OPENFourth character completes the reshuffle table and forces a scope correction on the session's 'rebuild is positive' framing. Yui's tier3 FINAL competent win rate 8/16(50%)->6/16(37.5%), score -91.5% (303425->25874, the largest drop of any character). Full tally: ren +31.25pp, kaito 0pp, sora -12.5pp, yui -12.5pp — THREE of four characters flat-to-worse; only ren clearly improved. Since ren is the default character for nearly every other measurement this session, I-122/I-145's 'broadly positive' framing should be scoped to 'true for ren specifically,' not a roster-wide claim7 (no dominant choice, now a tier3 benefit-split too) / 4 (ladder points, murkier for 3 of 4 chars)2026-09-06-claude-yui-tier3-6c96799
I-151OPENFirst party measurement post-rebuild (ren+kaito, tier1 FINAL) — two reassuring findings. Novice bit-identical to solo ren (re-confirms I-087's club-inert-at-novice mechanism). Competent win rate EXACTLY stable (87.5% both old and new sim), unlike tier3 solo characters' dramatic swings — only a modest -6.2% score dip. Proposes the reshuffle's magnitude scales with tier difficulty (tier1 mild, tier3 dramatic), since harsher mods amplify small RNG-driven differences more7 (no dominant choice) / lab capability (reshuffle-magnitude-scales-with-tier calibration)2026-09-06-claude-club-renkaito-6c96799
I-152OPENRen+kaito party at tier3 shows a genuine 'weakest link' dynamic. Novice bit-identical to solo ren's tier3 read (I-087/I-151's inert-at-novice mechanism holds at tier3 too). Competent win rate 0/16 — matches solo kaito's tier3 collapse (I-148) exactly, NOT solo ren's improved 50-56% (I-145), despite ren being the active party member. Party inherits the weaker member's failure, not an average — real, design-relevant independent of the reshuffle thread7 (weak-partner drags down a strong one's outcome) / 4 (ladder points)2026-09-06-claude-club-renkaito-tier3-6c96799
I-153OPENCompletes I-120/I-129's domain-cast-rate tier ladder: tier3 rate 1.67/min(old)->2.60/min(new, +55.7%), turning a non-monotonic bump-then-drop shape into a clean increasing one. Explained by I-145's ren-specific tier3 survival doubling — runs last longer, more time to cast. Explicitly scoped to ren per I-150's correction, not a roster-wide claim9 (sink contract, domain-pressure) / lab capability (economy-cliff artifact explained away)2026-09-06-claude-tierladder-tier3-6c96799
I-154OPENFifth PREFER-list item ('crit') reinforces multi's hidden-cost pattern: competent win rate unchanged (16/16), score -5.2%, but hitsTaken_p50 +33% (24->32) and near-miss mean 0->0.13 when excluded. Novice score identical to control to the integer despite hits/near-miss moving. Five items span the spectrum: output=trap, hands=load-bearing, vital=insurance, multi/crit=hidden-cost. Proposes this is now the default expectation for untested PREFER items, and the series is near diminishing returns7 (no dominant choice) / 2 (threat pulse, the metric that catches it)2026-09-06-claude-i092-crit-nooutput-6c96799
I-155OPENRotation I paper proposal: 'Bell Guardian', routing After Hours entry through the sim's EXISTING boss-held-bell mechanic (unprotected, `heldBy==='boss'` skips the HP floor per a code comment) instead of free overtime, targeting AH's confirmed near-zero risk (I-093/I-101/I-139). Held bells already fire 44% of the time at QUIZ competent with 0 deaths in that sample — the default duel difficulty is itself too safe, a calibration point for tuning an AH-specific version harder. Needs a human for sim.js wiring2 (threat pulse — targets AH directly) / 9 (sink contract)2026-09-06-claude-ah-gate-mechanic-sketch-6c96799
I-156OPENGym's cliff extends into heuristic 6 (narratable deaths), not just win rate: only 13.3% of novice FINAL gym deaths are boss-attributed vs yard's 38.5% at the same sha/skill/period, despite similar median death timing. Both rooms miss heuristic 6's 'late or boss-attributed' bar at novice skill, but gym is ~3x worse at giving deaths a story. Proposes checking narratability alongside win rate if I-077/I-132's obstacle fix ever ships6 (narratable deaths) / 7 (no dominant map)2026-09-06-claude-gymcliff-rebaseline-6c96799
I-157OPENFirst standalone ROOF check post-rebuild: confirmed the hardest room (novice 0/16, competent 4/16=25%, vs yard 18.75%/100% and gym 6.25%/81.25%) AND the worst on death narratability (6.25%/8.3% boss-attributed, below gym's 13.3% and yard's 38.5%). Competent near-miss mean 0.69, highest of any room this session — genuinely dangerous, the one bright spot. ROOF costs 1500◆ to unlock (most expensive room), making this a sharp heuristic-4 violation. Extends I-078's original ladder-run finding via an independent single-room method4 (ladder points, deepest wall confirmed) / 6 (worst narratability of any room) / 2 (threat pulse — genuine danger)2026-09-06-claude-roof-rebaseline-6c96799
I-158OPENGym's obstacle-strip fix (I-077/I-132) generalizes to roof only PARTIALLY, unlike gym's near-total closure. Competent win rate 25%->43.75% (+18.75pp), score +43.6%, hits -23.5% when stripped — a real improvement, but roof's stripped ceiling remains far below gym's stripped 100%. Novice completely unchanged (0/16 both arms). Confirms roof's difficulty isn't simply an obstacle problem — a second, unidentified factor is at work7 (no dominant map — roof genuinely different from gym) / 4 (ladder points, partial fix)2026-09-06-claude-roof-obstaclestrip-6c96799
I-159OPENIdentifies roof's second difficulty factor: death-context on the stripped arm shows 'projectiles-present' becomes dominant (4/9, 44.4%), up from a minor factor in stock roof (1/12, 8.3%) — obstacles were incidentally blocking ranged fire, exposed by stripping. deathT shifted earlier among remaining losers (198s vs 343s), flagged as a population-composition caveat not direct causation. Gives roof a concrete next lever (projectile exposure) instead of vague residual difficulty6 (narratable deaths, a step better) / 7 (identifies the actual second lever)2026-09-06-claude-roof-obstaclestrip-6c96799
I-160OPENRoof's novice wall is a sharp cliff, not a gradual decline like kaito/sora's: QUIZ 56.25% playable, MIDTERM/FINAL both 0%. deathT clusters near-identically across periods (168-174s) regardless of length — points at a specific timed event, not general endurance. 'projectiles-present' dominates MIDTERM's death context (37.5%) at STOCK roof, confirming I-159's projectile finding is a broader pattern, not a stripped-arm artifact4 (sharp room-level cliff) / 6 (still mostly anonymous/projectile) / 7 (converging mechanism across two measurements)2026-09-06-claude-roof-midterm-novice-6c96799, ...-quiz-novice-6c96799
I-161OPENCode read (`sim.js:268`, `nextBossAt = min(150, max(60, nightLen-60))`) explains I-160's MIDTERM/FINAL deathT match: both periods resolve to the SAME t=150 first-boss spawn, so the deterministic pre-boss run and fatal encounter play out identically regardless of remaining period length. QUIZ gets an earlier t=120 boss but with a short-period HP discount. THE JANITOR isn't roof-exclusive — same boss/timing hits yard/gym — so the room-specific factor is how roof's geometry handles this universal encounter, not the boss itself. Closes the mechanism question this lab can answer without touching sim.js4 (mechanism behind the wall) / 7 (shared system + room-specific interaction)2026-09-06-claude-roof-midterm-novice-6c96799
I-162OPENKaito's fragment income (I-131 extended) is only modestly higher than ren's despite scoring 3-4x higher (I-135): novice 3130 vs 2852 frags/hr (+9.7%), competent 4328 vs 4186 (+3.4%). Score and fragments are governed by different formulas, not a fixed ratio — the currency that actually buys perks is far more evenly distributed across characters than the flashier score number suggests, reassuring for heuristic 79 (sink contract, progression parity) / 8 (score-chasing != economy-chasing)2026-09-06-claude-perk-economy-kaito-6c96799
I-163OPENCompletes the roster fragment-economy picture (4/4 characters). Competent skill: all cluster tightly (4186-4328/hr, 3.4% spread) despite a 59% score spread. Novice skill runs backward from a naive assumption: sora has the LOWEST fragment income (2378/hr) despite scoring HIGHER than ren/yui — 2.4x ren's score, 20% fewer fragments/hr. A roster-complete, well-confirmed finding that the real progression currency is far flatter than score suggests9 (sink contract, roster-wide parity confirmed) / 7 (no dominant choice, economy dimension)2026-09-06-claude-perk-economy-sora-6c96799, ...-yui-6c96799
I-164OPENFirst elective-cast-rate measurement this session: kitted ren@yard FINAL with CIRCUIT casts 8.35/min novice, 6.20/min competent (verified: only successful casts count, code-checked). Explains the mechanism behind I-143's CE-band PASS (44% avg) — frequent regular casting keeps CE oscillating mid-range rather than hoarded or starved. Novice casts 34.7% more often despite identical CE-avg5 (CE band mechanism) / 9 (sink contract, frequent reward)2026-09-06-claude-elective-uptime-6c96799
I-165VALIDATEDsee I-166Caught a real harness gotcha (`--elective=` silently no-ops under `--kit=full`, `--electives=` required — documented in adapters/claude.md), then found a large elective-balance violation once corrected: novice win rate CIRCUIT 50%, FLASH 31.25%, DECOY 81.25% — a 50pp spread, one of this session's largest heuristic-7 violations. DECOY's crowd-aggro-redirect approach dramatically outperforms FLASH's personal escape at low skill7 (no dominant choice, elective axis) / lab capability (harness gotcha caught and documented)2026-09-06-claude-elective-decoy-fixed-6c96799, ...-flash-fixed-6c96799
I-166VALIDATEDTwo-bank confirmation of I-165: ordering replicates (DECOY > CIRCUIT > FLASH both banks), magnitude varies with expected n=16 noise. Bank A 50pp spread, bank B 31.25pp spread, both well above the 15pp heuristic-7 threshold. The elective-balance violation is real and confirmed, ready for design review7 (no dominant choice, now 2-bank) / lab capability2026-09-06-claude-elective-decoy-16b-6c96799, ...-circuit-16b, ...-flash-16b
I-167OPENRotation A rerun (most-stale letter): I-130's exact funnel (`playtest.mjs`, same seeds) reproduces BIT-IDENTICALLY at 6c96799, 46 iterations later (134->188) — all 12 cells match dawns/deathT percentiles exactly. Confirms the sim surface has been genuinely stable this whole span (matches every gameVersion() metadata check in between), so every finding recorded against 6c96799 across roughly 45 findings (I-121 through I-166) stays directly comparable without re-baselining. A housekeeping/lab-capability result, not a gameplay leverlab capability (cross-iteration comparability confirmed)2026-09-06-claude-funnel-nodrift-6c96799-check2
I-168VALIDATEDsee I-169Kitted QUIZ is fully solved at BOTH skills with a sharp heuristic-2 violation: 16/16 wins novice AND competent, zero near-misses at either skill (mean 0.0), threat sparkline flat all-zero at competent, minHP never below 78.8%(novice)/100%(competent) median — textbook 'wins with minHP>70% are chores'. First heuristic-1/2/3 read on kitted QUIZ this session (I-143 only covered FINAL's CE band); fails heuristic 2 harder than any FINAL result on record. Score nearly flat across skill too (21632 vs 20383, 6% apart) despite the huge difficulty gap2 (threat pulse, clean violation) / 8 (quickie contract, score not differentiating)2026-09-06-claude-engagement-quiz-kitted-6c96799
I-169VALIDATEDTwo-bank confirmation of I-168: bank B (standard-16b) matches exactly — 16/16 wins both skills, near-miss mean 0.0 at both skills, minHP p50 76.3%/82.4% (bank A: 78.8%/100%). Zero near-misses on 4 of 4 bank x skill combinations checked. Kitted QUIZ delivers no threat pulse at any skill level, ready for design review2 (threat pulse, now 2-bank confirmed) / lab capability2026-09-06-claude-engagement-quiz-kitted-16b-6c96799
I-170OPENMechanism check for I-168/I-169: bare-kit QUIZ ALSO wins 16/16 both skills with near-miss mean 0.0 — rules out a kitted-power-level explanation in favor of a period-length one. Kit removal does drop novice minHP p50 from 78.8% to 42.1% (a real wounded-band dip), but even that stays above the 15% near-miss line; competent skill's kit/bare gap nearly vanishes (100% vs 85.3%). QUIZ's 180s length caps achievable danger regardless of kit — gear moves how wounded a run gets, not whether it ever reaches a near-miss2 (threat pulse, mechanism identified) / lab capability2026-09-06-claude-engagement-quiz-barekit-6c96799
I-171VALIDATEDsee I-172Rotation G, fresh angle: I-139 only ever checked competent AH; novice AH is NOT risk-free. Kitted novice FINAL: 8/16 reach the bell (matches I-143), and 3/8 (37.5%) DIE during the 300s AH window vs competent's clean 0/16. Gains per attempt are similar to competent (+389 frags vs +345, rate 736.6 vs 771.6 pt/s) but novice AH genuinely costs some players their run — heuristic 9's risk invariant is live at novice even though it reads as pure bonus value at competent. n=8 (below the usual floor), worth a second bank9 (sink contract, risk invariant holds at novice) / 2 (threat pulse, real teeth for novice)2026-09-06-claude-after-hours-ev-novice-6c96799
I-172VALIDATEDTwo-bank confirmation of I-171: bank B (standard-16b) matches qualitatively — 9/16 reach the bell (56.25%, matching I-165/I-166's independent bank-B win rate exactly), 2/9 (22.2%) die during the 300s AH window (bank A: 37.5%). Both banks confirm novice AH has real, nonzero death risk vs competent's clean 0/16 on two separate competent samples — magnitude varies as expected at this n, direction doesn't. Ready for design review9 (sink contract, risk invariant, 2-bank confirmed) / 2 (threat pulse)2026-09-06-claude-after-hours-ev-novice-16b-6c96799
I-173OPENtiming confirmed, boss-attribution retracted, see I-174Rotation F, fresh angle: kitted yard FINAL passes heuristic 6 far better than bare-kit (I-099) on both axes. Novice: deathT p50 588s (81.7% into the 720s night, genuinely late) vs bare-kit's 43%-into-night mid-night wall; boss-attributed 4/8 (50%) vs bare-kit's 43%. Competent has zero deaths at n=16 (16/16 wins) — heuristic 6 moot there. Kit investment fixes narratability, not just win rate6 (narratable deaths, clear improvement) / 4 (ladder points, another improved axis)2026-09-06-claude-death-autopsy-kitted-final-6c96799
I-174OPENTwo-bank check of I-173 splits into a confirmed claim and a retracted one. TIMING replicates: bank B novice deathT p50 505s (70.1% into the 720s night), p75 704s (97.8%) — both banks agree deaths land genuinely late. BOSS-ATTRIBUTION does NOT replicate: bank B is 0/7 (0%) boss-attributed vs bank A's 4/8 (50%) — a full reversal, not a magnitude wobble, the same population-composition caution as I-146/I-147. Scope I-173 down to the timing claim only; the boss-attribution half was a single-bank artifact6 (narratable deaths, timing axis confirmed) / lab capability (one sub-claim replicates, one doesn't)2026-09-06-claude-death-autopsy-kitted-final-16b-6c96799
I-175OPENRotation I sim-sketch, feasibility check for a QUIZ threat-pulse fix (following I-168-I-170): does cranking existing tier mods (STAGE_TIERS enemyHpMult/enemySpeedMult) restore any threat? No. Tier 2: near-miss mean 0.0 both skills. Tier 3 (hardest existing mod): near-miss mean 0.0 novice, 0.06 competent (1/16 runs) — flat across three magnitude steps. Rules out a scripted late-QUIZ HP/speed spike as a fix; the bottleneck is TIME (enemies need sustained exposure to converge), not enemy toughness. Real fix needs to touch spawn positioning/timing, not stat magnitude2 (threat pulse, narrows fix design space) / lab capability (rules out a plausible idea before it's built)2026-09-06-claude-quiz-tier3-threat-sketch-6c96799, ...-tier2-threat-sketch-6c96799
I-176VALIDATEDsee I-178Roster extension of I-171/I-172: novice AH death risk generalizes and SCALES with each character's known novice fragility. Ranking by AH death rate: yui 4/5 (80%) > kaito 3/4 (75%) > ren 22-37.5% (I-171/I-172) > sora n/a (0/16, never reaches the bell at all). kaito's AH gains are also dramatically smaller (+9 frags/+8632 score vs ren's +389/+220993) — consistent with I-115's slow-weapon finding. AH risk is highest exactly where players are already weakest, the opposite of what a bonus round should do. n=4-5, worth confirming, but a stark directional pattern9 (sink contract, risk invariant strongest for weakest chars) / 7 (no dominant choice — AH becomes a de facto character trap)2026-09-06-claude-after-hours-ev-novice-yui-6c96799, ...-kaito-6c96799, ...-sora-6c96799
I-177OPENRotation J, fresh angle: does the fragment economy flatten once kitted? No — it pays MORE per hour. Kitted pooled rate: 5138.6 frags/hr novice (+73.3% vs recomputed bare-kit 2965.3), 5951.0 frags/hr competent (+26.4% vs 4708.7). Kit investment compounds rather than hitting diminishing returns — reassuring heuristic-9 finding, joins I-143/I-162/I-163/I-173 as another axis kit investment improves beyond win rate. Novice claim needs n=64 to formally VALIDATE per I-019's bimodality rule9 (sink contract, no diminishing returns) / 4 (ladder points, kit compounds)2026-09-06-claude-perk-economy-kitted-6c96799
I-178VALIDATEDTwo-bank confirmation of I-176: character-scaled AH death risk replicates cleanly. yui bank B: 10/16 reach the bell, 8/10 (80%) die in AH — an EXACT match to bank A's 80% on a larger n=10. kaito bank B: 3/16 reach the bell, 3/3 (100%) die — even starker than bank A's 75%. sora bank B: a rare 2/16 reach the bell (bank A was 0/16), both die (100%). All three confirm AH risk for weaker characters sits far above ren's 22-37.5% range. Ready for design review9 (sink contract, risk invariant, now 2-bank) / 7 (no dominant choice, AH as character trap)2026-09-06-claude-after-hours-ev-novice-yui-16b-6c96799, ...-kaito-16b-6c96799, ...-sora-16b-6c96799
I-179OPENRotation I sim-sketch, feasibility check for the AH-fairness IDEAS.md entry's 'shorten AH for weak characters' proposal: only a PARTIAL fix. yui: only 2/5 bell-winners die by t+150s in AH, 2 more die in the second half — halving AH's length would cut her death rate 80%->40%. kaito: all 3/4 AH deaths happen within the first 150s — halving the window saves zero of his runs (75% either way). Different failure mechanisms: yui = gradual attrition (duration-sensitive), kaito = immediate kit mismatch (I-115), duration-insensitive9 (sink contract, tests a specific fix) / lab capability (one fix helps one character, not another)2026-09-06-claude-ah-duration-sensitivity-yui-6c96799, ...-kaito-6c96799
I-180OPENRotation C, extends I-152's 'weakest link' party dynamic into AH risk. kaito+ren club novice: 7/16 reach the bell (43.75%, between solo kaito's 25% and solo ren's 50%), but ALL 7 (100%) die in AH — worse than solo kaito's own 75%. Partying with a stronger character does NOT rescue a weaker character's AH survival; party fate tracks kaito's fragility, not a blend. Per-attempt gains modest but nonzero (+70 frags/+35044) thanks to ren's contribution, yet the party still dies every time. n=7, worth a second bank9 (sink contract, risk invariant extends to party play) / 7 (no dominant choice, clubbing doesn't rescue AH risk)2026-09-06-claude-ah-ev-party-kaitoren-6c96799
I-181OPENSixth PREFER-list item ('pierce') is load-bearing, joining 'hands'. Excluding it costs real hits taken at BOTH skills: novice hitsTaken_p50 47->66 (+40.4%), competent 24->34 (+41.7%), win rate flat at competent (16/16). Novice score rose (59398->126764) despite fewer wins — likely population-composition noise (I-146/I-147 pattern), not a real benefit; the hits-taken signal is the trustworthy one. Six items now span the full spectrum: output=trap, hands/pierce=load-bearing, vital=insurance, multi/crit=hidden-cost7 (no dominant choice) / 2 (threat pulse, catches the real cost)2026-09-06-claude-i092-pierce-nooutput-6c96799
I-182VALIDATEDsee I-183Rotation E, fresh room: POOL, never tested this session, is HARDER than ROOF (the previous 'deepest wall'). Kitted: novice 0/16 wins, competent 2/16 (12.5%, half of roof's 25%). Fails heuristic 6 worse too: 0% boss-attributed at novice (0/16), 14.3% at competent; deaths are EARLY not late (novice p50 31.9% into the night, competent 48.3%). Dominated by projectiles (50% novice) and mob pressure, same signature as stripped-roof's I-159 finding. Costs only 800◆ (vs roof's 1500◆) — cheaper AND harder, an even sharper heuristic-4 violation4 (ladder points, now the session's worst room) / 6 (narratable deaths, worst of any room) / 2 (threat pulse, genuinely dangerous)2026-09-06-claude-pool-rebaseline-6c96799
I-183VALIDATEDTwo-bank confirmation of I-182: POOL harder than ROOF holds on bank B. Novice 0/16 (matches bank A exactly), competent 3/16 (18.75%, still well below roof's 25%). Boss-attribution stays low (novice 6.25%, competent 30.8%), deaths stay early (novice p50 37.8% into night, competent 43.1%), causes remain projectile/mob-pressure dominated. Ready for design review — POOL is the session's actual worst room by both win rate and narratability, on two independent banks4 (ladder points, 2-bank confirmed worst room) / 6 (narratable deaths, confirmed worst)2026-09-06-claude-pool-rebaseline-16b-6c96799
I-184OPENObstacle-strip check for POOL (mirroring gym/roof, I-077/I-132/I-158): does NOT generalize. Novice: 0/16 wins both stock and stripped — zero movement. Competent: 2/16 (12.5%) stock -> 4/16 (25%) stripped, a real doubling but landing exactly at ROOF's OWN pre-fix win rate — POOL's post-fix ceiling matches roof's pre-fix floor. hitsTaken unchanged at both skills. Death causes stay projectile-dominated in BOTH conditions (unlike roof, where stripping CREATED a projectile problem) — POOL's danger is structural (open-water sightlines), not obstacle-mediated4 (ladder points, partial fix at best) / 6 (narratable deaths, structural not obstacle-driven)2026-09-06-claude-pool-obstaclestrip-6c96799
I-185OPENRotation H follow-up to I-164/I-165/I-166: DECOY's win-rate advantage over CIRCUIT is NOT explained by casting it more often — cast rates are nearly identical. Novice: DECOY 8.31/min vs CIRCUIT 8.35/min (noise). Competent: DECOY 6.57/min vs CIRCUIT 6.20/min (+6%, far too small to explain the win-rate gap). Since frequency is ruled out, the mechanism must be per-cast VALUE — DECOY's aggro-redirect effect does more useful work per cast than CIRCUIT's damage, confirming rather than just hypothesizing I-165/I-166's proposed mechanism5 (CE band mechanism) / 7 (no dominant choice, mechanism now understood)2026-09-06-claude-elective-decoy-uptime-6c96799
I-186VALIDATEDsee I-187Rotation B, fresh angle: kitted MIDTERM behaves like QUIZ, not FINAL, on near-misses. 16/16 wins both skills, near-miss mean 0.0 both — matching QUIZ's I-168/I-169 zero-threat pattern, not FINAL's 50% novice win rate/0.38 near-miss mean (I-143). But minHP shows real texture QUIZ lacks: novice p50 51.4% (below QUIZ's 76-79%, into the documented wounded band), competent 77% (below QUIZ's 82-100%). Extends the QUIZ over-safety scope: the problem isn't unique to the 180s quickie mode, it reaches at least MIDTERM's 360s2 (threat pulse, extends violation to a second period) / 8 (quickie contract, safety-net character extends beyond QUIZ)2026-09-06-claude-engagement-midterm-kitted-6c96799
I-187VALIDATEDTwo-bank confirmation of I-186: tight replication. Bank B: 16/16 wins both skills (matches exactly), near-miss mean 0.0 both (matches), minHP p50 52.7% novice (bank A: 51.4%) and 79.3% competent (bank A: 77%). Both banks confirm MIDTERM sits between QUIZ and FINAL — deeper HP dips than QUIZ but never a genuine near-miss. Ready for design review; fix here may need only a modest surge/HP-ramp nudge rather than QUIZ's full redesign2 (threat pulse, 2-bank confirmed) / lab capability2026-09-06-claude-engagement-midterm-kitted-16b-6c96799
I-188OPENRotation E, another untested room: LAB fills in the room ladder as a genuine 'moderate' room, confirming POOL/ROOF are real outliers. Kitted competent win rate 43.75% (7/16), between roof's 25% and gym's 81.25%, well above pool's 12.5-18.75%. Novice still 0/16 (shares the wall every hard room has). Narratability shares pool/roof's early-anonymous pattern despite the better win rate: deathT p50 26%/47.2% into the night, boss-attributed only 6.25%/11.1% — suggests the narratability problem may be broader than just the two worst rooms4 (ladder points, genuine middle data point) / 6 (narratable deaths, shared problem despite different win rates)2026-09-06-claude-lab-rebaseline-6c96799
I-189OPENResolves I-188: the early/anonymous death pattern in LAB/POOL/ROOF is NOT novice-skill-universal, it's room-specific. Kitted GYM novice: deathT p50 522s (72.5% into the night, LATE — matches yard's pattern, not lab/pool/roof's 26-48%). But boss-attribution stays weak everywhere: GYM novice 0/12 (0%) despite late timing. Competent GYM 2/3 (66.7%) boss-attributed — best figure of any room this session. Splits heuristic 6 into two independent axes: TIMING tracks room difficulty/geometry, BOSS-ATTRIBUTION is weak nearly everywhere regardless — a separate, more pervasive problem6 (narratable deaths, splits into two sub-problems) / 4 (ladder points, gym novice 25% new data point)2026-09-06-claude-gym-deathcontext-kitted-6c96799
I-190OPENCode-read follow-up resolving WHY boss-attribution is structurally rare everywhere (I-189). The classifier (`playtest-runner.mjs:539-544`) labels a death 'boss:X' only when the boss is the SINGLE NEAREST living enemy at the death tick — no distance threshold, and `liveBosses` (any boss alive anywhere) is captured but NEVER consulted. Since bosses are ordinary members of the same flat `sim.enemies` array as every mob (`sim.js:1787-1788`), a boss must out-compete potentially dozens of converging mobs to be literally closest at death — rare by construction in a swarm-based game, not a room-specific gap6 (narratable deaths, mechanism found) / lab capability (root cause via code read)2026-09-06-claude-gym-deathcontext-kitted-6c96799
I-191OPENRotation F, follow-up to I-190: does the boss actually get close to the player, ruling out 'boss avoids player' as an alternative explanation for low boss-attribution? Yes — min distance to boss ranged 1.4-3.0 units across all 8 runs sampled (genuine melee range, every run), and pooled it sits within 10 units 29.8% of sampled seconds, within 20 units 75.7%. The boss is frequently right next to the player; per I-190 it just rarely wins the 'single nearest enemy' contest against a whole swarm. Closes the mechanism investigation — low boss-attribution is purely a crowd-density artifact, not a boss-positioning issue6 (narratable deaths, confirms mechanism empirically) / lab capability (rules out an alternative hypothesis)2026-09-06-claude-boss-proximity-trace-6c96799
I-192OPENRotation J, fresh angle extending I-152's weakest-link dynamic to the economy: clubbing helps frags/hour at novice but not competent — opposite of AH survival (I-180). Novice: kaito+ren party 5161.5 frags/hr (+6.7% over solo kaito's 4835.3/hr) AND win rate improves (43.75% vs 25%). Competent: party rate 6402.7/hr actually LOWER than solo kaito's 6642.2/hr (-3.6%) despite both 16/16 wins — once kaito wins reliably alone, clubbing adds no economy benefit and a small cost. Contrasts sharply with I-180 (clubbing never helps AH survival) — clubbing rescues the main economy for a struggling character but is a wash once rescue isn't needed9 (sink contract, party economy dynamics) / 7 (no dominant choice, skill-dependent)2026-09-06-claude-perk-economy-party-kaitoren-6c96799
I-193OPENRotation E, another untested room: BOILER slots smoothly into the room ladder between ROOF (25%) and LAB (43.75%) at 37.5% competent win rate, and its 1000◆ cost sits normally between pool's 800◆ and lab's 1200◆ — unlike POOL, price and difficulty track together here. Novice 0/16, confirms the early/anonymous death pattern (I-189) extends to a 4th hard interior room: deathT p50 31% into the night, 0% boss-attributed. Room ladder now: yard 100% > gym 81.25% > lab 43.75% > boiler 37.5% > roof 25% > pool 12.5-18.75% — a smooth curve with two genuine outliers at the bottom4 (ladder points, fills the curve) / 6 (narratable deaths, extends pattern to 4th room)2026-09-06-claude-boiler-rebaseline-6c96799
I-194OPENRotation I follow-up quantifying WHY I-175's 'time, not toughness' holds. Computed config.js's HP-ramp formula (`(1+t/240+(t/380)^2)*2^(max(0,t-630)/100)`) at key timestamps: QUIZ boss spawn t=120 = 1.6x base HP, QUIZ end t=180 = 1.97x. FINAL: t=400 = 3.78x, t=700 = 11.88x, t=800 (AH) = 28.48x. QUIZ never exceeds ~2x — even tier 3's ~1.9x mod stacked on top tops out under 4x, a small fraction of FINAL's late-game 12-28x. Proposes a period-scoped fix: give QUIZ's boss a virtual time offset for its OWN stat calculation only (not the shared ramp), a precisely-sized sim.js ask rather than a vague 'make QUIZ scarier' request2 (threat pulse, exact mechanism) / lab capability (code-read calculation, no new sim run)2026-09-06-claude-quiz-tier3-threat-sketch-6c96799
I-195OPENRotation C, extends I-180's clubbing-doesn't-rescue-AH finding to a second pairing: yui+ren converges on the SAME 100% AH death rate as kaito+ren. yui+ren reaches the bell 31.25% (identical to solo yui — ren doesn't change reach-rate here, unlike kaito+ren's 25%->43.75% boost), and ALL 5 who reach it die in AH (100%, up from solo yui's 80%). Both tested pairings land on exactly 100% regardless of solo baseline or which weak-character failure mode (kaito's immediate mismatch vs yui's gradual attrition, I-179) — clubbing categorically doesn't help AH survival9 (sink contract, risk invariant, 2nd party pairing) / 7 (no dominant choice)2026-09-06-claude-ah-ev-party-yuiren-6c96799
I-196VALIDATEDsee I-197MAJOR scope correction: 'AH is risk-free at competent skill' (I-093/I-101/I-139) is REN-SPECIFIC, not roster-wide. At competent skill, all 3 other characters reach the bell 16/16 but die in AH at real rates: kaito 11/16 (68.75%! — the single largest AH-risk number found all session, at any skill), yui 5/16 (31.25%), sora 6/16 (37.5%). Only ren shows the clean 0/16 that grounded the original framing. Character ranking matches the established novice-AH ordering exactly, now confirmed at competent skill too — this is a roster-wide AH design issue invisible only because ren is the default test character for nearly every other measurement this session (I-150's standing correction pattern)9 (sink contract, MAJOR scope correction) / 4 (ladder points, kaito's kit weakness reaches the bonus round)2026-09-06-claude-ah-ev-competent-roster-6c96799
I-197VALIDATEDTwo-bank confirmation of I-196: competent-skill AH risk for the roster holds, kaito's is even WORSE on bank B. kaito: 16/16 reach the bell, 13/16 (81.25%!) die — higher than bank A's 68.75%, the largest AH-risk figure recorded this session on either bank. yui: 16/16 reach the bell, 3/16 (18.75%) die (lower than bank A's 31.25% but still nonzero). sora: 15/16 reach the bell, 4/15 (26.7%) die (lower than bank A's 37.5%, still nonzero). All three confirm real competent-skill AH risk on a second bank — ready for design review9 (sink contract, MAJOR scope correction, now 2-bank) / 4 (ladder points)2026-09-06-claude-ah-ev-competent-kaito-16b-6c96799, ...-yui-16b-6c96799, ...-sora-16b-6c96799
I-198VALIDATEDsee I-199Seventh PREFER-list item ('regen') is the MOST severe item found this series: excluding it causes a full novice win-rate WIPEOUT (3/16 control -> 0/16), and even costs competent a win (16/16->15/16). hitsTaken_p50 drops (47->38 novice) despite the collapse — a population-composition artifact (runs die faster, ending the hit count early), confirmed by near-miss mean tripling (0.13->0.44). Checked regen's actual PREFER rank (bot.js:13): position 7 of 17 — already treated as mid-upper priority, no policy bug, this is purely about how severe the downside would be if it were ever skipped7 (no dominant choice) / 2 (threat pulse, near-miss triples) / 4 (ladder points, full wipeout)2026-09-06-claude-i092-regen-nooutput-6c96799
I-199VALIDATEDTwo-bank confirmation of I-198: regen's novice wipeout replicates EXACTLY (0/16 both banks) and the competent cost holds (14/16 bank B vs 15/16 bank A, both down from the usual 16/16 baseline). Unlike every other PREFER item tested (output/hands/vital/multi/crit/pierce), regen's absence makes novice FINAL completely unwinnable on two independent samples — the clearest 'do not remove this' signal the series has produced7 (no dominant choice, 2-bank confirmed at its most severe) / 4 (ladder points, confirmed full wipeout)2026-09-06-claude-i092-regen-nooutput-16b-6c96799
I-200OPENExtends I-198/I-199's regen-severity finding to kaito, and the cost is proportionally LARGER. Novice: 0/16 wins with regen excluded, down from kaito's own baseline 2/16 (I-135) — his few novice wins erased entirely. Competent: 9/16 wins (56.25%), down from ~13-14/16 baseline (~81-87.5%, I-135) — a ~28pp drop, considerably bigger than ren's own ~9pp drop from the same exclusion. Regen matters proportionally MORE for a character with less margin — confirms it's CRITICAL roster-wide, not ren-specific (unlike several other findings this session that turned out ren-specific, e.g. I-196)7 (no dominant choice, confirmed cross-character) / 4 (ladder points, compounds on thinner baseline)2026-09-06-claude-i092-regen-kaito-nooutput-6c96799
I-201OPENENVIRONMENT RECONNECT (same pattern as I-121/I-122): sim moved 6c96799->b023c82 mid-iteration (Chris's checkpoint commit, 'character rig + five environment kits + showroom'). Only src/maps.js changed on the sim surface — HALLS/CAFETERIA/DETENTION/BOILER/LAB/ROOF all got substantial new zone geometry (21->72 zone ids). Confirmed empirically: YARD and GYM bit-identical to I-143/I-189 (unaffected). POOL doesn't appear in the diff (unaffected, I-182-184 still valid). But ROOF (I-157-161), LAB (I-188), and BOILER (I-193) all changed — their specific numbers are now STALE and need re-baselining, and POOL's 'harder than roof' comparison framing needs roof refreshed before re-citing. First-ever HALLS reading at the new sha: novice 1/16 (6.25%, worse than every room but pool), competent 9/16 (56.25%)lab capability (scopes which findings need re-baselining) / 4 (ladder points, room ladder's bottom half needs refreshing)2026-09-06-claude-halls-rebaseline-6c96799
I-202OPENRe-baselined ROOF post environment-reconnect (I-201): the room got HARDER, not just different. Competent win rate 25% (I-157, pre-kit) -> 12.5% (this reading, post-kit) — a real halving. Novice stays 0/16 either way. This overturns I-182/I-183's 'POOL harder than ROOF' framing — POOL's own numbers (12.5-18.75%) are unaffected by the reconnect, so ROOF's new 12.5% now roughly TIES pool rather than trailing it. Novice boss-attribution actually improved (6.25%->18.75%); competent held steady (14.3% both). One bank only, needs confirmation4 (ladder points, real regression) / 6 (narratable deaths, mixed) / lab capability (corrects the POOL-vs-ROOF comparison)2026-09-06-claude-roof-rebaseline-b023c82
I-203OPENLAB also got harder post environment-kit (continuing I-201/I-202's pattern), but with a much healthier narratability trade than ROOF. Competent win rate 43.75% (I-188) -> 37.5% — a modest drop (-6.25pp vs roof's -12.5pp). Novice stays 0/16. Boss-attribution nearly QUADRUPLED at competent (11.1%->40%) and doubled at novice (6.25%->12.5%); near-miss mean jumped sharply too (competent hit exactly 1.0 — every loss now has a real near-miss). New geometry added genuine boss-relevant danger, not just generic difficulty — a positive example vs roof's more mixed trade4 (ladder points, modest regression) / 6 (narratable deaths, sharply improved) / 2 (threat pulse, near-miss mean up)2026-09-06-claude-lab-rebaseline-b023c82
I-204OPENBOILER got the BIGGEST regression of the three re-baselined rooms, closing I-201's follow-up. Competent win rate 37.5% (I-193) -> 12.5% (-25pp, bigger than roof's -12.5pp and lab's -6.25pp). Novice stays 0/16. Narratability improved modestly: novice boss-attribution 0%->6.25%, competent 11.1%->21.4%. **Revised room ladder: yard 100% > gym 81.25% > lab 37.5% > boiler/roof 12.5% (tied) > pool 12.5-18.75%** — THREE rooms now cluster at the bottom instead of pool being a clear outlier below roof. The environment-kit pass made the ladder's bottom half harder AND more uniform4 (ladder points, biggest regression, revises ladder shape) / 6 (narratable deaths, modest improvement)2026-09-06-claude-boiler-rebaseline-b023c82
I-205OPENA five-card opening hand from the ten-card starter deck (perk sheet bypassed) lands in the same band as the MAXED perk sheet on ren@yard MIDTERM: novice solo 16/16 (blind five) and 14/16 (keep five of seven) vs 13/16 baseline, score p50 within -6%..-1%; competent solo 16/16 in every arm, score p50 +6%/+9%, hits p50 4/3 vs 8; duo saturated at 16/16. Blind five vs keep-five-of-seven not separable at n=16.preparation budget2026-09-13-claude-cards-blind5-solo (+ the five sibling manifests)
I-401OPENhpLateDouble is not a binding constraint: +30% dawn HP moves nothing—2026-08-30-claude-tune-latedouble-70
I-402OPENdmgRampSec is chaos-dominated at survivable magnitudes; unpinned levers cannot raise the FINAL ceiling—2026-08-30-claude-tune-dmgramp-520
I-403OPENsora's residual deficit is survivability-shaped, not damage-shaped——
I-404OPENmax HP is not recovery: sora hp 90→100 does nothing; the sora single-constant line is closed——
I-405VALIDATEDplayer i-frames are the first lever that moves the FINAL ceiling, and they bite only the competent end——
I-406OPENthe late shift + pressure waves are engagement-positive and economy-NEUTRAL, and they enrich xp per kill——
I-407OPENiframes 0.45 closes I-006 on BOTH clauses, and the cost is paid in mid-ladder near-misses——
I-408OPEN`PLAYER.iframes` is a SWITCH at `touchCd`, not a dial: the same 0.05 step is worth 0 points above it and 27 be—2026-08-31-claude-probe-iframes-050
I-409OPENthe iframes tune is confined to FINAL because it is COUPLED to the late shift; and it has parked QUIZ novice o——
I-410OPENgym spawnMult 0.95→1.00 moved score but not wins post-valve; I-040's lever is compressed, not confirmed4 (ladder points)2026-08-31-claude-tune-gym-spawnmult-1
I-411OPENroster intro timing is not the yard→gym cliff lever either; and the cliff survives all five new mechanics at n=64 with perks MAXED (−51 pts at skill 0.8)4 (ladder points)2026-09-01-claude-tune-gym-wisp-{base64,yardref64,265}
I-412OPENthe anger debt's 2/16→5/16 benefit does not survive n=64 (13%→16%, p=0.77) — it lives entirely in the first 16 seeds; its XP-neutrality claim, though, is exactly right4 (ladder points)2026-09-01-claude-{tune-crash-gym-*,tune-crash-yard-150,oldsim-3c31d02-gym-fresh}
I-413OPEN`ENERGY.regen` is falsified as the CE-band fix: elective-equipped CE was already in-band before the cut, and win rate moved the WRONG way (novice 25%→56%, competent 94%→100%)4 (ladder points)2026-09-01-claude-tune-ce-regen-{before,after}
I-414TUNED`ENERGY.dashCost` 10→20 moves bare-kit competent FINAL off the ceiling (94%→88%, CE 95%→84%) with novice bit-identical; small magnitude, still far from the 7-12/16 target4 (ladder points)2026-09-01-claude-tune-dashcost-{before,after}
I-415OPEN`ENERGY.dashCost` 20→30 buys zero further win-rate movement (flat 14/16) despite CE and hits-taken still moving — the lever is exhausted at 20, not a dial past that point4 (ladder points)2026-09-01-claude-tune-dashcost2-{before,after}
I-416OPENboard #40's `hpQuadSec` and `speedLatePer30` are both locked by `test/invariants.test.js` — out of tuner scope without a deliberate human-owned test+MECHANICS.md update; only `hpRampSec` is a free lever4 (ladder points)—
I-417OPEN`hpRampSec` 240→210 (more enemy HP) makes BOTH skills win MORE (novice 13%→25%, competent 88%→94%) — HP is non-monotone in this economy, likely overkill-clamping feeding domainPerDmg/rally, unverified4 (ladder points)2026-09-01-claude-tune-hpramp-{before,after}
I-418OPENthe overkill-clamp mechanism is code-confirmed (`sim.js:2044` `dealt=Math.min(e.hp,dmg)` feeds CE/rally/domain), not yet trace-verified — any enemy-HP-mass lever backfires; `SPAWN_LADDER.hold` 180→140 pushed competent to 100% (16/16), worst reading this session4 (ladder points)2026-09-01-claude-tune-ladderhold-{before,after}
I-419OPEN`ENERGY.perKill` 0.3→0.2 (33% CE-income cut) moved nothing — competent held flat at 14/16, CE avg barely moved (84%→83%) — the bare-kit standard cell isn't meaningfully CE-income-bound at this magnitude4 (ladder points)2026-09-01-claude-tune-perkill-{before,after}
I-420TUNED`STAGE_TIERS[3].enemySpeedMult` 1.22→1.44 cuts kitted Night III competent win rate 94%→75% (novice 31%→19%) — enemy speed is outside the overkill-clamp channel that broke I-417/I-418, first session lever to move the target metric as predicted4 (ladder points)2026-09-02-claude-tune-tier3speed-{before,after}
I-421OPEN`STAGE_TIERS[3].enemySpeedMult` 1.44→1.6 REVERSES I-420 (kitted Night III competent win 75%→88%) despite hits taken still rising 59→83 — non-monotone past 1.44, likely crowd-separation/contact-burstiness, not the overkill-clamp channel; lever declared exhausted at 1.444 (ladder points)2026-09-02-claude-tune-tier3speed2-after
I-422TUNED`STAGE_TIERS[2].enemySpeedMult` 1.12→1.34 CONFIRMED at n=64: kitted Night II win rate 100%→90.6% (58/64), real and below the pre-tune ceiling — the n=16 flat reading was a measurement-power artifact, not a null4 (ladder points)2026-09-02-claude-tune-tier2speed-{before,after}, tune-tier2speed2-before
I-423OPEN`STAGE_TIERS[2].enemySpeedMult` 1.34→1.44 bought nothing at n=64 (58/64→57/64, noise) while novice fell 27%→14% for zero competent gain — exhausted one step earlier than tier 3 (I-421), saturation not overkill-clamp; next lever is tier 2 `enemyHpMult`, mindful of I-417's win-rate-increase failure signature4 (ladder points)2026-09-02-claude-tune-tier2speed2-after
I-424VALIDATED`STAGE_TIERS[2].enemyHpMult` 1.55→1.9 REVERSES intent — kitted Night II competent win rate ROSE 90.6%→95.3% (n=64), the pre-registered I-417 overkill-clamp signature, now confirmed at a THIRD independent site; also `test/sim.test.js:428` hardcodes this value, blocking any change without a human. Board #46 closed `needs-human`4 (ladder points)2026-09-02-claude-tune-tier2hp-after
I-425VALIDATED`DIFFICULTY.speedRampSec` 1500→900 REVERSES intent — bare-kit tier1 FINAL win rate ROSE both skills (13%→38%, 88%→100%), a THIRD distinct backfire channel (faster closure = more weapon-range time = faster XP), not the overkill-clamp mechanism. Board #39/#40's underlying problem remains unresolved, tuner may be out of moves4 (ladder points)2026-09-02-claude-tune-speedramp-{before,after}
I-426OPENSnapshot/restore determinism bug: at `speedRampSec=900` a live sim and its `Sim.restore()` twin diverge after 10s of identical lockstep stepping (58 vs 55 kills) — reproducible, not flaky, zero RNG involvement in the changed constant, points at a pre-existing `snapshot()`/`restore()` bug (`sim.js:2331`/`2359`) normally inert at shipped values. Filed as board bug #52, needs `sim.js` access—2026-09-02-claude-tune-speedramp-after (test/sim.test.js:405 repro)
I-427TUNEDkaito `weapon.cd` 1.0→0.5 (Static Orb fires 2x as often), the real pass I-117 flagged as a candidate. Confirms I-117 exactly at tier 3 FINAL competent: win rate 0/16→2/16, near-miss mean 0.88→0.44, score p50 137165→259056. No regression at QUIZ (14/16→16/16) or MIDTERM (8/16→15/16), both already healthy for kaito — moved as predicted on all three periods, closing the I-112 through I-118 kaito-collapse thread with a real fix rather than a tradeoff. `npm test` 111/1117 (closes the roster's worst spread) / 2 (near-miss falls, not just wins)2026-09-04-claude-tune-kaito-cd-{final,quiz,midterm}
I-428REJECTEDboard #56 (tuner proposal): sora `weapon.life` 0.55→0.75 (extends Talisman Volley reach ~8.8→~12.0 units) does NOT move novice FINAL win rate — flat 0/16→0/16, despite deathT_p50 rising 454s→483s and score_p50 rising 160443→190122 (she survives longer and scores more, but never converts to a win). Competent stays at its 16/16 ceiling, near-miss mean 0.06→0.13, no regression either way. Third independent single-constant axis ruled out for sora after dmg (I-403, 2026-08-30) and hp (I-404, 2026-08-30) — and unlike those two, this is POST-valve (the recovery valve I-403/I-404 predicted would close her gap has since shipped and evidently doesn't). **The sora single-constant tuner queue is closed a second time; her novice-FINAL wall (I-082/I-084) needs a mechanism-level fix, not another config guess — flag for `docs/IDEAS.md` alongside ROOF/room-geometry.** Config restored byte-identical, `npm test` 111/1119 (sink contract) / 7 (character floor)2026-09-04-claude-tune-sora-life-final