Audits

An auditor agent checks the work before you see it.

Sessions are instructed to hand finished work to an auditor agent. It reads the deliverable, runs it and ranks what it finds as Blocker, Major or Minor. Any Blocker or Major is a FAIL and goes back for a fix. You see the work after it passes, with the evidence attached.

Audits will be included in every plan.

Orbit release notesdocs8
Draft the 2.3 release notes from the merged pull requests.
✓ 23 pull requests read
✓ Draft written, marked ready
auditor
reading
… Checking every claim against its pull request
Done. The notes are in a review page; nothing was published.
Sonnetctx 12%auditor: Opus$0.40
Fig. 1The auditor appears in the agents tree when a session hands it the finished work. The session is instructed to report done only after the verdict.

How the gate works.

The auditor is an agent with one job and a clean context. It has not seen the conversation that produced the work, so it reads the result the way you would.

  1. An auditor agent starts

    Sessions are instructed to hand finished work to an auditor agent, which starts with a clean context.

    writer
    ready
    auditor
    start
  2. It reads the deliverable

    Every file that changed, the brief it answers and the claims the session made about it.

    ✓ Read the brief
    ✓ Read 4 changed files
    ✓ Listed 6 claims to verify
  3. It runs it

    Builds the code, runs the tests and the real path, renders pages at two widths, recounts the data.

    ✓ npm test: 14 passed
    ✓ Real export, 312 rows
    ✓ Screens at 1440 and 390
  4. It ranks and decides

    Each finding gets a severity, Blocker, Major or Minor, and its evidence. Any Blocker or Major makes the verdict FAIL.

    Blocker
    1 blocking finding
    FAILback to the cell

Three severities, one rule.

Any Blocker or Major is a FAIL. A Minor is listed in the report and does not block, so a PASS can still carry advice.

LevelMeaningVerdict
BlockerBroken, unsafe or wrong: data from another customer, a leaked secret, a wrong total, a feature that stops working.FAIL
MajorWorks, but a person would notice the problem: a missing state, a layout that breaks on a phone, a claim the evidence does not support.FAIL
MinorShould be fixed, or a note for later: a typo, an inconsistent label, a slow path that still works.listed

A sample audit: FAIL, a fix, then PASS.

Northwind Labs asked a session for a CSV export of invoices on the billing page. The session finished, its tests were green, and it marked the work ready. This is what the auditor returned, and what it returned 26 minutes later.

Audit 1: Northwind invoice export

14:08FAIL
Blocker
Export includes invoices from other workspacesThe query filters by account id only. With two workspaces on one account, the export for workspace B held 3 invoices from workspace A.billing/export.ts:54repro: 1 real exportexport-b.csv rows 41 to 43
Major
Amounts lose their currencyInvoices in EUR are written as bare numbers next to USD ones, so a spreadsheet total mixes currencies.fixtures/eur-invoices.jsonexport-b.csv column E
Minor
Column header says "Ammount"Spelling. Suggested text included.billing/export.ts:31
Minor
Export button has no busy stateA double click downloads the file twice. Seen at 390 px, where the button sits under the thumb.screenshot 390px
Minor
The CSV uses commas as separatorsFine for current customers. Semicolons may suit European spreadsheet defaults later.
evidence: 12 tests read and run, 1 real export, 1 CSV diff, 2 screenshotsreturned to cell 1 with 5 findings
Fig. 2The first audit. The tests were green; the real export across two workspaces was not. One Blocker and one Major make it a FAIL.

Audit 2: Northwind invoice export

14:41PASS
Blocker
✓ Resolved: export included invoices from other workspacesThe query now filters by workspace id. Reran the two-workspace case: 0 foreign rows. A new test covers it.billing/export.ts:54export.spec.ts: "scopes to workspace"
Major
✓ Resolved: amounts lost their currencyA currency column was added. Opened the file in a spreadsheet: EUR and USD totals are separate.export-b.csv column F
Minor
✓ Resolved: header spelling"Amount" in the header and in the test fixture.
Minor
✓ Resolved: double downloadThe button shows "Preparing" and ignores a second click until the file is ready. Checked at 1440 and 390 px.
Minor
Open: the CSV uses commas as separatorsAdvice only. Left for you to decide.
evidence: 14 tests, 1 real export of 312 invoices across 2 workspaces, 2 screenshotssent to you with the deliverable
Fig. 3The re-audit. Each resolved finding says how it was checked again. Only now does the session tell you the export is done.

What the auditor checks.

The checks depend on what the deliverable is. A job that produces code and copy gets both sets. Your own rules, written in the project's instructions, are read with every audit.

Code

builds, runs, does what was asked

  • It builds, and the changed path runs for real.
  • Tests pass, and new ones cover the change.
  • The change does what the brief asked and nothing extra.
  • Empty, large and wrong input.
  • Secrets, injection and permissions.
  • No silenced lint or type errors.

Copy

true, on brief, in your voice

  • It answers the brief and the audience.
  • Every fact traced to a source.
  • Names, prices, dates and links checked.
  • Your voice rules and banned words.
  • Length and format for the channel.

Design

rendered, compared, usable

  • Rendered at 1440 and 390 px, screenshots attached.
  • Matches the approved mockup.
  • No overflow and no clipped text.
  • Empty, loading and error states.
  • Contrast, focus and keyboard use.

Data

counted, reconciled, repeatable

  • Row counts match the source.
  • Totals and currencies add up.
  • Joins without duplicates or gaps.
  • Dates and time zones.
  • The query is in the report, so you can rerun it.

Evidence rules.

An audit is only as good as what it can show. These rules are part of the auditor's instructions for every audit.

  1. A claim without a run is a finding.

    "Tests pass" needs the command and its output. "Looks right on mobile" needs the screenshot.

  2. Fresh means this version.

    Evidence from before the last change does not count. A fix gets a new run.

  3. Point at the exact place.

    File and line, page and viewport, row and column. You should be able to find it in ten seconds.

  4. The auditor reads and runs; it does not fix.

    Fixes go back to the session that made the work, so the next audit is still independent.

  5. Any Blocker or Major is a FAIL.

    There is no partial pass. Minor findings are listed and travel with the work.

  6. Unknown is said plainly.

    If something could not be checked, such as a payment that would cost money, the report says so and asks you.

Questions about audits.

Does an audit cost extra?
Audits are part of every plan. The auditor's model usage is billed by Anthropic to your own API key, and its spend counts toward the session that called it.
Can I add my own checks?
Yes. Write them in the project's instructions file, such as "every price must match the pricing table". The auditor reads those instructions with every deliverable in that project.
What if the auditor is wrong?
Reply in the cell. You can overrule a finding, and your reply stays in the session's transcript in History.
Does my code leave my machine for the audit?
The auditor runs on your PC inside the session that called it and talks only to Anthropic, with your key. There is no Command Center server in between.

Get work that has already been checked.

Command Center is in early access. Request access, add your Anthropic API key when your build is ready, and the next deliverable reaches you with its audit attached.