Jorge Turbica / blog · Blog ← All articles ES · Leer en español
AI

Skill of the day: security-audit, Cloudflare’s audit where verifiers trust no one

Cloudflare’s MIT skill audits your code in six phases, and another agent tries to disprove every finding. Around 34,400 stars.

Roughly 34,400 GitHub stars as of October 21, 2026 for the skill Cloudflare used to start its internal vulnerability-hunting harness. It's called security-audit, it's MIT-licensed, and it turns your coding agent into an auditor that doesn't trust itself: whoever finds a bug is never the one who confirms it.

In June 2026, Cloudflare described in "Build your own vulnerability harness" how that harness grew into a multi-stage, fleet-wide system. This skill is the single-repo starting point.

What it does

The skill has two modes, and the difference matters:

  • Guidance mode (the default): for security questions, focused reviews or triaging one specific finding. It uses only the relevant parts and creates no directories or files.
  • Full audit mode: only when you explicitly ask for a codebase audit or pen test, a comprehensive review, or a report. If the request is ambiguous, the SKILL.md tells the agent to ask first.

A full audit runs six phases:

  1. Reconnaissance: architecture, trust boundaries and input surfaces mapped in architecture.md, plus a coverage ledger in coverage-ledger.json.
  2. Coverage-led hunting: isolated hunters, one per ledger unit, and "coverage critics" looking for gaps.
  3. Candidate validation: every candidate goes to a fresh verifier that tries to disprove it.
  4. Structured output: confirmed, needs_validation and rejected records in findings.json, validated against report-schema.json.
  5. Independent record verification of every source claim, by yet another fresh agent.
  6. Reporting: REPORT.md, FINDINGS-DETAIL.md and NEEDS-VALIDATION.md, derived from the verified records.

A finding is only confirmed with a complete source trace and an observed result; if one fact is missing, it stays needs_validation, with no severity. And a missing defensive layer isn't a vulnerability when another layer already blocks the attack: it's a hardening note.

There are three profiles (quick, standard and deep) and an optional budget, counted in agent invocations, that reserves critics and verifiers before any hunter is launched. Runs are additive: the next one reads earlier ledgers and targets the gaps. According to the README, in Cloudflare's test runs a single run found roughly half of the vulnerabilities that repeated runs found in total.

How to install and use it

Install it with the skills.sh CLI (add --global for a user-level install):

bash
npx skills add https://github.com/cloudflare/security-audit-skill \
  --skill security-audit

Then just ask in plain language from inside the repo: "security audit this codebase" or "do a security review, output to ~/audits/my-project". With no directory given, artifacts go to ~/security-audit-skill/<repo>/run-<N>, outside the audited repo; it only writes inside the target if you pick a directory that version control ignores.

Risks and limits

  • Scripts. It runs two zero-dependency Node validators, validate-findings.cjs and validate-coverage-ledger.cjs, which ship in the repo with their tests. You need Node.js.
  • Running the audited code. This is the sensitive part. The SKILL.md requires an OS-enforced sandbox for any build, test or fuzzer from the target: no external network, an empty allowlisted environment, read-only source, and CPU, memory and time limits. If it can't guarantee that, it runs nothing and keeps the lead as needs_validation. That rule lives in a prompt, not in a mechanism: real isolation depends on your agent and your machine.
  • Network and credentials. It forbids probing deployed endpoints, external services or production identities, and it never copies the environment or credential values into reports.
  • Cost. It launches many sub-agents in parallel. You need a model with tool use and sub-agents, and on a large repo the sensible move is to set a budget or start with quick.
  • Installation. npx skills add downloads the CLI and the skill from the network; check the version you install.

Compared with what we had

A classic SAST tool applies rules and returns a long list with false positives. Asking an agent to "find vulnerabilities" with no structure gives you the opposite: a few convincing, unverified answers. This skill sits in between: the agent reasons about trust boundaries, but every finding goes through an independent verifier and a validated schema. It doesn't replace SAST in CI, which is cheap and deterministic; it covers the deep review you used to ask a person for before a release or after a big change to authentication.

Sources

Jorge Turbica

Software Engineer and SRE. I write about the real challenges I run into in production.

See portfolio ↗