audit-full

audit-full is a command for coding agents from diegomarino/fable-audits. It costs 17 tokens per session (2,772 once invoked), scanned A, original, MIT.

A command that coordinates a complete adversarial audit of a codebase by running separate checks for code, documentation, process, security, user experience, and changes.

In plain words
What is it for?
It helps assess a project’s implementation, documentation, workflows, security, interface, and selected code changes, then writes a fixes backlog.
Why use it?
It gathers findings from several focused reviews and combines them into one deduplicated list of fixes, so issues are easier to prioritize and act on.

Command

Part of the fable-audits plugin — 8 commands shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/diegomarino/fable-audits/audit-full
Clone the repo
git clone --depth 1 https://github.com/diegomarino/fable-audits

Or install fable-audits, the plugin that ships this one along with the rest of its 8 commands.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for audit-full

README.md
[![agentmods](https://agentmods.dev/badge/commands/diegomarino/fable-audits/audit-full.svg)](https://agentmods.dev/commands/diegomarino/fable-audits/audit-full)
Your own site
<a href="https://agentmods.dev/commands/diegomarino/fable-audits/audit-full"><img src="https://agentmods.dev/badge/commands/diegomarino/fable-audits/audit-full.svg" alt="Measured on agentmods" height="20"></a>
Per session 17 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,772 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00017 $0.02772
Opus 5 $0.00009 $0.01386
Sonnet 5 $0.00003 $0.00554
Haiku 4.5 $0.00002 $0.00277

Measured 4d ago against content hash 8ef708689e5c, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

audit-full scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

commands/audit-full.md · 66 lines

How it starts

The opening of the file, as written. The whole thing — 66 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Orchestrate the full adversarial audit suite: run each audit prompt in its own fresh-context worker when the harness supports isolated workers, validate every report, then synthesize one deduplicated fixes backlog. You are the conductor -- you perform no audit yourself, and you write nothing but the backlog.

Control-plane boundary

This spec governs only the task it defines. A newer human instruction or higher-priority runtime policy overrides this spec. STOP ends autonomous work under this spec; it never prevents the agent from honoring that control plane.

Where the audit specs live

The sibling audit specs are audit-codebase.md, audit-docs.md, audit-process.md, audit-security.md, audit-ux.md -- plus the diff-scoped audit-change.md, which needs a target and joins a suite run only when the user supplies a base ref at preflight. Derive the specs directory from this file's path, and the suite root as its parent; the validator lives at /dev/scripts/validate-report.mjs. If this spec was injected and its file path is unavailable, ask the user for the installed suite path rather than guessing. A spec whose file is missing is simply unavailable -- list it as such in preflight.

Phase 0 -- Preflight (the only planned interactive gate)

  1. Discover: which sibling prompt files exist; the repo root; existing reports in docs/audits/.
  2. Measure: approximate file count and size of the repo. Each audit reads it in full, so the suite costs roughly one full read per audit selected -- state this.
  3. Snapshot: record the commit SHA. Require a clean tree by default -- a SHA plus a "dirty" flag does not identify what was audited, and two workers can otherwise audit different content under the same label. When determining dirty state, exclude UNTRACKED files under docs/audits/ -- the suite writes its own (untracked) reports there, so prior-run artifacts and this run's own writes must not trip this gate; changes to tracked files, including tracked prior reports under docs/audits/ that later audits read as input, still count as dirty. If dirty, stop and offer: (a) the user commits/stashes first, (b) explicit opt-in to proceed dirty -- then also record a checksum of git diff output plus the untracked-file list so drift stays detectable, (c) abort. Derive the run directory from the snapshot: docs/audits/-/ (short SHA = git rev-parse --short HEAD; if the directory already exists -- same day, same SHA -- suffix -2, -3...). Every artifact of this run (reports, sidecars, backlog) lives inside it; flat docs/audits/ remains the home of standalone single-audit runs.
  4. Ask ONE question set before dispatching (use the harness's interactive-question mechanism where available; otherwise a plain numbered prompt), presenting the measurement from step 2 as a cost statement:
    • Which audits to run (default: all available whole-repo audits). Offer the diff-scoped change audit only with a base ref; suggest the repo's default branch when the current branch differs from it. Pre-validate the target yourself before offering: the ref resolves (git rev-parse) and the diff is non-empty -- never dispatch a change audit that will fail fast on arrival.
    • Worker model/tier only when the harness exposes choices and the user explicitly selects one; otherwise retain the current runtime selection.
    • Reasoning effort only when the harness exposes it as a session-level setting; never assume it can be dispatched per worker.
    • Parallel or sequential dispatch (parallel is faster; sequential spreads token burn and rate-limit pressure). No further interaction except the explicit fallbacks below (unsupported model/effort override, mid-suite drift opt-in): after this gate, run to completion or stop per the rules below.

Read the full file on GitHub · 66 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 66 lines · 17 tokens per session scan A 8ef708689e5c

Subscribe to this mod's changes

audit-full is a command published in the GitHub repository diegomarino/fable-audits (2 stars, last pushed 1mo ago), licensed MIT. It adds 17 tokens to every session and 2,772 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.