The check is default-on, warning, verify stage. It walks every active KnownIssue (open / reviewed, plus a blank status). A KI whose status is fixed or withdrawn leaves the active set, so it is never flagged. Load failure is a fail. Zero active KnownIssues is a pass that inspected nothing.
Security-relevant is two independent limbs. Limb one: cve_surface is possible, likely, or confirmed. Limb two: the naming and classification fields match a security token. The tokens are ssrf, exfil, credential, auth-override, idor, cross-tenant, secret. The haystack is id, title, risk, and defect_class, lowercased, with underscores and spaces folded to hyphens. Description is not in the haystack. A sentence that reasons the finding is not SSRF still uses the word, and matching that sentence taught authors to stop writing the assessment. The hop reads the name, not the argument.
id: KI-S1
title: Unauthenticated SSRF via webhook URL
status: open
severity: medium
cve_surface: none
Known issue complete
requires a mitigation or remediation only on a high-stakes KI: high or critical severity, or a non-none cve_surface. KI-S1 is medium, cve_surface: none, and still named SSRF. Completeness stays green. The suite can stay green. The YAML can sit in .proof/known-issues/ with a security claim and no recorded containment. That is the silent security-named case.
proof known-issue edit KI-S1 --remediation "block the webhook host allow-list"
proof audit --check known_issue_security_remediation_present
Either field clears the hop: a non-empty remediation, or a non-empty mitigation, after trim. A reviewer-stamped remediation_exemption also clears it. Stamped means both reviewer and rationale are non-empty. An anonymous note is not a waiver. A whitespace-only field is empty. Filing the KI as fixed to silence a still-open security claim is not a close. Deleting the YAML also silences the hop. It destroys the finding rather than documenting how it is held.