Skip to main content

Invariant decision matrix

An invariant connects evidence to an approved or rejected ecosystem choice. The normalized model can relate a package category, approved package, banned package, runtime, optional framework package, severity, reason, replacement example, and migration URL. Approved and banned packages must not be the same record.

Evidence fields

The stable matrix is keyed by language and invariant identity. Evidence can include runtime, lockfile, manifest paths, and package-manager identity. The Rust invariant endpoint evaluates that evidence and returns structured diagnostics; it does not accept a client-supplied compliant shortcut.

Supported severity values are info, warning, error, and critical. Reasons explain the policy, replacement examples show an approved direction, and migration URLs point to supporting material when an authoritative record exists.

The catalog covers exactly 25 language identities, but the current checked-out fixture uses synthetic identifiers such as package-<slug> and package-alt-<slug>. Those are fixture examples, not real banned libraries or recommended migrations. This page intentionally publishes no concrete package policy or migration recipe until a validated checked-in registry export provides one.