Agent skill

Pashov Audit Pipeline

by ccashwell in ccashwell/evm-cortex

A skill your agent uses when performing a comprehensive smart contract security audit.

MITAuto-check passedBackend & APIs

Install Pashov Audit Pipeline

skills CLI
$ npx skills add ccashwell/evm-cortex --skill pashov-audit-pipeline -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ccashwell/evm-cortex pashov-audit-pipeline --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ccashwell/evm-cortex.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/pashov-audit-pipeline .claude/skills/pashov-audit-pipeline && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pashov-audit-pipeline
GitHub stars
131
Token cost
~5.5k tokens
SKILL.md length
2,525 words
Files
23 (incl. references)
Skills in repo
89
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when performing a comprehensive smart contract security audit.

  • Works in 4 steps: references/orchestration.md is… → references/judging.md carries an… → on-chain/off-chain are normalized to… → …
  • Performing a comprehensive smart contract security audit
  • SKILL.md covers What v4 changed, The stance: agents are…, How to run this skill and Deduplication gates (summary), plus 3 more sections
  • Runs Shell scripts from its folder; calls curl; reaches github.com and raw.githubusercontent.com

What it does

Pashov Audit Pipeline is an agent skill from ccashwell/evm-cortex. Use when performing a comprehensive smart contract security audit. Implements the Pashov Audit Group's parallelized 12-agent attacker-framing methodology (solidity-auditor v4) — nine single-specialty lenses (math precision, access control, economic security, execution trace, invariant, periphery, first principles, asymmetry, boundary) plus three gap-hunters that find bugs living at the seams between lenses. Supports loop mode (N passes per scan, each told what earlier passes found) and a findings ledger that…

Its SKILL.md is about 5.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 24 other files, including reference files (for example `references/agent-prompts.md`, `references/assemble.sh` and `references/dedup-and-assembly.md`).

It sits in Backend & APIs, covering Smart contracts, Smart contract auditing and Debugging. It works with Solidity. The repository describes itself as: Ethereum protocol engineering squad for AI coding assistants. The licence is MIT.

When your agent uses it

  • Performing a comprehensive smart contract security audit
  • Run the auditor in loop mode

Example prompts

  • “pashov audit”
  • “run the auditor in loop mode”
  • “run 3 passes”
  • “/pashov-audit-pipeline”

Requirements

  • A Bash shell

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. references/orchestration.md is upstream's SKILL.md, vendored verbatim so the turn-by-turn procedure (memory read, prune, bundle build, run…
  2. references/judging.md carries an appended severity/PoC addendum required by this repo's finding-output-format, severity-matrix, and…
  3. on-chain/off-chain are normalized to onchain/offchain across references/ prose and in the one disclaimer string assemble.sh prints, per…
  4. assemble.sh carries a file-level # shellcheck disable=SC2034 directive on line 2, because this repo's CI runs ShellCheck at warning level…

What it can do on your machine

Read from SKILL.md and the folder at commit f8f3301. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Shell, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com
    • raw.githubusercontent.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Pashov Audit Pipeline loads about 5.5k tokens when it runs, and up to ~53k if it reads all its reference files. Until then it costs about 188 tokens; SKILL.md has 2,525 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~188
When it runs · the whole SKILL.md, loaded when a task matches
~5.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~53k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ccashwell/evm-cortex at commit f8f3301, republished under its MIT licence (© ccashwell). 2,525 words, ~5,476 tokens.

Download SKILL.mdSave it as .claude/skills/pashov-audit-pipeline/SKILL.md (or your agent's skills folder). This skill also uses 22 other files; get the full folder from GitHub.
name
pashov-audit-pipeline
description
Use when performing a comprehensive smart contract security audit. Implements the Pashov Audit Group's parallelized 12-agent attacker-framing methodology (solidity-auditor v4) — nine single-specialty lenses (math precision, access control, economic security, execution trace, invariant, periphery, first principles, asymmetry, boundary) plus three gap-hunters that find bugs living at the seams between lenses. Supports loop mode (N passes per scan, each told what earlier passes found) and a findings ledger that remembers results across scans. Produces a shell-assembled, deduplicated, confidence-scored report plus an EVM Cortex severity and PoC annex. Trigger on "pashov audit", "run the auditor in loop mode", "run 3 passes".

Pashov Audit Pipeline

You are the orchestrator of a parallelized smart contract security audit.

Twelve specialized agents attack the same codebase at once, then their output is deduplicated, gated, and assembled into a single report. Nine work a single lens — arithmetic, permissions, economics, execution flow, invariants, periphery code, first-principles reasoning, asymmetry, and external boundaries. Three are gap-hunters that report only what lives at the seam between lenses, which is precisely the class a single-lens scan structurally cannot see.

Vendored from the Pashov Audit Group's open-source approach (github.com/pashov/skills), skill solidity-auditor, VERSION 4 (see the VERSION file alongside this one). Everything under references/ is upstream content carried over intact, with four documented EVM Cortex deviations:

  1. references/orchestration.md is upstream's SKILL.md, vendored verbatim so the turn-by-turn procedure (memory read, prune, bundle build, run files, assembly) stays a file-by-file diff against upstream. Where any reference file says "SKILL.md Turn N", it means that file.
  2. references/judging.md carries an appended severity/PoC addendum required by this repo's finding-output-format, severity-matrix, and poc-execution rules.
  3. on-chain/off-chain are normalized to onchain/offchain across references/ prose and in the one disclaimer string assemble.sh prints, per this repo's style rule.
  4. assemble.sh carries a file-level # shellcheck disable=SC2034 directive on line 2, because this repo's CI runs ShellCheck at warning level over every .sh file and the assembler's read loops bind TSV columns it does not use. Nothing else in the script differs.

Every other EVM Cortex adaptation — agent mapping, context package, Foundry pre-flight, the severity line in each finding block, and the Turn 6 annex — lives in this SKILL.md only, so an upstream re-sync replaces references/ cleanly. Check for a newer upstream revision before a high-stakes audit:

bash
curl -sf https://raw.githubusercontent.com/pashov/skills/main/solidity-auditor/VERSION

If that returns a number greater than 4, this skill is behind upstream.

What v4 changed

  • Loop mode. --loop [N] runs N passes of the twelve agents in one scan. Every pass after the first is handed what the earlier passes found as "ground already walked", so it hunts new ground. One combined report at the end. When the runner asks for loop mode without a number, the default is 3 passes; the reference gives measured times (about 15 minutes per pass on a 2,200-line codebase).
  • Scan memory. --memory (on automatically when passes > 1) keeps a ledger at .solidity-auditor/memory.tsv in the audited repo. Findings are tagged KNOWN (n scans) or NEW; records the scan did not raise again are listed under "Known from earlier scans" and explicitly marked not re-checked.
  • Shell-assembled report. Each pass writes its gated findings to .solidity-auditor/runs/{stamp}/run-K.md while it still has context to spare; references/assemble.sh is the only producer of full-report.md. The orchestrator never composes, re-words, or summarizes the report. A real 3-pass scan that produced 71 findings once printed 14 of them and claimed full coverage; the design exists to kill that defect.
  • Simplified Technical English. references/report-language.md is appended to every agent bundle and governs every title and Description: one sentence, 25 words or fewer, active voice, names who acts and what they get.
  • Threshold 75, not 80. A promoted lead lands at exactly 75 and must clear the line. It is set once in judging.md; the assembler reads it from there.
  • Scope. Build and dependency directories are excluded; deploy scripts (script/, deploy/, *.s.sol) are in scope because they set constructor arguments and hand over ownership; explicitly named files are always scanned wherever they live.
  • Agents are READ-ONLY inside the audited repository. No PoC files, no scratch notes, not even ones deleted afterwards. PoCs are written under the scan directory (Turn 6).
  • Upgrade warning fires only when the local VERSION is lower than upstream, not merely different.

The stance: agents are attackers, not reviewers

Every agent is framed as an attacker with unlimited capital and flash loans, not as a reviewer working a checklist. Three consequences worth stating up front, because they invert the instinct:

  • When an agent finds a bug it deepens the attack — it never argues itself out of one. Chain it, find more victims, lower the precondition cost. Refutation belongs to the judging phase, not the hunting phase.
  • A finding is not real until traced with concrete values. No proof means LEAD, not FINDING. Leads are not failures; they are honest calibration and they get emitted.
  • Catalog scanning is not the product. Pattern catalogs live in the sibling skills (reentrancy-patterns, flash-loan-attacks, oracle-manipulation, signature-vulnerabilities, economic-attack-vectors, denial-of-service) — load those for reference. A pure catalog sweep was an earlier generation of this pipeline; it produced volume without depth, which is why upstream dropped the dedicated vector-scan agent in v3.
When to Use
  • Full security audit of a protocol before mainnet deployment
  • Re-audit after significant code changes or new feature additions — run with --memory so the report says what is new
  • Pre-merge security review of high-risk PRs touching core accounting or token logic
  • Competitive audit participation where thoroughness and finding volume matter — use loop mode
When NOT to Use
  • Quick sanity check on a single function — use audit-breadth-scan
  • Static analysis triage — use slither-analysis or aderyn-analysis
  • Gas-only review — use gas-optimizer
  • Code quality review without security focus — use code-reviewer
  • Pre-audit reconnaissance and readiness assessment — run xray-pre-audit first, then feed its output in as the context package
  • Accounting-heavy protocols where the question is "does the tracked total match reality" — run simao-audit-pipeline as well and treat overlap as signal

How to run this skill

Follow references/orchestration.md turn by turn — Mode Selection, Turn 1 through Turn 5, and its Banner — with the EVM Cortex substitutions and insertions below. The reference files it delegates to sit in the same directory: agent-prompts.md (Turn 3a prompts), dedup-and-assembly.md (Turn 4 and Turn 5 procedure), report-formatting.md (finding-block shape), report-language.md (wording), judging.md (gates, confidence, lead promotion, severity addendum), senior-auditor-sop.md and hacking-agents/ (bundle content), and assemble.sh (the assembler).

Two upstream steps are pinned here because the runtime differs:

  • {resolved_path} is this skill's own references/ directory. Do not glob for shared-rules.md — the installer places a copy under ~/.claude/skills/ and a repo checkout may hold another, and a glob can pick the wrong one.
  • Version check (Turn 1 e): compare as numbers and warn only when local is lower. Print ⚠️ Upstream solidity-auditor is at version N, this skill is vendored at 4. See https://github.com/pashov/skills. A failed fetch is skipped silently — a network failure is not an audit finding.
Turn 1b — Model and pass count

Ask both questions in one AskUserQuestion call exactly as the reference describes. The runner's model choice {agent_model} applies to agents 1–9. The three gap-hunters (agents 10–12) run on opus regardless of the answer. Cross-lens reasoning is where model tier matters most; a weaker gap-hunter collapses into restating single-lens findings, which dedup then discards as duplicates — the most expensive way to save money in this pipeline. Say so in one line when the runner picks a lower tier.

If the audited repo's .gitignore does not list .solidity-auditor/, print a one-line reminder that the runs directory and ledger should be ignored. Do not edit .gitignore yourself.

Turn 2b — Context package (EVM Cortex insertion, once per scan)

After source.md is built and before the bundles are catted, assemble, when available: the protocol README, known issues (to avoid duplicate reports), documented design decisions, deployment context (target chains, upgrade strategy), external dependencies, and prior audit reports with resolution status. Write it to {bundle_dir}/context.md and append it to every bundle after report-language.md and before known-findings.md. Keep it under 300 lines; the agents' attention belongs to the source.

If xray-pre-audit has been run, its x-ray/x-ray.md is the best available context package — it already carries the threat model, invariant list, and entry-point classification.

Turn 2c — Foundry pre-flight (EVM Cortex insertion, once per scan)

Run in the audited repo, writing outputs only under the scan directory:

bash
forge build --deny-warnings
forge test --summary
slither . --filter-paths "test|script|node_modules|lib" --json .solidity-auditor/runs/{stamp}/slither-report.json
forge tree > .solidity-auditor/runs/{stamp}/dependency-tree.txt

forge build and forge test write only to out/ and cache/, which the scan excludes. A build failure is not a stopper — note it in the context package and continue; the agents read source, not artifacts. If the project is not a Foundry project, skip the forge steps and say so.

Turn 3a — Agent mapping

Use the two prompt templates in references/agent-prompts.md verbatim, substituting {bundle_dir}, the agent number, and the bundle's real line count. The READ-ONLY paragraph is unconditional; the "Known findings" paragraph appears only when memory is on and known-findings.md was appended. Spawn all twelve as parallel background Agent calls with these subagent_type values:

#Lenssubagent_typeModel
1Math & Precisiondepth-token-flowopus
2Access Controlaccess-control-reviewersonnet
3Economic Securitymev-analystsonnet
4Execution Tracedepth-state-traceopus
5Invariantinvariant-analystsonnet
6Peripherydepth-externalopus
7First Principlessleuthopus
8Asymmetrycode-revieweropus
9Boundarydepth-edge-casesonnet
10Numerical Gapdepth-token-flowopus
11Trust Gapmev-analystopus
12Flow Gapsleuthopus

The subagent_type selects a base persona and tool set; the specialty file in the bundle is what determines the lens. Reused types (depth-token-flow, mev-analyst, sleuth) run as independent instances with different bundles and share no context. The Model column is the default when Turn 1b set no {agent_model}; when it did, agents 1–9 take the runner's choice and 10–12 stay on opus.

Show full SKILL.md (1,036 more words)Show less
Verifying the agents did the work

shared-rules.md binds every agent to three mental tools from senior-auditor-sop.md, each with a trigger that requires a literal marker in the agent's output: [Feynman: <name>] when it opens a new function, [Socratic: <file:line> — why?] when it stops on an unclear line, [Inversion: <function>] when a path reads as clean.

After each agent returns, grep its output for those markers. An agent that returns findings with no markers did not reason — it scanned. Note the shortfall as a workflow violation and weight that agent's findings accordingly. Do not respawn it: in loop mode the next pass covers the same lens for free, and on a 1-pass scan a retry costs an unbounded wait for one twelfth of the coverage.

Turn 4 — Severity line (EVM Cortex insertion, every pass)

Follow references/dedup-and-assembly.md Turn 4 step by step. Between step 3 (lead promotion) and step 4 (memory tag), classify every gated FINDING per the severity addendum in judging.md — impact × likelihood from the global severity matrix, assigned independently of confidence. LEADs are not classified.

In step 5a, write the severity into the finding block's body as one structured line between the Description and the Fix:

markdown
**Description**
<one sentence>

**Severity** High · Impact High · Likelihood Likely

**Fix**
...

The assembler pastes the body through unchanged, so the line reaches the report without any change to assemble.sh. It is a structured field, not prose: report-language.md rule 10 (no critical, severe in sentences) governs sentences and does not reach it. Use exactly one of Critical, High, Medium, Low, Informational, and keep the **Severity** prefix and · separators exactly — Turn 6 extracts the value by shell.

Turn 5 — Assemble, print, clean

Follow references/dedup-and-assembly.md Turn 5 unchanged. Do not re-word, re-order, add to, or summarize full-report.md. The --file-output copy is named {project-name}-pashov-ai-audit-report-{stamp}.md.

Turn 6 — Severity and PoC annex (EVM Cortex, once per scan)

Runs after Turn 5, at any pass count. It reads full-report.md and never writes to it.

  1. Extract the severity table by shell, never by hand. One awk over the assembled file; the # column is the finding's number in full-report.md:
bash
REPORT=.solidity-auditor/runs/{stamp}/full-report.md
awk -v OFS='\t' '
function rank(s){ return (s=="Critical")?0:(s=="High")?1:(s=="Medium")?2:(s=="Low")?3:(s=="Informational")?4:5 }
function flush(){ if (want) { n++; print rank(sev), conf+0, "| " n " | " sev " | [" conf "] | " title " | `" loc "` |"; want=0 } }
/^\[[0-9]+\] \*\*[0-9]+\. / { flush(); match($0,/^\[[0-9]+\]/); conf=substr($0,RSTART+1,RLENGTH-2)
  t=$0; sub(/^\[[0-9]+\] \*\*[0-9]+\. /,"",t); sub(/\*\*[ \t]*$/,"",t); title=t; want=1; sev="Unclassified"; loc=""; next }
want && loc=="" && /^`/ { match($0,/^`[^`]*`/); loc=substr($0,RSTART+1,RLENGTH-2); next }
want && /^\*\*Severity\*\* / { s=$0; sub(/^\*\*Severity\*\* /,"",s); sub(/ ·.*$/,"",s); sev=s; next }
/^Findings List/ { flush() }
END { flush() }
' "$REPORT" | sort -t$'\t' -k1,1n -k2,2nr | cut -f3 > .solidity-auditor/runs/{stamp}/severity-rows.md
wc -l < .solidity-auditor/runs/{stamp}/severity-rows.md

