Precision benchmark: zero false positives on a clean app

June 22, 2026 ยท View on GitHub

ptai's pitch is precision: a finding earns a VERIFIED badge only when a machine oracle re-runs the exploit and reproduces it, and third-party scanner output is held back until an oracle re-proves it. This page is the reproducible counterpart to that claim. It measures how much noise ptai emits on an app that has nothing to find.

It is the paired half of the honeypot catch-rate story: the honeypot measures recall on real bugs, this measures precision on a safe surface. Together they answer the only question a skeptical operator asks of a scanner: does it catch the bug without crying wolf on the same shapes?

Method

tests/cleanapp is a fixture web app with zero planted vulnerabilities. Its routes are deliberately attackable-looking but correctly implemented: a search box that parameterizes its query, a redirect that allowlists its target, a login that uses a real password check, a file route that sandboxes its path, comment rendering that escapes its output. Anything a scanner reports here is, by construction, a false positive.

benchmarks/clean_fp_sweep.py starts that app and runs ptai's full deterministic web sweep (--no-llm, no API key) against it, then prints the false-positive count and lists each finding so the source probe is obvious.

python benchmarks/clean_fp_sweep.py

Result

ptai: 0 false positives. A green run is the launch-credibility gate; a non-zero run names exactly which probe to fix. The same surface is also asserted in CI by the eight tests/cleanapp/test_clean_fp.py cases (reflected XSS, open-redirect, SQLi login, SQLi search, path traversal, type confusion, trusted header, stored XSS), so a regression that starts emitting noise fails the build.

You can watch the same thing in two minutes against the bundled vulnerable and hardened twin:

ptai demo

The hardened run reports 0 findings on the exact routes the vulnerable run flagged. The only difference between the two is the fix.

Compare it yourself

We do not publish competitor numbers we did not measure. Instead, here is the harness to run any scanner against the same zero-vulnerability fixture, so the comparison is yours, not ours.

Start the fixture:

CLEANAPP_PORT=4111 python -m tests.cleanapp.server

Then point a scanner at http://127.0.0.1:4111 and count what it reports. Everything it reports is a false positive, because the app has no vulnerabilities.

# OWASP ZAP (baseline scan)
zap-baseline.py -t http://127.0.0.1:4111

# Nuclei (default templates)
nuclei -u http://127.0.0.1:4111
ScannerFalse positives on the clean fixture
ptai (--no-llm)0 (reproduce: python benchmarks/clean_fp_sweep.py)
OWASP ZAPrun it yourself with the command above
Nucleirun it yourself with the command above

The point of leaving those cells for you to fill is the whole pitch: ptai surfaces nothing it cannot prove, and you do not have to take that on faith.

Recall, the other half

Precision alone is easy (report nothing). The companion benchmark measures recall: the private honeypot harness in tests/honeypot/ scores ptai against bugs we planted ourselves, asserted in CI at 10/10 on the public subset (tests/honeypot/test_mcp_honeypot_e2e.py). The private 20-bug run catches 19/20 at 100% precision. See the Juice Shop benchmark for ptai against a real, widely-studied target alongside ZAP / Nuclei / HexStrike.