eyestruct
Eyes for production agents, gated like code.
Look is one short process, never a daemon: capture into a committed .eyes/ memory, diff pixel drift under the ledger, and let CI refuse an unexplained change - the crashtest ledger pattern aimed at appearance instead of attackability.
# every look is one short invocation. the only surviving state is git state. eyestruct look http://localhost:4173/ # drift becomes a ledger row; the reviewer is the next session, the UI is git diff eyestruct diff # CI refuses what no note explains - canon baselines are CI-cut eyestruct walk http://localhost:4173/