security-audit: Six-phase code auditing with verified, structured findings
A coding-agent skill for security engineers that uses six phases and independent verification instead of one-shot scanning.
GitHub cloudflare/security-audit-skill Updated 2026-09-17 Branch main Stars 7.2K Forks 422
JavaScript Security auditing Node.js Parallel sub-agents Coding agent

🧭 Decision Guide

Try it if you

  • You have a coding agent with tool use and parallel sub-agents and need to audit a codebase.
    The Requirements section requires “A coding agent with a model that supports tool use and parallel sub-agents”; the Usage section provides “security audit this codebase”.
  • You need structured vulnerability records with confirmed, needs_validation, and rejected verdicts.
    The What it does section says Phase 4 writes records to findings.json and defines the three verdicts.
  • You want to close audit gaps across runs using coverage-ledger.json.
    The Multiple runs section says repeated runs use prior ledgers and findings to target gaps.

Skip it if you

  • Your environment cannot provide an OS-enforced sandbox that disables external networking, limits resources, and restricts write paths.
    The Requirements section explicitly requires these controls; otherwise the workflow keeps leads as needs_validation instead of executing target code.
  • You only need a one-shot quick scan and do not need six phases or independent record verification.
    The What it does section specifies six phases from Reconnaissance through Target-neutral reporting.
  • Your coding agent does not support tool use or parallel sub-agents.
    The Requirements section lists tool use and parallel sub-agents as prerequisites.

Requirements

  • A coding agent with support for tool use and parallel sub-agents.
  • Node.js for the zero-dependency findings and coverage-ledger validators.
  • An OS-enforced sandbox that disables external networking, uses a sanitized allowlisted environment, enforces resource limits, and permits writes only to assigned scratch paths.

First step (verbatim from README)

security audit this codebase

Watch out

  • Without an OS sandbox, a blocked lead remains needs_validation and target-controlled builds or tests are not executed.
    The Requirements section explicitly defines the sandbox controls and needs_validation behavior.
  • Do not treat a defense-in-depth gap as a vulnerability; when Layer A blocks the attack, record it only as a hardening note.
    The Design principles section says defense-in-depth gaps are not vulnerabilities.
  • Severity must be based on likelihood x impact, not merely deviation from a checklist.
    The Design principles section states that severity requires impact.
  • The finder and verifier must be different agents; candidate validation gives each candidate to a fresh verifier that tries to disprove it.
    The Candidate validation and Adversarial validation sections specify independent verification.

Not stated in the README

  • The README does not specify which coding agents or model names are supported.
  • The README does not specify a minimum Node.js version.
  • The README does not provide per-audit duration, resource usage, or a parallel sub-agent limit.
  • The README does not provide precise coverage or false-positive comparisons with other security scanners.
  • The project has no release records, so stable-version or compatibility commitments cannot be confirmed from the material.

💡 Deep Analysis

6
No I own a single-repository review that must document architecture, trust boundaries, and input surfaces, and our coding agent supports tool use and parallel sub-agents. Can this skill replace a traditional manual security review?
For: A product security team using a coding agent with tool use and parallel sub-agents for single-repository security reviews

No, it should not be treated as a replacement for a traditional manual review because it is a coding-agent audit orchestration method, not an independent vulnerability scanner.

  • It runs six phases: reconnaissance, coverage-led hunting, candidate validation, structured output, independent record verification, and target-neutral reporting.
  • coverage-ledger.json records architecture areas, audit units, executed checks, evidence, and gaps; findings.json separates confirmed, needs_validation, and rejected.
  • A fresh verifier attempts to disprove every unique candidate, reducing bias from having the same agent discover and confirm an issue.
  • The README states that the project does not guarantee discovery of all vulnerabilities and does not replace manual security assessment; humans still decide severity, business risk, and disclosure.
  • What it does: six-phase audit workflow
  • What it does: `coverage-ledger.json` and `findings.json` verdict definitions
  • Limitations: not an independent static analyzer, dynamic scanner, or vulnerability database; does not replace manual assessment
