Memory that stays true.
A verifiable memory engine for coding agents. Every memory is anchored to a commit, a file, a symbol — so when the code changes, the memory knows.
type: gotcha status: verified anchors: - kind: git path: src/auth.ts commit: 8c14b02 --- Auth tokens refresh on the request boundary, not on a timer — a timer drifts and expires sessions mid-flight.
Stored with one or more {path, symbol?, commit}. No
anchor, no memory.
commit..HEAD against the anchor paths, in one pass.
Untouched paths re-verify for free. Touched paths get one targeted re-check.
A memory that can no longer be trusted is withheld from the book rather than asserted.
A workspace manifest maps member names to the checkouts your
machine already has. No server — git pull is the
propagation medium.
A memory in your repo pins into a neighbour:
kind: xgit, repo: gateway, path: config/limits.yaml.
The producer merges a contract change; you pull;
verify --workspace flips your memory stale —
before an agent writes code against the old shape.
A member this machine cannot see is
unresolvable — not stale, not verified, never folded
into either.
npx membook init
One markdown file per memory. SQLite is derived, disposable, rebuilt bit-identically.
enforcedThe MCP server spawns per session on stdio and exits with it. No ports, nothing resident.
enforcedNo network telemetry, ever.
enforcedA memory is unverified until something actually verifies it. Drifted memories are withheld rather than asserted.
enforced