Scope shows where PolicyCodex runs; History shows what it’s found over time — one row per batch of violations identified or resolved, drawn from the same audit trail that backs the hash chain.
Reporting → History with the period filter and a single-row table of violation events

Reading a row

A found row doesn’t mean things got worse relative to the last row — every check that finds anything produces one, including the very first check a repository ever reports. Read the sequence for a repository, not any single row in isolation.

Why resolutions appear separately

A violation isn’t dismissed by editing a database row; it’s superseded by the next clean run in the same scope (repo + pr_number). That’s the same rule the REST API and the GitHub Action rely on: post a passing check for a scope that had open violations, and PolicyCodex resolves them for you and logs it here.

Filtering the window

Uses the same Day / Week / Month / All time filter as every other Reporting page. Set to “All time” to see the full lifetime of a repository’s compliance record; set to “Week” to review what actually happened since standup Monday.