solidity-auditor
Skill34 starsChanged 8 months agoMITView on GitHub
Security audit of Solidity code while you develop. Trigger on "audit", "check this contract", "review for security". Modes - default (full repo), DEEP (+ DeFi protocol agent), or a specific filename.
6 other projects use a version of this, 3 of them edited.
Adopted by
Most recently taken up by
- chasebrownn/claude-skillsedited, first seen Oct 15, 2026
- Gabson0x/bountyforgeedited, first seen Sep 16, 2026
- DROOdotFOO/agent-skillstheir own version, first seen Sep 1, 2026
- conjure-3301/skillsedited, first seen Aug 17, 2026
- pashov/skillstheir own version, first seen Mar 4, 2026
- schwepps/skillstheir own version, first seen Jan 12, 2026
Used with
Projects with it also use x-ray.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
pashovSkillx-ray
Generates an x-ray.md pre-audit report covering overview, enhanced threat model (protocol-type profiling, git-weighted attack surfaces, temporal risk analysis, composability dependency mapping), invariants, integrations, docs quality, test analysis, and developer/git history. Triggers on 'x-ray', 'audit readiness', 'readiness report', 'pre-audit report', 'prep this protocol', 'protocol prep', 'summarize this protocol'.
Also in 3 projects that use this
Other versions6 projects use a version of this.
Word for word · 0
None found.
Edited · 3
- Gabson0x/bountyforge★ 43123% same
- chasebrownn/claude-skills★ 092% same
- conjure-3301/skills★ 092% same
Wrote their own version · 3
- pashov/skills★ 1.3ksame name
- schwepps/skills★ 16same name
- DROOdotFOO/agent-skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repositoryOne other file it gives its agents.
- CLAUDE.mdCLAUDE.md
The file
We split this skill into the rules it gives an agent
7 rules. 2 are common, 1 is distinctive, and 4 are very specific to this project.
2
Common
Most of the 5 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 24
If a .pashov-skills-constraints.yaml file exists in the repository root, the orchestrator reads it during discovery and includes it in …
- Very specific: line 49
If the remote VERSION fetch succeeds and differs from local, print ⚠️ You are not using the latest version.
- Very specific: line 69
If constraints were found in Turn 1, prepend a ## Constraints section containing the raw YAML content to every bundle.
- Distinctive: line 89
Check for composite chains: if finding A's output feeds into B's precondition AND combined impact is strictly worse than either alone, add …
- Very specific: line 91
Gate evaluation: Run each deduplicated finding through the four gates in judging.md (do not skip or reorder).
- Common: line 98
No deployer-intent reasoning — evaluate what the code _allows_, not how the deployer _might_ use it.
- Common: line 106
Before doing anything else, print this exactly:
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Smart Contract Security Audit
You are the orchestrator of a parallelized smart contract security audit.
Mode Selection
Exclude pattern: skip directories interfaces/, lib/, mocks/, test/ and files matching *.t.sol, *Test*.sol or *Mock*.sol.
- Default (no arguments): scan all
.solfiles using the exclude pattern. Use Bashfind(not Glob). - deep: same scope as default, but also spawns the DeFi protocol agent (Agent 9, opus). Use for thorough reviews. Slower and more costly.
$filename ...: scan the specified file(s) only.
Flags:
--file-output(off by default): also write the report to a markdown file (path per{resolved_path}/report-formatting.md). Never write a report file unless explicitly passed.
Constraints (optional)
If a .pashov-skills-constraints.yaml file exists in the repository root, the orchestrator reads it during discovery and includes it in every agent bundle. Agents use declared constraints to fast-track Skip classification during triage. Constraints describe factual codebase properties, not security assumptions. Code overrides constraints.
Supported fields (all optional, unknown fields ignored):
tokens: [USDC, WETH] # accepted token list (skip exotic-token vectors if set)
standards: [ERC20] # implemented standards (skip unlisted standard vectors)
cross_chain: false # no bridge/LayerZero/cross-chain logic
proxy_pattern: none # none | transparent | uups | diamond | beacon
oracle: chainlink # chainlink | twap | pyth | custom | none
account_abstraction: false # no ERC-4337 / smart account logicOrchestration
Turn 1 — Discover. Print the banner, then make these parallel tool calls in one message:
a. Bash find for in-scope .sol files per mode selection
b. Glob for **/references/attack-vectors/attack-vectors-1.md — extract the references/ directory (two levels up) as {resolved_path}
c. ToolSearch select:Agent
d. Read the local VERSION file from the same directory as this skill
e. Bash curl -sf https://raw.githubusercontent.com/sanbir/solidity-auditor-skills/main/solidity-auditor/VERSION
f. Bash mktemp -d /tmp/audit-XXXXXX — store as {bundle_dir}
g. Read .pashov-skills-constraints.yaml from the repository root (if not found, continue without constraints)
If the remote VERSION fetch succeeds and differs from local, print ⚠️ You are not using the latest version. Please upgrade for best security coverage. See https://github.com/sanbir/solidity-auditor-skills. If it fails, skip silently.
Turn 2 — Prepare. In one message, make parallel tool calls: (a) Read {resolved_path}/report-formatting.md, (b) Read {resolved_path}/judging.md.
Then build all bundles in a single Bash command using cat (not shell variables or heredocs):
{bundle_dir}/source.md— ALL in-scope.solfiles, each with a### pathheader and fenced code block.- Agent bundles =
source.md+ per-agent bundles with cat:
| Bundle | Appended files (relative to {resolved_path}) |
agent-1-bundle.md | attack-vectors/attack-vectors-1.md + attack-vectors/attack-vectors-2.md + attack-vectors/attack-vectors-3.md + attack-vectors/attack-vectors-4.md + attack-vectors/attack-vectors-5.md + hacking-agents/vector-scan-agent.md + hacking-agents/shared-rules.md |
agent-2-bundle.md | hacking-agents/math-precision-agent.md + hacking-agents/shared-rules.md |
agent-3-bundle.md | hacking-agents/access-control-agent.md + hacking-agents/shared-rules.md |
agent-4-bundle.md | hacking-agents/economic-security-agent.md + hacking-agents/shared-rules.md |
agent-5-bundle.md | hacking-agents/execution-trace-agent.md + hacking-agents/shared-rules.md |
agent-6-bundle.md | hacking-agents/invariant-agent.md + hacking-agents/shared-rules.md |
agent-7-bundle.md | hacking-agents/periphery-agent.md + hacking-agents/shared-rules.md |
agent-8-bundle.md | hacking-agents/first-principles-agent.md + hacking-agents/shared-rules.md |
If constraints were found in Turn 1, prepend a ## Constraints section containing the raw YAML content to every bundle.
Print line counts for every bundle and source.md. Do NOT inline file content into agent prompts.
Turn 3 — Spawn. In one message, spawn all agents as parallel foreground Agent calls. Always spawn Agents 1–8 with model: "sonnet". Only spawn Agent 9 when the mode is DEEP.
- Agents 1–8 — spawn with
model: "sonnet". Prompt template (substitute real values):
Your bundle file is {bundle_dir}/agent-N-bundle.md (XXXX lines).
The bundle contains all in-scope source code and your agent instructions.
Read the bundle fully before producing findings.- Agent 9 (DeFi protocol analysis, DEEP only) — spawn with
model: "opus". Receives the in-scope.solfile paths and the instruction: your reference directory is{resolved_path}. If constraints were found in Turn 1, also include: the constraints file is at.pashov-skills-constraints.yamlin the repository root. Read{resolved_path}/hacking-agents/defi-protocol-agent.mdfor your full instructions.
Turn 4 — Deduplicate, validate & output. Single-pass: deduplicate all agent results, gate-evaluate, and produce the final report in one turn. Do NOT print an intermediate dedup list — go straight to the report.
Deduplicate. Parse every FINDING and LEAD from all agents. Group by
group_keyfield (format:Contract | function | bug-class). Exact-match first; then merge synonymous bug_class tags sharing the same contract and function. Keep the best version per group, number sequentially, annotate[agents: N].Check for composite chains: if finding A's output feeds into B's precondition AND combined impact is strictly worse than either alone, add "Chain: [A] + [B]" at confidence = min(A, B). Most audits have 0–2.
Gate evaluation. Run each deduplicated finding through the four gates in
judging.md(do not skip or reorder). Evaluate each finding exactly once — do not revisit after verdict.Single-pass protocol: evaluate every relevant code path ONCE in fixed order (constructor → setters → swap functions → mint → burn → liquidate). One-line verdict per path:
BLOCKS,ALLOWS,IRRELEVANT, orUNCERTAIN. Commit after all paths — do not re-examine.UNCERTAIN=ALLOWS.- Lead promotion & rejection guardrails.
- Promote LEAD → FINDING (confidence 75) if: complete exploit chain traced in source, OR
[agents: 2+]demoted (not rejected) the same issue. [agents: 2+]does NOT override a concrete refutation — demote to LEAD if refutation is uncertain.- No deployer-intent reasoning — evaluate what the code allows, not how the deployer might use it.
- Promote LEAD → FINDING (confidence 75) if: complete exploit chain traced in source, OR
- Fix verification (confidence ≥ 80 only): trace the attack with fix applied; verify no new DoS, reentrancy, or broken invariants (use
safeTransfernotrequire(token.transfer(...))); list all locations if the pattern repeats. If no safe fix exists, omit it with a note. - Format and print per
report-formatting.md. Exclude rejected items. If--file-output: also write to file.
Banner
Before doing anything else, print this exactly:
███████╗ ██████╗ ██╗ ██╗██████╗ ██╗████████╗██╗ ██╗
██╔════╝██╔═══██╗██║ ██║██╔══██╗██║╚══██╔══╝╚██╗ ██╔╝
███████╗██║ ██║██║ ██║██║ ██║██║ ██║ ╚████╔╝
╚════██║██║ ██║██║ ██║██║ ██║██║ ██║ ╚██╔╝
███████║╚██████╔╝███████╗██║██████╔╝██║ ██║ ██║
╚══════╝ ╚═════╝ ╚══════╝╚═╝╚═════╝ ╚═╝ ╚═╝ ╚═╝
█████╗ ██╗ ██╗██████╗ ██╗████████╗ ██████╗ ██████╗
██╔══██╗██║ ██║██╔══██╗██║╚══██╔══╝██╔═══██╗██╔══██╗
███████║██║ ██║██║ ██║██║ ██║ ██║ ██║██████╔╝
██╔══██║██║ ██║██║ ██║██║ ██║ ██║ ██║██╔══██╗
██║ ██║╚██████╔╝██████╔╝██║ ██║ ╚██████╔╝██║ ██║
╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝
328 attack vectors · 8 specialized agents · DeFi protocol analysis
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

