Every decision behind your agent-built code, captured as a byproduct of the work — living in .zavet/, where the next agent run has to read it.
Ships with dira — install freeDocumentation dies because it's a separate chore. zavet records decisions where the work already happens — in commits and sessions.
A decision is written when it is made — from a commit trailer, a session summary or one command. No wiki page to remember, no review meeting to schedule.
Guards attach a decision to the files it governs. When an agent quietly reverses it three weeks later, the run is stopped and told why — before the diff exists.
Ask the codebase why. Every answer carries its date, its author, the sessions that produced it and the commits that implemented it.
Because zavet lives inside dira's session tracking, each decision is correlated with the sessions that produced it. No wiki can do that arithmetic.
Confluence, Notion and AI knowledge tools live outside the repo — agents never read them before editing, and nothing enforces a word of them.
Annex IV wants the design choices and the reasoning behind them, per system. Written in August about March, that is fiction with a timestamp.
See the full mapping →zavet ships with dira — one install, works fully offline.
Next — proba →zavet captures the reasoning behind your code as a byproduct of agent work — then stops agents from reverting it, answers /zavet:why in seconds, and ties every decision to the minutes it cost.
Documentation dies because it's a separate chore. zavet records decisions where the work already happens — in commits and sessions — and makes them mechanically load-bearing.
Micro-decisions ride along as git trailers; structural ones become append-only 25-line records. Agents write them as they work — zero separate documentation.
Decisions declare guarded paths. An agent touching them sees the decision first; an unreferenced commit is blocked — in the harness, in git hooks, and in CI.
Index-first retrieval: one small file, grep, at most three documents. Answers in-session for agents and humans, or in the dira dashboard — no vector database.
Because zavet lives inside dira's session tracking, each decision is correlated with the sessions that produced it. Others have time or knowledge — the join is the part nobody else can fake.
On a 400k-LoC codebase, /snapshot reverse-engineers per-feature specs — permanently marked unverified, with open questions instead of invented rationale, until a human confirms them. A wrong "why" is worse than none.
The AI Act's technical documentation requirement is blunter than most teams expect. Annex IV §2(b), via Article 11, wants the key design choices including the rationale and assumptions made — and the trade-offs behind the technical solutions you adopted. That is not a document. That is a decision record with a why, a rejected and a date on it, which is precisely what zavet writes as a byproduct of the work.
And the refusal that makes it worth anything. zavet will not invent a rationale. A decision reconstructed after the fact stays marked unverified until a human confirms it — because evidence manufactured in August about a choice made in March is not evidence, and an auditor who notices will trust nothing else you hand them.
The full article-by-article mapping →Confluence, Notion and AI knowledge tools like Lore live outside the repo — agents never read them before editing, and nothing enforces what's written. zavet is code-coupled and mechanical.
Plain markdown in .zavet/ plus git trailers. Wipe the cloud, re-sync, get the same bytes back. Nothing leaves a machine until you opt in.
Everything works on your machine — guards enforce, /zavet:why answers in-session. The daemon reports nothing.
IDs, titles, status, guard events, coverage metrics. No wire field may carry content — a tested invariant, not a promise.
Adds decision bodies and spec text so /zavet:why and full records work in the dashboard. Separate, explicit opt-in.
zavet ships with dira — one install, works fully offline.
Start with dira free →