Veri Product Workflow Docs GitHub Download

A knowledge base your coding agents read

Requirements, decisions, evidence, and work orders live as plain Markdown in your repo. Veri hands each coding task the context it needs — without rebuilding the project from chat history every session.

macOS 13+ · Apple silicon & Intel · free & open source
Veri showing a work order titled PDF export pipeline: summary, in-scope and out-of-scope lists in the reader, and a context package panel on the right listing the workflow, requirements, and decisions an agent will receive, with per-document token estimates and a Start agent session button.
The problem

Your agent forgets what the project already knows

Coding agents can implement almost anything — but every new session starts with incomplete institutional memory. So you explain. Again. Chat history is not a durable project knowledge system: the session ends, and everything it learned evaporates.

  • what the product is supposed to do
  • why the architecture is the way it is
  • which approaches were already rejected
  • what is currently in and out of scope
  • how the previous work was implemented
The loop

Prompts are temporary. Project knowledge accumulates.

Work moves through a cycle, and every pass around it leaves the knowledge base knowing more.

  1. Capture knowledge

    Sources, requirements, decisions, and workflow rules live as Markdown in the repository.

  2. Define work

    A work order states the deliverable, acceptance criteria, linked requirements — and what is explicitly out of scope.

  3. Assemble context

    Veri walks the project's document links and builds a scoped context package for that work order.

  4. Agent implements

    The agent fetches the package over MCP — not an enormous hand-written prompt.

  5. Knowledge comes back

    The agent files the decisions it made and a receipt: commit, files changed, what was done.

  6. Next session starts smarter

    The knowledge base now holds what the project learned. Future tasks inherit it automatically.

Evidence → requirements & decisions → work order → agent context → implementation → receipt — and around again.

Context, not prompt engineering

Why not just CLAUDE.md and an ADR folder?

If you keep an agent-instructions file — CLAUDE.md, AGENTS.md — and architecture decision records, you already believe the idea. What a folder of files can't do is scale with the project: one file carries everything, into every session, and nothing checks that any of it still holds. Veri keeps the plain files and adds the four things the folder can't.

A growing CLAUDE.md

  1. one file carries everything, into every session
  2. every task pays the whole file's token cost
  3. no links between documents — nothing flags drift
  4. an agent edit becomes an instruction, silently
  5. outcomes scatter across chat logs and commit messages
  6. prune it by hand, or watch it rot

With Veri

  1. each task gets a scoped package — only the documents linked to it
  2. typed links between documents, and veri check flags what breaks
  3. agent writings arrive as drafts you promote
  4. finished work files a receipt on the work order
  5. knowledge accumulates; the per-task cost doesn't

Keep your CLAUDE.md — Veri is what it points at. This repository's own is two lines, and the second says to fetch the context package.

Scoped context

The agent gets a package, not a repo dump

The context package for a task is the documents linked to it — the project workflow, its requirements, every active decision within two hops, source excerpts. Typically a few thousand tokens, with a per-document estimate, assembled fresh from current file versions every time.

Superseded decisions ride along by name only, flagged as already rejected — so the agent doesn't relitigate them.

You see the exact package before the agent does, and start the session from it with one click.

The context package panel for a work order: nine documents — workflow, work order, two requirements, four decisions, one source — each with a token estimate, totalling about 1.8k tokens, above a Start agent session button and the package rules.
the package for WO-002, ~1.8k tokens
Decisions

Decisions that stay decided

A decision document in Veri: Choice — compile invoice templates with Typst; Rejected alternatives — Handlebars plus headless browser, LaTeX, wkhtmltopdf, each with the reason it lost; Rationale linking the superseded decision and the implementing work order.
DEC-005 from the sample project

A decision records what was chosen, why, and which alternatives were rejected.

Active decisions travel into every future context package they constrain. Agents stop re-opening what you settled in March — and when a decision is superseded, the package says so.

Human approval

Agents propose. You decide what becomes canon.

Agent-written requirements start as drafts, agent-filed decisions as proposals — labeled non-binding until you promote them. Nothing an agent writes silently becomes project truth.

The NEEDS REVIEW queue on Veri's home view: one pending item, requirement REQ-004 'Import time entries from CSV' marked draft, filed 21 days ago.
the review queue on the home view
Local-first

Plain files are the architecture

veri/decisions/DEC-005-typst-for-pdf-rendering.md
---
id: DEC-005
type: decision
status: active
approved: 2026-08-05
links:
  - id: DEC-003
    rel: supersedes
---

## Choice

Compile invoice templates with Typst,
embedded in the Rust core.

## Rejected alternatives

- **Handlebars + headless browser** — the
  [[DEC-003]] approach; slow and
  nondeterministic print output.

A Veri project is a veri/ directory of readable Markdown. The files are the source of truth — the app is a view over them.

Four things operate on the same knowledge, and none of them owns it:

  • The Veri appreads and edits the files
  • Your editoropens them like any Markdown
  • Gitversions, diffs, and syncs them
  • Your agentretrieves them over MCP

Delete Veri and your project knowledge is still a folder of Markdown that renders on GitHub.

Auditability

Work comes back as receipts

When an agent finishes a session it files a receipt on the work order: when, which commit, which files, what was done — appended to the document itself.

Decisions, approvals, status changes, and receipts are ordinary file changes. The evolution of the project's reasoning is as inspectable as the evolution of its code: git diff shows every word.

The agent activity feed: decisions filed and receipts landed over the past weeks, each with its document id and a relative timestamp — for example 'WO-001 Receipt filed: commit b21e88f, 1 file'.
agent activity on the home view
Health

A linter for project intent

The health card showing two veri check findings: broken-link — REQ-004 references SRC-003 but no document has that id; wo-without-requirement — work order WO-004 does not link to any requirement.
veri check surfacing in the app

veri check validates the knowledge graph the way a compiler validates code: broken links, work orders with no requirement, dependencies that were never approved, completed work with no receipt.

Issues surface quietly in the app and in CI-friendly output — so the knowledge base stays coherent as it grows.

Agent-native

Works with your coding agent

Veri exposes the knowledge base over MCP, the open protocol coding agents already speak — Claude Code today, and anything else that implements it. One click writes the project's .mcp.json; your agent gets ten tools to read context and file work back. No prompt pasting, no lock-in to one model. Connection guide →

Give your agent a memory that outlives the session

Free, open source, local-first. Your knowledge base is yours — Veri just keeps it working.

The app is macOS 13+ today — no Windows or Linux build yet. The CLI, MCP server, and GitHub Action are plain Node and run anywhere Node 20+ does.