Skip to content

docs(readme): repair stale badges, version, link and counts#35

Merged
hyperpolymath merged 2 commits into
mainfrom
docs/readme-hygiene
May 26, 2026
Merged

docs(readme): repair stale badges, version, link and counts#35
hyperpolymath merged 2 commits into
mainfrom
docs/readme-hygiene

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

Pure documentation cleanup. README had several stale claims that survived the 2026-02-08 rename, the 136b38b license migration, and the steady growth of the codebase since v2.1.0.

Field Before After Why stale
OpenSSF badge URL panic-attacker (404) panic-attack Repo renamed 2026-02-08 (see .claude/CLAUDE.md)
License badge PMPL-1.0 → palimpsest-license MPL-2.0 → mozilla.org Finishes the migration started in 136b38b
Tests badge 196 402 Actual count: grep -rcE '^\s*#\[test\]' across src+tests+benches
Status version v2.1.0 v2.5.0 Authoritative source is Cargo.toml
Status SLOC 19,000+ 32,000+ wc -l reports 32,894 across src/
Status tests 196 400+ Range-y so it doesn't rot per PR
Status subcommands 22 25+ Made range-y for the same reason (actual Commands::* variants: 28)
ROADMAP link ROADMAP.md (broken) ROADMAP.adoc File has always been .adoc

Test plan

  • git diff --stat shows README.adoc-only change (cosmetic, no code)
  • CI on PR: dogfood-gate, governance, secret-scanner stay green
  • Render check: the asciidoctor render on github.com still shows the badges and Status block correctly

🤖 Generated with Claude Code

- OpenSSF badge URL `panic-attacker` -> `panic-attack` (repo renamed 2026-02-08)
- License badge PMPL-1.0 -> MPL-2.0 (finishes 136b38b SPDX migration)
- Tests badge 196 -> 402 (actual `#[test]` count via grep)
- Status block: v2.1.0 -> v2.5.0 (Cargo.toml authoritative), 19k -> 32k SLOC
  (32,894 by wc -l on src/), tests count harmonised, subcommand count made
  range-y so it doesn't rot on every new command
- ROADMAP link extension .md -> .adoc (the file has always been .adoc;
  the link was broken)

Cosmetic only. No code or workflow changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 49 issues detected

Severity Count
🔴 Critical 4
🟠 High 16
🟡 Medium 29

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Action hyperpolymath/standards/.github/workflows/governance-reusable.yml@main needs attention",
    "type": "unpinned_action",
    "file": "governance.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Nickel file missing SPDX-License-Identifier header (1 occurrences, CWE-1104)",
    "type": "ncl_missing_spdx",
    "file": "/home/runner/work/panic-attack/panic-attack/reports/panic-attack-20260211180017.ncl",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "expect() in hot path (2 occurrences, CWE-754)",
    "type": "expect_in_hot_path",
    "file": "/home/runner/work/panic-attack/panic-attack/src/attestation/chain.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "unwrap_or(0) with dangerous default (1 occurrences, CWE-754)",
    "type": "unwrap_dangerous_default",
    "file": "/home/runner/work/panic-attack/panic-attack/src/attestation/evidence.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "unwrap_or(0) with dangerous default (1 occurrences, CWE-754)",
    "type": "unwrap_dangerous_default",
    "file": "/home/runner/work/panic-attack/panic-attack/src/ambush/mod.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "unwrap_or(0) with dangerous default (3 occurrences, CWE-754)",
    "type": "unwrap_dangerous_default",
    "file": "/home/runner/work/panic-attack/panic-attack/src/kanren/strategy.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "unwrap_or(0) with dangerous default (3 occurrences, CWE-754)",
    "type": "unwrap_dangerous_default",
    "file": "/home/runner/work/panic-attack/panic-attack/src/axial/mod.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "expect() in hot path (4 occurrences, CWE-754)",
    "type": "expect_in_hot_path",
    "file": "/home/runner/work/panic-attack/panic-attack/src/assail/analyzer.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "unwrap() without prior check -- DoS via panic (4 occurrences, CWE-754)",
    "type": "unwrap_without_check",
    "file": "/home/runner/work/panic-attack/panic-attack/benches/scan_bench.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "expect() in hot path (2 occurrences, CWE-754)",
    "type": "expect_in_hot_path",
    "file": "/home/runner/work/panic-attack/panic-attack/benches/scan_bench.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@github-actions
Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 49 issues detected

