From a2ecfdda8f922a6c41135df15a44dd8db21ee056 Mon Sep 17 00:00:00 2001 From: type-two Date: Sun, 19 Jul 2026 20:56:55 +1000 Subject: [PATCH] Atlas P10.5: the cold chain doctrine (spoilage/placement/rotation/freezer) Cure's defensive twin, spec'd around the verified coldchain.ts sim. The scene + cross-day carryover + inspector hygiene row are the remaining build to make it playable; composes with the shop, the eggs' float test, and the cure (same day-clock, opposite sign). Co-Authored-By: Claude Fable 5 --- KITCHEN-ATLAS.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/KITCHEN-ATLAS.md b/KITCHEN-ATLAS.md index 04f2693..05eac73 100644 --- a/KITCHEN-ATLAS.md +++ b/KITCHEN-ATLAS.md @@ -241,6 +241,52 @@ The pot is the pan's sibling: a heat-under-vessel with a LIQUID field. bucket, preserving jars ×4 (empty/full family), gravlax slab, curing shelf, ice cream scoop, coupe glass. +### P10.5 — THE COLD CHAIN (cure's defensive twin — SIM BUILT & VERIFIED 2026-07-20) + +The cure is time you *want*; the cold chain is time you *fight*. `src/sim/coldchain.ts` +is built and gate-verified — spoilage is the temperature clock pointed the other +way: every perishable's `freshness` (1→0) only falls, on the DAY clock, and three +disciplines sit on top. The doctrine (John's ask, 2026-07-20): + +> **Where you put it, how you stack it, and how long it's been there. Fresh food +> is a clock you can slow but never stop — the fridge crawls it, the freezer +> nearly halts it (for a texture price), the bench races it. Use the oldest first +> or it rots in the back.** + +- **Spoilage clock** (`coldStep(store, days)`): `freshness -= BASE_SPOIL · perish · + zoneWarmth · days`. Per-ingredient `perish` (fish/mince ~2, dairy ~1, onion ~0.3). + Thresholds fresh→use-soon→off→**dangerous**. Verified: raw fish over 3 days is + dangerous on the bench, "off" in the fridge, fresh in the freezer. +- **PLACEMENT — zones** (`ZONE_COLD`): door 0.55 (warmest), main fridge 0.78, back + 0.9 (coldest), freezer 1.0. Raw meat goes low, dairy mid, condiments in the door. + **Contamination**: a `raw` item on a higher `shelf` than a `readyToEat` item drips + → the lower item is flagged unsafe + docked (verified: raw-above-salad → unsafe; + same-shelf → safe). **Overpack**: past `ZONE_CAP` airflow chokes and the zone + warms (verified: crammed fridge spoils milk the sparse one kept). +- **ROTATION — FIFO** (`pull(store, zone, fifo=true)` hands you the OLDEST): use the + about-to-expire stock first or it rots unused = `wasteCount` (money, P12) and, if + you don't notice, a `dangerous` serve. Verified: FIFO 0 waste vs newest-first 2 rot. +- **THE FREEZER**: near-halts the clock but sets `frozen` → `usableQuality` docks + texture ×0.82 on thaw. Time bought, paid for later (verified: 0.93 kept vs 0.76 + usable). +- **The stakes**: `usableQuality` returns `{quality, safe}`. Cooking an "off" item is + a quality hit the judge tastes; serving a `dangerous`/contaminated one is the + rotten-egg beat with the safety off — a health-inspector catastrophe. + +**Remaining to make it playable (the scene + the cross-day layer):** a FRIDGE VIEW +(drag stock between zones/shelves, the door/back gradient shown as a cool-tint, a +date/age tell per item — the info tool), carry the `ColdStore` across days in the +save (each `beginDay` calls `coldStep(store, 1)` — your fridge ages while you sleep), +and a hygiene row on the inspector's card (`storeHealth` → fresh%/off%/contaminated/ +waste). Composes with: the shop (P12 — buy fresh = perishable, a good fridge holds +temp = smaller `ZONE_COLD` penalty), the eggs (the float test is a freshness info +tool), the cure (same day-clock, opposite sign). Assets (seeds 580–589 gap +): fridge +open (zoned interior), freezer drawer, date labels 2D, a hygiene "PASS/FAIL" stamp. + +- **Feel that must be right:** the first time you reach for stock and it's gone off + on you — and the day you rotate correctly and the inspector says nothing, which + from him is applause. + ## 7. P11 — THE BANQUET (carving, the elaborate table, the symphony) - **CARVING — the two-handed gesture John called**: the carving FORK