The agent said it finished. Did it?
That’s the whole problem with AI agents in one sentence. A coding agent finishes a task, prints a confident summary, and you’re supposed to just believe it. Maybe the tests passed. Maybe the artifact is right. Maybe half the work is missing and the summary papered over it. You can’t tell, because all you have is the agent’s word.
CLI 0.3.0 exists to fix that. It gives every agent task a receipt: inspectable evidence that “done” actually means done.
What’s new
The safe2 feedback suite is the headline:
- receipt: generates evidence receipts in JSON and Markdown: artifact byte checks against expectations, explicit pass/fail criteria, no vibes.
- capture-pytest / verify-pytest: fresh test evidence with observed exit codes. Crucially, capturing a process run and assessing a test result are treated as two different things, because they are.
- import-junit: brings existing JUnit results into the evidence pipeline.
- usage: correlates per-task resource usage, with reported, estimated, and unknown kept in separate buckets (no laundering guesses into facts).
- sign-report / verify-report: detached Ed25519 signatures for test and tool reports, so evidence can’t be quietly altered after the fact.
Under the hood: seven versioned JSON contracts, so every receipt is machine-checkable and stable across versions.
“The agent said it finished” is a claim. A signed receipt with byte checks and observed exit codes is evidence. 0.3.0 is the difference.
One decision worth knowing about
The Challenge Lab ran a provider-feedback round for this release and kept one principle firm: successful translation is not successful enforcement. Just because an agent’s output can be translated into the right format doesn’t mean the underlying control actually enforced anything. So the Challenge 001 protocol stays unchanged. No weakening the test to make the tooling look better.
Why upgrade
- You can audit “done.” Every task produces a receipt you can inspect instead of a summary you have to trust.
- Test evidence is honest. Exit codes are observed, not inferred. A passing summary with a failing exit code can’t hide.
- Evidence is tamper-evident. Ed25519 signatures on reports mean post-hoc edits get caught.
- It fits your existing pipeline. JUnit import and pytest capture meet your CI where it already lives.
Takeaways
- 0.3.0 turns agent completion claims into verifiable receipts.
- Signed, versioned contracts make the evidence machine-checkable.
- 724 tests passing (687 + 37 focused), Python 3.11 to 3.14.
Bottom line: If you’re running agents that produce work you can’t verify, you’re not governing them. You’re hoping. Install 0.3.0 and start collecting receipts.
Release notes and install: AI SAFE² CLI 0.3.0 on GitHub, tag 2026-09-11_safe2_CLI_0.3.0.