From soundcheck
Performs full security audits covering OWASP A01-A10:2025 and LLM01-LLM10:2025 via subagents for threat modeling, hotspot mapping, design review, and 30+ patterns like injection, SSRF, prompt-injection. Activated by /security-review.
npx claudepluginhub thejefflarson/soundcheck --plugin soundcheckThis skill uses the workspace's default tool permissions.
Full audit via isolated subagents. Main context shows only findings.
Audits codebases for vulnerabilities, OWASP Top 10 issues, and security anti-patterns. Checks Claude Code file denial settings first and invokes security subagent.
Audits code security using STRIDE threat modeling, attack trees, CVSS severity ranking, OWASP patterns, and CWE analysis for vulnerabilities in auth, inputs, crypto, and dependencies.
Audits code for security vulnerabilities including OWASP Top 10, auth flaws, injection, data exposure, and dependency risks using STRIDE threat modeling and phased reviews.
Share bugs, ideas, or general feedback.
Full audit via isolated subagents. Main context shows only findings.
Delegates to subagents applying the Soundcheck skill suite.
Use the Agent tool. Main loop ONLY dispatches Agent calls and merges JSON — never Read/Grep/Glob/Bash in main context.
injection, prompt-injection, insecure-output-handling, token-smuggling,
authentication-failures, oauth-implementation, broken-access-control,
integrity-failures, insecure-local-storage, cryptographic-failures,
security-misconfiguration, supply-chain, rag-security,
exceptional-conditions, logging-failures, ipc-security,
sensitive-disclosure, model-theft, model-dos, mcp-security,
excessive-agency, multi-agent-trust, overreliance,
insecure-plugin-design, llm-supply-chain, insecure-design,
mass-assignment, csrf, file-upload, ssrf, path-traversal,
unsafe-api-consumption, redos, race-condition, open-redirect,
prototype-pollution, hardcoded-secrets, graphql-security,
nosql-injection, header-injection.
Launch a general-purpose subagent:
"Read
CLAUDE.md,README.md, top-level structure. Return ONLY JSON{purpose, deployment, trusted_inputs, untrusted_inputs, attack_surface, out_of_scope}.out_of_scope= finding categories to discount."
Thread <threat_model> into every later subagent.
Launch with skill catalog + threat model:
"Threat model:
<threat_model>. Glob common source extensions; skipnode_modules,.venv,dist,build,target. Focus onattack_surface. Be exhaustive — list every Critical/High security-sensitive area you can find; do not self-limit. Assign each askill. Return ONLY[{category, skill, file, lines, what}, ...]."
Auditors pattern-match existing code; this stage finds missing controls (no timeout, no cost cap, prose-only guard):
"Threat model:
<threat_model>. Read.claude/skills/threat-model/SKILL.md; apply its checklist to every file inattack_surface. For each missing control, emit{severity, file, line, skill, finding, fix}. Useinsecure-designfor generic gaps.[]if none."
Merge output with Stage 2's before Stage 3.
Chunks of ≤5 hotspots. Emit ALL auditor Agent calls in ONE message (serial launches defeat the purpose — every hotspot must be covered by some chunk). Each gets:
"Threat model:
<threat_model>. Audit hotspots<chunk JSON>. For each, open the cited file and apply its named skill — read.claude/skills/<skill>/SKILL.md, match against## Vulnerable patterns. Include Critical/High/Medium/Low, but discountout_of_scopeand trusttrusted_inputs. Return ONLY[{severity, file, line, skill, finding, fix}], omitting clean and out-of-scope.[]if nothing."
Concatenate all returned arrays. Dedupe by (file, line).
"Given findings
<merged>, find chains where one finding enables another. Verify reachability via Read/Grep. Return ONLY[{chain_id, finding_ids, effective_severity, narrative}, ...].narrativeis a 2–4 sentence plain-English story of what the attacker sends, what breaks, and what they walk away with. No JSON, no numbered steps, no code. Empty if none."
Emit # Security Review, findings table (severity/file:line/skill/
finding/fix). If chains exist, emit ## Attack chains with one
subsection per chain: ### Chain N — <effective_severity>, then the
narrative as a prose paragraph. One summary line. Zero findings:
Security review complete. No findings across N hotspots.
After rendering, suggest running /security-cleanup to apply fixes
interactively. Do not auto-rewrite files.