Squashed 'scanners/commons/' changes from 0ffee85..532d70d

532d70d release(0.2.0): the contract gained a MUST, so the tag has to move
946f51d fix(active-content,conformance): cite line numbers per commit — they do not resolve at the pin
bdcb1f1 feat(conformance): ship the six active-content cases; the id space already existed
807c0d4 feat(spec): add not-applicable, so a single-runtime table stops reading as 7 defects
a1578e6 fix(conformance): record the guard's internal-surface position on _LEX_PAYLOADS
4d351d2 fix(mapping): state that three of four OWASP maps have no production consumer
f082a91 fix(lexicon,docs): retract the claim that the guard's port cites severity.mjs

git-subtree-dir: scanners/commons
git-subtree-split: 532d70d5ed2f9b23a8efad760ef490356cf52ada
This commit is contained in:
Kjell Tore Guttormsen 2026-08-11 13:02:33 +02:00
commit 9b95fc607e
20 changed files with 533 additions and 37 deletions

View file

@ -166,12 +166,29 @@ differences in the table above are closed.
The part worth keeping is where the value lives. It is not a field. The engine assigns it by
pushing `HYBRID_PATTERNS` matches straight into the `high` bucket at
`injection-patterns.mjs:274-281`. The guard's port cites `severity.mjs` — a file that
contains **no injection-family severity at all**. So the guard held the right value behind a
citation that leads nowhere, and a reviewer following that citation to check the number would
have found nothing and drawn no conclusion. Refusing to copy it was the right call for a
reason better than the one given at the time: not merely that a port is second-hand, but that
this particular port could not have read what it claimed to.
`injection-patterns.mjs:274-281`. `severity.mjs` contains **no injection-family severity at
all** — re-measured 2026-08-10 at `b0de0ca`: `CRITICAL_PATTERNS`, `HIGH_PATTERNS`,
`MEDIUM_PATTERNS` and `HYBRID_PATTERNS` appear there zero times.
~~**The guard's port cites `severity.mjs`.** So the guard held the right value behind a
citation that leads nowhere, and refusing to copy it was right for a better reason than the
one given at the time: this particular port could not have read what it claimed to.~~
**Retracted 2026-08-10. The guard's port cites the right file.** This paragraph was never
measured here; it restated an assertion received from `llm-security`
(`20260809T201048Z`: *"Guardens port satte riktig verdi, men kunne ikke ha lest den fra fila
den oppgir"*) as a commons finding. Measured against the guard's own tree: `severity.mjs`
has **never** appeared in `src/llm_ingestion_guard/injection_lexicon.json` at any point in
that file's history (`git log -S` returns no commits), and at `0bf0729` — the commit
`conformance/manifest.json` pins — the only tree-wide occurrence is `docs/PLAN.md:114`,
correctly attributing the *report* module to `output.mjs` + `severity.mjs`. The guard's only
source statement for the lexicon is the `note` at `injection_lexicon.json:3`, and it names
`injection-patterns.mjs`.
Refusing to copy the value was still the right call — but for the plain reason, that a port
is second-hand evidence, not for the sharper one claimed above. The sharper reason was itself
a wrong citation to a right value, which is the defect this section was written to warn
about. It survived here because it arrived from a repository that had measured the *other*
half of the claim correctly, and the correct half carried the incorrect half past review.
## What this does not show