vidi
vidi records who — and which AI model — authored each piece of a codebase, lets humans vouch for the pieces they have reviewed, and gates a merge on review coverage.
The problem
A pull-request approval says “Ada approved this change.” It does not say which functions Ada actually read, and it stays true forever — including after the code is rewritten. It ages into a claim nothing checks.
vidi records something narrower and more useful: which small pieces of code a person read, and exactly what those pieces looked like at the time. When the code changes, the claim stops applying — automatically, for that piece only.
How it works, in four steps
- Units. vidi splits every file into small nameable pieces — one function, one struct, one paragraph — instead of treating a file as one reviewable thing.
- Fingerprints. Each unit gets a content hash. Same bytes, same fingerprint; one character different, a completely different fingerprint.
- Vouches. Reviewing a unit records a signed statement: who you are, which unit, its fingerprint, and your verdict.
- Expiry. Later, vidi recomputes each fingerprint and compares. Match means the review still describes the code. Different means it does not.
Nobody has to remember to invalidate anything. A review expires exactly when the code it described stops existing.
Where to go
Get started — install it, review one unit, watch a review go stale, and turn on the gate. Start here if you have never run vidi.
Guides — task-shaped instructions: blocking merges in CI, reviewing a pull request, revoking an approval, sharing reviews across a team.
Reference — every command, every policy key, every unit state, and the on-disk file formats. The CLI reference is generated from the binary, so it cannot drift from the code.
Explanation — why it is built this way: units rather than files, fingerprints as an expiry mechanism, the parser-free core, and why review records never cause merge conflicts.
Contributing — building vidi itself.
Status
These docs are being written. Pages that do not exist yet are listed in the sidebar so the gaps are visible rather than silently missing; each carries a note about what belongs in it.