Auditor

Reviews your code the way your team would.

Write down how your team builds and point it at the docs you rely on. Auditor reviews every pull request, hands you fixes you can commit, and does the work when you mention it.

A pull request, start to finishFinding posted
Move checkout to server actions #1204ib-dev wants to merge 3 commits into main
app/checkout/actions.ts · line 48
inference-bureaubotcommented
This redirect never happens.redirect() works by throwing, and the catch right after it swallows it, so a paid order stays on the checkout page.
Suggested changeCommit suggestion
-    redirect(`/orders/${order.id}`);   } catch (err) {     return { error: "Payment failed" };   }+  redirect(`/orders/${order.id}`);
From documentation: nextjs.org/docs › redirect · Fix
01 · Review

Your rules first. Then a hunt for real bugs.

Every review checks the change against the Markdown rules in .rules/, then runs bug-finding passes: logic, security, data and concurrency, API contracts. A verifier drops anything it can’t confirm, so what gets posted is worth reading.

Rules pass
.rules/api.mdMarkdown
### API-PAGINATE-LISTS
severity: medium
applies: src/routes/**

List endpoints take a cursor and return at most 100 rows.
Never return a whole table.
inference-bureaubot· src/routes/invoices.ts
GET /invoices returns every row.Medium · Triggered by rule: API-PAGINATE-LISTS in .rules/api.md
Deep review
Logicreading…
Securityreading…
Data · concurrencyreading…
API contractsreading…
Mergesame bug, kept onceVerifierreads the code again
redirect() swallowed by catch in the checkout actionchecking
Possible null order on line 31checking
Payment retry loop has no upper boundchecking
placeOrder's return type changed for callerschecking
.rules/

Rules your agents read too

The same Markdown your team and coding agents follow. AGENTS.md, CLAUDE.md and Cursor rules count as well.

knowledge

Knows the docs you build on

Add any documentation site. It’s distilled into short facts and quoted when a change touches them.

.auditor.yaml

Settings in the repository

Review settings live next to the code, read from the default branch, so a pull request can’t loosen its own review.

learning

Push back once

Reply that a pattern is intentional and it’s remembered for that directory.

02 · Fix

Every finding has a page. Hand it to your agent.

The Fix link under a comment opens a page with the finding, the code and a prompt. Give it to Cursor, Claude Code or Codex in one step, or to Auditor, which fixes it on the pull request. Anyone with the link can read it; the repository stays private.

Finding pages
inferencebureau.com/f/k7m3q9…
This redirect never happens.#1204 · High · Open
Run this in a checkout of the pull request’s branchclaude "$(curl -fsSL https://inferencebureau.com/f/k7m3q9/prompt)"No checkout yet? gh pr checkout 1204 gets one.
03 · Gate

Merge checks, written like you’d say them.

Write what must be true before a pull request merges. Auditor judges each one on every push and reports on a check of its own, so branch protection can block the merge. A pull request from a fork can’t talk its way past them.

Merge checks · inference-bureau
Public API changes update the docs
A migration that drops a column says why in the description
New environment variables are added to .env.example
Checks on #1219 · Rename the public invoice fieldSome checks haven’t finished
ci / testpassed
ci / typecheckpassed
Auditorreviewing…
Auditor merge checkschecking 3…
04 · Ask

Mention @auditor. It does the work.

On a pull request or an issue, in GitHub or Linear. Every command runs as inference on your Auditor key, inside your budgets.

01 / 05 · @auditor <question>

Ask it anything

Questions about the change, the codebase or a finding. It reads the pull request, its diff and the conversation, searches the repository at the pull request’s head, and cites the files it relies on. Answers never change code.

ib-devcommented on #1204
@auditor why does the webhook handler sleep before saving?
05 · On its own

Put the reviewer on a schedule. Watch what it does.

Automations run on a schedule, a pull request, a push, a failed check, an issue or a webhook. Each has a permission level and its own budget.

When · a check fails

Find out whether it’s a real break or a flake, and open a fix if it’s real

Propose$0.50 / run
When · every Monday

Read last week’s merged pull requests and post what changed to Slack

Read$0.20 / run
When · an issue is labeled bug

Find where the bug likely lives and comment on the issue with a plan

Read$0.30 / run
When · a webhook arrives

Turn an error report into an issue with the likely cause

Read$0.25 / run
Review analytics · 8 weeks Exampleacted on / posted

Kinds of finding your team rarely acts on stop being posted. Push back once on a pattern and it’s remembered for that directory.

Activity Example
Reviewed #1204 · 1 findinginferencebureau$0.0042
Theme review on #57 · 2 findingsshopify-theme$0.0064
Merge checks passed on #1219inferencebureau$0.0011
Planned IB-412 in Linearinferencebureau$0.008
Reviewed #388 · no findingsapps-cli$0.0018
Shopify themes too.

Reviews of a theme check what a pull request removes or renames against the content merchants keep on the store, before a page loses its settings.

Theme checks
06 · Cost

No seats. Pay for the work.

Reviews, commands and automation runs bill as model requests on your Auditor key, from your prepaid balance. Set a monthly cap and a cap per pull request. A small pull request usually costs a fraction of a cent.

spending · inference-bureauExample
Monthly cap$9.20 of $40.00
61reviews this month$0.0042average review$1.00cap per pull request
Every review is a line in Logs › Auditor key

First review on your next pull request.

  1. 01

    Install the GitHub App

    From Team → Auditor, pick the repositories and turn them on. Reviews start on the next pull request.

  2. 02

    Add .rules/ if you like

    Without rules it reviews with built-in knowledge. With them, findings name your rules.

  3. 03

    Open a pull request

    Findings land as comments, with fixes you can commit.