Skip to content
Back to skills

Audit

ASecurity

Orchestrated parallel security audit — spawns teammates to run 20+ audit skills against a Solidity codebase

  • 5 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 27, 2026
developmentbashnodegitsecuritydocumentation

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add qGolem/orc --skill audit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Audit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Audit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/qgolem-audit/badge)](https://www.skillsdirectory.com/skills/qgolem-audit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
description: Orchestrated parallel security audit — spawns teammates to run 20+ audit skills against a Solidity codebase
argument-hint: [path] — Solidity project root (default: current directory)
allowed-tools:
  - Read
  - Write
  - Edit
  - Glob
  - Grep
  - Skill
  - Task
  - SendMessage
  - TeamCreate
  - TeamDelete
  - TaskCreate
  - TaskUpdate
  - TaskList
  - Bash(find *)
  - Bash(ls *)
  - Bash(mkdir *)
  - Bash(tree *)
model: inherit
context: inherit
hooks: {}
user-invocable: true
---

# Audit

Orchestrated security audit. Creates a team and spawns teammates across 5 waves to run 20 specialized audit skills against a Solidity codebase. Each teammate invokes one skill via `Skill` tool and writes findings to `.audit-work/`.

## Input

- **$ARGUMENTS** — Project root path (optional, defaults to cwd)

## Excluded

`sc-auditor-security` has interactive USER GATES — run it separately via `/sc-auditor-security <path>`.

## Execution

### Step 1: Validate Target

```bash
find ${TARGET:-.} -name "*.sol" -not -path "*/node_modules/*" -not -path "*/lib/*" | head -5
```

If no `.sol` files found, stop and tell the user. Set `$TARGET` to resolved path.

```bash
mkdir -p .audit-work
```

### Step 2: Create Team and Tasks

```
TeamCreate(team_name="audit", description="Parallel security audit across 20 skills")
```

Create ALL 20 tasks upfront:

```
TaskCreate(subject="entry-point-analyzer", description="Map state-changing entry points by access level")
TaskCreate(subject="audit-prep-assistant", description="Pre-audit codebase preparation and documentation")
TaskCreate(subject="audit-context-building", description="Ultra-granular line-by-line code context")
TaskCreate(subject="audit-lending", description="Lending/borrowing protocol vulnerabilities")
TaskCreate(subject="audit-reentrancy", description="Reentrancy attack vectors")
TaskCreate(subject="audit-math-precision", description="Arithmetic precision and rounding errors")
TaskCreate(subject="audit-oracle", description="Oracle integration vulnerabilities")
TaskCreate(subject="audit-signature", description="Signature replay and malleability")
TaskCreate(subject="audit-staking", description="Staking/reward protocol vulnerabilities")
TaskCreate(subject="audit-state-validation", description="State validation and access control")
TaskCreate(subject="audit-slippage", description="DEX slippage and sandwich attacks")
TaskCreate(subject="audit-liquidation", description="Liquidation incentive structure")
TaskCreate(subject="audit-auction", description="Auction mechanism manipulation")
TaskCreate(subject="audit-liquidation-dos", description="Liquidation denial of service")
TaskCreate(subject="audit-liquidation-calculation", description="Liquidation calculation errors")
TaskCreate(subject="audit-unfair-liquidation", description="Unfair liquidation timing")
TaskCreate(subject="audit-clm", description="Concentrated liquidity manager issues")
TaskCreate(subject="pashov-solidity-auditor", description="Parallel vector-scan security audit")
TaskCreate(subject="token-integration-analyzer", description="Token conformity and weird ERC20 patterns")
TaskCreate(subject="guidelines-advisor", description="Trail of Bits best practices assessment")
```

### Step 3: Wave 1 — Recon

Spawn 3 teammates in a **single message**:

```
Task(
  name="w1-entry-points",
  subagent_type="general-purpose",
  team_name="audit",
  model="sonnet",
  prompt="You are audit teammate w1-entry-points on team \"audit\".

TARGET: $TARGET

Your job:
1. TaskUpdate: claim task \"entry-point-analyzer\" (owner=\"w1-entry-points\", status=\"in_progress\")
2. mkdir -p .audit-work/entry-point-analyzer
3. Use the Skill tool: skill=\"entry-point-analyzer\", args=\"$TARGET\"
4. Write the skill output to .audit-work/entry-point-analyzer/FINDINGS.md
5. TaskUpdate: complete task (status=\"completed\")
6. SendMessage to team lead: 2-line summary of entry point counts"
)

Task(
  name="w1-audit-prep",
  subagent_type="general-purpose",
  team_name="audit",
  model="sonnet",
  prompt="You are audit teammate w1-audit-prep on team \"audit\".

TARGET: $TARGET

Your job:
1. TaskUpdate: claim task \"audit-prep-assistant\" (owner=\"w1-audit-prep\", status=\"in_progress\")
2. mkdir -p .audit-work/audit-prep-assistant
3. Use the Skill tool: skill=\"audit-prep-assistant\"
   The skill prepares the codebase for security review.
4. Write the skill output to .audit-work/audit-prep-assistant/FINDINGS.md
5. TaskUpdate: complete task (status=\"completed\")
6. SendMessage to team lead: 2-line summary"
)

Task(
  name="w1-context",
  subagent_type="general-purpose",
  team_name="audit",
  model="sonnet",
  prompt="You are audit teammate w1-context on team \"audit\".

TARGET: $TARGET

Your job:
1. TaskUpdate: claim task \"audit-context-building\" (owner=\"w1-context\", status=\"in_progress\")
2. mkdir -p .audit-work/audit-context-building
3. Use the Skill tool: skill=\"audit-context-building\"
   The skill builds deep architectural context via line-by-line analysis.
4. Write the skill output to .audit-work/audit-context-building/FINDINGS.md
5. TaskUpdate: complete task (status=\"completed\")
6. SendMessage to team lead: 2-line summary of context discovered"
)
```

Wait for all 3 to complete. Verify via `TaskList`.

### Step 4: Wave 2 — Domain Scans A

Spawn 5 teammates in a **single message**:

```
Task(
  name="w2-lending",
  subagent_type="general-purpose",
  team_name="audit",
  model="sonnet",
  prompt="You are audit teammate w2-lending on team \"audit\".

TARGET: $TARGET

1. TaskUpdate: claim task \"audit-lending\" (owner=\"w2-lending\", status=\"in_progress\")
2. mkdir -p .audit-work/audit-lending
3. Use the Skill tool: skill=\"audit-lending\"
4. Write findings to .audit-work/audit-lending/FINDINGS.md
5. TaskUpdate: complete (status=\"completed\")
6. SendMessage to team lead: findings count + severity summary"
)

Task(
  name="w2-reentrancy",
  subagent_type="general-purpose",
  team_name="audit",
  model="sonnet",
  prompt="You are audit teammate w2-reentrancy on team \"audit\".

TARGET: $TARGET

1. TaskUpdate: claim task \"audit-reentrancy\" (owner=\"w2-reentrancy\", status=\"in_progress\")
2. mkdir -p .audit-work/audit-reentrancy
3. Use the Skill tool: skill=\"audit-reentrancy\"
4. Write findings to .audit-work/audit-reentrancy/FINDINGS.md
5. TaskUpdate: complete (status=\"completed\")
6. SendMessage to team lead: findings count + severity summary"
)

Task(
  name="w2-math",
  subagent_type="general-purpose",
  team_name="audit",
  model="sonnet",
  prompt="You are audit teammate w2-math on team \"audit\".

TARGET: $TARGET

1. TaskUpdate: claim task \"audit-math-precision\" (owner=\"w2-math\", status=\"in_progress\")
2. mkdir -p .audit-work/audit-math-precision
3. Use the Skill tool: skill=\"audit-math-precision\"
4. Write findings to .audit-work/audit-math-precision/FINDINGS.md
5. TaskUpdate: complete (status=\"completed\")
6. SendMessage to team lead: findings count + severity summary"
)

Task(
  name="w2-oracle",
  subagent_type="general-purpose",
  team_name="audit",
  model="sonnet",
  prompt="You are audit teammate w2-oracle on team \"audit\".

TARGET: $TARGET

1. TaskUpdate: claim task \"audit-oracle\" (owner=\"w2-oracle\", status=\"in_progress\")
2. mkdir -p .audit-work/audit-oracle
3. Use the Skill tool: skill=\"audit-oracle\"
4. Write findings to .audit-work/audit-oracle/FINDINGS.md
5. TaskUpdate: complete (status=\"completed\")
6. SendMessage to team lead: findings count + severity summary"
)

Task(
  name="w2-signature",
  subagent_type="general-purpose",
  team_name="audit",
  model="sonnet",
  prompt="You are audit teammate w2-signature on team \"audit\".

TARGET: $TARGET

1. TaskUpdate: claim task \"audit-signature\" (owner=\"w2-signature\", status=\"in_progress\")
2. mkdir -p .audit-work/audit-signature
3. Use the Skill tool: skill=\"audit-signature\"
4. Write findings to .audit-work/audit-signature/FINDINGS.md
5. TaskUpdate: complete (status=\"completed\")
6. SendMessage to team lead: findings count + severity summary"
)
```

Wait for all 5. Verify via `TaskList`.

### Step 5: Wave 3 — Domain Scans B

Spawn 5 teammates in a **single message**:

| Name | Skill | Task subject |
|------|-------|-------------|
| `w3-staking` | `audit-staking` | `audit-staking` |
| `w3-state` | `audit-state-validation` | `audit-state-validation` |
| `w3-slippage` | `audit-slippage` | `audit-slippage` |
| `w3-liquidation` | `audit-liquidation` | `audit-liquidation` |
| `w3-auction` | `audit-auction` | `audit-auction` |

Use the same prompt template as Wave 2 — substitute skill name, teammate name, and task subject.

Wait for all 5. Verify via `TaskList`.

### Step 6: Wave 4 — Domain Scans C

Spawn 5 teammates in a **single message**:

| Name | Skill | Task subject |
|------|-------|-------------|
| `w4-liq-dos` | `audit-liquidation-dos` | `audit-liquidation-dos` |
| `w4-liq-calc` | `audit-liquidation-calculation` | `audit-liquidation-calculation` |
| `w4-unfair-liq` | `audit-unfair-liquidation` | `audit-unfair-liquidation` |
| `w4-clm` | `audit-clm` | `audit-clm` |
| `w4-pashov` | `pashov-solidity-auditor` | `pashov-solidity-auditor` |

Same prompt template. Wait for all 5. Verify via `TaskList`.

### Step 7: Wave 5 — Deep Analysis

Spawn 2 teammates in a **single message**:

| Name | Skill | Task subject |
|------|-------|-------------|
| `w5-token` | `token-integration-analyzer` | `token-integration-analyzer` |
| `w5-guidelines` | `guidelines-advisor` | `guidelines-advisor` |

Same prompt template. Wait for both. Verify via `TaskList`.

### Step 8: Synthesize Report

Read all findings:

```bash
ls .audit-work/*/FINDINGS.md
```

Read each FINDINGS.md. Write `.audit-work/REPORT.md`:

```markdown
# Security Audit Report

**Target:** $TARGET
**Date:** $(date)
**Skills executed:** 20

## Executive Summary

[2-3 sentences: total findings, severity breakdown, most critical areas]

## Findings by Severity

### Critical
[Deduplicated findings rated Critical/High across all skills]
- **Source:** skill name | **File:** path:line | **Issue:** description | **Fix:** remediation

### High
[...]

### Medium
[...]

### Low / Informational
[...]

## Coverage Matrix

| Skill | Status | Findings | Critical | High | Medium | Low |
|-------|--------|----------|----------|------|--------|-----|
| entry-point-analyzer | ✓/✗ | N | ... |
| audit-lending | ✓/✗ | N | ... |
| ... |

## Recon Summary

### Entry Points
[From w1-entry-points]

### Architectural Context
[From w1-context]

## Next Steps

- [ ] Run `/sc-auditor-security $TARGET` for interactive deep audit with proof generation
- [ ] Address Critical findings immediately
- [ ] Review High findings for exploitability
```

### Step 9: Shutdown

```
SendMessage(type="shutdown_request", recipient="broadcast", content="Audit complete. Shutting down.")
TeamDelete(team_name="audit")
```

Tell the user:
1. Report location: `.audit-work/REPORT.md`
2. Individual findings: `.audit-work/<skill-name>/FINDINGS.md`
3. Suggest: `/sc-auditor-security $TARGET` for interactive deep audit

## Teammate Prompt Template

All teammates use this template (substitute `$NAME`, `$SKILL`, `$TASK_SUBJECT`):

```
You are audit teammate $NAME on team "audit".

TARGET: $TARGET

1. TaskUpdate: claim task "$TASK_SUBJECT" (owner="$NAME", status="in_progress")
2. mkdir -p .audit-work/$SKILL
3. Use the Skill tool: skill="$SKILL"
4. Write findings to .audit-work/$SKILL/FINDINGS.md
5. TaskUpdate: complete (status="completed")
6. SendMessage to team lead: findings count + severity summary
```

## Execution Rules

1. **All teammates use `Skill` tool** — never inline skill work (SkillFlattening anti-pattern)
2. **Spawn all wave teammates in a single message** — true parallel execution
3. **Max 5 teammates per wave** — per CLAUDE.md constraint
4. **Wait between waves** — `TaskList` before launching next wave
5. **Use `Task` tool with `team_name`** — standalone `Agent()` cannot call skills
6. **Shutdown before TeamDelete** — send shutdown_request, wait for confirmations
7. **Deduplicate findings** — multiple skills may flag the same root cause
8. **Severity normalization** — map each skill's scale to Critical/High/Medium/Low

## Skill Relevance

Not all skills produce findings on every codebase. If a skill finds nothing (e.g., `audit-lending` on a non-lending protocol), the teammate writes "No relevant patterns found" to FINDINGS.md and completes the task.

## Examples

```bash
# Audit current directory
/orc:audit

# Audit specific project
/orc:audit ~/git/my-defi-protocol

# Audit subdirectory
/orc:audit src/contracts/
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.