Skip to content

Commit 82f2e6b

Browse files
hyperpolymathclaude
andcommitted
chore(v2.5.0): update doc counts 23→25, STATE.a2ml v2.3.0, complete milestone
- Update all category counts (23→25) across README, TOPOLOGY, CONTRIBUTING, EXPLAINME, CLAUDE.md, ROADMAP, STATE.a2ml - STATE.a2ml: version 2.3.0, completion 98%, add session-2026-04-12b block, remove input-boundary/mutation from next-priorities (done) - TOPOLOGY.md: PA001–PA025, v2.3.0, Last updated 2026-04-12 - CLAUDE.md: v2.5.0 categories summary, updated next-priorities Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent ab89123 commit 82f2e6b

7 files changed

Lines changed: 37 additions & 24 deletions

File tree

.claude/CLAUDE.md

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ cp target/release/panic-attack ~/.asdf/installs/rust/nightly/bin/
8989
## Key Design Decisions
9090

9191
- **49 language analyzers**: Rust, C/C++, Go, Python, JavaScript, Ruby, Elixir, Erlang, Gleam, ReScript, OCaml, SML, Scheme, Racket, Haskell, PureScript, Idris, Lean, Agda, Isabelle, Coq, Prolog, Logtalk, Datalog, Zig, Ada, Odin, Nim, Pony, D, Nickel, Nix, Shell, Julia, Lua, + 12 nextgen DSLs
92-
- **23 weak point categories**: UnsafeCode, PanicPath, CommandInjection, UnsafeDeserialization, AtomExhaustion, UnsafeFFI, PathTraversal, HardcodedSecret, ProofDrift, CryptoMisuse, SupplyChain, etc.
92+
- **25 weak-point categories** (PA001–PA025): UnsafeCode, PanicPath, CommandInjection, UnsafeDeserialization, AtomExhaustion, UnsafeFFI, PathTraversal, HardcodedSecret, ProofDrift (PA021), CryptoMisuse (PA022), SupplyChain (PA023), InputBoundary (PA024), MutationGap (PA025), etc.
9393
- **Per-file language detection**: Each file analyzed with its own language-specific patterns. Skips `external_corpora/`, `third_party/`, and `corpus/` directories
9494
- **miniKanren logic engine**: Relational reasoning for taint analysis, cross-language vulnerability chains, and search strategy optimisation
9595
- **Latin-1 fallback**: Non-UTF-8 files handled gracefully
@@ -161,20 +161,28 @@ Phase 2 adds VeriSimDB hexad persistence and auto-retire on upstream fix.
161161
Three self-contained modes — none requires the others:
162162

163163
1. **Standalone** (USB/laptop/air-gapped): Single binary, zero deps, `assail`/`assault` individual targets
164-
2. **Panicbot** (gitbot-fleet/CI): Automated JSON scanning, PA001–PA021 codes, bot directives
164+
2. **Panicbot** (gitbot-fleet/CI): Automated JSON scanning, PA001–PA025 codes, bot directives
165165
3. **Mass-panic** (assemblyline + verisimdb + Chapel): Org-scale batch scanning with incremental BLAKE3, hexad persistence, delta reporting, notifications. Chapel (planned) for distributed multi-machine orchestration.
166166

167167
## Planned Features (Next Priorities)
168168

169169
1. **verisimdb HTTP API integration**: Push hexads via REST (awaiting API stabilisation)
170-
2. **kanren context-facts**: ~10 rules for FP suppression (~8% -> ~2-3%)
171-
3. **hypatia pipeline**: JSON AssailReport consumed by Hypatia Elixir rules (Logtalk export removed 2026-04-12)
172-
4. **Shell completions**: bash, zsh, fish, nushell
173-
5. **Chapel metalayer**: Distributed `coforall` scanning across compute clusters
170+
2. **Shell completions**: bash, zsh, fish, nushell (v2.3.0)
171+
3. **Interactive TUI mode**: Review findings in terminal (v2.3.0)
172+
4. **Chapel metalayer**: Distributed `coforall` scanning across compute clusters (v3.0.0)
173+
174+
## v2.5.0 Detection Categories (COMPLETE — 25 categories total)
175+
176+
All five detection categories shipped in v2.5.0 (2026-04-12):
177+
- **ProofDrift (PA021)**: Proof escape hatches in Isabelle/Coq/Lean/Agda/Idris2; Julia mirror patterns
178+
- **CryptoMisuse (PA022)**: Weak hash (MD5/SHA-1) in security context; timing-unsafe == on secrets
179+
- **SupplyChain (PA023)**: Unpinned deps, absent lock files, unverified manifests
180+
- **InputBoundary (PA024)**: Unchecked CBOR/MessagePack (Rust), JSON.parse without try-catch (JS/Julia)
181+
- **MutationGap (PA025)**: No cargo-mutants config (Rust), all-type-only assertions (Julia), no property testing (Elixir)
174182

175183
## Integration Points
176184