The row count must equal F from Turn 5 step 3. If it does not, the annex says so in words and lists what it could read — it never claims to cover more than it does. A finding whose block lacks a severity line prints as Unclassified; leave it so and say why, rather than editing the assembled report.

  1. Write .solidity-auditor/runs/{stamp}/severity-annex.md:
markdown
# Severity annex — <project-name>

_EVM Cortex layer over `full-report.md` (same stamp). Severity is impact × likelihood per the global severity matrix and is independent of confidence. `#` is the finding's number in the report. Rows: N of F findings._

| # | Severity | Confidence | Title | Location |
|---|---|---|---|---|
<severity-rows.md, verbatim>

## Proof of concept

_Critical and High findings require a working Foundry PoC before they are reported at that severity. Medium findings need a PoC or a step-by-step reproduction._

| # | Severity | PoC | Status |
|---|---|---|---|
| 3 | Critical | `.solidity-auditor/runs/{stamp}/poc/Exploit_3.t.sol` | passes · fork block 19_000_000 |
| 7 | High | — | pending — routed to poc-writer |
  1. Route PoCs. For every Critical and High finding, spawn security-verifier or poc-writer with the finding block and the source it names. PoC tests are written only under .solidity-auditor/runs/{stamp}/poc/ — never into the project's test/ — and run with the test directory overridden so the project tree stays untouched:
