Skip to content

docs(scanner): PR-16 benchmark prep — labeling sheets over 8 public repos#56

Merged
emmanuelgjr merged 1 commit into
mainfrom
improve/pr-16a-benchmark-prep
Jul 18, 2026
Merged

docs(scanner): PR-16 benchmark prep — labeling sheets over 8 public repos#56
emmanuelgjr merged 1 commit into
mainfrom
improve/pr-16a-benchmark-prep

Conversation

@emmanuelgjr

Copy link
Copy Markdown
Contributor

What

Ground-truth labeling prep for the scanner benchmark. Eight permissively-licensed public GenAI repos (LangChain/LlamaIndex example apps, production agents, Semantic Kernel) were scanned at pinned SHAs with the deterministic CLI only (CVE stage enabled), and the raw findings were laid out as human-labeling sheets. Docs/data only — no code, rules, or schema changes.

Contents

  • benchmark/METHODOLOGY.md — corpus (repos + SHAs + licenses + counts), scanner 0.3.0 / ruleset 0.3.0, exact commands, and the TP/FP labeling rubric. Flags high-volume rules to spot-check (P04.7 ~1253× on npm-lockfile integrity hashes; P03.1 ~2613× on crewAI doc/test endpoints) and recommends stratified sampling for the large repos.
  • benchmark/labeling-sheets/<repo>.csv — one row per public finding: rule_id, path, line, status, confidence + empty human_verdict, notes for the labeler.
  • benchmark/missed-candidates.md — suspected false negatives with evidence (TypeScript / C# / notebook coverage gaps).

Responsible disclosure

8 value-bearing FAIL findings (potential live secrets) are redacted and held in benchmark/SENSITIVE-holdback.md, which is gitignored and NOT part of this PR — for maintainer review before any disclosure. Verified: the holdback file is not in the tree, and no secret-shaped values appear in any committed sheet.

Deliberately out of scope

No precision/recall numbers computed yet (that's the labeling step, a maintainer task). No rules modified. Draft PR #44 untouched.

Note

Everything under benchmark/ is untrusted third-party content — it was only ever grepped, never executed.

Scanned 8 permissively-licensed public GenAI repos (LangChain/LlamaIndex example
apps + production agents + Semantic Kernel) at pinned SHAs with the deterministic
CLI only, CVE stage enabled. Untrusted content — the CLI only greps.

- benchmark/METHODOLOGY.md: corpus (repos + SHAs + licenses + counts), scanner
  0.3.0 / ruleset 0.3.0, exact commands, and the labeling rubric (TP/FP per rule
  class incl. absence-based low-confidence handling). Flags high-volume rules to
  spot-check (P04.7 ~1253x on npm lockfile integrity hashes; P03.1 ~2613x on
  crewAI doc/test endpoints) and recommends stratified sampling for large repos.
- benchmark/labeling-sheets/<repo>.csv: one row per public finding
  (rule_id, path, line, status, confidence, empty human_verdict + notes).
- benchmark/missed-candidates.md: suspected false negatives with evidence —
  TypeScript/C#/notebook coverage gaps (patterns are Python-shaped).
- Responsible disclosure: 8 value-bearing FAIL findings (potential secrets,
  values redacted) are held in benchmark/SENSITIVE-holdback.md, which is
  GITIGNORED and NOT committed — for maintainer review before any disclosure.

No precision numbers computed; no rules modified; draft PR #44 untouched.
@emmanuelgjr
emmanuelgjr merged commit 2aa707a into main Jul 18, 2026
9 checks passed
@emmanuelgjr
emmanuelgjr deleted the improve/pr-16a-benchmark-prep branch July 18, 2026 22:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant