Repository navigation
README accuracy: AVE coverage gap, telemetry, sync tooling, doc drift #79
Description
Tracking issue for follow-ups surfaced during a README accuracy pass (see linked PR).
1. Detection rule coverage gap
This scanner has detection rules for AVE-2026-00001 through AVE-2026-00051 (51 records).
The published AVE corpus (https://raw.githubusercontent.com/aveproject/ave/main/dist/ave-records-latest.json)
currently has 80 records, AVE-2026-00001 through AVE-2026-00080. That leaves
AVE-2026-00052 through AVE-2026-00080 (29 records) with no rule in this repo.
Suggested batching (cheapest/most detectable first): config-literal detectable records
(TLS verify off, unpinned dependency, DOCKER_HOST redirect, bind-all-interfaces, endpoint
redirect, auto-run config, approval-gate bypass), then injection/traversal patterns, then
records needing Semgrep/YARA structural context, then multi-component records that likely
need new scanner/core/toxic_flows/flows.py chain definitions rather than single rules
(fragment reassembly, consensus poisoning, agent substitution have no single-line
signature).
2. Per-scan LLM/inference usage telemetry
The scanner does not currently report per-scan LLM token usage or cost. At least one
competitor (NVIDIA SkillSpector) exposes this via metadata.inference_usage. Worth
scoping for the LLM engine and any future multi-engine telemetry work.
3. scripts/sync_record_counts.py
The README badge and AVE record counts are currently hand-maintained against the live
AVE corpus. A script that regenerates them from
https://raw.githubusercontent.com/aveproject/ave/main/dist/ave-records-latest.json
would remove that drift surface. Does not exist yet.
4. Stale schema_version comment
scanner/ave_meta.py docstring says "Source: Piranha DB AVE records, schema_version
1.0.0, last synced 2026-06-21." The live AVE schema is 1.1.0. This is a comment, not an
assertion the code enforces, so it is not a functional bug, but it should be corrected
or removed so it stops citing a superseded version.
5. confidence_baseline possibly sourceable from the AVE corpus
The scanner states finding confidence "starts from the AVE-class baseline." Worth
checking whether scanner/ave_meta.py's hardcoded baseline table could instead be
sourced from the AVE corpus's own confidence_baseline field per record, removing a
drift surface. See scanner/core/fp_pipeline.py for where this is consumed.
Not tracked here (explicitly out of scope)
- The PiranhaDB (
api.piranha.bawbel.io) vsapi.aveproject.orgquestion. The scanner
code hardcodesapi.piranha.bawbel.ioas thepiranha_urlvalue in multiple engine
files; the README was intentionally left matching that actual runtime output rather
than swapping to an unverified host. Whether PiranhaDB is retired/replaced or split
from the neutral AVE reference API needs a maintainer decision before any host swap. PIRANHA_API_URL/BAWBEL_PIRANHA_URLnaming:PROJECT_STRUCTURE.mddocuments
PIRANHA_API_URLin.env.example, but that var is not actually present in
.env.example, and the code (scanner/suppression/justified.py) reads
BAWBEL_PIRANHA_URLinstead. Config/docs drift, not a README wording issue.- Sandbox image pin
bawbel/sandbox:1.2.3in the README: no code reference confirms
whether this is an intentionally independent version or stale. Left unchanged,
flagged VERIFY in the PR. - Cross-repo status contradictions between
bawbel-gateandARCHITECTURE.md(Phase 8
of the originating task spec). Separate, higher-severity issue; not a README fix.
Activity
chaksaray commentedon Oct 11, 2026
Correction to section 1: coverage was overstated
Re-measured on 2026-10-11. Section 1 says this scanner has rules for AVE-2026-00001 through 00051. It does not. The earlier count came from a grep over
scanner/rules/, which misses the pattern engine (scanner/engines/pattern_engine.py) and Magika, and it mixed up "has metadata inscanner/ave_meta.py" (51 records) with "has a detection rule" (43 records).scanner/ave_meta.pybut no rule.static_detectionrecords, which are the scanner's backlog. The other 17 are runtime-stage records that static analysis cannot detect. They belong to runtime enforcement and the sandbox, not to pattern rules.Reproduce
Run from the repo root:
curl -sL https://raw.githubusercontent.com/aveproject/ave/main/dist/ave-records-latest.json -o /tmp/ave.json python3 -I measure.py /tmp/ave.json "$PWD" --listmeasure.py:Uncovered records (44), static first
Titles are copied from the corpus, with em dashes replaced by hyphens.
Also found during the re-measure
api.piranha.bawbel.iono longer resolves (NXDOMAIN), yet every engine still emits it as thepiranha_urlvalue.https://api.aveproject.org/records/<id>returns 200 for 00001 through 00087. So "Not tracked here" below is now a live defect, not an open question. Fixing it is a code change: thepiranha_urlfield name stays, only the value changes. The README sample output should change in the same PR.bawbel/scanner1.2.3 images.latestis the same digest as1.2.3, andfullmatches1.2.3-full..pre-commit-hooks.yaml.bawbel/integrationshas one onmain, but none of its tags (v1,v1.0.1,v1.1.0) include it. docs: correct README record counts, schema version, links, competitive claims #80 now documents a testedrepo: localhook instead.docs: re-measure AVE coverage, fix tagline, CI and pre-commit snippets