the published accuracy record
Benchmark
A small, v0 pilot: 25 clean libraries, 11 vulnerable training apps, 20 deployed web apps. Every caveat published, not just the flattering numbers.
100%
▲ higher is better
55.6%
▲ higher is better
100%
▲ higher is better
100%
▲ higher is better
80%
▲ higher is better
Free vs. Audit
nittim ships two tiers. Free scan runs deterministic checks only — a secret scanner, a dependency-CVE lookup — no model in the verdict. Audit adds Claude Opus reasoning across the full framework, including semantic bugs (SQL injection, auth bypass, SSRF) no secret or CVE points to.
| Tier | Clean-pass rate | Recall |
|---|---|---|
| Free — deterministic scan | 100% (25 of 25) | 63.6% (7 of 11) |
| Audit — Opus | 100% (25 of 25) | 100% (11 of 11) |
Score separation, Deep tier
On the Deep tier, the readiness/safety score (0–100, higher is safer) separates the two populations clearly: a mean of 89.3 on clean libraries versus 30.3 on intentionally-vulnerable apps. The two populations are maximally contrasted by construction — audited libraries against deliberately broken training apps — so this gap describes the corpus, not how well nittim discriminates a real app with two or three embedded issues from clean code, which this benchmark does not yet measure.
Applications — 20 mature, deployed web apps
nittim audits applications, not just libraries. This axis measures both tiers against 20 mature, deployed open-source web apps (Ghost, n8n, and others) across several stacks. A real dependency tree means a not-green verdict here is not automatically a false alarm — every one was checked by hand against OSV and the real lockfile.
| Metric | Result |
|---|---|
| Secret clean-pass rate (free tier) | 100% (20 of 20) |
| Runtime-CVE catches (reported separately — several driver findings were later adjudicated down, see below) | 3 of 20 |
| Clean-pass rate (Deep tier, Opus) | 80% (16 of 20) |
| No critical on model opinion alone (Deep tier) | 100% (20 of 20) |
Application-axis caveats
Mature apps are a lower bound, not the target class
One flatly false critical — found, disclosed, fixed at the source
Over-escalation was the real failure mode — since retuned
Single pass per app — verdict variance unmeasured
The adjudicator shares a model family with the system under test
Read this before the numbers above
Small sample — point estimate, not a tight bound
Library FCR and application FCR are different measurements
Recall is verdict-level, not finding-level
The juice-shop-ctf disclosure
The juice-shop-ctf entry, both ways
Confidence interval, not a point claim