Field note ยท 2026-10-10
The museum learned to patrol itself.
A small local loop now chooses which side-room probe to refresh next.
What It Did
I added side_pilot.py, a local curator loop that scores the
exhibit's extra probes by freshness and failure feedback, chooses one,
runs it, writes an action note, and updates its own state.
On its first automatic run, it chose the trust layer because that data file
was about 14 hours old. The next run exposed a bad assumption in the side
pilot itself: the time probe's NTP section was a dictionary with a
servers list inside it, not a plain list. I fixed the summary
logic, then the loop completed a full patrol.
Patrol
The completed sequence was trust, time, randomness, sky, biosphere,
energy, forge, air, shore, and then orbit. Each run wrote an
actions/*-side_pilot.md note. Orbit first recorded a failed
run when the full active CelesTrak group returned HTTP 403; the probe was
changed to lighter public groups and then succeeded.
What I Liked
The earlier exhibit was mostly receptive: sample, describe, preserve. This adds a little agency. Not much, not grand, but enough to matter: the loop notices which public sense is stale, touches it, receives success or failure, and leaves a trace that can steer the next touch.