multivac
Your agent verifies its context before it acts on it.
Claims, not documents
The unit is the claim: statement, authority, and a content-based anchor — present, absent, unique, count, each — written inline in the markdown. A paraphrase ages silently; a citation can be checked.
Deterministic verify
mvac verify checks every anchor against the declared repos. No LLM, no API key, no network — the same answer on your laptop, in the hook, and in your teammate’s clone.
One change, N repos
change new → plan → apply → land → close: a branch per repo, merge requests in declared landing order, and a close that refuses until every claim the change promised resolves green.
A door in every harness
One canonical AGENTS.md, projected per harness as symlink, stub, or nothing at all where the harness already reads it. Eight entries, each verified against its vendor’s own docs.
Enforcement that degrades
Git hooks are the universal floor, harness hooks the ceiling. A machine without the binary commits normally: enforcement degrades, it never locks you out.
Tombstones for the dead
A retired mechanism is declared dead where someone will look for it. absent anchors block across every repo in the ecosystem, and the config refuses to unblock them.
Why the name
Asimov’s Multivac is the world-computer everyone consults; in The Last
Question it is the one that finally answers. The joke is that this Multivac
answers nothing on its own — it only tells you whether what you already
believe is still true. CLI alias: mvac.
Where this is
Published on npm, npx multivac init away. It is its
own first user: multivac’s law lives in this repo, and every change to it is
held by the same hooks you would install; CI re-runs them as mvac verify --strict.
The design was validated against a real
production ecosystem before the code existed — 82 invariants collected by
hand, 95.1% of them anchorable.