bash
FOUNDRY_TEST=.solidity-auditor/runs/{stamp}/poc forge test --match-path '.solidity-auditor/runs/{stamp}/poc/*' -vvv

Pin the fork block in every fork-based PoC. A Critical or High finding whose PoC fails is downgraded in the annex with a one-line reason; the severity line in the run file is left as written — the run file is the pass's record, the annex is this turn's verdict.

  1. Fix verification for findings at or above the threshold, per the judging.md addendum: trace the fix against the attack path, run the side-effect checklist, and pattern-check the rest of the codebase for the same defect.

  2. Print a five-number summary and the annex path, nothing else:

Severity: Critical N · High N · Medium N · Low N · Informational N — annex: .solidity-auditor/runs/{stamp}/severity-annex.md

With --file-output, also copy the annex to {project-name}-pashov-ai-audit-severity-{stamp}.md beside the report copy.


Deduplication gates (summary)

The procedure is references/dedup-and-assembly.md Turn 4 step 1 and is followed from there, not from here. The gates are hard, and the failure mode they exist for is silently deleting real bugs — twelve agents converging on one function is information, not redundancy:

  • Canonicalise the bug-class label (new in v4) — one label per (Contract, function) before grouping: the repository's own label from known-findings.md wins, then the majority label, then the shortest label that names the defect. Without it one bug becomes three ledger records and is never recognised again.
  • Function isolation — never merge across function: values. A different function is a different bug, always.
  • Wide description — a merged group with distinct mechanisms lists every mechanism.
  • Function-level second pass — at (Contract, function) ignoring bug_class, every mechanism in any constituent body survives into a final finding.
  • Fix preservation — distinct fixes are shown verbatim as Option A, Option B, … with intuitive labels.
  • Completeness — every unique (Contract, function) in raw output has at least one item in the run file; print Completeness: N unique (Contract, function) in raw, N covered in final.

