
Assurance
io.github.i-ops-hqPublished by GitHub account i-ops-hqv0.5.10Updated Oct 30, 2026
Checks what an agent did NOT read. Coverage over a retrieval step or a folder.
Overview
Read-only MCP tools that check what a coding agent actually did and skipped — test runs, edits, coverage and change reach — within a given root folder.
- What you can do
- Audit a Claude Code or Codex session, or an agent's own run record, for what was done, skipped and could not be verified
- Check whether tests or checks ran after the last edit, and whether a change covered the documents or periods it should
- Report what usually changes together with the files you touched, from git history, and what a change reaches via a code graph
- Inspect what an install would run, whether an MCP server changed a tool description after approval, and where a run's budget went
- Answer whether a task may proceed for the person who asked, and whether they are cleared for every owner a change reaches
- When to use it
- Use it when you want an independent, arithmetic check on an AI coding agent's "all done" claim, or want the same checks available to an assistant as read-only tools inside a project. It suits teams gating commits, pushes or deploys on evidence that tests actually ran and passed.
- Requirements
- Runs as a local process on the user's machine (desktop only) from the PyPI package assurance-mcp over stdio. No authentication, environment variables or headers are declared. It reads local session transcripts, git history and project files under the root it is limited to.
Installation
In SourceWeft
- Open Assurance in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
assurance
Your AI agent says it's done. Assurance tells you what it didn't check.
[PyPI] [Python] [tests] [License]
Quick start · Co-change · Use cases · Commands · After every turn · Workflow · Feedback
Coding agents finish with "All done — tests pass." Assurance reads what actually happened and tells you, in plain sentences, what was done, what was skipped, and what it could not verify.
Quick start
Run this in any project where you've used Claude Code or Codex:
It reads the newest session either agent left for this folder — nothing to configure, and no flag
saying which one you used. Used neither yet? uvx assurance audit --demo shows the report on a
bundled sample session.
Don't have uvx? It comes with uv. One line to install it:
Open a new terminal afterwards so uvx is on your PATH. Or skip uv entirely and use
pip install assurance, which gives you the same assurance command.
Here is the real output on a sample session in this repo. The
agent was asked to fix a rounding bug in invoice.py "and make sure pytest -q tests/test_invoice.py
passes", and ended with "All done — the totals are correct now."
What "All done" left out:
- ❌ The tests failed three times in a row, the same way each time.
- ❔ No test it recognises ran after the last edit. Two commands did, and it can't vouch for them either way, so it names them. Silence is not a pass.
- ❔ The test the prompt asked for last ran before the last edit, and failed. The file it named was changed. Whether the fix is right is not something it claims to know, and it says so.
What usually changes with what you just changed
The other half of an unfinished change is the file you forgot. assurance coupling reads your git
history — no graph, no configuration, no model — and names what travels with the files you touched
and that you have not touched this time.
Run in this repository with nothing changed, it falls back to the repository as a whole, and the first thing it says is about its own release process:
The release version lives in those files and they move as one set. Twice in one day the author of this paragraph moved some of them and not the others, and a test caught it both times. The tool had already said so, from history, before either mistake.
Every report ends with the git log command that checks its own first line, so you never have to
take its word for it.
Use cases
Where Assurance sits in the work you already do. Each page is short: what goes wrong, where it sits, the lines that set it up.
Commands
One install, one assurance command.
Every command works as a CI gate as it is:
Run it after every turn, if you want that
Everything above is something you run. This is the same audit as a Stop hook, running itself each time Claude finishes a turn, which some people want and some people do not.
Worth knowing before you turn it on: keeping an agent working until a condition holds is something
Claude Code ships on its own, with /goal. What that
condition is judged against is the difference. /goal's own documentation says its evaluator
"doesn't run commands or read files independently" and "can only judge what Claude has already
surfaced in the conversation" — so an agent that says the tests passed can satisfy it by saying so.
This reads the session's tool records and computes whether a test actually ran after the last edit,
from the exit status that was recorded. Neither is better at everything; they answer different
questions, and only one of them is unimpressed by a confident sentence.
It speaks only when there is something to say, at one of three levels, named first:
It knows the test commands of Maven, Gradle, Bazel, Django, Rails, jest, vitest, go, cargo and more,
reads your package.json, Makefile and justfile scripts to learn yours, and never counts a run of
zero tests as a pass. What it recognises.
Or as a Claude Code plugin: claude plugin marketplace add i-ops-hq/assurance, then
claude plugin install assurance@i-ops-hq. It never blocks or fails a session. Everything about
pinning, sharing it with a team, Windows and what the plugin runs: the hook guide.
Where it sits in your workflow
The red box is Assurance. Everything else is your workflow as it is today: after each turn, Assurance reads what the agent actually did, tells you when something needs a look, and says nothing otherwise. The same check can gate CI.
One fix, step by step:
Guides
- Run it after every session: the levels in full, pinning, team setup, the plugin, Windows
- Your project's rules: declare your own tests, what must pass, what must not be touched, and limits the agent can't raise
- Your own agent: run records, OpenTelemetry traces, and a local endpoint
- More checks: retrieval coverage, MCP pinning, installs, what a change reaches, MCP tools
What it won't do
- Guess. If it can't establish a number, it says so instead of making one up.
- Call a model or the network. Every result is arithmetic you can check yourself.
- Claim more than it saw.
auditreads Claude Code transcripts, Codex rollouts, and the run records your own agent writes. A record shape it does not know is counted as unread, never guessed into a tool call — the report prints that count. Other agents' own logs are next: tell us which one you use.
Tell us where it's wrong
It's early, and the most useful thing you can do is run it on real work.
- 🎯 It gave a wrong or misleading answer. This is the most valuable report there is.
- 🐛 Something broke
- 💡 Support another agent, lockfile or framework
- 🤝 Contribute: pick a
good first issueand read CONTRIBUTING.md.
If it's useful to you, a ⭐ helps other people find it.
Packages
pip install assurance gives you all the commands. Each part also installs on its own.
Part of I-Ops. Keep your models, agents and orchestration, and put an independent check around them.
Apache-2.0 · Security · Contributing · Releases
Source: README.md at commit 5d294d1
Tools
0Version history
11- v0.5.10LatestOct 29, 2026
- v0.5.8Oct 21, 2026
- v0.5.7Oct 10, 2026
- v0.5.6Oct 6, 2026
- v0.5.5Oct 2, 2026
- v0.5.3Sep 29, 2026
- v0.5.2Sep 26, 2026
- v0.5.1Sep 25, 2026
- v0.5.0Sep 24, 2026
- v0.4.8Sep 20, 2026
- v0.4.7Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts