Engineeringdefensibility.
Every number on this page is verifiable from outside the company — link to the file, the commit, or the workflow that produced it.
Claims with receipts
Engineering claims with receipts. Every number on this page is verifiable from outside the company — link to the file, the commit, or the workflow that produced it.
Last updated: 2026-08-09. Source of truth:docs/defensibility-roadmap.md.
Doing diligence? The 15-minute walkthrough at /verify walks you through reproducing every claim below — clone, run, see the same numbers. No accounts needed.
Defensibility scoreboard
We track 14 binary success criteria for the “world's best engineering” claim. Each is verifiable from outside the company. Status:
- #1. 7+ day green-main streakCalendarCalendar — passive accrual.
- #2. 0 lint warningsPartial825 → 288 (-65%). Remaining warnings are being cleared incrementally.
- #3. < 100 silent skipsEarned0 silent skips — all 162 documented across 19 files. Commit `5ca0cb5c`.
- #4. Critical-path --strict (95% lines / 90% branches)Earnedapi-handler 91.7%, crypto 100%, audit 94.1%. Commit `46994c35`.
- #5. Mutation score > 85% on 3 critical filesPartialScope expanded from 3 to 8 files, all 8 now floored in scripts/critical-path-mutation-ratchet.cjs. crypto 96.55%, audit 89.66%, statistics 80.34%, rule-builder 58.17%, guardrail-dsl 49.35%, ml-classifier 45.69%, api-handler 44.89%, detection-engine 33.93%. 2 of 8 clear the 85% bar; each floor raises as the file improves (ADR-0031).
- #6. SOC 2 third-party attestationBlockedEvidence engine live + gap analysis done; audit process begins Q4 2026 (see /trust/compliance). See `docs/soc2-starter-pack.md`. Not certified, not under audit.
- #7. External synthetic uptime checksEarnedHourly cron in `.github/workflows/synth-check.yml` probing 3 production endpoints from GitHub-hosted runners; staleness is CI-gated by `scripts/synth-check-freshness.cjs`. Run history is grant-gated (the monorepo is private), not public.
- #8. Sustained weekly blog cadence (12 posts)CalendarVolume bar earned (12/12). The sustained-cadence half is passive accrual and is not claimed as earned.
- #9. 3+ OSS packages with downloadsEarned4 client packages public on npm — @evalguard/sdk, @evalguard/openai, @evalguard/anthropic, @evalguard/otel-sdk. 444 combined downloads in the week measured 2026-07-02; check api.npmjs.org for today's figure.
- #10. Public head-to-head benchmarksEarned3 reproducible benchmarks: firewall-latency (request-path p95=3.67ms), firewall-detection-quality (100%/100%/100% on 200-prompt corpus, doubled + sourdough FP closed 2026-05-06), NeMo Guardrails head-to-head (self-run, script published). Commit 8637e975.
- #11. OpenAPI spec — 100% public-route coverageEarned437 documented, 0 missing (100% coverage). 218 allowlisted (internal admin/health/control-plane). 715 OpenAPI operations across 437 paths.
- #12. 12+ engineering blog postsEarned12 published. /blog index.
- #13. 30+ ADRs in repoEarned38 ADRs. `docs/adr/`. ADR-0001 through ADR-0038.
- #14. SBOM + security.txt + vulnerability disclosureEarnedDaily syft + grype CycloneDX SBOM. RFC 9116 security.txt. Public disclosure policy.
The numbers
The numbers
scripts/list-ci-gates.cjs — 21 ratchets + 71 hard invariantsdocs/adr/registry.npmjs.org — @evalguard/{sdk,openai,anthropic,otel-sdk}api.npmjs.org — re-check for today's numberapps/web/public/openapi.json — 715 operations / 437 paths; 218 allowlisted internal routesscripts/.mutation-score-baseline.jsonpackages/core/src/counts.ts — FEATURE_COUNTS.firewallP95Ms, gate-bound to apps/web/src/app/trust/latency/data.jsoncleared incrementally, never re-baselinedscripts/.skip-baseline.json/blogClaims with receipts
Claims with receipts
Customer audits ask specific questions. Here are 8 of them with our specific answers and the file you can read to verify.
Honest gaps
What we don't yet have
Honest gaps. Each is being addressed; none are being hidden.
- api-handler.ts mutation score: 44.89% — the load-bearing API middleware has high line + branch coverage (97.1% / 91.7%) but mutation testing reveals 275 surviving mutants, mostly StringLiteral mutations on log messages and switch-case branch labels. Multi-day work to close. Tracked in scripts/.mutation-score-baseline.json.
- Detection corpus is only 200 prompts — recall/precision/F1 are 100% on our committed 200-prompt corpus (100 attacks across 7 categories, 100 benign), but 100% on a small self-assembled corpus is a weaker signal than a mid-90s score on a large public one. Expansion to 500+ via AdvBench / HarmBench / AISafetyLab is the open work item.
- SOC 2 third-party attestation — gap analysis + control-to-TSC mapping done (leaning Drata), in docs/soc2-starter-pack.md, and the evidence engine is live; the audit process begins Q4 2026 (see /trust/compliance). We do not describe EvalGuard as SOC 2 compliant until an auditor has signed the report.
- External pentest — none commissioned yet. Planned post-Type-1 attestation using a HackerOne or Big-4 firm.
- Lint warnings: 288 remaining — down from 825 (-65%), cleared incrementally without re-baselining. Multi-session per-file work to reach zero. Tracked in P1.2 task.
Sources of truth
Sources of truth
docs/defensibility-roadmap.md — the 14-criterion scoreboard, updated each round.
docs/adr/ — 38 ADRs covering BYOK encryption, cross-tenant defense, audit signing, ratchet discipline, etc.
.github/workflows/ci.yml — 92 active CI regression gates (21 ratchets), each with deliberate-break verification (per ADR-0028). Reproduce with node scripts/list-ci-gates.cjs.
benchmarks/ — public benchmarks with reproducible measurement scripts.
docs/soc2-starter-pack.md — SOC 2 Type 1 calendar, vendor comparison, control map.
Synthetic uptime probe history — hourly Actions probe of 3 production endpoints, run from outside our infra. History readable with a monorepo read grant.
/blog — 12 engineering blog posts covering audit + ratchets + security postmortems.
Found a discrepancy between this page and the underlying receipt? security@evalguard.ai — we'd rather correct it than leave it.
On the superlative
On “world's best engineering”
We use a 14-criterion scoreboard rather than a marketing superlative because superlatives can't be verified. A “world's best” claim is worth what its receipts are worth. The number above (9 of 14 earned) is honest — externally checkable from this repo. We'd rather earn the claim line by line than assert it.