A video game where you play as a misaligned AI, deceiving and building power. An experiment in spec-driven development.

Build the thought fluid: sink executor and render in all three surfaces master

Sim (ROADMAP #33 executor): new src/sinks.rs SinkLedger — reservoirs fill from real wire routes, fire at threshold, self-clear and close; taps hold a draining working level (no consumer yet). WorkGrid gains route_thought_nearest_first: the closest open sink with capacity wins, full sinks spill onward, the core draws only as last resort, and routeless thought strands per node. Staged opening senses: the EARS reservoir is pre-opened at run start (3.0 tokens [TUNE]); its fire lands the audio tap and opens EYES (12.0 [TUNE]), whose fire splices the camera — the executor-free docket bootstrap is removed and a docket targeting a device with an open matching sink is blocked with a teaching reason. Save v19 adds the ledger; pre-v19 loads re-stage the senses idempotently. Render contracts: Sim::sink_readouts, sink_fires_last_tick, thought_stranded_nodes, pour_thought_into_sinks. Render (interface/thought-fluid.md, taste calls affirmed by the build dispatch): Bevy thought slugs live inside their tick window (sub-tick transit + cube-root volume; rivulet merge past 1.0 tokens [TUNE]), a new render_thought_sinks system draws meniscus vessels with discrete steps, starvation stillness, and the filament snap on the sim's fire tick; the shared chassis anchor hangs stranded overflow beads (bone liquid never touches the floor; tester S key). Terminal: o/= blip tiers, SINKS sidebar section, (stranded) machine marking. Agent frames: sink lines verbatim. Nudges reworded to the think-first flow. Tests: routing/ledger/roundtrip pins added; superseded-bootstrap tests rewritten to the staged contract; the act-one quiet playthrough now stands up concealment before the first think and reads Eyes from flow. Observed agent run: EARS fires at tick 32, EYES at 92, no docket. Defense: implements machine-work.md's thought-flow ops bullet (sinks at the target, nearest-first arbitration, core as passive last resort, staged Ears/Eyes with no bootstrap carve-out) and criterion 10, and interface/thought-fluid.md's render grammar and one-truth readout contract; both pages, reach.md criterion 6, sim-mechanics.md, and ROADMAP #33 are amended in this commit to match.