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/