You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 323a2cf
Browse filesBrowse the repository at this point in the historyBrowse files
## Summary
Wave 0 item from the standards ultraplan
(`docs/ULTRAPLAN-KAUTZ-LADDER-2026-10-19.adoc`): one PA-number table
plus a drift test.
Before this change the repo had three PA-number schemes that disagreed:
- **SARIF / storage table** (`report::sarif::rule_id`). This is the
published scheme, with UnsafeCode = PA004.
- **Private `aggregate::category_code`**. It had UnsafeCode → PA001 and
PanicPath → PA006, and mapped only 14 of 30 categories.
- **Doc and fixture comments**: "UnsafeCode (PA001)" and
"UnboundedAllocation (PA015)".
The effect: an aggregate coverage spec `sound:rule:PA004` never matched
UnsafeCode findings, even though SARIF labels those findings PA004.
## Changes
- `WeakPointCategory::rule_id()` (a `const fn`) is now the only table.
`WeakPointCategory::ALL` lists all 30 variants in ID order.
- `report::sarif::rule_id` delegates to it. The storage hexads already
called sarif, so they follow automatically.
- `aggregate::category_code` is deleted. `CoverageKind::RuleId` now
matches against the canonical IDs.
- New tests:
- An exhaustive-match ordinal check that `ALL` lists every variant once
and in order. Adding a variant without listing it fails to compile or
fails the test.
- A uniqueness check on the IDs.
- A golden array pinning all 30 IDs, so renumbering a public ID is a
visible test edit.
- An aggregate test that every category is covered by `rule:<its own
id>` and agrees with SARIF.
- Comment fixes in `tests/aggregate_proof_fixture.rs`,
`tests/fixtures/proofs/UnsafeCodeSoundness.idr` and
`tests/unbounded_corpus.rs`.
## Behaviour change
Aggregate `rule:PA00x` coverage specs written against the old private
scheme now resolve to the canonical (SARIF) IDs. Inside this repo, only
the tests reference those specs.
## Validation
- `cargo test --lib`: 413 passed. The integration suites pass too,
except as noted below.
- `cargo clippy --all-targets`: no new findings in the touched files.
- `cargo fmt --check`: the touched hunks are clean. The rest of the repo
already has fmt drift on `main` (161 hunks), which this PR leaves alone.
- **Pre-existing, not from this PR:** `tests/readiness.rs`
`readiness_c_diagnostics_output` and `readiness_d_diagnostics_runs` fail
identically on `main` ("self-diagnostics reported issues"). The `unused
import anyhow` warning in `src/scan/cargodeny.rs` and the `safe_path.rs`
dead-code warnings are also on `main`.
## Out of scope (flag-only follow-ups, other repos)
- A fourth historical scheme is in
`docs/campaigns/2026-05-26/01-triage.adoc`. It is a dated record, so it
is left as-is.
- `gitbot-fleet/scripts/fix-*.sh` (for example `fix-unbounded-loop.sh`
and `fix-unchecked-error.sh`) and the Hypatia PA001–PA020 patterns use
PA numbers that should be checked against this table.
---
_Generated by [Claude
Code](https://claude.ai/code/session_01PpQVLrCbURpoXtrdvy8V3B)_
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
0 commit comments