177-
- **panicbot**: gitbot-fleet verifier bot — invokes `panic-attack assail --output-format json`, translates WeakPoints to Findings (PA001-PA021). Directives at `.machine_readable/bot_directives/panicbot.scm`
185+
- **panicbot**: gitbot-fleet verifier bot — invokes `panic-attack assail --output-format json`, translates WeakPoints to Findings (PA001-PA025). Directives at `.machine_readable/bot_directives/panicbot.scm`
178186
- **verisimdb**: Store scan results as hexads (document + semantic modalities). File I/O works, API planned
179187
- **hypatia**: Neurosymbolic rule engine processes findings. Env var watcher in diagnostics
180188
- **panll**: Event-chain export for three-panel visualisation. Working via `panll` subcommand. Two dedicated panels: panic-attack (single-repo) and Mass Panic (assemblyline batch GUI)

.machine_readable/6a2/STATE.a2ml

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44

55
[metadata]
66
project = "panic-attacker"
7-
version = "2.2.0"
7+
version = "2.3.0"
88
last-updated = "2026-04-12"
99
status = "active"
1010

1111
[project-context]
1212
name = "panic-attacker"
13-
completion-percentage = 97
14-
phase = "CRG C (Beta) — v2.5.0 detection categories in progress"
13+
completion-percentage = 98
14+
phase = "CRG C (Beta) — v2.5.0 detection categories complete; v2.3.0 shell completions + TUI next"
1515

1616
[testing-completion-2026-04-04]
1717
description = "CRG C blitz completed: unit + smoke + build + P2P + E2E + reflexive + contract + aspect + benchmarks"
@@ -33,16 +33,21 @@ language-detection = "Skips external_corpora/, third_party/, and corpus/ directo
3333
logtalk-removed = "Logtalk export removed; Hypatia now consumes JSON AssailReport via Elixir rules"
3434
fp-suppression = "WeakPoint.suppressed field wired; apply_suppression() runs kanren engine on every scan; panicbot filters suppressed items"
3535
languages = "49 languages (added Isabelle/HOL .thy and Coq/Rocq .v with dedicated analyzers)"
36-
categories = "23 weak point categories (added ProofDrift PA021, CryptoMisuse PA022, SupplyChain PA023)"
36+
categories = "23 weak point categories as of 2026-04-12 (ProofDrift PA021, CryptoMisuse PA022, SupplyChain PA023); InputBoundary PA024 + MutationGap PA025 added same session → 25 total"
3737
proof-drift = "ProofDrift: sorry/oops/Admitted/trustMe/believe_me/assert_total/%partial across Isabelle/Coq/Lean/Agda/Idris2; Julia mirror patterns"
3838
crypto-misuse = "CryptoMisuse: MD5/SHA-1 in security context (Rust/Python/JS/Go/Elixir); timing-unsafe == on secret variables"
3939
supply-chain = "SupplyChain: Cargo.toml git-deps without rev=, absent Cargo.lock, Julia Manifest.toml without hashes, flake.nix without narHash, unpinned deno.json"
4040
panicbot-wired = "PA021/PA022/PA023 wired in gitbot-fleet/bots/panicbot/src/translator.rs"
41-
idris2-abi = "PatternCompleteness.idr updated: 49 languages, 23 categories, all proven total"
41+
idris2-abi = "PatternCompleteness.idr updated: 49 languages, 25 categories, all proven total"
42+
43+
[session-2026-04-12b]
44+
input-boundary = "InputBoundary PA024: CBOR/MessagePack (serde_cbor/ciborium/rmp_serde) in Rust, JSON.parse without try-catch in JS, JSON3.read/JSON.parse in Julia"
45+
mutation-gap = "MutationGap PA025: Cargo.toml with test infra but no cargo-mutants config (Rust, project-level), @testset all-type-only assertions (Julia), ExUnit without ExUnitProperties/StreamData (Elixir)"
46+
panicbot-wired = "PA024/PA025 wired in gitbot-fleet/bots/panicbot/src/translator.rs"
47+
categories = "25 weak point categories total (v2.5.0 complete)"
48+
v25-complete = "All 5 v2.5.0 detection categories done: crypto_misuse, proof_drift, supply_chain, input_boundary, mutation"
4249

4350
[next-priorities]
4451
verisimdb-http = "Push hexads via REST (awaiting API stabilization)"
4552
shell-completions = "bash, zsh, fish, nushell"
46-
input-boundary = "v2.5.0: unchecked CBOR/JSON/A2ML deserialization"
47-
mutation = "v2.5.0: mutation test coverage gaps"
4853
chapel-metalayer = "Distributed coforall scanning across compute clusters (future)"

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ panic-attacker/
147147
├── src/
148148
│ ├── main.rs # CLI entry point (clap) — 20 subcommands
149149
│ ├── lib.rs # Library API
150-
│ ├── types.rs # Core types (49 languages, 23 categories)
150+
│ ├── types.rs # Core types (49 languages, 25 categories)
151151
│ ├── assail/ # Static analysis engine
152152
│ │ ├── analyzer.rs # 49-language analyzer with per-file detection
153153
│ │ └── patterns.rs # Language-specific attack patterns

EXPLAINME.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ The README makes claims. This file backs them up.
4343

