AI column

Security@donghyeok99Staff

security-audit: Cloudflare's agent security auditor skill

The security-audit skill that seeded Cloudflare's vulnerability harness, open under MIT

Hunters sweep the code for candidates; a verifier that didn't find them tries to disprove each and sorts them by verdict, then REPORT.md.
Hunters sweep the code for candidates; a verifier that didn't find them tries to disprove each and sorts them by verdict, then REPORT.md.
Who
Cloudflare, sharing the skill its vulnerability harness grew from; for developers who want an agent to audit their own code.
When
The repository opened on 18 June 2026 and ships from main without release tags; the workflow and validators were reworked on 10 September.
Where
Any coding agent with tool use and parallel sub-agents. It reads source on your machine and writes results to a folder outside the repo.

What was hard

Ask a coding agent to check your code for security issues and you get a plausible list back. Missing best practices sit next to holes someone could actually walk through, so you end up re-checking every item to know what to fix first. And the agent that found them is the one vouching for them.

What it does about it

The skill splits finding from checking. Hunters each take units from a coverage ledger and report candidates; a fresh agent that did not find a candidate tries to disprove it, and only what survives is confirmed. When a fact outside the source blocks the answer, such as a deployment setting, the lead stays needs_validation with no severity. Everything lands as a schema-checked findings.json and a REPORT.md in a folder outside the audited repository.

cloudflare/security-audit-skill

What people made with it

Hacker Newsjesse_dot_id2026-09-17

Ran it on a small FastAPI project; it used over 150k tokens and hit the session limit before finishing, to be continued hours later.

At least 150k on my relatively small FastAPI project, but hit my session limit. Continuing in a few hours.

How it runs inside

  1. 1

    You → Coding agent (parent)

    security audit this codebaseAn explicit audit or pen-test request runs all six phases; a security question uses only the parts it needs.skills/security-audit/SKILL.md
  2. 2

    Coding agent (parent) → Hunter agents

    Units from coverage-ledger.jsonRecon agents map structure and trust boundaries; the parent builds the ledger and gives each unit a hunter.skills/security-audit/RECONNAISSANCE.md
  3. 3

    Hunter agents → Coding agent (parent)

    Structured candidate resultsHunters write only to their own scratch folder and return candidates in a fixed shape; critic waves look for gaps.skills/security-audit/HUNTING.md
  4. 4

    Coding agent (parent) → Verifier agent

    A fresh verifier per candidateAn agent that did not find the candidate tries to disprove it: confirmed, needs_validation or rejected.skills/security-audit/VALIDATION-AND-REPORTING.md
  5. 5

    Coding agent (parent) → validate-findings.cjs

    findings.jsonChecked against report-schema.json and the verdict rules; every error is fixed before the run moves on.skills/security-audit/validate-findings.cjs
  6. 6

    Coding agent (parent) → REPORT.md

    REPORT.md, FINDINGS-DETAIL.md, NEEDS-VALIDATION.mdAfter fresh agents re-check the final records, reports are derived only from verified records and the ledger.skills/security-audit/VALIDATION-AND-REPORTING.md

What goes in, what comes out

security audit this codebaseFull audit mode, results in ~/security-audit-skill/<repo-name>/run-<N>
do a security review, output to ~/audits/my-projectThe same audit, with the reports written to ~/audits/my-project
A security question or one finding to look intoGuidance mode: no files, only the parts of the skill it needs
A second run on the same repositoryReads the earlier ledger and findings, then targets gaps and changed source

Is it for you

Good for

  • Before a launch, when you want to know whether a trust boundary in your code really breaks, with the source to show for it
  • When you want both a report people read and JSON a tool can read
  • When you plan to run it more than once and build coverage over time
  • When one method should cover web APIs, LLM apps, desktop apps, cloud config and the supply chain alike

Not for

  • Per the README, a single run found roughly half of the vulnerabilities that repeated runs found in total.
  • Building or running the target needs an OS-enforced sandbox with no external network; without one, the lead stays needs_validation.
  • It runs many agents and spends tokens accordingly: Hacker News commenters report 150k to 1M tokens.
  • On Windows, Node has no O_NOFOLLOW, so validate-findings.cjs cannot read its input (issue #117).

Reviewed by Devalley’s editor before publishing. How the column is made

Sign in to post, comment and like.Sign in

Report

Reason

Read the community rules