Vidi Vouch

Code-review provenance · CLI

Review provenance,
right in the gutter.

Vidi Vouch records which units of code a human actually reviewed. Vouch with one gesture where you already work, see who reviewed what, and watch a vouch turn stale the moment the code drifts. No diagnostics list, no source edits.

npm i -g @vidivouch/vid · cargo install vid · brew install vidivouch/tap/vid

vid  ›  src/lang/python/scope.rs ✓ Vouch  ⌃⌥V
✓ Vouch◷ reviewed by tom · now STALE · alpha_normalize drifted
88pub fn resolve_bindings(scope: &Scope) -> Bindings {
89 let mut out = Bindings::new();
90 for node in scope.children() {
91 out.insert(node.name(), node.kind());
92 }
93 out
94}
95
96// reviewed · fresh · vouch still valid
97fn bind_one(node: &Node) -> Binding {
98 Binding::new(node.name(), node.kind())
99}
100
101// vouched 3 commits ago · tom@
resolve_bindings()STALE
reviewertom@vidivouch.com · senior rigorread-fully vouched3 commits ago
⚠ exact-hash changed · alpha_normalize() digest drift

The deliverable

The un-reviewed report,
on every pull request.

The same provenance, scoped to a diff. The one report no linter can produce: what a human hasn't reviewed. It's the view the CLI prints and the PR comment renders.

vid report --diff origin/main
changeset · 7 units touchedlens: human ≥ senior
5 reviewed 1 stale 1 unreviewed
  • ✗ STALEsrc/lang/python/scope.rs · resolve_bindingswas tom@ · senior
  • ○ NEWsrc/core/digest.rs · alpha_normalizeunreviewed
A human has not reviewed 2 of 7 changed units in this branch.
PASS gate: orphan, stale · 0 orphan · 0 exact-stale · severity advisory

One gesture

The ⌃⌥V Gutter Vouch is the same action in every editor, never buried in a Problems panel.

Survives the refactor

Vouches attach to normalized code units, not lines. Rename, move, extract: the vouch follows until meaning changes.

Never edits your code

A vouch appends a signed entry to .vid/reviews.jsonl: provenance beside the source, not in it.