The interesting release is a process, not a prompt.
Cloudflare published the security-audit skill that preceded its larger vulnerability-discovery harness. The repository defines reconnaissance, coverage-led hunting, adversarial candidate validation, structured records, independent record verification, and reporting. It also ships validators for the coverage ledger and findings file.[1]
That matters because security review fails in the handoff. One agent sees a suspicious path. Another sentence turns it into a vulnerability. A severity label arrives before anyone establishes the affected principal, reachable sink, runtime condition, or observed result.
Make the second reviewer hostile to the claim.
The published workflow assigns each candidate to a fresh verifier that did not hunt it. The verifier must reread the cited source, reconstruct preventing controls, and reproduce only the minimum bounded result when local execution is safe. If a deployment fact is still missing, the claim stays in "needs validation." If source or local behavior refutes it, the claim becomes "rejected."[2]
The hunter earns a candidate. The verifier earns the verdict.
This is better than asking the same context window to critique its own momentum. It does not make the reviewer infallible. It creates a clean responsibility boundary and leaves a record when the attractive theory dies.
A schema checks the receipt, not reality.
The repository's JSON schema gives each verdict a different contract. A confirmed record requires a source trace, conditions, execution evidence, remediation, severity, and confidence. A needs-validation record requires the exact blocker and a concrete validation plan. A rejected record keeps the disproved claim and reason without smuggling in severity.[3]
The validator can catch missing fields, impossible line numbers, malformed traces, and incompatible fields. Cloudflare's post states the boundary plainly: schema adherence is not correctness. Mechanical checks protect the shape of the handoff. Independent source review protects the meaning.[4]
Coverage needs its own ledger.
A pile of findings says nothing about the code nobody inspected. The published workflow plans deterministic coverage units and records checked, blocked, deferred, and out-of-scope work. Its authors report that one run found roughly half of the vulnerabilities found across repeated runs in their tests. That is project-reported experience, not a universal benchmark.[1]
Keep candidate state and coverage state separate. A clean verdict on one trace does not close neighboring attack classes. A rejected candidate is useful memory, but it does not certify the subsystem.
Install four pressure switches.
- Trace: name the lower-trust entrypoint, every meaningful propagation step, and the boundary effect.
- Replay: reproduce the smallest safe result with dummy data and strict sandbox limits.
- Independence: use a reviewer who did not write the candidate and is tasked with refuting it.
- Impact: identify the affected principal or resource. Do not derive severity from checklist deviation.
If one switch remains open, print the blocker and next check. If a visible control kills the path, retain the rejection so the next run does not rediscover the same ghost.