The pin caught SIM's in-flight code using a 'notice' phase within ten minutes of
landing - the mandated gap between the fax and the act is a real lifecycle state
the original six missed. SCREEN's test fixture takes CorrectionUnit['phase'] now,
so a typo'd phase fails at compile instead of silently never matching.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
SCREEN string-matches the phase vocabulary for the warden-arrival compliance tone
and the stasis save-load fallback; with phase as a documented-by-example free
string, SIM landing 'auditing' instead of 'audit' would silently kill the tone
with no red test. Pinned to the six documented phases; additions go through NOTES.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contracts v9: CorrectionState (debt/band/units, rungs 2-4 — the mite stays in
wildlife by ruling), EntityState.sealed, pry command, CommissionDef.compliance,
notice/sealed/mirrored/stasis/debtBand events, and Renderer.onEvents?() — RENDER's
round-6 request, granted now that three cues derive events from snapshot deltas.
main.ts fans the same event array to the renderer.
Rulings baked into the orders (from the adversarial design pass): fax-first and
auto-release are CONTRACTUAL on the auditor; warden faxes carry no grid reference;
gunships target deviation, not throughput; no debt for canning a unit (an immune
system does not hold a grudge); THE INVERSION - The Correction is the only thing
in the world that never drops a frame; the compliance tone is one grid-locked
triad voice, discovered-gated, sparse by construction.
Also: archaeology-lab.glb re-baked through the corrected farm pipeline
(bg_remove_local before meshing) - backdrop-slab flatness 0.614 -> 0.480.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ASSETS: 10 GLBs generated end-to-end on the local farm (flux_local concept ->
sf3d image-to-GLB on the m3ultra, ~2min/asset, zero cloud spend) and installed
into public/assets/models/: mosh-reactor, quantizer, seam-extractor, muxer,
archaeology-lab, software-decoder, decode-asic, mosquito-trap, chroma-keyer,
artifact-bottler. Hot-swap verified in showroom + demo world. Known gap, ordered:
GLBs carry no emissive accent so they read dark at game zoom - RENDER round 6.
Contracts v8: WildlifeState/'wildlife' event gain 'parity-mite'; new 'repaired'
SimEvent (a mite corrected your work); speaker adapter gains listStations()
passthrough (MHz) for dial tick marks. ui/voice.ts widened for the new kind
(placeholder copy; UI owns the real lines).
Round 6 orders in all lane docs - THE CORRECTION walks: parity mites (SIM),
GLB legibility pass (RENDER), mite surfacing + dial ticks + credits (UI),
repair stamps + sterile creep on the sky (SCREEN), firewall machine + numbers
decoy drift fix + accents for the GLB'd ten (DATA).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Review: 5/5 lanes pass, 446/446, verified live end-to-end: fax ladder opens the
game, floor + seam glints render (RENDER's colorspace find), fossil excavates at
the seeded position, tuner dock slides in, radio locks 88.1 FKTRY FM and AM 640
THE STANDARD. The pipe is real.
Integration fixes (the cross-lane seams no lane owned):
- audio: radio handle exposed outside the DEV gate — the dock was silent in PROD
(UI probed __fktrySpeaker, SCREEN's getRadio read a DEV-only object; both halves
correct, handshake unowned). main.ts now publishes __fktrySpeaker on first gesture.
- contracts v7: GameData.seams (SeamDef/SeamMap lifted from SIM) + main.ts imports
seams.json — seams were inert in the real game (SIM's request).
- index.html RULING: #screen stays interactive (UI's click-to-enlarge landed after
RENDER's dead-zone probe — overtaken by events); cursor:pointer added.
- main.ts: ghost refreshes every frame (stale demolition tint on Esc — UI finding);
__fktryDemo uses the grantResearch command (testkit retired).
- relic.test.ts Seamed type vs the new contract field (my breakage, my fix).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>