4444
| `src/main.rs` | CLI entry: 20 subcommands (assail, assault, temporal, panll, groove, bridge, etc.)
4545
| `src/lib.rs` | Library API exposing all analysis engines
46-
| `src/assail/` | Static analysis (49 languages, 23 weak point categories)
46+
| `src/assail/` | Static analysis (49 languages, 25 weak-point categories)
4747
| `src/assail/analyzer.rs` | Per-file language detection and pattern matching dispatcher
4848
| `src/assail/patterns.rs` | Language-specific regex patterns for weak points
4949
| `src/kanren/` | Logic engine (unification, fact database, taint, cross-lang)

README.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ panic-attack exists to address this by combining:
6666
panic-attack provides:
6767

6868
* **49-language static analysis** across multiple families
69-
* **Weak point detection** (23 categories)
69+
* **Weak point detection** (25 categories)
7070
* **Attack simulation (6 axes)**: CPU, memory, disk, network, concurrency, time
7171
* **miniKanren logic engine** for taint analysis and cross-language reasoning
7272
* **Signature detection** (use-after-free, deadlock, etc.)

ROADMAP.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ binary, panicbot (gitbot-fleet CI integration), and mass-panic (org-scale batch
1818

1919
**Key capabilities today:**
2020

21-
* 49-language analyzer with per-file detection and 23 weak-point categories
21+
* 49-language analyzer with per-file detection and 25 weak-point categories
2222
* miniKanren v2.0.0 logic engine (taint analysis, cross-language reasoning, search strategies)
2323
* Patch Bridge CVE lifecycle engine (OSV API, reachability scan, phantom dependency detection)
2424
* Cryptographic attestation chain (intent/evidence/seal)
@@ -139,7 +139,7 @@ Identified as an estate-wide gap in the 2026-04-05 KRL-stack CRG blitz audit.
139139

140140
== v3.1.0 -- Ecosystem Integration
141141

142-
* [x] Panicbot integration (gitbot-fleet, PA001-PA021 codes)
142+
* [x] Panicbot integration (gitbot-fleet, PA001-PA025 codes)
143143
* [x] Hypatia diagnostics self-check
144144
* [x] PanLL event-chain export (two dedicated panels)
145145
* [x] Cryptographic attestation chain with optional Ed25519 signing

TOPOLOGY.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<!-- SPDX-License-Identifier: PMPL-1.0-or-later -->
22
<!-- TOPOLOGY.md — Project architecture map and completion dashboard -->
3-
<!-- Last updated: 2026-03-07 -->
3+
<!-- Last updated: 2026-04-12 -->
44

55
# panic-attack — Project Topology
66

@@ -55,7 +55,7 @@
5555
COMPONENT STATUS NOTES
5656
───────────────────────────────── ────────────────── ─────────────────────────────────
5757
CORE CAPABILITIES
58-
Assail Static Analysis ██████████ 100% 49 languages, 23 categories
58+
Assail Static Analysis ██████████ 100% 49 languages, 25 categories
5959
Multi-Axis Stress Testing ██████████ 100% 6 axes (CPU, Mem, Disk, etc)
6060
miniKanren Logic Engine ██████████ 100% Taint, cross-lang, strategies
6161
Ambush / Amuck / Abduct ██████████ 100% Advanced workflows stable
@@ -82,7 +82,7 @@ BATCH & PIPELINE
8282
i18n Support (10 languages) ██████████ 100% ISO 639-1, compile-time safe
8383
8484
INTEGRATION
85-
Panicbot (gitbot-fleet) ██████████ 100% PA001–PA021, JSON contract
85+
Panicbot (gitbot-fleet) ██████████ 100% PA001–PA025, JSON contract
8686
Diagnostics (self-check) ██████████ 100% Version, fleet, attestation
8787
VerisimDB Storage ██████░░░░ 60% File I/O works, API planned
8888
Hypatia Pipeline ████░░░░░░ 40% Env var watcher, no kanren export
@@ -94,7 +94,7 @@ REPO INFRASTRUCTURE
9494
Readiness Tests (CRG) ██████████ 100% 18 tests: D(4) C(10) B(4)
9595
9696
─────────────────────────────────────────────────────────────────────────────
97-
OVERALL: █████████░ ~97% v2.2.0 Stable
97+
OVERALL: █████████░ ~98% v2.3.0 Stable
9898
```
9999

100100
## Key Dependencies
@@ -103,7 +103,7 @@ OVERALL: █████████░ ~97% v2.2.
103103
Assail (49L) ───► kanren Logic ───► Taint/XLang ───► Weak Points
104104
│ │ │
105105
▼ ▼ ▼
106-
Assemblyline ──► Notify Pipeline ──► GitHub Issues Panicbot (PA001–PA021)
106+
Assemblyline ──► Notify Pipeline ──► GitHub Issues Panicbot (PA001–PA025)
107107
│ │ │
108108
▼ ▼ ▼
109109
BLAKE3 Cache ──► VerisimDB Store ──► PanLL Export Fleet FindingSet

0 commit comments

Comments
 (0)