Flagship Scorecard
Per-rule numbers for the 10 Interlace flagship ESLint rules, measured on real open-source repositories. Generated from the ILB-Flagship bench suite — dated snapshots committed to benchmarks/results/ilb-flagship/.
Provenance
- Generated
- 2026-05-10 16:50 UTC
- ESLint
- v9.39.4
- oxlint
- 1.63.0
- Node
- v24.13.0
Source JSON: benchmarks/results/ilb-flagship/2026-05-10.json · Schema ilb-flagship/v2.
Latency (cold → warm) and findings count
One row per flagship rule, measured on a real OSS repository. Cold is eslint --no-cache; Warm is the same command after a prior cold run with a stable cache location. oxlintcaches implicitly via file mtime + content hash. A dash means the stack wasn’t exercised for that rule (green-field rules have no competitor; not every rule has an oxlint port yet).
| Rule | Repo | ⭐ | Tier | Ours cold | Ours warm | Ours findings | Comp cold | Comp warm | oxlint cold |
|---|---|---|---|---|---|---|---|---|---|
| import-next/no-cycle | next.js | 131K | T1 | 20,651 ms | 470 ms | 5,243 | 25,866 ms | 410 ms | 152 ms |
| pg/no-unsafe-query | supabase | 78K | T1 | 15,568 ms | 714 ms | 0 | — | — | — |
| secure-coding/no-hardcoded-credentials | vercel-ai | 15K | T2 | 2,233 ms | 309 ms | 0 | 2,840 ms | 295 ms | — |
| secure-coding/no-redos-vulnerable-regex | lodash | 60K | T1 | 228 ms | 194 ms | 1 | 233 ms | 190 ms | — |
| mongodb-security/no-unsafe-query | payload | 35K | T2 | 3,855 ms | 444 ms | 233 | — | — | — |
| jwt/no-algorithm-none | supabase | 78K | T1 | 15,430 ms | 1,276 ms | 0 | — | — | — |
| browser-security/no-postmessage-wildcard-origin | next.js | 131K | T1 | 19,570 ms | 394 ms | 2 | — | — | — |
| react-features/hooks-exhaustive-deps | next.js | 131K | T1 | 20,272 ms | 426 ms | 102 | 19,696 ms | 410 ms | 81 ms |
| react-a11y/alt-text | shadcn-ui | 100K | T1 | 4,502 ms | 432 ms | 0 | 4,843 ms | 488 ms | 87 ms |
| vercel-ai-security/no-unsafe-output-handling | vercel-ai | 15K | T2 | 2,218 ms | 293 ms | 0 | — | — | — |
Cache effectiveness (median across rules)
| Stack | Median cold | Median warm | Δ | Cache benefit |
|---|---|---|---|---|
| Ours (ESLint) | 9,966 ms | 429 ms | 9,537 ms | 96% |
| Competitor (ESLint) | 4,843 ms | 410 ms | 4,433 ms | 92% |
| oxlint native (competitor) | 87 ms | 86 ms | 1 ms | 1% |
How to read this
- Latency is single-shot today. For SLO-grade numbers we owe you median-of-N with confidence intervals (tracked on the roadmap).
- Findings count is filtered by the rule’s own ID prefix — parser errors and unrelated rules are excluded.
- A higher findings count is not automatically better. See the source markdown report (linked above) for the per-rule ours-only / theirs-only triage tables.
- The 10 rules are the flagship list at
.agent/flagship-rules.md. Each is type-unaware and locked by the meta-package test atpackages/eslint-config-interlace/src/index.test.ts.
Re-run with npm run ilb:flagship at the repo root. Tracks 10 rules per snapshot.