All live tools / PHA Operations
PHA Operations Available

Contradiction Registry

Every place two real regulatory sources disagree about the same PHA determination in this product today — read live from the governed rules registry, each one cited, resolved, and dated.

Working a real case — the same registry gates every determination in the signed-in workspace; a conflict recorded here is enforced there, not just displayed here. Open the PHA workspace →
—real conflicts on file
—resolved
—live & disclosed
Run the demo
Talk to sales →

This is a scoped, provable count — not a marketing figure. It lists only conflicts a PHA using this product actually encounters: two real regulatory sources bearing on the same determination, where the registry records what each source asserts, which one governs, and why. A prior draft playbook claimed "112 contradictions" for a national registry; that figure was never substantiated against this codebase and is not repeated here. What follows is enumerated from rules/*.json — the exact same file npm run rules-check validates before every release — so this page's count cannot drift from the registry's.

Loading the registry…

How a conflict enters this registry
  • Every entry in rules/*.json may carry a conflicts[] array. An empty array means no recorded conflict; this page only ever shows entries where that array is non-empty.
  • npm run rules-check fails the build if a conflicts[] entry has no status, no asserts statement, or — for a live-but-conflicting status — no resolution. An unowned conflict cannot ship silently.
  • npm run contradiction-registry-check (added alongside this page) re-derives the exact list this UI renders from rules/*.json and fails if the UI's rendering logic and the registry's data ever diverge — the two are checked independently so neither can silently drift from the other.
  • Status vocabulary: resolved-superseded (a later authority rescinded or replaced the conflicting source), resolved-precedence (both sources remain technically live, but one controls by rule of law — e.g. a codified regulation over a notice — or by deliberate, disclosed product policy), live-but-conflicting (both sources remain in force and neither has been withdrawn; the registry states which one this product applies and discloses the other to the reviewer), open-flagged-for-reviewer (recorded but not yet resolved).
What this demo shows. It renders the live conflicts[] data already shipped in rules/*.json for every domain this product ships (HAP, HOTMA, inspections, payment standards, portability, rent reasonableness, LIHTC). It does not compute a new determination and it does not add conflicts of its own — the registry is the single source of truth, and this page is a read-only view onto it. See PR #167 for the disposition/citation-pinpoint schema this data is built on.