Skip to main content

ADR-0006: Evidence/Assertion model — confirmation never overwrites inference

Status: Accepted · 2026-07-14

Decision

Implements the handoff data model directly:
  • evidence — typed immutable observations (phrase hit, fingerprint match, label GUID, permission exposure, editor context, policy citation, human decision) with direction (+/−), weight, provenance kind, acquisition context, versions, and bitemporal times.
  • assertions — versioned claims (subject, predicate, object) with status (candidate|superseded|retracted), calibrated confidence, provenance kind (Observed|RuleDerived|ModelInferred|PolicyDerived|OwnerConfirmed| GovernanceValidated|RemediationVerified|Imported), evidence links, and release/ config references.
  • Owner decisions create new OwnerConfirmed/corrective assertions linked via confirms_assertion/corrects_assertion/rejects_assertion; the original model-inferred assertion is preserved (possibly superseded, never mutated) so model evaluation against human ground truth stays possible.
  • Distinct value states everywhere they matter: unlabeled, unknown, unsupported, inaccessible, partial, failed are separate enum values, not null-collapsed.

Consequences

  • The review queue, propagation, findings, Analyst, and audit all reference assertion/evidence IDs — answers are reproducible to exact versions.
  • Storage grows append-mostly; supersession pointers keep “current view” queries cheap via partial indexes on status='candidate'.