Not stated in the README:The README does not define the handoff format, ownership boundaries, or acceptance criteria with an existing manual review process.;It provides no recall or false-positive comparison against a traditional SAST, DAST, or manual-review baseline.
Yes I maintain a large codebase with continuous source, dependency, and deployment changes. I want the second audit to reuse the previous ledger and findings while rechecking only changes and gaps. Does this skill support that incremental workflow?
For: A project maintainer performing repeated reviews on a large or complex codebase whose code, dependencies, or deployment configuration change continuously

Yes. It explicitly supports additive audits of the same repository, while refusing to treat old evidence as current without revalidation.

  • The README says multiple runs use prior ledgers and findings to target gaps, revalidate changed source, and carry forward current-source evidence.
  • It specifically avoids treating stale or unresolved work as covered, so a historical needs_validation item does not automatically become complete.
  • validate-coverage-ledger.cjs runs after the ledger is created and after later ledger updates; validate-findings.cjs runs in Phase 4 and after every Phase 5 replacement.
  • The reporting layer derives REPORT.md, FINDINGS-DETAIL.md, and NEEDS-VALIDATION.md from verified records, which helps separate current confirmations from historical open work.
  • What it does: multiple runs against the same repo are additive
  • What it does: stale or unresolved work is not treated as covered
  • What it does: execution points for the two zero-dependency validators
  • What it does: three Markdown reports are derived from verified records
security audit this codebase
Not stated in the README:The README does not explain how to compute the scope of code, dependency, or deployment changes, or how to select coverage units to rerun.;It provides no runtime, model-call, or parallel-agent cost data for large codebases.
Yes I audit a native codebase and need coverage of memory-safety, binary, and kernel attack surfaces. I can also provide an OS-enforced sandbox with disabled external networking, a sanitized environment, resource limits, and restricted write paths. Is this skill suitable?
For: A security researcher maintaining a native codebase who needs to review memory safety, binary, and kernel paths

Yes, provided that your OS-enforced sandbox actually satisfies the README’s restrictions for executing target-controlled code.

  • The file list includes MEMORY-SAFETY-AND-BINARY.md, covering memory-safety, binary, and kernel hunting classes for native targets.
  • The workflow places target-controlled builds, tests, processes, browsers, emulators, fuzzers, and fixtures inside the sandbox.
  • Requirements call for disabled external networking, a sanitized allowlisted environment, resource limits, and writes restricted to assigned scratch paths.
  • Without those controls, the workflow keeps the lead as needs_validation rather than executing target code and upgrading it to confirmed; sandbox capability therefore directly affects validation depth.
  • Files: `MEMORY-SAFETY-AND-BINARY.md`
  • Requirements: OS-enforced sandbox, disabled networking, sanitized environment, resource limits, and restricted writes
  • Requirements: without the controls, leads remain `needs_validation`
security audit this codebase
Not stated in the README:The README does not specify a particular OS sandbox implementation or minimum resources for native builds, fuzzing, or kernel fixtures.;It does not state whether the skill can directly invoke existing compilers, debuggers, or sanitizer tools.
Yes I want to integrate AI-assisted audits into an existing automation pipeline. Our team already uses Node.js and requires findings and the coverage ledger to pass zero-dependency validation before entering downstream systems. Is this skill a good fit?
For: A platform security team integrating AI-assisted audits into an automated security workflow, using Node.js and requiring machine-checkable JSON results

Yes. Its machine interface is structured JSON plus zero-dependency Node.js validators, although it is not a complete vulnerability-scanning platform.

  • report-schema.json defines the three findings verdicts; validate-findings.cjs validates findings.json, and validate-coverage-ledger.cjs validates coverage-ledger.json.
  • The README requires validation in Phase 4, after Phase 5 replacements, and after ledger creation and later updates, making those checks suitable for pipeline gates.
  • Structured records then generate three Markdown reports, separating the machine interface from the human-readable layer.
  • However, the project depends on a coding agent with tool use and parallel sub-agents, and it has no published release information. Version pinning, model-provider selection, credential handling, and CI integration remain team-owned concerns.
  • Files: `report-schema.json`, `validate-findings.cjs`, and `validate-coverage-ledger.cjs`
  • What it does: validator execution requirements in Phase 4, Phase 5, and after ledger updates
  • Project data: main language is JavaScript; latest_release is empty; release_count is 0
  • Requirements: depends on a coding agent with tool use and parallel sub-agents
Not stated in the README:The README does not define a stable versioning strategy for JSON output, schema compatibility policy, or CI failure exit-code contract.;It does not explain how to pin a skill commit or control access to secrets, model API credentials, or audit artifacts.
Yes I am auditing an LLM codebase containing prompt injection, agent/tool calls, and output handling, and I need unresolved input facts separated from actual boundary failures. Does this skill support that decision model?
For: An AI and LLM security researcher reviewing a codebase with prompt-injection, agent/tool, and output-handling paths

Yes, because it provides a dedicated AI-and-LLM audit category and explicitly preserves unresolved facts instead of forcing them into vulnerability verdicts.

  • The file list includes AI-AND-LLM.md, covering prompt-injection, agent/tool, and output-handling hunting classes that directly match your paths.
  • confirmed requires a complete source trace and a bounded observed result; leads without a closed evidence chain become needs_validation, which has no severity.
  • Candidate validation is performed by a new agent different from the discoverer, and the verifier must attempt to disprove the conclusion. This is useful for challenging assumptions about model inputs and tool permissions.
  • Reports are derived from verified structured records, separating confirmed, pending, and disproved items instead of returning only natural-language conclusions.
  • Files: `AI-AND-LLM.md`: prompt-injection, agent/tool, and output-handling
  • What it does: definitions of `confirmed`, `needs_validation`, and `rejected`
  • Design principles: adversarial validation; only confirm established boundary failures
find security vulnerabilities in ./src
Not stated in the README:The README does not specify an LLM, agent framework, or model context window, nor how model-specific refusal and tool-calling behavior should be evaluated.;It provides no prompt-injection test corpus or known coverage metrics for the AI/LLM category.
It depends In one repository, I need to review HTTP request framing, cache, authentication protocols, and also IAM, IaC, container, and serverless configuration. Can this skill cover these different attack domains?
For: A product security team maintaining HTTP protocol and authentication services while also reviewing cloud, IAM, container, and serverless configuration

It depends: the attack classes are represented well, but actual coverage depends on whether the agent correctly understands the architecture and execution environment.

  • WEB-PROTOCOL-AND-AUTH.md explicitly includes HTTP request-framing, cache, and authentication-protocol hunting classes.
  • CLOUD-AND-DEPLOYMENT.md covers IAM, infrastructure-as-code, containers, serverless, ingress, and runtime configuration.
  • The six-phase workflow first maps architecture, trust boundaries, and input surfaces into a coverage ledger, then assigns isolated hunters by ledger unit and uses coverage critics to identify gaps.
  • The README also warns that a coverage ledger proves which checks were executed, not that the attack prompts are complete or that the agent understood every unit; complex builds and missing tests reduce validation capability.
  • Files: `WEB-PROTOCOL-AND-AUTH.md`
  • Files: `CLOUD-AND-DEPLOYMENT.md`
  • What it does: reconnaissance, coverage-led hunting, and coverage critics
  • Limitations: the coverage ledger does not prove prompt completeness; complex builds or missing tests reduce validation capability
do a security review, output to ~/audits/my-project
Not stated in the README:The README does not define a support matrix for HTTP services, cloud providers, IaC tools, or container runtimes.;It does not specify how many agents, how much context, or how much execution time should be allocated across multiple attack domains.

✨ Highlights

  • Six phases cover reconnaissance, validation, reporting, and independent verification
  • findings.json supports three machine-readable verdicts including confirmed
  • Node.js zero-dependency validators check the coverage ledger and findings
  • In test runs, one run found only roughly half of vulnerabilities found by repeated runs

🔧 Engineering

  • Uses coverage-ledger.json to assign isolated hunters and track checks
  • Uses validate-findings.cjs to validate findings.json structure and records
  • Generates REPORT.md and FINDINGS-DETAIL.md from verified records

⚠️ Risks

  • Without an OS sandbox, target code is not executed and remains needs_validation
  • Requires a coding agent that supports tool use and parallel sub-agents
  • README provides no release versions: the project has No releases and 3 contributors

👥 For who?

  • Security engineers auditing JavaScript or other codebases
  • Teams with a coding agent supporting parallel sub-agents
  • Projects requiring findings.json and coverage-ledger.json audit artifacts