vUnreleased
Added
- ▸Every benchmark measurement records the enforce lane beside its headline. A measurement's
metrics.recallis thehuntlane (the engine default, every maturity). Each runner the weekly measurement calls now also runs the same samples through its own detection loop on an engine constructed withlane: 'enforce'(onlymaturity: stablerules, the lane for blocking) and records the result asbreakdown.enforce_lane. Where a measurement records it, README's Recall cell cites both lanes and rootstats.jsoncites the enforce figure asenforceLaneRecall;scripts/check-benchmark-citations.tsfails CI when either disagrees with the measurement or leaves the enforce figure out. Before this, the enforce figures in README were one-off replays. - ▸Recall figures outside README are rendered from the measurement files.
scripts/render-recall-citations.tsfills the figures between recall markers inLIMITATIONS.mdand thedocs/owasp-pr/texts, from the file each source'slatest.jsonpoints at, in both lanes (every rendering is held to the rule README's table is checked by).scripts/sync-citation-garak.tsgenerates the garak sentence inCITATION.cfffrom rootstats.json, with both lanes and the closed-book caveat. The weekly measurement run re-renders and stages both and lists what it could not render in the rolling PR's body; CI (eval.yml) fails on a stale or unrenderable figure. - ▸`scripts/bench-evaluate-latency.ts` times single `ATREngine.evaluate()` calls in the hunt and enforce lanes on three committed corpora of different input length, so the latency wording in LIMITATIONS.md and THREAT-MODEL.md can be checked on any hardware. The
latency_msblocks indata/measurements/time whole corpus samples (several event shapes, a skill scan and, when installed, an embedding pass) inside a full benchmark run, and are not comparable.
Changed
- ▸Every recall figure the site, LIMITATIONS.md, CITATION.cff and the docs above take from the measurement files now names its lane and gives the enforce figure wherever the measurement records one. Figures no measurement file records are labelled instead: the about page's historical garak figure as taken with every rule loaded, the neutral-benchmarks post's runs as having no recorded lane. The website reads
breakdown.enforce_lanefrom the measurement files (home, coverage, research, red-team, garak integration, ATD and sovereign-AI pages, the PINT blog post); it no longer reads recall from the old eval report files or their typed fallbacks, and no longer hydrates recall in the browser. The garak figures carry the closed-book caveat, and so now do the PINT-format and HackAPrompt figures, which have rules mined from them too. The SKILL.md benchmark is described as the internal, labelled corpus it is, with the harness's layer names. An erratum (e-2026-10-16-recall-lanes) records the change on the site. - ▸
sync-stats.tsnow fails when CITATION.cff has no garak sentence to rewrite, instead of leaving an old figure in place. - ▸README §8 discloses that the `garak` and `garak-full` figures are partly closed-book. A replay without the rules whose own YAML shows they were written from the in-the-wild corpus is given in the new
[^garakcorpus]footnote, and the paragraph on the twogarakrows no longer calls them independent:garak-fullcontains that corpus twice. - ▸
data/stats.jsonno longer carries the orphanedbenchmark.pintRecallblock, a 3.5.11 figure nothing has written since #600 and nothing reads.
Fixed
- ▸NIST-related statements corrected across the docs and the website. Pages described a NIST CAISI dialogue and position paper that did not happen, an RFI response ATR never filed, an OSCAL "Path 1" acceptance, and a quote NIST never published; they listed NIST among adopters and in a trust bar, and showed "100%" or "4/4 functions" for an AI RMF mapping that covers a subset of subcategories. usnistgov/oscal-content#338 is described as what it is: open, reworked against NIST's AI RMF catalog, awaiting NIST review. The website changelog page now shows the notes on historical entries, which it used to drop.
- ▸Integration status, provenance, evasion and latency claims corrected. The red-team page listed seven proposals as under review that their ATR author had withdrawn unmerged (NVIDIA/garak#1676 on 2026-08-04; HarmBench, AgentDojo, JailbreakBench, Counterfit, PromptInject and Damn Vulnerable MCP Server on 2026-10-14 and 15, six of them never answered). They are removed, along with the lapsed "On deck" schedule, and the garak, sovereign-AI, responsible-use, integrate and STANDARDIZATION-STATUS surfaces no longer call the garak integration or any OWASP PR open. The garak page and the contributor docs (QUALITY-GATE.md, TSC-ONBOARDING.md, REVIEWER-GUIDE.md, RULE-PRODUCTION.md, the issue-to-proposal PR text) no longer describe auto-merge, which has been off since 2026-06-03. The red-team and governance pages no longer promise a
metadata_provenance.discovered_byfield no rule has, and the home, red-team, about and quality-standard pages no longer credit daily auto-crystallization for growth that came from CVE sweeps, benchmark-miss mining and contributors. The sovereign-AI page no longer says ATR detects intent and cannot be evaded; LIMITATIONS.md and the responsible-use, integrate and research pages no longer say every rule carries evasion tests or that there are 64; LIMITATIONS.md and THREAT-MODEL.md now agree that the optional judge and embedding modules ship but are off by default. "Sub-millisecond", "< 5ms", "5ms pattern match" and "Done in 47ms" are replaced by how evaluation cost scales; the OpenShell example is marked as a sketch of a proposal OpenShell closed, and its timeouts now exceed a one-shot cold start. CITATION.cff no longer calls the rules hand-authored and says what the safety gate checks for added and changed rules; the OWASP PR text drops its 76-rule count and notes the PR was withdrawn. Erratae-2026-10-16-integration-status,e-2026-10-16-evasion,e-2026-10-16-latencyande-2026-10-16-provenancerecord the site changes.