Four organisations have now published their own numbers from letting coding agents find, validate and fix security bugs in their own codebases. Ramp went first in February 2026, Cloudflare in June, Google’s Chrome team in July, and OpenAI’s “Defense Factory” page appeared the week of September 3, 2026, according to OpenAI’s Daybreak announcement of that date. This page puts all four in one table, then explains why the numbers cannot be ranked against each other.
The finding that survives the definitions is not a number. It is a design decision. None of the four trusts one agent to judge its own output. Each built a separate adversarial check with its own context, and each kept a human at pull-request review. Two of the four independently found that deduplication was the hard problem. One measured that its agents, given a static analysis tool, chose not to use it once in a month.
- 01The numbers are vendor-reported and not comparable.Different codebases, scopes and definitions of finding, duplicate and validation. OpenAI's 0.81% false-positive rate and Cloudflare's 11% rejection rate measure different quantities over differently built populations.
- 02Nobody lets one agent grade its own work.Cloudflare's Validator cannot file findings; Ramp uses adversarial manager agents; Chrome runs a critic agent with separate context; OpenAI reproduces findings at runtime in isolated environments.
- 03Deduplication is the surprise cost centre.OpenAI paused routing until dedup improved and found 37% of findings were duplicates. Cloudflare built a two-layer dedup system and folded 5,442 findings into others.
- 04Every pipeline ends at a human.Cloudflare's Fixer never merges. Ramp's run had no human until PR review, then a human landed every patch. Chrome's fixes are candidates for developers. OpenAI reviews consequential changes by hand.
01 — The datasetThe four runs, one table.
Read the table as four separate reports that happen to share a page. The scopes differ by orders of magnitude: Ramp scanned one backend, Cloudflare scanned 128 repositories, Chrome covers a browser with more than 2,300 third-party dependencies, and OpenAI does not publish the size of its backlog at all. Each row states where the figure sits in that organisation’s own pipeline.
| Organisation | Scope | Figure | What it measures |
|---|---|---|---|
| OpenAI | Internal security sprint, 250+ people mobilised, backlog size unpublished | 37% | Findings identified as duplicates during agent triage |
| OpenAI | Same sprint | 19.5% | Findings reproduced at runtime in isolated environments |
| OpenAI | Same sprint | 0.81% | False-positive rate after dynamic validation, a residual rate at the end of the funnel |
| OpenAI | Same sprint | 90.6% / 100% | Accepted ownership assignments; share of remediation done by Codex |
| Cloudflare | 128 repositories in the discovery fleet; 145 in the central pool; six weeks to build | 20,799 → ~12,057 | Raw candidates emitted, then survivors of adversarial validation, lifetime |
| Cloudflare | Same fleet | 40% → 11% | Validation rejection rate before and after better context injection at the reconnaissance stage |
| Cloudflare | Central pool, 13,841 findings | 5,442 / 1,154 / 7,245 | Folded as duplicates; routed wrong-repo or low-risk; actionable findings left for teams |
| Ramp | One backend codebase; less than a week of one engineer’s build time after a four-hour hackathon | ~100 | Issues found, validated and fixed with no human until PR review; all patched within a week of discovery |
| Ramp | Initial testing on a sample set | 40% | Proposals rejected by adversarial manager agents, all later confirmed false positives by human review |
| Google Chrome | Chromium plus satellite projects; agent harness since early 2026 | 1,072 | Security bugs fixed in Chrome 149 and 150 combined, more than the prior 23 milestones together; agent-assisted, includes external reports |
| Google Chrome | Pre-submit checks, May 2026 | 20+ | Vulnerabilities blocked before reaching production, including one critical |
| Google Chrome | Discovery | 13+ years | Age of a sandbox-escape bug the Gemini-based harness found |
Two figures are deliberately absent. Cloudflare’s five minutes per fix and roughly fourteen hours from discovery to open pull request come from what the company calls a realistic benchmark based on a standard repository run, not a logged production run, so they do not belong in a results column. OpenAI’s 53 urgent issues closed on day one are attributed to teams working in parallel before the inventory was complete, not to agents. The cyber models named on OpenAI’s reference architecture are the Daybreak models we covered in our Daybreak analysis.
02 — The comparison problemFour meanings of every word.
A comparison post usually puts the definitions after the table. Here they have to come before anyone quotes a number. The four organisations use the same words for different things, and the differences are large enough to reverse a ranking.
Cloudflare’s hunters are tuned to over-report subtle primitives on purpose, so its raw candidate count is inflated by design. OpenAI’s percentages are shares of a backlog whose size is never stated. Ramp counts only issues that were fixed. Chrome counts bug reports, including ones filed by outside researchers, and its 1,072 fixed bugs include fixes written by people with agent-generated candidates.
| Organisation | “Finding” | “Validated” | “Fixed” |
|---|---|---|---|
| OpenAI | An item in a shared backlog of existing and new agent findings, before triage; size unpublished | Reproduced at runtime in an isolated environment; execution is definitional | Left open on purpose: follow-up checks found a gap between merged patches and fixes deployed across the fleet |
| Cloudflare | Layered: raw candidate, survived validation, total in the central pool, actionable | An isolated adversarial agent tries to disprove it; a proof-of-concept test must run against the untouched code; a later pass checks production reachability | Target test flips from fail to pass with no regressions, then a human reviews the branch; production rollout is separate |
| Ramp | A reported issue that survived detector and adversarial manager review; only fixed issues are counted | An agent writes an integration test that fails while the bug exists and passes when the endpoint is secure; a test that passes before any change marks a false positive | Test passes and a pull request opens; a human reviews and lands it |
| Google Chrome | A bug report, internal or external, through one triage pipeline | Reproduced on the specific affected OS and browser versions with a proof of concept | Merged to the stable branch, shipped in a Stable release, and the user restarts the browser |
“Validation” is the sharpest split. OpenAI validates by running the service. Ramp validates by writing a test, after abandoning live deployment testing because its agents could not set up preconditions such as a victim account holding two funds. Cloudflare validates by trying to disprove, then separately asks whether the bug is reachable in production. Chrome validates by reproducing on affected platforms. A finding that clears one bar would not necessarily clear another.
03 — The funnelWhat each gate removed.
The chart below shows the share of candidates each organisation’s stated gate removed or let through. It is one chart with five different quantities, and the label under each bar says which. Cloudflare’s initial rejection rate and Ramp’s manager rejection rate are both 40%. That is a coincidence between a system-wide lifetime rate and a one-off sample measurement, not a shared benchmark.
Share removed or retained at each organisation's stated gate
OpenAI, Cloudflare and Ramp, each reporting on its own pipeline. Not like-for-like; see the definitions above.Cloudflare’s central pool is the one funnel whose arithmetic closes: 13,841 findings, minus 5,442 duplicates, minus 1,154 routed elsewhere, leaves 7,245 actionable findings. Its discovery funnel does not close from the prose alone, because the buckets between 20,799 raw candidates and roughly 12,057 survivors are shown only in an image. We report the prose numbers and nothing inferred from the diagram.
Chrome publishes no rate at all. Its post says the early-2026 harness ran with higher efficiency and lower false positives, without saying what it is lower than, and that automated triage saves an estimated hundreds of hours a month against a human baseline of five to more than thirty minutes per report. Google flags the saving as hard to measure precisely, and so do we.
04 — The patternWhere all four agree.
Four teams with different codebases, languages and threat models reached the same architecture without coordinating. Ranked by the strength of the published evidence, the convergences are these.
A second opinion with its own context
Cloudflare's Validator cannot file findings and a different model re-judges the central pool. Ramp's manager agents critique each detector. Chrome's critic agent reads SECURITY.md in a separate context. OpenAI reproduces findings in isolated environments.
Durable repo-level context
OpenAI and Chrome both landed on a SECURITY.md file, independently. Cloudflare's reconnaissance agents write an architecture file per run and carry a 450-line audit skill. Ramp built skills from real examples in its own codebase.
Deduplication is the hard problem
Cloudflare needed a deterministic shortlist plus a reasoning agent, clustering by root cause rather than file path. OpenAI paused routing until deduplication improved. Ramp publishes nothing on it, and Chrome's only published mention is a duplicate check at bug intake, with no figure.
Environments limit validation
OpenAI says environment setup became the constraint and began with services it could run repeatedly. Ramp abandoned live-deployment validation because agents could not configure preconditions. Same wall, opposite directions.
Cloudflare states the reason for the first convergence outright: “If a Hunter is allowed to grade its own homework, it will confidently validate everything it outputs.” Two further patterns have weaker but real support. The bottleneck moves rather than disappears: Cloudflare calls its Fixer “the youngest and slowest part of the system” and says the scarce resource becomes review capacity, not discovery.
Cloudflare plumbed Semgrep, a static analysis tool, through to its hunting agents. Over a month of runs the agents invoked it zero times, preferring to read and run the code. Ramp reports that its roughly 100 issues had not been caught by penetration tests, its bug bounty programme, static analysis or trials from 10 or more code-scanning vendors. Chrome still runs fuzzing alongside the agents and describes it as complementary.
All four also concluded that one agent in one context window is the wrong unit of work. Cloudflare argues that a generic coding agent pursues a single hypothesis, exhausts its context window on a fraction of a real repository, and forgets things when that context is compacted. Its answer, and OpenAI’s, is that the durable asset is the harness around the model. That matches what we found in our agent runtime sandbox matrix: the isolation and orchestration layer decides what an agent can safely be allowed to do.
05 — The gateWhere the human still sits.
None of the four reports describes an agent merging a security fix on its own. The placement of the human gate is the same in every case: after validation, at code review, before anything reaches a main branch or a production fleet.
| Organisation | Agents do | People do |
|---|---|---|
| OpenAI | Inventory, discovery, runtime validation, ownership labelling, patch generation and testing against running services | Spot-check triage, resolve ambiguous ownership, review consequential changes and independently verify deployed fixes |
| Cloudflare | Reconnaissance, hunting, adversarial validation, deduplication, judgment, patch and test in a branch | Review every branch before merge; sign off on a dry run before anything writes to production |
| Ramp | Detect, critique, write the reproducing test, fix by test-driven development, open the pull request | Review the patch and land the code; no earlier involvement in the run |
| Google Chrome | Triage, reproduce, assign, propose candidate fixes, critique them, write cross-platform tests | Evaluate the fix, override severity when needed, own the merge and the release |
OpenAI’s account of how it got there is the useful part for a team planning the same thing. It says the work began with small batches under human review, and that manual steps were dropped one at a time as the results justified it. That is the same shape as the permission model in our default-deny versus default-allow analysis. Autonomy was granted per stage against evidence, not switched on.
06 — The limitsWhat nobody claims.
Nobody publishes a recall rate, and Cloudflare explains why none can: “We don’t claim a false-negative rate for our system. There’s no labeled set of every real bug in a codebase, so any claimed recall number is entirely speculative.” Nobody publishes a dollar cost. Cloudflare describes the shape of its spend, with 50 to 200 workers per repository and each follow-up pass costing about half the initial hunt, but no figure. The other three say nothing about cost.
Cloudflare also says its own numbers are out of date by the time anyone reads them, and that its findings come from a ring-fenced research experiment rather than live unpatched production vulnerabilities. OpenAI publishes no start date, end date or duration for its sprint. Ramp names no models. Chrome gives no false-positive rate. Those blanks are recorded here as blanks.
This page compiles first-party reports only. Nothing here has been independently replicated by anyone, including us.
- Sources
- OpenAI, “The Defense Factory”; Cloudflare, “Build your own vulnerability harness” (June 18, 2026); Ramp Engineering, “We proactively fixed ~100 security issues in 6 days with 0 humans” (February 20, 2026); Google, “Chrome: stronger with every update” (July 30, 2026). Ramp is cited by name and not linked under our outbound-link policy.
- As-of date
- All four pages were read on September 4, 2026. The page is dated September 3 for the week OpenAI’s report appeared; the collection date is stated here and not restated elsewhere.
- OpenAI dating
- The Defense Factory page carries no publication date. OpenAI’s September 3 Daybreak announcement says the approach was published that week, which is the only first-party dating we have.
- Exclusions
- Cloudflare’s modelled benchmark timings; OpenAI’s 53 day-one closures; Chrome’s memory-safety programme statistics, which predate the agent harness; figures shown only in images on the Cloudflare and Google pages.
- Stage mapping
- The stage frame is OpenAI’s, extended with a deduplication stage. Placing the other three organisations’ work in it is our interpretation.
- Change log
- September 4, 2026: first publication with four organisations.
07 — ConclusionCopy the architecture, not the percentages.
Four organisations reached the same design by different routes, and none of them reached a comparable number.
The percentages in this page will be quoted without their definitions. That is the reason the definitions come first. OpenAI’s 0.81% is a residual rate after runtime reproduction over an unpublished backlog. Cloudflare’s 11% is a rejection rate over candidates that are over-reported by design. Ramp’s 40% is a sample. Chrome’s 1,072 counts human work too.
What transfers is the shape. Give the agent that finds a bug no authority to confirm it. Put a second agent with separate context in its way, and make the proof a test or a runtime reproduction rather than an argument. Expect deduplication to cost more than discovery. Keep the human at review, and grant each stage autonomy only after it has earned it.
A fifth organisation will publish its own numbers soon. This page will add a row, and the definitions column will grow with it. Our AI transformation practice builds this kind of pipeline for teams that want the architecture without repeating the four discoveries.