- THE CUT is judged on the PLATE now. It read cutter.last (any cut anywhere,
even on a piece never served) and kinds() stripped the piece suffix, so a
whole uncut tomato scored the same as a cut one — M2 was decorative in live
play. Sando.cutStats() now reports how much of the SERVED filling met the
cleaver; score = cutFrac x (0.6*quality + 0.4*evenness). Serving whole never
blocks a serve, it just zeroes THE CUT and caps near B.
Measured: same sando, cut pieces S(10.0) vs served whole B(7.39).
Fairness trap caught mid-build: evenness must be measured WITHIN a kind, not
across kinds (a katsu slice vs a tomato slice is the recipe, not a crime) —
that silently cost both weeks a grade until fixed.
- 無限 MUGEN: endless orders from a seeded Rng, layers 3->6, clock 50s->16s,
and the anger meter NEVER resets between orders — the only way a run ends is
the strings getting cut. No scene restart between orders. Judge escalates
samurai -> Shogun (5) -> the ONI (12, new MODELBEAST portrait set). Own
leaderboard board; run-over card posts the score. Title cycles 表/裏/無限.
- Spawner gives one whole food per two required pieces (one cut = two halves).
- setDay now explicitly resets the meter instead of relying on scene restart.
- Battery unchanged: 87f / 8.41u / 10-10 / cv0 clean / stack both / disaster
CUT / cleaver CUTS; weeks SSSSSSSS and AASSASSS; mugen escalation verified.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Second week: URA_DAYS (8 harder orders, ramps 1.4-2.0, 18s rush, 7-layer
SHOGUN'S TOWER finale), judged by the SHOGUN — new same-seed portrait set
(oni mask, gold on blood-red washi; Samurai.who prefixes portraits, plus
shogun_bow for an S). Ura is played entirely by moonlight.
- New pantry where the SHAPES are the difficulty: nori (96x8 paper-thin),
ebi (asymmetric convex 7-gon), daikon (46x64 comically tall).
- Flow: KANSEI -> 'the SHOGUN is hungry' -> ura week; ura KANSEI = SHIN-KANSEI
(true ending) -> quiet kitchen. Unlock persists; title gets a 表/裏 toggle +
red ura stamp column (bests at keys 100+).
- Kabuki curtain_red reveal on day advances (procedural fallback; death
retries skip it).
- Verified: base SSSSSSSS; ura A A S S A S S S (all beatable, honestly
harder); full arc kansei->ura->shin-kansei->base in-browser; M1-M3 +
disaster regression identical.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Mobile: Scale.FIT letterboxing, 3 pointers, thumb GRIP button (touch only),
drag-low = reach. Desktop input and all battery numbers unchanged.
- Progression: localStorage best-grade per day (game/progress.ts), red hanko
trophy shelf on the title, KANSEI completion card after day 8 (all stamps,
click restarts the week). Serve->save->shelf->kansei->day0 verified.
- Day-intro card each live day (name/layers/pressure, fades out).
- Music: seeded pentatonic plucks + taiko heartbeat on setInterval, starts at
begin, stops dead at the string cut. sfx.chop() thunk on real cuts.
- Night shift: days 4-6 dusk / 7-8 night backdrops (MODELBEAST batch 3 — moon,
bonsai, lanterns), guarded fallback to noon washi.
- Battery green: M1 87f/8.41u/10-10, M2 cv0 clean, M3 both, days SSSSSSSS,
live serve@31f, disaster CUT, saved best {0:B} confirmed in localStorage.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Sando is zone-DETECTION now: the stack = food bodies physically resting in
the plate zone, bottom->top. Hand-stacked and harness-stacked sandos are
judged identically (sando.kinds() is what the judge reads).
- The full live loop: Game.state + updateLive() — ticket clock with late-anger
(1 bump/3s overdue), bow-dwell serve (hold still 0.5s over a matching
standing sando -> scorecard), click -> next day; string cut -> ragdoll ->
fail card -> click retries the same day with fresh strings. setupDay stages
bread + fillings per order; sins fire live off cutter.onCut + offstage sweep.
- String unlockables: HEMP/RUBBER/CHAIN/SILK picker on the title (stiffness/
damping multipliers, registry-persisted). Rubber visibly stretches.
- Days 6-8: Tamago (it rolls), Tofu (fragile), THE TOWER (5 layers) + tofu food.
- samurai_bow (same seed): an S serve swaps in the single approving nod.
- Battery: M1 87f/8.41u/10-10, M2 cv0 clean, M3 both, days SSSSSSSS, live
serve commits at 31f (~0.5s), death->retry + serve->advance verified.
- Known: embedded preview pane never fires rAF (visibilityState hidden) — live
loop freezes there by browser design; harness steps manually. Real tabs fine.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>