Cloudflare clearly hit the same wall. Their way around it is now public. The repo is called security-audit-skill. It has about 47,000 stars on GitHub and nearly 3,000 forks, which is a lot for something that is basically a pile of markdown files and two small scripts.

So what is it?

It's a "skill", meaning a set of instructions that a coding agent (Claude Code and similar tools) can load and follow. Once it's installed, you tell your agent something like "security audit this codebase" and it stops improvising. It follows a process instead.

Cloudflare says this is where their own internal vulnerability-hunting system started. That system has since grown into something much bigger that runs across many repositories. This repo is the small, single-project version you can try yourself.

The process

There are six phases, and the order matters.

First the agent does reconnaissance: it reads the code, works out where the trust boundaries are, lists the places where outside input comes in, and writes down what it has and hasn't looked at. That list is called the coverage ledger, and it comes back later.

Then the hunting starts. Several agents work in isolation, each on its own slice of the code, and separate "critic" agents check the ledger for gaps nobody has covered yet.

The next step is my favorite. Every suspected bug gets handed to a fresh agent whose only job is to prove it's wrong. The agent that found the problem never gets to grade its own work.

After that, the results go into a structured findings.json file that is checked against a schema. Another round of independent agents re-checks the source claims, and only then are the human-readable reports generated.

The six phases

Three verdicts, not one

Each finding ends up in one of three buckets:

  • confirmed: there is a complete trace through the source code and an observed result.

  • needs_validation: there's a real lead, but one specific fact is still unknown. These don't get a severity score.

  • rejected: someone tried to disprove it and succeeded.

That middle bucket is why I'd trust the output more. Plenty of AI security tools call everything a vulnerability. This one is allowed to say "I think something is here, but I can't prove it yet", and it keeps that separate from the real findings.

Not just for web apps

The repo has separate hunting guides for a surprisingly wide range of targets: memory safety and binaries, LLM apps and AI agents, authentication and HTTP edge cases, browser code, supply chain and CI, cloud configs, message queues, denial of service, tenant isolation, and desktop or mobile apps. You don't need to pick one. The skill figures out which ones apply to your project.

A few opinions baked into it

A few of the rules show how Cloudflare's security team thinks.

A missing second layer of defense is not a vulnerability. If layer A already blocks the attack, the absence of layer B goes in as a hardening note. Severity is likelihood times impact, not "this doesn't match the checklist". And they say, based on their own testing, that one run finds only about half of what repeated runs find in total. So the advice is to run it more than once. Later runs reuse the earlier ledgers and go after what was missed.

Trying it

Install:

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

Then open your coding agent in the project and ask for an audit. By default the reports land in ~/security-audit-skill/<repo-name>/run-<N>, outside your repo, so nothing gets committed by accident.

You'll need an agent with a model that can use tools and spawn parallel sub-agents, plus Node.js for the validator scripts.

One more thing to know before you try it. If the audit needs to actually run code from the target project (build it, run tests, start a fuzzer), Cloudflare wants that done in a proper sandbox: no outside network, a cleaned-up environment, resource limits, and write access only to scratch folders. If you don't have that, the skill won't run anything. It just marks the lead as needs_validation and moves on. Fair enough, since you'd be running code you don't trust yet.

Should you bother?

Yes, but keep your expectations realistic. It won't replace a human pentester, and the needs_validation pile is a reminder that someone still has to look at the hard cases. But for a small team with no security budget, a free MIT-licensed process that makes agents check each other is a decent first pass. Even if you never run it, the repo is worth reading. The prompts show how to structure AI work so it produces findings you can actually verify.

Repo: https://github.com/cloudflare/security-audit-skill (MIT license)