
Assurance
io.github.i-ops-hq由 GitHub 账号 i-ops-hq 发布v0.5.10更新于 Oct 30, 2026
Checks what an agent did NOT read. Coverage over a retrieval step or a folder.
概览
只读 MCP 工具,用于核查编码代理实际做了什么、跳过了什么——测试运行、编辑、覆盖范围与变更影响,且限定在指定根目录内。
- 可以做什么
- 审计 Claude Code 或 Codex 会话,或代理自己的运行记录,列出已完成、被跳过和无法核实的内容
- 检查最后一次编辑后是否运行过测试或检查,以及变更是否覆盖了应有的文档或时间段
- 依据 git 历史报告哪些文件通常一起变动,以及一次改动通过代码图影响到什么
- 查看安装会执行什么、MCP 服务器是否在批准后改动了工具描述,以及一次运行的预算花在哪里
- 判断某项任务是否可以替提问者推进,以及提问者是否对其变更触及的每个归属方都有权限
- 适用场景
- 当你希望对 AI 编码代理“全部完成”的说法做一次独立、可自行核算的核查,或想让助手在项目内以只读工具形式使用这些检查时适用。也适合在提交、推送或部署前以证据作为门禁的团队。
- 运行要求
- 作为本地进程在用户机器上运行(仅桌面端),来自 PyPI 包 assurance-mcp,通过 stdio 通信。未声明任何认证、环境变量或请求头。它读取其根目录范围内的本地会话记录、git 历史与项目文件。
安装
在 SourceWeft 中
- 打开 控制台中的 Assurance,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
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
来源:README.md,提交 5d294d1
工具
0版本历史
11- v0.5.10最新Oct 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
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分