
Proof before done.
Evidence for every claim.
Canny records what a coding agent actually changed, blocks an unverified finish, and lets you inspect the evidence locally.
Example data — not from your machine
Not verified
No passing check exists after the latest code edit. Canny would block a done claim.
claude-b4d1-api-auth.jsonl
/work/api
—
allowallow
4
2 unverified
5
unique
3
exit 0
4
recorded
commandseditsblock/denystops, notes, Jev40 events
The workspace
Every claim leaves a trail.
Review the exact command, exit status, files changed, stop verdicts, and recorded judgments. No invented telemetry, no cloud account, no hidden upload.
The ledger, not the promise.
| Session | Project | Agent | Code files | Last command | Gate | Last stop |
|---|---|---|---|---|---|---|
claude-b4d1-api-auth.jsonl example | /work/api | claude | 1 | — | no passing check since last edit | allow |
codex-019e-cli-json.jsonl example | /work/cli | codex | 1 | cargo test · ? | no passing check since last edit | warn |
claude-7c20-web-cart.jsonl example | /work/web | claude | 2 | pnpm tsc --noEmit · 0 | check passed after last edit | allow |
claude-a1f3-api-math.jsonl example | /work/api | claude | 1 | npm test · 0 | check passed after last edit | allow |
Run locally
Guard the agent where it works.
Install the zero-dependency hooks, import ledgers manually, or use the read-only local companion. The hosted workspace cannot install hooks for you.