Run it in Claude Code once Auditor Skill is installed (plugin, script or the Solana AI Kit; see Auditor Skill):
No install: tell your agent
intake.md
Open .mdauditor-skill — Engagement Intake / Scope
Arguments: $ARGUMENTS
Turn the passive QUESTIONS.md questionnaire into a persisted audit_<n>/intake.md. Read QUESTIONS.md first (the source questions + the “How Answers Affect the Audit” table) and templates/intake.md (the artifact you fill). This fixes the gap where intake answers lived only in conversation state — both /auditor:audit-cycle and /auditor:audit-assist read the file you write here.
Mode
- Interactive (default) — walk the human through the questions. Ask sharp, answerable questions; do not dump all 46 at once. Group by section, skip questions the repo already answers (detected language, framework), confirm rather than re-ask.
--auto— no human present (theaudit-cyclepath). Apply theQUESTIONS.mddefault for every unanswered question and record each under Assumed Defaults (Unanswered) with the exact default applied. Never leave a field blank; never assume silently.
Steps
-
Discover. Enumerate the repo (extensions,
Anchor.toml/Cargo.toml/package.json/.github/). Pre-fill languages, framework, monorepo shape, and DEX/oracle/CPI hints from what the code shows — do not ask what the code already answers. -
Pin the commit.
git rev-parse HEAD. Record the full 40-char SHA and branch so the report names exactly what was reviewed. -
Warm from prior audits (if available). If the bundled tools are built (
test -x "${CLAUDE_PLUGIN_ROOT}/tools/auditor-tools/target/release/audit-mem"), warm only after the store check ofOUTPUT-RULES.mdRule 11d passes. In the audited repository,GIT_NO_LAZY_FETCH=1 git --no-pager -c core.fsmonitor=false --icase-pathspecs ls-files -- .audit-memorymust print nothing and exit 0, and the store must be one you created. Any output, in any letter case, or any error means: do not use that store; use a fresh one outside the target tree, passing--db <path outside the tree>to everyaudit-memcall. Run the check before creating.audit-memory/.gitignoreand again before everyaudit-memuse: a later pull can change the answer. For the in-tree store, runmkdir -p .audit-memory && printf '*\n' > .audit-memory/.gitignorefirst (audit-memcreates the directory itself). Then"${CLAUDE_PLUGIN_ROOT}/tools/auditor-tools/target/release/audit-mem" warm --program-id <id>(by that absolute path, never a relativetools/one) injects the prior protocol profile and open false-positive rulings — pre-fill from it and confirm rather than re-ask. Record the store’s path inintake.md§1; later steps pass that path explicitly (/auditor:threat-modelhands it to its collector as--audit-mem-db). If absent, skip. -
Walk QUESTIONS.md → intake.md. Fill every section of
templates/intake.md:- Scope & commit pin — in/out of scope (honor
Q44excludes),--scopeboundary. - Languages & frameworks (
Q3–Q7) — drives the scope-gated checklist set (SKILL.md→ SCOPE-GATED LOADING). - Protocol class (
Q1,Q17–Q24) — gates checklist 06 + economic known-vectors when funds are handled. - Compliance (
Q35–Q38) — gates checklist 18. - Severity calibration (
Q8,Q10,Q11,Q40–Q41) — record the concrete lever applied (mainnet → +1 on fund findings; TVL > $1M → double-weight criticals; single-wallet upgrade authority → auto Severity 8+), per the QUESTIONS.md effects table. Feeds report §5. - Trust-model inputs (critical) (
Q11,Q14–Q16,Q23) — for each of admin / upgrade authority / oracle / keeper / LP / permissionless user, record who holds it, what they can do, and what the review trusts them NOT to do. “Untrusted / permissionless” is a valid, important answer. This seeds report §4.4 and §4.6, and is the actor list/auditor:threat-modelexpands. - Security history (
Q25–Q28).
- Scope & commit pin — in/out of scope (honor
-
Execution mode (
Q46). Ask once per audit where target-controlled code may run — isolated (recommended: container, VM, or Claude Code sandbox with no keys or credentials mounted) or native (the auditor’s own machine) — perOUTPUT-RULES.mdRule 11a. Record the mode and the isolation used in §8 ofintake.md; every later step that builds, tests or installs the target uses it. Also tell the human that tools which send code, dependency names or addresses to outside services are listed in the report rather than gated (Rule 11b). In--auto, an unansweredQ46is recorded as native in Assumed Defaults with the basis “Rule 11a default when no mode is recorded” — and the report then states that target code ran on the auditor’s machine. -
Record assumed defaults. In
--auto, every unanswered question goes in the Assumed Defaults (Unanswered) table with the default applied and its basis. Each entry is carried into the report’s §4.6 Assumptions & Simplifications as an explicit assumption — so “no finding here” reads against a stated default, not a blanket clearance. In interactive mode this table should be empty (everything was asked); if non-empty, it lists only what the human explicitly deferred. -
Write
audit_<n>/intake.md.<n>is the highest existingaudit_*number + 1 (OUTPUT-RULES.mdRule 11d); create the dir withmkdir(notmkdir -p) and stop if it exists. Reuse an existingaudit_*only if git does not track it (GIT_NO_LAZY_FETCH=1 git --no-pager -c core.fsmonitor=false --icase-pathspecs ls-files -- audit_<n>prints nothing and exits 0) and it holds no symbolic links (find audit_<n> -type lprints nothing and exits 0), and only after the human confirms which one. Never write into a trackedaudit_*. The directory’s first file is a.gitignorecontaining*(Rule 11d). This file is the intake of record.
Output
audit_<n>/intake.md — the persisted intake artifact. Confirm the path and note whether it was filled interactively or from defaults. Both flows read this file at their scope/intake step.
One install for the whole kit
Superteam Brasil builds these skills as part of the Solana AI Kit, its open-source Claude Code and Codex kit for Solana. 15 specialist agents, 32 commands, 4 MCP servers and 46 skill packs, behind a firewall that keeps agents away from wallet keypairs.
- Specialist agents
- 15
- Commands
- 32
- Skill packs
- 46
- MCP servers
- 4