Rivet.
A code assistant that knows your architecture, holds your constraints, and won’t hand you a suggestion it hasn’t gated. It wraps whichever model you already trust.
An assistant that agrees with everything is a fast way to accumulate decisions nobody made on purpose. Rivet loads your architecture at startup as a Pharos knowledge pack, carries your known issues as standing beliefs, and routes every request through a final check that no model draft can bypass.
The pipeline
Against a regular code agent
| Regular code agent | Rivet | |
|---|---|---|
| Architecture | Learns from your questions | Loaded at startup via Pharos packs |
| Known issues | Discovers by accident | Audit findings held as standing beliefs |
| Migrations | Suggests whatever you ask | Refuses destructive operations, structurally |
| Confidence | Always sounds certain | HIGH / MEDIUM / LOW — says when it is guessing |
| Memory | Forgets between sessions | Remembers your patterns across conversations |
| Integration | Another chat window | OpenAI-compatible endpoint — Continue.dev, Cursor, your tooling |
Constraints that sit below the model
A rule written into a system prompt can be argued with. These live in the tool harness, where the model has no reach.
repo_write_enabled: false. Rivet proposes; a human commits.shell=True, anywhere.Evaluated, including adversarially
The eval harness ships with the scaffold. Adapt the prompts to your domain and run it against your own deployment. The number that matters comes from your codebase.
Yours to run
Rivet is a scaffold. Point it at a model you already run, served through Ollama or loaded with transformers, and the discipline gate sits in front of it. For a legal aid clinic, a newsroom, or any shop whose repository is itself sensitive, that means the codebase never leaves the building. No vendor, no training set, no log.