WAVE 8 / ZAMBO

How to Audit a Coding Agent

Last updated: 2026-10-09

Plain answers about using Zambo, keeping your work, and checking receipts. A receipt shows what Zambo recorded for one call. It does not prove the answer is right.

AER-1 is an open draft spec authored by Brennan Zambo.

Try the Zambo demo · Explore Zambo

Short answer: A coding agent audit should preserve tool call history, session records, file or command context, receipts, and the evidence needed to check whether the requested change actually occurred. An install page is not an audit record.

Last reviewed: 2026-09-23. This page describes a reviewable evidence pattern and does not claim an outside result without upstream confirmation.

Before the session

Define the task, permitted files, commands, and evidence needed for acceptance.

During the session

Preserve tool calls, observed outputs, timestamps, failures, and approval boundaries.

After the session

Open the relevant receipts, verify their integrity, inspect the final state, and distinguish a reported change from a confirmed change.

Live verification example
For developers

Open a public execution receipt or call its verifier. The example reports verification_status: verified for the stored record. It is not proof of an unobserved external outcome.

Frequently asked questions

Who authored the AER-1 draft?

For developers

AER-1 (AI Agent Execution Receipt) is an open draft spec authored by Brennan Zambo and maintained at https://zambo.dev/aer-1.

coding agent agent audit

A coding agent audit should preserve tool call history, session records, file or command context, receipts, and the evidence needed to check whether the requested change actually occurred. An install page is not an audit record.

What can a verifiable receipt prove?

It can show what the execution layer recorded and what its integrity checks verify. It cannot prove an unobserved outside outcome.

How can another reviewer check the record?

Open the public receipt, compare the tool, time, result, and status, then call the verifier. Keep outside confirmations separate from the execution record.

For developers

Example: a live BTC price call returned the listed amount USD with verifiable receipt 72245c61-7730-4fa1-abc4-a94e789bda28, auditable at https://zambo.dev/run/72245c61-7730-4fa1-abc4-a94e789bda28 (verified live 2026-09-28).

What this question can establish

The practical question behind How to Audit a Coding Agent is whether the record supports the claim being reviewed. A coding agent reports a completed change, and a reviewer needs to compare the request with actual repository state, commands, tests, and approved tool actions. Separate the request, the execution, the system's observed output, and confirmation from any outside system. These are different evidence boundaries, and a reviewer should not treat them as interchangeable.

Confirm the final repository state and acceptance checks directly. A receipt supports review of a recorded call; it does not substitute for inspecting the change. A useful conclusion names the evidence that was checked and the conditions that remain unresolved. This keeps an execution record useful without stretching it into a broader assurance claim.

Evidence to retain for this workflow

Start with the smallest set of fields that lets a second reviewer identify the event and repeat the relevant check. For this topic, Preserve the task boundary, changed-file list, relevant diff, command results, test output, approvals, timestamps, and receipts for consequential tool calls.

A repeatable review sequence

Use the same order for routine checks and incident review. It prevents a later summary from replacing the evidence the task actually requires.

  1. State the requirement. Write the expected outcome and the exact source that can confirm it. A coding agent reports a completed change, and a reviewer needs to compare the request with actual repository state, commands, tests, and approved tool actions.
  2. Locate the execution. Match the public receipt identifier to the requested event, then confirm the tool, scope, timestamp, and status.
  3. Check integrity. Decode the committed bytes as specified by the receipt format, recompute fingerprint, and compare the complete digest rather than a shortened preview.
  4. Check the owning system. When the claim involves an outside change, query that system or inspect its genuine callback. A receipt alone cannot supply a missing confirmation.
  5. Write a bounded finding. Record what ran, what was observed, whether the bytes matched, and what remains unknown. Confirm the final repository state and acceptance checks directly. A receipt supports review of a recorded call; it does not substitute for inspecting the change.

Failure states and misleading success signals

Preserve failed, blocked, pending, retried, and partially completed states as distinct outcomes. A successful command can target the wrong directory, a passing test can miss the requested behavior, and an agent summary can describe edits that are absent from the final tree. A successful transport response can still contain a tool error, and a valid integrity check can still protect an incorrect or incomplete result.

When evidence conflicts, keep both records and identify which system owns each fact. Do not overwrite an earlier receipt or silently promote a retry into proof that the original step succeeded. Explain whether the conflict is a timing issue, a stale read, a missing callback, a policy boundary, or a different task interpretation.

Privacy, retention, and safe sharing

Reviewability does not require publishing every input. Remove secrets, private source content, customer data, and environment values from public receipts and shared logs. Keep access to the repository and detailed traces under its normal controls. Prefer stable references and cryptographic commitments where they are enough for the reviewer, and keep the underlying sensitive record with the system that controls it.

Before sharing, check the public page, result preview, metadata, and linked evidence for secrets or personal information. Set retention and access according to the review purpose. If a record must be corrected, publish a new reference and preserve the original history rather than rewriting a record that another reviewer may already have captured.

Example of a careful conclusion

For developers

A reviewer could write: “The receipt identifies the recorded tool call and timestamp. The SHA-256 digest matches the exposed canonical bytes. The result preview is consistent with the stored record. Confirm the final repository state and acceptance checks directly. A receipt supports review of a recorded call; it does not substitute for inspecting the change. No additional outside outcome is claimed unless the owning system supplied its own confirmation.”

This kind of note gives the next person a useful handoff: what was checked, what the check means, and where the evidence stops. It is more informative than a bare success label and avoids presenting an unobserved event as a verified fact.

Common review questions

What does the record establish?

It establishes what the execution system recorded and whether the exposed canonical bytes match the output commitment. For how to audit a coding agent, it does not by itself establish correctness or a result outside that system.

What if a provider or callback is unavailable?

Keep the state pending or unavailable, retain the error and time, and avoid claiming completion. In this workflow, A successful command can target the wrong directory, a passing test can miss the requested behavior, and an agent summary can describe edits that are absent from the final tree.

What should a reviewer inspect first?

Preserve the task boundary, changed-file list, relevant diff, command results, test output, approvals, timestamps, and receipts for consequential tool calls. Then compare the record with the task requirement and ask the system that owns any claimed external state for a separate read-back.

What is safe to share?

Share the public receipt URL, identifier, status, verifier result, and a short sanitized task description. Remove secrets, private source content, customer data, and environment values from public receipts and shared logs. Keep access to the repository and detailed traces under its normal controls.

Further reading

Try a reviewable tool call

Use the install guide to connect Zambo, make a bounded request, and inspect the receipt before relying on any outside outcome.

The free tier does not require an account. Check the pricing page for the current per-tool allowance before you start.

Open the Zambo install guide

For developers and agents

Zambo gives AI work a receipt you can check. For people: add Zambo to your AI app and ask for a job. These technical links are for developers and AI agents. One hosted MCP at https://zambo.dev/mcp. Check the proof for recorded tool calls (verify a receipt). Agents: 24-hour Day Pass, $0.99 USDC on Base via x402, not per call. People: Zambo Pass $29/mo or $290/yr; holder pass $19/mo for verified $ZAMBO holders.

Start here: For AI agents · Add Zambo · Check a receipt · Answers · Guides · What a receipt is · Open receipt format (draft) · All tools · Pricing · Day Pass: $0.99 · Agent Day Pass · Switch AIs without losing your work · Connect your AI · Founder · Source code
Brennan on X · Zambo on X