Open-source agent PR evidence

Every AI-agent PR should explain itself.

Shale records what an agent was asked to do, what it touched, and what checks it ran, then renders the evidence as a pull-request card. Five minutes to set up. No account. No server.

Install Shale
latest →
cd your-repo
shale init

A session becomes evidence.

The agent declares intent, works, and closes the session. Push, and the evidence travels with the code — rendered as a card on the pull request.

A Shale session: shale intent, agent edits, shale done, git push, card rendered
⚙ github-actions bot commented
🧾 Shale · 1 session · claude-code (claude-fable-5)
claude-fable-5 · 60k tokens · ~$0.67 · 2 iterations · < 1 min
Intent
Add rate limiting to the login endpoint
Token bucket per client IP, 10 requests/min, in-memory. Return 429 with Retry-After.
Declared 2026-06-10 12:54 · session 25f37dfc
Changed files (3) — all with session evidence
internal/ratelimit/ratelimit.go✅ 25f37dfcnew file
internal/ratelimit/ratelimit_test.go✅ 25f37dfcnew file
main.go✅ 25f37dfc
Checks recorded locally
go test ./...✅ passed12:54
Advisory — CI is authoritative.

The card above is real — see the live demo pull requests.

primary product · Apache-2.0

Shale

Agent intent capture, session evidence, local check history, and an honest PR card that shows coverage gaps instead of hiding them.

Repository ->
secondary product · Apache-2.0

Prism

Graph-ranked context delivery for AI coding agents. Start with an anchor, get callers, callees, tests, docs, and coverage gaps.

Repository ->
experimental coding agent · Apache-2.0

Mason

A coding agent for any model — local, Anthropic, or OpenAI — with the code graph and evidence trail built into the harness. Free local models, measured at the engine ceiling.

Repository ->
merge driver · Apache-2.0

Fuse

A semantic git merge driver. Symbol-aware three-way merge, AI conflict handoff, and drift evidence so parallel agents don't trip over each other.

Repository ->
graph engine · Apache-2.0

Grove

The code knowledge graph behind the tools, also available directly for teams that want indexing, symbols, impact, and graph queries.

Repository ->

Open source, local-first by default.

Start with Shale when you want pull-request evidence, add Prism when agents need better context, run Mason when you want an agent with both built in, add Fuse when parallel work keeps colliding at merge time, and use Grove directly when another project needs the graph itself.

Shale is the primary product. It solves the immediate reviewer problem: agent PRs need intent and evidence on the PR.
Prism helps agents work. It reduces context gathering and routes agents to the code and tests they need.
Mason is the agent. Any model — including free local ones — driven by a harness that enforces accuracy structurally, with the graph and evidence trail baked in.
Fuse merges parallel work. A symbol-aware git merge driver that resolves what's compatible and hands off what isn't — with full context.
Grove is the graph. Use it directly when you want the persistent code graph without the higher-level tools.
No hosted dependency. The default path is local-first open source. No account, server URL, or token paste.
One tap for everything. brew tap provasign/shale installs any of them; each repo sets up with a single init command.

Why these names?

The family is named for how each tool treats the raw material of agent work — light, growth, joining, and sediment. Provasign is the umbrella: prova (proof) + sign — agent work that can prove itself.

Shale is sedimentary rock: thin, readable layers compacted from what settled. Shale compacts a messy agent session into clean strata of evidence on the pull request.
Prism splits white light into a spectrum. Point a task at your codebase and Prism refracts it into exactly the bands an agent needs — code, callers, tests, coverage gaps — ranked and budgeted.
Mason is the builder's trade: courses laid level, checked against the line, on a foundation that holds. The agent does the work; the harness is the level and the plumb — accuracy comes from the structure, not the worker's mood.
Fuse joins two things into one that holds. Fuse merges parallel lines of work at the symbol level — and like the electrical kind, it trips safely (a context-rich handoff) instead of letting a bad merge burn through.
Grove is a stand of trees with one root system. Every file is parsed into a syntax tree; together they grow into a single connected, persistent graph the whole toolchain stands on.