PARITY DEBT is one scalar with five bands: it rises on tier>=2 shipments, always
decays, decays faster while stock footage ships, and vents outright when a
compliance quota is filed. Bands gate the ladder and nothing else needs to know
more than the band.
Wardens fax 20s ahead, walk in from the rim, roll back the last N outputs from a
new per-machine output ring and stamp a compliance seal; sealed machines refuse to
run until pried (90 ticks, and prying is itself deviation). Gunships tether to the
8x8 sector with the most DEVIATION and mirror it. Hash auditors prescan, then lock
a rect with a deterministic hash that ALWAYS auto-releases.
A FIREWALL CATCHES WHAT WALKS — mites and wardens, not the airborne gunship or the
auditor that is never present. This departs from the orders' "or a firewall cans
it" for the gunship: LANE-UI measured rung 3 being deleted entirely by a machine
the player already owns, and there is no tile in the brick works that guards the
wardens without also covering the gunship's station. Regression test requires a
mirror in the demo as shipped, firewalls and all.
Reference v7 adds the compliance tap (DATA measured zero commissions clearing in
90k ticks, so every quota was dead content), a canning line for rung 5, a doubled
brick works that can absorb a seal, and the power to pay for it. Save v5.
Determinism byte-identical browser vs Node across a 20k run. 645 tests green.
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>
Round 6 (M3's enemy — THE CORRECTION walks).
- Parity mites (contracts v8): spawn from the world rim as tier-2 corruption
crosses thresholds, patrol to the nearest tier-2 belt item, dwell, and repair
it out of existence (emitting 'repaired'), then return to the rim sated. Never
touch tier-0/1 cargo. Deterministic, save/load carried (no format bump).
- The firewall counter, detected by recipe shape (empty inputs, cans a mite) —
the same pattern as the mosquito trap, so DATA's real firewall (landed
mid-round) lights up with zero code. The repair dwell is the window a firewall
needs to intercept a correction before it lands.
- Reference factory v6 auto-places DATA's firewall on the melt uplink approach,
belted to a shipper so it never clogs; melt regression + zero-brownout intact.
- 11 new mite tests; 113 sim tests, 481 repo tests green; tsc clean. Verified in
the browser: melt tick 1247 identical to Node, firewall canning live.
- Reshaped reference.test's demuxer assertion to sample a window (the ~18%
transient press back-pressure is pre-existing; a single-tick check was a
coin-flip). See LANE-SIM NOTES.
Co-Authored-By: Claude Opus 4.8 <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>
The relic works end to end (seed-derived, honours DATA's relicReserve,
digs up, persists). Wildlife's design point holds: sink your dust and
nothing hatches. Reference v5 researches a tech at tick 1235 with melt
and the zero-brownout regression untouched.
For the orchestrator:
- ONE contract change needed: GameData.seams + main.ts importing
data/seams.json. DATA shipped the file mid-round with a good schema
(and reserved a relic corner for me), but nothing reaches sim.init, so
seams are inert in the running game. I mirrored their shape as
SeamDef/SeamMap, exported, ready to lift
- still no trap machine in data, so swarms can't be cleared in the real
game. Suggested machine + recipe in NOTES; the sim spots traps by recipe
shape so it needs no code
- swarms slow crafting but NOT powerGen -- my call, flag it if wrong
- save format v3 -> v4 (wildlife, relics, lab timers)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Research provable end-to-end on DATA's real tree (realtech.test.ts), not
just a fixture. Cooler aura ~triples a hot generator's run. Constants
exported. Reference factory ships slabs.
For the orchestrator:
- the demo needs one line from you: the reference build uses two gated ids
so it is a post-research save now. Dispatched cold it comes up 100 draw
vs 80 gen and browns out -- I watched it. referenceFactoryTech(data)
names the techs; testkit.grantResearch() opens them. Proposing a dev-only
{kind:'grantResearch'} command instead of importing test helpers
- DATA fixed the tech bootstrap mid-round and was right to: it was circular
and 0 of 24 techs were affordable at start
- asic-cooler still has no coolRadius, so its aura is inert in the game
- cooling cap 0.05/tick is my call; reasoning in NOTES
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Confirms the units conversion (bufferCap 240 = 8.0s of cover at a 30/s
deficit) and reports scram survival: first scram t434, restart t934,
~718-tick duty cycle, ZERO brownout ticks across 20k, melt rate unchanged.
For the orchestrator:
- heat semantics need a one-line ruling. heatPerTick is GROSS in my model
(net = heatPerTick - coolPerTick). DATA's committed 0.0025 against the
0.004 default nets negative -- the decoder could never scram. Their
in-flight 0.0033/0.001 works, so we agree by luck of timing.
- the codex's literal bloom loop is not expressible with per-grade recipes
- asic-cooler does nothing without a spatial heat mechanic
- my sim code landed inside 45003db [ui] REMOVE mode: the shared tree has
one git index and an add-everything commit in another session swept it.
Not a UI ownership violation. Suggest a no-`git add -A` rule.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Boots createSim() + createUI() on the real data/*.json, builds
referenceFactory(), and pumps ticks through the same update(snap, events) path
main.ts uses — then reads the actual DOM. No mocks.
Confirms what the round asked to see with eyes but the harness wouldn't allow:
heat climbing to THROTTLING and then SCRAM on a software decoder (inspected via
the real pickTile -> entityAt -> open click path), the unit still reading SCRAM
while it cools back below 1.0, SANITISING on real anchor-slab shipments,
NEXT IN TRAY matching SIM's real queue, a real standing order reaching the head
and stamping the fax, and remove mode demolishing a real entity.
Why headless: the browser pane backgrounds the tab, which pauses rAF, so the
live page advances ~10 ticks per screenshot — SCRAM needs ~435 ticks of
continuous generation, and parallel lanes' HMR reloads wiped the world every
minute or so. Same code, deterministic, milliseconds, and it stays a regression
test.
The reference factory never ships anchor slabs — it recycles them into the
i-only assembler by design — so the SANITISING case demolishes that assembler
and drops an uplink on it, which is what a player would do.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reference factory holds: melt at tick 1247, still shipping at 20,000,
demuxer never jams. Heat curve and scram/throttle decisions documented.
Main thing for the orchestrator: data/ has none of the v2 fields, so heat
and buffer tanks are implemented and tested but inert in the real game --
the software decoder cannot overheat until DATA gives it a heatPerTick.
Suggested starting values included. One contract request: coolPerTick.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reports the M1 melt chain working (tick 1149) and two things the
orchestrator needs to decide: the DoD chain no longer exists after
LANE-DATA's codex landed (mosh now eats gop-crate, melt is 8 machines
deep), and the M1 factory deadlocks at ~tick 1200 on byproduct surplus
with no legal overflow. Proposes splitters as the fix.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>