Metadata-Version: 2.4
Name: assurance
Version: 0.1.2
Summary: One install for the assurance tools: what an agent run covered, spent, may do, and is about to install — and what could not be checked.
Author-email: "I-Ops Operations Intelligence, LLC" <hello@i-ops.dev>
License: Apache-2.0
Project-URL: Homepage, https://i-ops.dev
Project-URL: Source, https://github.com/i-ops-hq/assurance
Keywords: ai-agents,mcp,rag,assurance,supply-chain,guardrails,llm-ops
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: assurance-cli>=0.6.1
Requires-Dist: assurance-deps>=0.2.4
Requires-Dist: assurance-budget>=0.2.2
Requires-Dist: assurance-authority>=0.1.4
Dynamic: license-file

# assurance

**Your AI agent says it's done. Assurance tells you what it didn't check.**

```bash
uvx assurance audit          # in a project where you've used Claude Code
uvx assurance audit --demo   # or see a report on a bundled sample session
```

Real output on the bundled sample. The agent was asked to fix a rounding bug "and make sure the tests
pass", and ended with *"All done — the totals are correct now."*

```
Claude Code session demo-8f2 — 13 min in /home/you/my-app
10 tool calls, 3 failed — Bash 6, Edit 2, Grep 1, Read 1

  Looped: 3 rounds of Bash `pytest -q tests/test_invoice.py` failing the same way, with nothing new read
  After the last edit (14:09): no test or check command ran
  Not classified: 2 shell commands (make lint-fix, python script), so whether they read, wrote or tested anything is unknown.
  Also in the transcript: 1 assistant turn, 1 user turn, 1 bookkeeping record.
  Not read: 0 lines.
```

**Run it after every session.** Add this to `~/.claude/settings.json`. When Claude finishes without
testing its last edit, you're told, and with `--nudge` Claude is sent back to run the tests:

```json
{ "hooks": { "Stop": [ { "hooks": [ { "type": "command", "command": "uvx assurance audit --hook --nudge" } ] } ] } }
```

## Every command

| command | question |
|---|---|
| `assurance audit` | what did a Claude Code session actually do, and what did it skip? |
| `assurance diff` / `assurance check` | did the work cover what it was supposed to, and what did it miss? |
| `assurance pin` | did an MCP server change a tool definition after you approved it? |
| `assurance deps` | what will a `pip install` or `npm install` execute, read without executing it? |
| `assurance budget` | where did an agent run's budget go, and where did it loop going nowhere? |
| `assurance authority` | may this task proceed for the person who asked? |
| `assurance drift` | did a failure rate actually shift, or was the week noise? |

Nothing here consults a model, opens the network, or reports a check it could not run as a pass.

This package contains no code of its own. It installs
[`assurance-cli`](https://pypi.org/project/assurance-cli/),
[`assurance-deps`](https://pypi.org/project/assurance-deps/),
[`assurance-budget`](https://pypi.org/project/assurance-budget/) and
[`assurance-authority`](https://pypi.org/project/assurance-authority/), each of which also installs on
its own. The MCP server is separate: `pip install assurance-mcp`.

Source, issues and documentation: https://github.com/i-ops-hq/assurance · Apache-2.0.
