Skip to content

fix(audits): classify the two deliberate corpus-fixture sorrys - #489

Merged
hyperpolymath merged 2 commits into
mainfrom
claude/classify-corpus-fixture-sorry
Nov 10, 2026
Merged

hyperpolymath merged 2 commits into
mainfrom
claude/classify-corpus-fixture-sorry

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

The Static Analysis Gate fails in two different ways, depending on the branch.

  1. On PR branches behind main (for example docs(proofs): bring PROOF-STATUS up to PROOF-POLICY §1.2, §6 and §8 #474): panic-attack assail exits 2 with incomplete coverage (partial). Then deposit fails with "Incomplete scanner evidence". The branch still pins panic-attack 410a8f8, which predates panic-attack ci(server): server boot gate — convert 'compiles' into 'boots' #258. That version has no adapter for TOML, YAML, JSON, Containerfile, Justfile, HTML, CSS or Forth, so it marks 190 of echidna's 908 candidate files "unsupported". main already fixes this: it pins f2a6a70, which includes ci(server): server boot gate — convert 'compiles' into 'boots' #258. Those branches need main merged in.
  2. On main: coverage is complete and deposit passes. But the panic-attack assail job fails with "Critical scanner findings block merge". The only 2 critical findings are PA021 ProofDrift: one open sorry each, in tests/corpus_fixtures/isabelle/Smoke.thy and tests/corpus_fixtures/minif2f/algebra.lean.

This PR fixes item 2.

Changes

  • audits/assail-classifications.a2ml: add 2 entries, one per fixture, with category ProofDrift. The sorrys are deliberate: tests/corpus_hazard_fixtures.rs checks that the corpus adapters flag them as hazards, and those tests fail if they are removed. Each entry names its test.
  • This is an addition only. No existing entry and no licence header changes.

RSR Quality Checklist

Required

  • No banned functions added. The 2 sorrys are existing fixtures; this PR only classifies them.
  • No secrets, credentials, or .env files included

Testing

I built panic-attack main (4f51cca, --locked --features http) and ran it on echidna main with this change:

  • assail --fail-on-incomplete: exit 0, coverage complete 913/913, unsuppressed findings: 0 critical, 43 high, 65 medium, 1 low.
  • The report meets scripts/ci/static-analysis-evidence.sh's panic-attack contract (schema 2.6).
  • bridge triage: exit 0, schema 0.3.0, vulnerability_data: queried. This matches the Patch Bridge contract.
  • Without this change, the same scan has 2 unsuppressed critical findings: exactly the 2 fixtures.

Generated by Claude Code

The Static Analysis Gate on main fails with "Critical scanner findings
block merge". Coverage is complete with the pinned panic-attack; the
only criticals are two PA021 ProofDrift findings, one open `sorry` each
in tests/corpus_fixtures/isabelle/Smoke.thy and
tests/corpus_fixtures/minif2f/algebra.lean.

Both are deliberate test inputs: tests/corpus_hazard_fixtures.rs asserts
that the corpus adapters flag them as sorry hazards, so removing them
would break those tests. Record them in the panic-attack classification
registry, which suppresses exactly these file and category pairs. No
existing entry changes.

Checked with panic-attack main (4f51cca, --features http): assail exits
0 with coverage complete 913/913 and 0 unsuppressed critical findings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0136P7ZnmBahbhfkFEP6ark4
@coderabbitai

coderabbitai Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

No actionable comments were generated in the recent review.

Summary

Summary by CodeRabbit

  • Documentation
    • Added classifications for the Isabelle and MiniF2F fixtures, noting that they contain intentionally incomplete proofs and are test inputs rather than proofs used by ECHIDNA.
    • The entries also document checks that confirm each fixture is marked as a hazard. These changes update audit records; no user-facing behavior changes are noted.

The audit registry adds ProofDrift classifications for the Isabelle and MiniF2F fixtures. Each entry documents its deliberate open sorry and references a test that checks hazard detection.

Changes: ProofDrift fixture classifications

Layer / File(s) Summary
Classify incomplete-proof fixtures
audits/assail-classifications.a2ml
Adds ProofDrift classifications for the Isabelle and MiniF2F fixtures. Each entry describes the deliberate open sorry and cites its hazard-fixture test.

Estimated code review effort: 1 (Trivial) | ~4 minutes

Change: Bug fix

Possibly related PRs

Merge Risk: Minimal · up to ea1af

The fixture classifications are ready to merge after normal checks.

Pre-merge checks: Passed 5

Check name Status Explanation
Title check Passed The title clearly describes the main change: classifying the two deliberate corpus-fixture sorrys.
Description check Passed The description explains the problem, changes, and reported test results. It includes the required sections, but the RSR Quality Checklist is only partially completed; several required items are unmar…
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description explains the problem, changes, and reported test results. It includes the required sections, but the RSR Quality Checklist is only partially completed; several required items are unmarked.

Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Recent review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 8eb04d00-616b-4632-9395-4c005938ef69
Commits

Reviewing files that changed from the base of the PR and between b6ff166 and ea1afde.

Files selected for processing: 1

  • audits/assail-classifications.a2ml

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Recent review details

Context from checks skipped due to timeout: 5

  • GitHub Check: rust-ci / Cargo test
  • GitHub Check: CodeRabbit
  • GitHub Check: panic-attack assail
  • GitHub Check: rust-ci / llvm-cov line coverage
  • GitHub Check: PR (address)
Additional context used

Code guidelines: 1

CLAUDE.md — auto-discovered
Path-based instructions: 1

Source excerpt: **Version + release history**: [`CHANGELOG.adoc`](CHANGELOG.adoc) (single source of truth; do not duplicate version strings elsewhere)

CodeRabbit inference engine (CLAUDE.md)

Files:

  • audits/assail-classifications.a2ml
Additional comments: 1

audits/assail-classifications.a2ml: 1

175-189: LGTM!

@hyperpolymath
hyperpolymath marked this pull request as ready for review November 10, 2026 17:32
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ❌ Failed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-10T17:35:57.186224Z ea1afde Draft marked ready
🔒 Security Review ❌ Failed 2026-11-10T17:33:02.262050Z
We couldn’t complete this review. Comment @codex security review to try again.
ea1afde Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@hyperpolymath
hyperpolymath enabled auto-merge (squash) November 10, 2026 17:33
@chatgpt-codex-connector

Copy link
Copy Markdown

This security review couldn’t start because the paying account has exhausted its Codex allowance and has insufficient available credits. The payer can check their balance and add credits in the Codex usage dashboard, then try again. If you do not manage the paying account, contact this repository's admins.

@sonarqubecloud

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath merged commit 57c6850 into main Nov 10, 2026
71 of 72 checks passed
@hyperpolymath
hyperpolymath deleted the claude/classify-corpus-fixture-sorry branch November 10, 2026 17:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants