Full Security Audit (A01:2025–A10:2025 + LLM01:2025–LLM10:2025)

SkillSecurity

Runs a full OWASP/CWE security audit via isolated subagents. Use when the user

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Full Security Audit (A01:2025–A10:2025 + LLM01:2025–LLM10:2025) skill

What this skill tells your AI

The instructions your AI receives, as published by thejefflarson/soundcheck in .claude/skills/security-review/SKILL.md and read by ahel’s review.

What this checks

Full repo audit against OWASP Web + LLM Top 10:2025 via a four-stage pipeline: threat-model → hotspots → review → validate. Main context dispatches subagents (threat-modeling, hotspot-mapping, vulnerability-audit, design-review, finding-validate, attack-chain-analysis) and renders findings; never reads code.

Vulnerable patterns

This skill is the orchestrator. The actual pattern catalog lives in the per-category auto-invoking skills (injection, csrf, ssrf, broken-access-control, authentication-failures, etc.) — the vulnerability-audit subagent picks the right one per hotspot and applies its Vulnerable patterns section. Skill-list maintenance is automatic via .claude/skills/ directory contents; no separate catalog file.

Procedure

Use only the Agent tool in main context. No Read/Grep/Glob/ Bash in main context. Stage prompts live in .claude/agents/: threat-modeling, hotspot-mapping, design-review, vulnerability-audit, finding-validate, attack-chain-analysis. This skill is just the coordinator.

Copy this checklist as you progress:

- [ ] Stage 0 — threat-modeling returned
- [ ] Stage 1 — hotspot-mapping returned (one whole-repo call)
- [ ] Stages 1b+2 — design-review + N vulnerability-audit in ONE message
- [ ] Stage 2.5 — finding-validate returned; refuted findings dropped
- [ ] Stage 3 — attack-chain-analysis returned
- [ ] Stage 4 — findings table rendered with severity legend
- [ ] Stage 5 — suggested /security-cleanup to the user

Stage 0 — Threat model

Dispatch one threat-modeling subagent. It returns JSON with purpose, deployment, trusted_inputs, untrusted_inputs. Thread this into every later subagent.

Stage 1 — Hotspot map

Dispatch one hotspot-mapping subagent with the threat model. Returns a JSON array of {file, lines, name, category, priority, why} entries — the hotspot list for Stage 2.

Stages 1b + 2 — Design review and vulnerability audit (parallel)

Collapse hotspots by file first — group into {file: [hotspots]}. Then in a SINGLE message, dispatch:

  • One design-review subagent with the threat model.
  • One vulnerability-audit subagent per file with the threat model AND that file's hotspot list. trusted_inputs / untrusted_inputs informs which sinks are reachable. Serial launches defeat parallelism.

Concatenate every returned findings array. Dedupe by (file, line).

Stage 2.5 — Validate findings

Dispatch one finding-validate subagent with the merged findings array and the threat model JSON. It returns a JSON array of 0-based indices to drop — findings refuted by concrete evidence at the cited line (guard, sanitizer, correct API). [] is common. Remove the indicated indices before Stage 3.

Stage 3 — Attack-chain analysis

Dispatch one attack-chain-analysis subagent with the threat model AND the merged findings. The threat model informs effective severity (does the chain cross an untrusted boundary?). Returns chain objects with plain-English narratives, or [].

Stage 4 — Render

Emit # Security Review, then the legend Critical = anyone on the internet can exploit. High = needs an account. Medium = limited blast radius. Low = defense-in-depth. Then a findings table: Severity / Where / What's wrong / How to fix (use the auditor's finding/fix verbatim; append (category: <skill>) to What's wrong). If chains exist, emit ## Attack chains with ### Chain N — <effective_severity> per chain as prose. One summary line. Zero findings: Security review complete. No findings across N hotspots.

Stage 5 — Cleanup

Suggest /security-cleanup to apply fixes. Do not auto-rewrite.

Verification

  • Every vulnerability has a finding with severity, file:line, OWASP/CWE category, and a concrete fix
  • finding/fix text is plain language a non-security developer can act on
  • Response ends with a summary line

References

Signals

GitHub stars
20
Last commit
Jul 2026
Advanced
Catalog kind
skill
Gateway key
security-review-thejefflarson
Source
github.com/thejefflarson/soundcheck