Beta feature. The audit ships as beta while we collect early feedback.
The detector catalog and report format may change before the next stable
cut. Please open an issue if anything looks off.
http://localhost:8020/audit directly when running failproofai locally.
cd <cwd> prefixes, sleep-polling loops, re-reading files just edited, and more.
For each transcript, every tool-use event is replayed through the 39 builtin policies and through 8 audit-only detectors that catch patterns not yet covered by runtime policies. Counts are aggregated per policy / detector across all sessions.
What you get
The/audit page composes six sections:
- Identity — your agent classified into one of 8 archetypes (
optimist,cowboy,explorer,goldfish,paranoid architect,precision builder,hammer,ghost) based on the weighted signal across every audited transcript. - Strengths — real numbers derived from the scan (clean-call %, “0 credential leaks”, etc.) gated on the relevant sanitize policies actually firing.
- Score — 0-100 with S/A/B/C/D/F bands and a projected uplift if every recommended policy were enabled.
- Findings — per-policy cards with what happened, cost, captured evidence, and the exact
failproofai policy add <slug>to enable the live-time builtin that would have caught it. - Prescribed policies — aggregated install list with a one-shot
failproofai policies --installcommand. - Re-audit reminder — “come back better.” Set a 7-day email reminder via the api-server (requires sign-in; see
failproofai auth).
Audit-only detectors
These detect “stupid behavior” patterns not (yet) enforced in real time. They run only during the audit and never block a live tool call.| Detector | What it counts |
|---|---|
redundant-cd-cwd | Bash commands starting with cd <cwd> && … even though commands already run in cwd. |
prefer-edit-over-read-cat | cat/head/tail/less/more on a single source file — use the Read tool. |
prefer-edit-over-sed-awk | sed -i / awk … > file in-place edits — use the Edit tool. |
prefer-write-over-heredoc | Heredoc / multi-line echo > file writing files — use the Write tool. |
sleep-polling-loop | Long sleep N (≥ 30s) or while …; sleep …; done polling loops. |
find-from-root | find /, find /home, find /usr, etc. — scope to cwd instead. |
git-commit-no-verify | git commit … --no-verify / -n, skipping hooks. |
reread-after-edit | Read of a file that was just Edit/Write in the same session. |
Caches
- Per-transcript cache at
~/.failproofai/cache/audit/<sha1>.jsonkeyed by(mtime, size, engineVersion, detectorVersion). Invalidates automatically when policy or detector code changes. - Whole-result cache at
~/.failproofai/audit-dashboard.json(mode 0600). Lets the dashboard render instantly on navigation without re-running. Click[ re-audit now ]from the dashboard to refresh.
Notes
- No mutation. The audit replays in read-only mode.
warn-repeated-tool-callsis skipped because its per-session sidecar would otherwise be modified. - Workflow policies skipped.
require-*-before-stoppolicies fire only onStopevents andexecSyncagainst the live git state — they have no meaningful “what would have happened in 2025” interpretation, so they don’t appear in audit counts. - Custom policies skipped. User-supplied custom hooks are not replayed (they may have changed since the original session).

