Finding triage

Route findings without inventing exceptions.

Locate the model fact, apply the fixed precedence, then check whether its provenance has enough authority to close.

First match wins

Canonical disposition order

  1. KNOWN-NON-FINDING Exact, previously documented false positive
  2. OUT-OF-MODEL: unsupported-component Affected component is explicitly outside supported scope
  3. OUT-OF-MODEL: non-default-build Finding requires an unsupported or discouraged build
  4. OUT-OF-MODEL: dependency-contract Root cause violates a documented dependency contract
  5. OUT-OF-MODEL: trusted-input Finding requires control of an operand the model trusts
  6. OUT-OF-MODEL: adversary-not-in-scope Required adversary capability is explicitly excluded
  7. BY-DESIGN: property-disclaimed Finding concerns a property the project explicitly disclaims
  8. VALID Finding violates a security property the project claims
  9. VALID-HARDENING Useful defense-in-depth without a claimed-property violation
  10. MODEL-GAP No existing disposition is licensed by the model
Interactive explainer

See how authority changes the outcome.

This illustrates the policy. Real triage must cite the exact licensing fact in the project’s model.

Apply the model’s precedence before selecting a route.
Illustrative result

MODEL-GAP

open

No existing disposition is licensed. Keep the finding open and revise the model.

## Before assigning a disposition 1. Locate the sink and affected component. 2. Identify the relevant input operand or output promise. 3. Check attacker capability, required build flags, and dependency boundaries. 4. Find the claimed or disclaimed property that actually governs the symptom. 5. Apply the precedence above and cite the licensing model section. 6. Check provenance before closing. An escalated finding keeps its identified disposition, but routes to a maintainer instead of closing. `MODEL-GAP` means the model itself needs revision; it is not a convenient fallback for difficult reports.