Skip to content

Dropping detail from the snippet baseline key disarms the ratchet on REUSED_SNIPPET #291

Description

@realmarcin

Found reviewing #290.

REUSED_SNIPPET is the one aggregate finding this audit emits. Its locator is {graph_id}:* with no index, and its magnitude lives entirely in detail"3 evidence items share one snippet: 'virulence factors'".

So dropping detail from _key costs nothing on the index problem #270 was about, and loses the only thing separating bad from worse:

baseline:  animal_pathogen_metazoan_adaptation:*  "3 evidence items share one snippet: …"
after:     animal_pathogen_metazoan_adaptation:*  "9 evidence items share one snippet: …"

Same key, occurrence count still 1, so 1 > 1 is false and it passes. On main the full-detail key flips and fails. All 13 baselined REUSED_SNIPPET rows are exposed; gc_content.yaml is already at 5 and could reach 50 unnoticed.

scripts/audit_causal_graphs.py hit this and reversed it, and its comment is explicit: detail must lead with the component count, because keying on the leading token is what discriminates magnitude — leading with the node count instead "made the ratchet fail open in both directions".

Note the naive repair does not work here either: putting the count back in the key means 3 → 2, an improvement, creates an unbaselined key and fails. Magnitude has to be ratcheted as a value, not carried as identity.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions