Vivari Guard

Deterministic change-safety for AI-authored code.

Agents ship changes faster than anyone can review them, and one model checking another inherits its blind spots. The engine scores every risky change against the deep map it builds of your codebase, weighing blast radius, transitive impact, and behavioral hotspots among its signals, with no LLM in the call.

Runs standalone, local-first, against any repository.

A Vivari product. Runs standalone; also built into the Vivari workspace.

This site's own pre-merge run, July 2026, rendered in the engine's terminal output format.

The review gap

The work moved to review. The trust did not.

Engineers are converging on the same shift, in their own numbers and their own words.

96%do not fully trust AI-generated code
48%always verify it before committing

Sonar · State of Code Developer Survey · 2026

85%agree AI has shifted the bottleneck from writing code to reviewing and validating it

GitLab · AI Accountability Report · 2026

The model may write the line, but the Verdict is mine.
Addy Osmani · author of Beyond Vibe Coding; former Google Cloud AI director · Own the Outer Loop, 2026

Change-coupling

The coupled peer the call graph cannot see.

Every codebase hides couplings static analysis misses: the config that tracks a schema, the fixture that moves with a parser. No call-graph edge joins them. Git history does, and the engine flags the peer your diff forgot.

A real finding from a Flask refactor: one of two long-coupled files moved without its peer.

The risk score

Deterministic signals, with weights that sum to exactly 1.00.

Each change scores 0 to 10 across a weighted battery of signals in five families. A signal with no data is excluded and its weight is redistributed across the remaining signals.

  • Deep44%contract propagation, transitive impact, hub criticality
  • Structural27%blast radius, criticality, coupling and complexity deltas
  • Git-history13%test coverage, churn, ownership, staleness
  • Behavioral10%behavioral hotspots, change-coupling
  • Developer6%author familiarity with the code being changed

Compiled Rust core, nothing probabilistic in the call: the same diff always scores the same.

The verdict

PASS, WARN, or BLOCK, in the commit loop.

It runs in your pre-commit hook and CI and returns each verdict as an exit code. BLOCK aborts the commit instead of filing a ticket nobody reads.

PASSexit 0 · commit proceeds
WARNexit 0 · evidence prints
BLOCKexit 1 · commit aborts

runs in pre-commit + CI · outputs: terminal · HTML · SARIF · PR comment

Local-first, by architecture

It runs on your machine. It makes no network call.

The engine indexes and analyzes your repositories on infrastructure you own, so every commit is gated without a privacy conversation. Choose the boundary you need.

Django at HEAD · 523,000 lines of Python · indexed cold in 62 seconds on a laptop · 7 languages deep, 73 discovered

LocalEverything on a box you own. Nothing leaves the network.
RemoteRun the engine on your own infrastructure; point CI at it.
HybridSplit the work to fit residency and latency.

The engine's own log

One pre-merge decision, straight from our repository.

Vivari Guard, gating this website's own commits

PASSguard.premerge ae5d4870-030 · files 1 · coverage 100% · score 0.00 · 343ms · 2026-07-03receipt →

A cluster of change-tasks whose files change together, the co-change evidence the engine reviews before a merge.
The engine gates the repo that builds this page.

Who builds this

Vivari Guard is built by someone who has shipped this class of system: a 12-person team shipping a security platform built for telemetry from hundreds of millions of sources, then engineering for fraud detection, KYC, and real-time payment decisions at a fintech. Both are worlds where a wrong change is an incident.
Why I built Vivari Guard →

Part of Vivari

Standalone today, it runs on machines you own, against whatever repository you point it at. Inside Vivari, the workspace, the same engine reviews every agent change live. Each verdict lands in the same record as the agent's identity, its context, its permissions, and its history, so one search answers what happened, why, and on whose authority.

See the workspace →

Questions

What does access get you?
Guard opens ahead of the full Vivari workspace, and requests are open now. A request puts you in line for the first cohorts, onboarded in order of fit. What ships free, trialed, or paid is decided at launch, and this page will carry the answer the day it is.
Can I run it on its own, against my own repository?
Yes. It runs standalone against any repository, local-first, alongside the AI tooling your developers already use. It also lives inside Vivari, the workspace, though you never need the workspace to get the safety net.
Why not use an LLM to review agent changes?
One model reviewing what another wrote inherits the same blind spots and returns an opinion. The engine returns evidence: the same diff, against the same repository state and the same configuration, always returns the same score, traceable to named commits.
Do you hold SOC 2 or ISO certification?
Not yet. What we can prove today is architectural: your code stays on your machines, every finding is deterministic and reproducible, and the full posture is on the security page. If certification is a blocker for your organization, we would love to hear from you.
Which languages, and how large a codebase?
Seven languages get deep handlers: Python, TypeScript, JavaScript, Go, Java, Rust, and C/C++, with 73 discovered in total through its parser pack. For scale, Django, the open-source Python web framework, at HEAD indexed cold on a laptop in 62 seconds, 523,000 lines of Python across 2,927 files.

Request access

Put a deterministic safety net under the agents already in your code.

Requests are open now; the first cohorts onboard in order of fit, ahead of the full workspace.