Kanon
Guides

Trust and verification

The trust system is how Kanon distinguishes between what's proven and what's inferred. Every claim about your product carries a trust status, and the UI makes the distinction visible.

Trust statuses

Verified ✅

A verified claim is grounded in both code AND a passing test. The scan found a test that exercises the behavior the claim describes, and that test passed in the most recent CI run.

Verified claims carry a green badge and show their test evidence (test file, last passed date).

Asserted 🟡

An asserted claim is extracted from code but has no linked test. The claim is likely true — it describes what the code does — but nothing proves the behavior is exercised end-to-end.

Asserted claims carry an amber badge. They're honest: "inferred from code — no test exercises this."

Drifted ⚠️

A drifted claim was previously verified, but the linked test no longer passes or the code changed. The claim may be stale.

Drifted claims carry a triangle badge and show the drift reason. They need investigation: re-run the test, update the claim, or mark it as tech debt.

How verification works

  1. CI integration/kanon:setup-ci wires your test runner to report results to Kanon
  2. Test mapping — each passing test is matched to the claims its code path exercises
  3. Trust update — verified claims stay verified as long as their test passes. If the test fails or is deleted, the claim drifts.

Coverage metrics

The knowledge base overview shows coverage as three numbers:

  • Verified % — claims backed by passing tests
  • Asserted % — claims with no test
  • Drifted % — claims whose tests no longer pass

A feature with high verified coverage is well-tested. A feature with high asserted coverage is documented but needs tests.

Design principles

  • Asserted, never "unverified." The inferred state is always "asserted" — the code says this behavior exists. It is NOT "unverified" because that implies doubt. The behavior IS in the code; what's missing is the test.
  • A role is NOT a trust state. Access control roles (admin/member/viewer) are about who may act. Trust statuses are about what is proven. The two never mix visually: trust wears green/amber/triangle, roles wear neutral colors.
  • Visible honesty over silent confidence. Uncited paragraphs in the guide are rendered at lower opacity. An empty test-evidence section says "no test exercises this" rather than hiding the gap.

On this page