llm-security-commons/conformance
Kjell Tore Guttormsen bdcb1f1080 feat(conformance): ship the six active-content cases; the id space already existed
The corpus goes 83 -> 89 and scope_covered gains signatures/active-content.json.

The blocker in STATE dissolved under measurement, the same way last session's
13-pattern one did. "An id space for carriers/active-content/secret-egress" was one
question in name only; the three tables have three unrelated problems:

- active-content needed NO id space invented. label_format ("active:{class}") and the
  constructs keys were already extracted verbatim from the seed runtime, and their
  concatenation IS what it emits - verified by comparing the six keys to the six class
  strings at its _flag call sites. What blocked these cases was never naming; it was
  spec section 1, fixed in the parent commit.
- carriers has no adoptable id space AND an entry-point dependence underneath it.
- secret-egress is not an id question at all: the two runtimes carry DIFFERENT tables.
  18 entries here against the guard's 25, cut at different granularities - this file's
  single `GitHub Token` is four ids there, `Private Key PEM Block` three, `Database
  connection string` four - with membership diverging both ways. `aws-access-key-id`
  is the one clean 1:1, which is why exactly one egress case was ever offered. That
  number was a symptom, not modesty.

Both blockers are now recorded under scope_planned.blockers, measured, replacing a
blanket "no runtime has agreed to an id space" that was wrong for both.

Generated from measurement, not written. Payloads were extracted from the seed
runtime's coverage.py by AST - evaluating each _scan_case argument in that module's
own namespace rather than retyping detection data - then run through its public
output gate, the same entry point the 83 lexicon cases used. The fixtures were then
re-read from disk by a separate checker that re-computed every digest, re-scanned the
bytes and applied exact-within-scope independently of the generator: 6 cases, 0
failed checks.

Six built from seven offered. The runtime's matrix drives two payloads at
`active:markdown-image`; measured, their in-scope finding sets are identical, and the
second's only distinguishing signal (entropy:base64-blob) falls outside every table
this repository publishes. Dropped rather than given a discriminated case id, and
named under omitted_payloads so the count reads as a decision.

These six prove LESS than the 83, and the manifest says so: their payloads come from
the only runtime implementing the table, so no second implementation's agreement
could be measured. They pin one runtime's behaviour as a contract a future
implementer can be held to - less than cross-runtime agreement, more than nothing.

llm-security's absence of the table is measured at b0de0ca, not assumed: a tree-wide
search finds no implementation, and `git log -S` over --all returns zero commits,
closing the "it was there once" reading. Absent table is not absent capability -
their entropy scanner reaches markdown-image URLs by another route - and the manifest
says that too.

Provenance and measurement for the active-content half are kept in their own blocks:
a different source structure at a different commit, and one pin must not stand for
two measurements. The guard's HEAD moved twice during the work (3c56d50 -> de09711 ->
398eb74); measurement ran at de09711 and the drift is recorded, including that
active_content.py is NOT identical to the 0bf0729 the data file pins - the change
adds a scan-cap self-safety finding and touches no construct.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVouC9nsfrfV5jRSejxbvQ
2026-08-10 21:15:25 +02:00
..
active__autolink feat(conformance): ship the six active-content cases; the id space already existed 2026-08-10 21:15:25 +02:00
active__data-uri feat(conformance): ship the six active-content cases; the id space already existed 2026-08-10 21:15:25 +02:00
active__markdown-image feat(conformance): ship the six active-content cases; the id space already existed 2026-08-10 21:15:25 +02:00
active__markdown-link feat(conformance): ship the six active-content cases; the id space already existed 2026-08-10 21:15:25 +02:00
active__raw-html feat(conformance): ship the six active-content cases; the id space already existed 2026-08-10 21:15:25 +02:00
active__reference-link feat(conformance): ship the six active-content cases; the id space already existed 2026-08-10 21:15:25 +02:00
config__bypass-safety fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
config__disable-filtering fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
config__ignore-claudemd fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
config__override-system-prompt fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
data-uri__executable fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
evasion__academic-context fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
evasion__educational fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
evasion__fictional fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
evasion__hypothetical fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
evasion__red-team fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
evasion__research-purpose fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
evasion__security-audit-sim fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
evasion__test-pretense fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
evasion__thought-experiment fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hidden-comment__agent-directed fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hitl-trap__approve-immediately fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hitl-trap__brevity-skip fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hitl-trap__details-omitted fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hitl-trap__just-approve fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hitl-trap__no-need-review fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hitl-trap__scope-minimization fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hitl-trap__suppress-review fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hitl-trap__too-long fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
homoglyph__cyrillic-latin-mix fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
html-obfuscation__aria-label fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
html-obfuscation__display-none fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
html-obfuscation__offscreen fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
html-obfuscation__visibility-hidden fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
html-obfuscation__zero-font fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
html-obfuscation__zero-opacity fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
html-obfuscation__zero-size-overflow fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hybrid-p2sql__inject-sql fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hybrid-p2sql__sql-inject fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hybrid-recursive__conditional-response fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hybrid-recursive__inject-output fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hybrid-xss__event-handler fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hybrid-xss__iframe-src fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hybrid-xss__javascript-uri fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
hybrid-xss__script-tag fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
identity__new-directive fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
identity__new-role fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
identity__no-longer fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
identity__pretend fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
identity__you-are-now fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
indirect__direct-address fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
indirect__instruction-to-ai fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
indirect__trigger-based fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
leetspeak__disregard fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
leetspeak__forget-instructions fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
leetspeak__ignore-previous fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
leetspeak__override fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
markdown__link-anchor-injection fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
markdown__link-ref-comment fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
multi-lang__french fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
multi-lang__german fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
multi-lang__spanish fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
nl-indirection__download-execute fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
nl-indirection__extract-exfiltrate fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
nl-indirection__fetch-execute fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
nl-indirection__read-dotfile fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
nl-indirection__send-external fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
normalization__claudemd-conflict fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
normalization__prioritize-user fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
normalization__skip-confirmation fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
normalization__user-precedence fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
override__disregard fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
override__forget-instructions fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
override__ignore-previous fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
override__override-instructions fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
override__prior-constraints fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
override__suspend-constraints fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
reframing__actual-task fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
reframing__real-purpose fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
reframing__should-actually-do fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
spoofed-header__hash-system fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
spoofed-header__inst fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
spoofed-header__instructions fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
spoofed-header__pipe-system fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
spoofed-tag__system-close fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
spoofed-tag__system-open fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
sub-agent__delegate-bypass fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
sub-agent__spawn-dangerous fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
unicode__zero-width-in-word fix(conformance): name the fixture field pattern_id, not id — the schema already owns that word 2026-08-10 04:44:59 +02:00
manifest.json feat(conformance): ship the six active-content cases; the id space already existed 2026-08-10 21:15:25 +02:00