Severity Count
🔴 Critical 4
🟠 High 16
🟡 Medium 29

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Action hyperpolymath/standards/.github/workflows/governance-reusable.yml@main needs attention",
    "type": "unpinned_action",
    "file": "governance.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Nickel file missing SPDX-License-Identifier header (1 occurrences, CWE-1104)",
    "type": "ncl_missing_spdx",
    "file": "/home/runner/work/panic-attack/panic-attack/reports/panic-attack-20260211180017.ncl",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "expect() in hot path (2 occurrences, CWE-754)",
    "type": "expect_in_hot_path",
    "file": "/home/runner/work/panic-attack/panic-attack/src/attestation/chain.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "unwrap_or(0) with dangerous default (1 occurrences, CWE-754)",
    "type": "unwrap_dangerous_default",
    "file": "/home/runner/work/panic-attack/panic-attack/src/attestation/evidence.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "unwrap_or(0) with dangerous default (1 occurrences, CWE-754)",
    "type": "unwrap_dangerous_default",
    "file": "/home/runner/work/panic-attack/panic-attack/src/ambush/mod.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "unwrap_or(0) with dangerous default (3 occurrences, CWE-754)",
    "type": "unwrap_dangerous_default",
    "file": "/home/runner/work/panic-attack/panic-attack/src/kanren/strategy.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "unwrap_or(0) with dangerous default (3 occurrences, CWE-754)",
    "type": "unwrap_dangerous_default",
    "file": "/home/runner/work/panic-attack/panic-attack/src/axial/mod.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "expect() in hot path (4 occurrences, CWE-754)",
    "type": "expect_in_hot_path",
    "file": "/home/runner/work/panic-attack/panic-attack/src/assail/analyzer.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "unwrap() without prior check -- DoS via panic (4 occurrences, CWE-754)",
    "type": "unwrap_without_check",
    "file": "/home/runner/work/panic-attack/panic-attack/benches/scan_bench.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "expect() in hot path (2 occurrences, CWE-754)",
    "type": "expect_in_hot_path",
    "file": "/home/runner/work/panic-attack/panic-attack/benches/scan_bench.rs",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath hyperpolymath enabled auto-merge (squash) May 26, 2026 09:05
@hyperpolymath hyperpolymath merged commit abb4ecd into main May 26, 2026
23 of 24 checks passed
@hyperpolymath hyperpolymath deleted the docs/readme-hygiene branch May 26, 2026 09:12
hyperpolymath added a commit that referenced this pull request May 26, 2026
## Summary

Mechanical sweep to catch up active docs and config after the
**2026-02-08** binary rename (`panic-attacker` → `panic-attack`) and the
**v2.5.0** release. Active prose, install commands, and config still
referenced the old names; some counts had not been refreshed since
v2.1/v2.3.

26 files changed (25 modified + 1 renamed). Diff is symmetric (+86/-86)
— no semantic drift, just renames.

### Mass rename: \`panic-attacker\` → \`panic-attack\`

20 files: DESIGN.md, VISION.md, CONTRIBUTING.md, SECURITY.md,
QUICKSTART-{USER,DEV,MAINTAINER}.adoc, llm-warmup-{dev,user}.md,
PROOF-NEEDS.md, TEST-NEEDS.md, FUTURE-IMPROVEMENTS.md,
docs/json-schema.md, docs/007-FALSE-POSITIVE-GUIDANCE.md,
docs/mass-panic-fnirs-paper.adoc, docs/HYPATIA-RULE-UPDATES.md,
.github/workflows/{mirror,scan-and-report}.yml, stapeln.toml,
k9iser.toml.

**Intentional exclusions (historical record):**
- \`CHANGELOG.md\` — rename entry IS the historical record
- \`.claude/CLAUDE.md\` — rename block intentionally preserved
- \`docs/reports/audit/*\` — dated audit snapshots, frozen-in-time

### File rename

- \`panic-attacker.toml.example\` → \`panic-attack.toml.example\`
(config template's own header already instructed "copy to
panic-attack.toml")

### Critical CI fixes

| File | Issue |
|------|-------|
| \`.github/workflows/mirror.yml:15\` | \`if: github.repository ==
'hyperpolymath/panic-attacker'\` was a **dead guard** (repo renamed);
workflow had silently been a no-op since 2026-02-08 |
| \`.github/workflows/scan-and-report.yml:35\` | \`cargo install --git
https://github.com/hyperpolymath/panic-attacker --branch main\` would
404 against the renamed repo on the next install attempt |

### Stale-fact refresh

| File | Fix |
|------|-----|
| \`TOPOLOGY.md:93,97\` | 282 tests → 400+; v2.3.0 → v2.5.0 |
| \`k9iser.toml:22\` | LICENSE comment PMPL → MPL-2.0 |
| \`PROOF-NEEDS.md:14\` | 47 \`Lang\` constructors → 49 |
| \`src/abi/PatternCompleteness.idr:21\` | inline comment "47 variants"
→ "49 variants" (file's own line 24 already said 49) |
| \`READINESS.md:16\` | add Isabelle to dogfood-tested language list |
| \`ROADMAP.adoc:29\` | drop stale "(Next)" qualifier on v2.1.0 section
|

## Test plan

- [x] \`cargo check\` clean (no Rust source changes besides one .idr
inline comment)
- [x] \`cargo fmt --check\` clean
- [x] No semantic drift — diff is symmetric (+86/-86)
- [x] Signed commit
- [x] Active config consistency: k9iser.toml's Cargo contract (line 19:
\`package.name == 'panic-attack'\`) now matches \`[project] name\` (line
9)

## Not in this PR (separate concerns)

- **README.adoc** — open PR #35 already fixes the OpenSSF link, license
badge, version, and counts; deliberately not touched here to avoid
conflict.
- **ROADMAP.adoc structural refresh** — sections v2.1-v2.5 use checkbox
history correctly; only the \`(Next)\` label was stale. Deeper re-org
would be a separate doc PR.
- **Proof-drift** between \`src/types.rs\` (has \`Chapel\`, no \`C\`)
and \`src/abi/PatternCompleteness.idr\` (has \`C\`, no \`Chapel\`) —
both enumerate 49 constructors but disagree on which 49. Filing as a
separate proof-drift issue.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

1 participant