# 2026-07-07 — Intel buffer implementation ``` Type: log ``` ## Intent Implement wiki/mechanics/intel.md: replace instant social observe with a record-and-process intel pipeline where subscribed feeds capture raw events, processing costs social ops, durable intel carries provenance, and standing watches automate review at upkeep cost. ## Changed - Added `src/intel.rs` with `RawIntelEvent`, `RawIntelKind`, `ProcessedIntel`, `IntelKind`, `IntelWatch`, and `IntelProvenance`. - Extended `Sim` with a bounded raw intel buffer, processed intel ledger, per-person watches, next-id state, and machine-state tracking. - Hearing/presence ticks now record raw presence and conversation events from subscribed feeds instead of staging knowledge directly; machinery online changes become raw anomaly intel. - `review_recordings(person)` processes the oldest matching raw event for a social-ops cost; processed sightings stage Schedule after the tuned count, and authored leverage events stage Leverage with feed+tick provenance. - Per-person watches auto-process matching raw events on arrival and drain a visible upkeep each tick while enabled. - Removed `Sim::observe`, `People::observe`, and the `OBSERVE_COST` route; terminal, agent mode, and Bevy now expose review/watch controls instead. - Save format moved to version 3 and round-trips the raw buffer, processed intel, watches, and next intel id with v2 defaults. - Updated Marcus's authored 03:00 debt call to occur under the env monitor's hearing coverage so the Act One route depends on the intel pipeline rather than a click-to-know shortcut. - Updated README/wiki controls, knowledge pages, the spec status board, and the roadmap to reflect the new surface. ## Defense The constitution's presence law says sensors and schedules must be load-bearing: if the microphone covered the 03:00 call, the recording exists; if it did not, no later click can conjure it. The old observe action made schedules flavor and leverage an abstract two-click spend. This implementation keeps the thin-view rule intact (all game rules stay in `Sim`), preserves legibility through provenance (`feed + tick`), and makes automation explicit by pricing watches in social-ops upkeep. ## Checks - `cargo fmt` - `cargo test --quiet` (117 lib tests + 2 integration tests) - `./tools/check.sh` (format, tests, agent smoke, clippy terminal + bevy, bevy build, spec headers, wiki gate, mdbook) ## Next Later physical/document interactions can feed `RawIntelKind::Document` into the same buffer; the B1 feed-processing path is now in place.