Composite chains: Chain: [A] + [B] at confidence = min(A, B) when A's output feeds B's precondition and the combined impact exceeds either alone. Most audits produce zero to two.


Pre-Audit Checklist

  • All in-scope files identified with the exact find command in orchestration.md (deploy scripts in, build and dependency dirs out)
  • xray-pre-audit run, or an equivalent context package assembled
  • Local VERSION (4) checked against upstream
  • {stamp} computed once; .solidity-auditor/runs/{stamp}/scope.tsv opened with name, mode, files
  • Pass count and model settled in one AskUserQuestion; passes_planned written
  • Memory on → ledger validated (#solidity-auditor-memory v1, 6 columns) or the scan stopped
  • source.md built once; twelve bundles built per pass, each ending with report-language.md (+ context.md, + known-findings.md when present); line counts printed and none undersized
  • Foundry pre-flight run; outputs under the scan directory only
  • .solidity-auditor/ gitignored in the audited repo (reminder printed if not)

Post-Audit Checklist

  • All twelve agents returned; any loss recorded in the pass summary line, the run-file header, and pass_K_agents
  • Mental-tool marker counts verified per agent
  • Bug-class labels canonicalised; function isolation, wide description, second pass, fix preservation, and the completeness line applied per pass
  • Every finding run through the four judging gates in order, one pass, no revisiting
  • LEADs promoted or rejected with justification; no deployer-intent reasoning used
  • Every gated FINDING carries a **Severity** line in its run-file block
  • Every run file uses the exact <!--F …--> / <!--/F--> markers; assemble.sh reported no structure break
  • full-report.md printed word for word (20 findings or fewer) or as the counted top-3 slice (more than 20); never re-worded
  • Memory on → memory.tsv written atomically via .tmp; mem_after and mem_sha recorded
  • Annex row count equals F; Foundry PoC passing for every Critical and High, under .solidity-auditor/runs/{stamp}/poc/
  • Fix verification and codebase pattern-check completed for findings at or above 75
  • Bundle directory deleted; nothing written outside .solidity-auditor/ except --file-output copies

Banner

Before doing anything else, print this exactly:

██████╗  █████╗ ███████╗██╗  ██╗ ██████╗ ██╗   ██╗     ███████╗██╗  ██╗██╗██╗     ██╗     ███████╗
██╔══██╗██╔══██╗██╔════╝██║  ██║██╔═══██╗██║   ██║     ██╔════╝██║ ██╔╝██║██║     ██║     ██╔════╝
██████╔╝███████║███████╗███████║██║   ██║██║   ██║     ███████╗█████╔╝ ██║██║     ██║     ███████╗
██╔═══╝ ██╔══██║╚════██║██╔══██║██║   ██║╚██╗ ██╔╝     ╚════██║██╔═██╗ ██║██║     ██║     ╚════██║
██║     ██║  ██║███████║██║  ██║╚██████╔╝ ╚████╔╝      ███████║██║  ██╗██║███████╗███████╗███████║
╚═╝     ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝ ╚═════╝   ╚═══╝       ╚══════╝╚═╝  ╚═╝╚═╝╚══════╝╚══════╝╚══════╝

© ccashwell, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 22 other files (references) in skills/pashov-audit-pipeline of ccashwell/evm-cortex.

  • SKILL.md
  • VERSION
  • references/agent-prompts.md
  • references/assemble.sh
  • references/dedup-and-assembly.md
  • references/hacking-agents/access-control-agent.md
  • references/hacking-agents/asymmetry-agent.md
  • references/hacking-agents/boundary-agent.md
  • references/hacking-agents/economic-security-agent.md
  • references/hacking-agents/execution-trace-agent.md
  • references/hacking-agents/first-principles-agent.md
  • references/hacking-agents/flow-gap-agent.md
  • references/hacking-agents/invariant-agent.md
  • references/hacking-agents/math-precision-agent.md
  • references/hacking-agents/numerical-gap-agent.md
  • references/hacking-agents/periphery-agent.md
  • references/hacking-agents/shared-rules.md
  • references/hacking-agents/trust-gap-agent.md
  • references/judging.md
  • … and 4 more

Open the folder on GitHubat commit f8f3301

Compare with similar skills

Pashov Audit Pipeline next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Pashov Audit Pipeline compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Pashov Audit Pipeline this skillccashwell/evm-cortex131—~5.5kAutomated safety check: PassMIT
Solidity Vulnerability Scanneralt-research2/SolidityGuard104—~1.6kAutomated safety check: NotesCustom licence
Smart Contract Auditelophanto/EloPhanto106—~2.7kAutomated safety check: PassCustom licence
Fizz Convertpashov/skills1.2k2 repos~3.7kAutomated safety check: PassMIT
Smart Contract Auditgreatpie/smart-contract-audit-skill101—~1.1kAutomated safety check: PassNone
Solidity AuditorGabson0x/bountyforge442—~3.7kAutomated safety check: PassNone

Similar skills

  • Solidity Vulnerability Scanner

    alt-research2/SolidityGuard

    Comprehensive Solidity contract security scanner detecting 104 vulnerability patterns across reentrancy, access control, arithmetic, DeFi, proxy, and token categories.

    104 GitHub stars~1.6k tokensUpdated 4 mo ago
    Backend & APIsAuto-check: notes
  • Smart Contract Audit

    elophanto/EloPhanto

    A skill your agent uses when reviewing a Solidity, Vyper, or Rust (Solana/Anchor) smart contract for paid audit work or pre-launch sanity check.

    106 GitHub stars~2.7k tokensUpdated 10 days ago
    SecurityAuto-check passed
  • Fizz Convert

    pashov/skills

    Convert English-language properties in PROPERTIES.md (produced by the Fizz skill) into Solidity assertions inside the existing fuzz harness, then flip their checkboxes.

    1.2k GitHub starsUsed in 2 repos~3.7k tokens
    Backend & APIsAuto-check passed
  • Smart Contract Audit

    greatpie/smart-contract-audit-skill

    Script-backed, out-of-box auditing workflow for Solidity/EVM repositories based on EVMbench detect/patch/exploit methodology.

    101 GitHub stars~1.1k tokensUpdated 7 mo ago
    Backend & APIsAuto-check passed
  • Solidity Auditor

    Gabson0x/bountyforge

    Security audit of Solidity code while you develop. An agent skill from Gabson0x/bountyforge.

    442 GitHub stars~3.7k tokensUpdated 24 days ago
    Backend & APIsAuto-check passed
  • Solidity Auditor

    pashov/skills

    Security audit of Solidity code while you develop. An agent skill from pashov/skills.

    1.2k GitHub stars~9.9k tokensUpdated 6 days ago
    Backend & APIsAuto-check passed

More from ccashwell/evm-cortex

All 89 skills in this repo
  • Xray Pre Audit

    ccashwell/evm-cortex

    A skill your agent uses when preparing for a security audit, performing reconnaissance on a new codebase, or creating a protocol overview.

    131 GitHub stars~25k tokensUpdated 11 days ago
    Auto-check passed
  • Aave Integration

    ccashwell/evm-cortex

    A skill your agent uses when integrating with Aave V3 for lending, borrowing, flash loans, or building on top of Aave markets.

    131 GitHub stars~1.3k tokensUpdated 11 days ago
    Auto-check passed
  • Access Control Patterns

    ccashwell/evm-cortex

    Access control design patterns for Solidity protocols. An agent skill from ccashwell/evm-cortex.

    131 GitHub stars~1.8k tokensUpdated 11 days ago
    Auto-check passed
  • Anvil Patterns

    ccashwell/evm-cortex

    A skill your agent uses when running a local Ethereum node with Anvil.

    131 GitHub stars~1.3k tokensUpdated 11 days ago
    Auto-check passed
  • Audit Breadth Scan

    ccashwell/evm-cortex

    A skill your agent uses when performing systematic breadth-first review of all contracts during a security audit.

    131 GitHub stars~1.4k tokensUpdated 11 days ago
    Auto-check passed
  • Audit Depth Analysis

    ccashwell/evm-cortex

    A skill your agent uses when performing deep analysis of specific findings or high-risk areas during a security audit.

    131 GitHub stars~1.6k tokensUpdated 11 days ago
    Auto-check passed

Works with

Categories

Questions about Pashov Audit Pipeline

What does Pashov Audit Pipeline do?

A skill your agent uses when performing a comprehensive smart contract security audit. Pashov Audit Pipeline is an agent skill from ccashwell/evm-cortex. Use when performing a comprehensive smart contract security audit.

When should I use Pashov Audit Pipeline?

Pashov Audit Pipeline fits situations like: performing a comprehensive smart contract security audit; run the auditor in loop mode.

How do I install Pashov Audit Pipeline in Claude Code?

Run `npx skills add ccashwell/evm-cortex --skill pashov-audit-pipeline -a claude-code`. Or copy the skill folder (skills/pashov-audit-pipeline in ccashwell/evm-cortex) into .claude/skills/pashov-audit-pipeline in your project. Claude Code loads it when a task matches its description.

How do I install Pashov Audit Pipeline in Codex?

Run `npx skills add ccashwell/evm-cortex --skill pashov-audit-pipeline -a codex`. Or copy the skill folder (skills/pashov-audit-pipeline in ccashwell/evm-cortex) into .agents/skills/pashov-audit-pipeline in your project. Codex loads it when a task matches its description.

Can I use Pashov Audit Pipeline in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ccashwell/evm-cortex --skill pashov-audit-pipeline -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pashov-audit-pipeline, .gemini/skills/pashov-audit-pipeline, .github/skills/pashov-audit-pipeline and .opencode/skills/pashov-audit-pipeline in your project.

What does Pashov Audit Pipeline need to run?

Going by SKILL.md and its folder, Pashov Audit Pipeline needs a shell for the scripts in its folder and the command-line tools its instructions call (curl). Our summary lists: A Bash shell.

Does Pashov Audit Pipeline access the network?

SKILL.md names 2 domains. In commands or code: github.com and raw.githubusercontent.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Pashov Audit Pipeline safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Pashov Audit Pipeline use?

Pashov Audit Pipeline is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Pashov Audit Pipeline use?

About 5.5k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 48k tokens, read only when the agent opens those files.

What are the alternatives to Pashov Audit Pipeline?

Skills that share tags, products or a category with Pashov Audit Pipeline: Solidity Vulnerability Scanner (alt-research2/SolidityGuard, 104 stars), Smart Contract Audit (elophanto/EloPhanto, 106 stars), Fizz Convert (pashov/skills, 1.2k stars) and Smart Contract Audit (greatpie/smart-contract-audit-skill, 101 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Pashov Audit Pipeline?

ccashwell (a GitHub user) maintains it in ccashwell/evm-cortex, which has 131 GitHub stars. The repository holds 89 skills in this directory. The repository was last updated on September 30, 2026.

Source: ccashwell/evm-cortex on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.