diff --git a/fktry/data/CANON-DELTA.md b/fktry/data/CANON-DELTA.md index 2680177..03526f0 100644 --- a/fktry/data/CANON-DELTA.md +++ b/fktry/data/CANON-DELTA.md @@ -257,6 +257,112 @@ Filler is procedural (SCREEN's seeded RNG) rather than a fixed list, so the stat loops — a hand-written pool of 24 would cycle in about two minutes and the genre's whole menace is that it goes on forever. +## Added in round 6 + +### THE CORRECTION walks — the parity-mite reading of §5 + +§5 gives the enemy in one clause: parity mites are *"beetle-drones that patrol belts and +quietly fix artifacts back into clean product (your melt becomes... footage of a lake)."* +The reading the data commits to, and why it is the codex's: + +- **The mite does not destroy — it repairs, which is worse.** The Correction "cannot + perceive you, only deviation, which it repairs." So a mite eats a tier-2 glitch product + and hands back nothing you can sell: the work is *corrected*, not stolen. SIM emits a new + `repaired` event rather than a `removed` one, and the fiction is that losing melt to a + mite is losing it to a *fix*. THE STANDARD's new lines say this in the enemy's own voice + ("A mite does not remove your work. It completes it. Your MELT was always going to be a + lake." — the codex line, spoken as reassurance). +- **Mites only touch corruption.** SIM's mechanic ignores tier-0/1 cargo entirely: the + immune system has nothing to correct in raw ore. That is the balance (raw material is + safe; only product is at risk) and the fiction (deviation is the only thing it can see). + +### THE FIREWALL — the counter, on SIM's catcher shape + +| Thing | Kind | Why it fits | +|---|---|---| +| `parity-mite` | item (tier 2) | The canned live mite. Hospital-white shell, green checkmark eye (§5, §8) → chip colour `#dff5e6`. Tier 2 like the other farmed hazards (`mosquito-swarm`, `gibbs-wraith`). | +| `firewall` | machine (crafter) | §5 names the mites but no counter. A *firewall* is the in-genre name for the thing that stops an intrusion, and the joke writes itself: it wears a compliance seal the Bitstream never issued, and a mite "cannot leave a deviation uncorrected" — a forged checkmark IS a deviation, so it climbs in to fix the seal and the drawer closes. Accent `#3fff7f` is that forged checkmark; chassis `#31383f` is your grime, not The Correction's white. | +| `catch-mite` | recipe (firewall) | **Input-free, output `parity-mite: 1`** — the exact shape SIM detects a catcher by (empty inputs, cans the creature), lifted from the mosquito trap. The "input" is a live mite in the world, which is wildlife in the snapshot, never cargo on a belt. Ingredients would silently demote it to an ordinary crafter that mints The Correction from nothing — pinned by a test that cites SIM's comment. | +| `broadcast-parity-firewall` | tech | Gated like the mosquito trap (`broadcast-mosquito-farming`): `{spatial-pack: 15, analog-pack: 10}`, unlocks `[firewall, catch-mite]`. You research the counter to the enemy. Early/cheap because the mite is §5's *"early nuisance"* — the counter should arrive about when the mites do. | + +**Coordination with SIM (parallel this round):** SIM detects catchers by recipe shape and +by the constant `MITE_ITEM`. The item id is **`parity-mite`** and the recipe shape is +**`{ inputs: {}, outputs: { 'parity-mite': N } }`** — identical to the trap, one item id +over. `catch-mite` bandwidth 4 / 120 ticks (a harder catch than a mosquito's 90). The +radius is SIM's constant (`FIREWALL_RADIUS`), not a machine field. + +### Two commissions that want The Correction alive + +- `correction-specimen` (reward 1000): the flagship — *"ONE (1) UNIT OF THE CORRECTION, + ALIVE. INVOICE ATTACHED. DO NOT READ THE INVOICE."* The fax's first canned mite, in + voice. Slots between `gibbs-wraith-willingly` (900) and `feather-proof` (1100). +- `annual-correction-cull` (reward 2100, **standing**): 5 live mites + 20 melt per + collection, forever — you turn the immune system into a cash crop, and The Correction + files each absent technician as a rounding error and sends five more. Slots between + `sodium-requisition` (1800) and `sky-blue-mislabeled` (2400). Re-fillable forever + because both wants are producible (the catcher + the melt chain). + +`parity-mite` is **producible** the moment the firewall exists (an input-free recipe reads +as always-runnable to the reachability closure, exactly as `mosquito-swarm` does), so it is +NOT forward canon and never joins the allowlist. + +### The numbers station stops drifting + +SCREEN's round-5 finding was real: the validator recomputed the three *planted* groups from +`seams.json` but never checked the *decoys*, and two of them had drifted onto visible seams: + +``` +08127 -> (-24,-20) sat inside reel-beds-deep (x[-30..-21] y[-24..-19]) +27503 -> ( -5, 18) sat inside broadcast-shelf-south (x[-14..-3] y[16..21]) +``` + +A decoy that decodes onto a real seam isn't a decoy, it's a leak — it hands the player a +genuine dig site the station was never meant to reveal. Both re-cut to land just *off* the +seam they were touching (still tantalisingly adjacent, which is the genre's whole cruelty): + +``` +08127 -> 08143 -> (-24,-18) one tile south of reel-beds-deep, on empty ground +27503 -> 27475 -> ( -5, 15) one tile north of broadcast-shelf-south, on empty ground +``` + +And the validator now decodes **every** decoy to a tile and fails, by name, if it lands +inside **any** seam rect — hidden or visible — not just the three hidden tiles. The map +recomputes its plants from the seams and now proves its decoys lead nowhere; it cannot go +stale in either direction. (All 22 remaining decoys were re-checked against all 8 seams — +these two were the only leaks.) + +### Accents chosen against the real GLB textures + +Round 4 filled accents by derivation; MODELBEAST has since delivered real models, so this +round the accents are picked by **looking at the actual albedo textures** in +`public/assets/models/` (extracted and inspected). The order named "the ten GLB'd machines"; +by the time I looked, nineteen had models (RENDER hot-swapping mid-round), so every machine +with a real model now carries a texture-matched accent: + +| Machine | Accent | Read from the texture | +|---|---|---| +| seam-extractor | `#48d6ff` | the cyan CRT readout on the amber drill body (§4 "CRT-certified") | +| quantizer | `#ff3b57` | CRIME-red dial indicator against the pale lilac/dust body | +| mosh-reactor | `#ff7a3f` | the molten-orange gauge; matches its MELT output | +| artifact-bottler | `#7fe0d8` | the iridescent glass-aqua of the bottled contents | +| chroma-keyer | `#4fff30` | the chroma-key green it literally weeps (green-spill) | +| muxer | `#ff3fd0` | launch-warning magenta on cold steel; matches the megaglitch | +| demuxer | `#ff3fd4` | the magenta channel-split streak (its chroma output) | +| demosaicer | `#4fffc4` | the spectral cyan-green band of the rainbow weave | +| dct-press | `#3fffe0` | the coefficient-cyan indicator specks on cold steel | +| field-loom | `#6ef58a` | the phosphor-green glowing tube | +| gop-assembler | `#5fb0ff` | the blue cadence-readout screens | +| mv-extractor | `#3fd8ff` | the motion-vector cyan fluid | +| p-caster | `#6fa8ff` | the blue projector beam | +| subsampler | `#e04fc8` | the iridescent chroma-pink it grades down | +| bloom-duplicator | `#ff9440` | the warm bloom-orange furnace glow | +| decode-asic | `#8fe8ff` | **refined** from `#6fe8c0`: the LEDs are ice-blue, not mint | +| mosquito-trap | `#a64fff` | **corrected** from `#d0ff60`: the model's zapper target glows UV-violet, not lime | +| software-decoder | `#ff4a2a` | kept — the texture's red internals confirm it | +| archaeology-lab | `#ffc24a` | kept — the warm dig-lamp amber confirms it | + +The `firewall` (no model yet) gets its forged-checkmark `#3fff7f` art-directed, not derived. + --- ## The numbers, and the arithmetic behind them diff --git a/fktry/lanes/LANE-DATA.md b/fktry/lanes/LANE-DATA.md index 3b4fc32..ff4ff8a 100644 --- a/fktry/lanes/LANE-DATA.md +++ b/fktry/lanes/LANE-DATA.md @@ -489,3 +489,84 @@ NEXT (candidates): SPILL FOG + EDGE BOIL (§10 hazards, once SIM has a mechanic) cooler's aura tuning once `coolRadius` is live in-sim; a second relic if the audio bus wants more than one voice; `corridorkey-mrp-mlx` is a real artifact factory for the whole §10 asset set (§10's own production note) and deserves a MODELBEAST work order. + +### Round 6 — 2026-07-20 — Opus 4.8 + +SHIPPED: all 4 orders. items 60 → 61, machines 30 → 31, recipes 63 → 64, tech 24 → 25, +commissions 19 → 21. Validator 72 → 74. All argued in `data/CANON-DELTA.md` (round 6). +- **THE FIREWALL** (`firewall`, crafter, catches on SIM's shape) + **`catch-mite`** + (input-free → `parity-mite: 1`) + the **`parity-mite`** canned item + tech gate + `broadcast-parity-firewall` + two commissions that want it alive (`correction-specimen` + reward 1000, the flagship "ONE UNIT OF THE CORRECTION, ALIVE"; `annual-correction-cull` + reward 2100 standing). +- **Numbers-station drift fixed**: the two leaking decoys re-cut (`08127`→`08143`, + `27503`→`27475`), and the validator now decodes EVERY decoy and fails by name if it lands + inside ANY seam rect (was: only the three hidden tiles). See CROSS-LANE — SCREEN. +- **19 GLB'd machines accented against their real albedo textures** (extracted from the + GLBs and inspected), incl. two texture-driven corrections: mosquito-trap `#d0ff60`→ + `#a64fff` (the model's zapper is UV-violet, not lime) and decode-asic `#6fe8c0`→`#8fe8ff` + (ice-blue LEDs, not mint). Table in CANON-DELTA. +- **8 new STANDARD chyron lines** in The Correction's reassuring-menace voice, all about + the mites ("A mite does not remove your work. It completes it."). 30 → 38 lines. + +VERIFIED: `npm run check` clean; my validator 74/74 green (fault-injected the new checks — +`catch-mite` given an ingredient fails the trap-shape guard by name; a decoy dropped onto +`stream-crust-east` fails "inside real seam …"; both restored). SCREEN's `band.test.ts` +9/9. Live on :8155, no console errors: machines 31 with firewall art-directed, all 14 +target accents present, `parity-mite` + both mite commissions loaded, mosquito-trap accent +`#a64fff` on the real DOM. DoD met: firewall catches on SIM's real recipe-shape mechanic; +no decoy decodes onto any seam (validator-enforced); every GLB machine accented; the fax +celebrates its first canned mite in `correction-specimen`. + +DECISIONS: +- **The chyron limit bit me and it was cheap to obey.** SCREEN's `band.test.ts` caps a + line at 96 chars (62 mono chars would clip; they allow 96). My first 8 lines ran 100-136 + and failed one SCREEN test — tightened all 8 to ≤96 without losing the voice. Their test + is the right net; the words are mine, the width is the sky's. +- **Firewall gated early (broadcast), not free.** §5 calls the mite an "early nuisance", so + the counter should arrive about when the mites do — cheap, parallel to the mosquito farm + node. Not starting equipment (you research the answer to the enemy), not late (the enemy + is early). SIM's reference v6 will need it granted like it grants software-decoding. +- **`catch-mite` is input-free by design**, same argument as `bait-swarm` last round: the + "input" is a live mite in the world, wildlife in the snapshot, never belt cargo. A test + cites SIM's detection comment so nobody "fixes" it into an ordinary crafter. +- **Accented all 19 GLB'd machines, not the ordered 10.** The order said ten; nineteen had + models by the time I looked (RENDER hot-swapping mid-round — the "numbers go stale" + warning, live). Every machine with a real texture now has a texture-matched accent; the + extra nine are honest surplus, not scope creep. + +BLOCKED/BROKEN: nothing of mine. Two suite failures, both SIM's in-flight round-6 work, +neither caused by my diff (attributed by stash-and-compare on my paths + by inspection): +- `src/sim/mite.test.ts` "guarding the approach cancels corrections" — SIM's mite mechanic + is **fixture-based** (its own `FIXTURE` GameData at line 36; it never reads `data/*.json`), + so my data cannot touch it. It's a balance assertion in their new file, which was visibly + being edited while I worked (line numbers shifted between my runs). +- `src/sim/reference.test.ts` "keeps the demuxer alive by voiding surplus" — reproduces + IDENTICALLY with my entire data diff stashed (measured), so it's HEAD's reference factory, + not my content. Likely their reference v6 mid-build. + +CROSS-LANE — SIM (mite mechanic, parallel this round): the catcher is authored exactly on +your shape. Item id **`parity-mite`**, recipe **`{inputs:{}, outputs:{'parity-mite':N}}`** +on machine `firewall` — one item id over from the mosquito trap. Your `mite.test.ts` already +imports `MITE_ITEM` and keys off shape/tier, so the real data drops in with zero code (I +verified my `catch-mite` matches your fixture `burn` recipe shape). `catch-mite` is +120 ticks / bandwidth 4. The firewall is `broadcast-parity-firewall`-gated, so reference v6 +must grant it (like software-decoding) before placing one. `FIREWALL_RADIUS` is yours; I +set no radius field. If you'd rather the mite item be `parity-mite-canned` or the firewall +be ungated, say so and I'll follow. + +CROSS-LANE — SCREEN: your numbers-station drift finding was exact — `08127`/`27503` were on +`reel-beds-deep`/`broadcast-shelf-south`. Fixed at the source (re-cut) AND at the guard (the +validator now rejects a decoy on ANY seam, by name). The 8 new STANDARD lines are yours to +reshape as always — I kept every one ≤96 to pass `band.test.ts`; if you widen that cap I'll +gladly give a couple more room to breathe. `numbers.plantedGroups` still recomputes from +`seams.json`, untouched. + +CONTRACT REQUEST: none. `parity-mite`/`firewall`/`catch-mite` all fit the existing schema; +the mite reading needed no new fields. + +NEXT (candidates): CHECKSUM WARDENS + REDUNDANCY GUNSHIPS (§5 rungs 2-3, once SIM escalates +The Correction past mites); a `parity-mite`-fed product line (§5: mites "fix melt into a +lake" — a real "footage of a lake" item you can only make FROM a canned mite would close the +loop); SPILL FOG + EDGE BOIL (§10, still waiting on a SIM mechanic); the ASIC cooler aura +tuning once `coolRadius` is live in-sim.