Skip to content

Commit edbfcff

Browse files
docs: wrap up issue #33 closure — consolidate CHANGELOG + sync CLAUDE.md (#91)
## Summary Documentation tidy-up after the issue #33 closure merge sequence (#86#90#88#89). - **CHANGELOG.md**: merge two parallel `## [Unreleased]` headers into one with dated `### Added (2026-MM-DD)` subsections. Add a top-level S1–S3 milestone entry that captures what the broader issue #33 work actually delivered (hexad persistence, `campaign` + `query` subcommands) — the prior Unreleased blocks only documented the leaf-level query parser polish from #88 and the 2026-04-18 registry/Rocq work. - **CLAUDE.md**: move "Interactive TUI mode" from "Planned Features" to "Shipped Features" — it's already implemented (`src/report/tui.rs` with `ReportTui::run()` / `run_headless()`, `crossterm = "0.29"` in Cargo.toml). Add VeriSimDB hexad persistence and Chapel CI infrastructure to Shipped. Keeps the verisimdb HTTP API and Chapel metalayer (distributed orchestration) in Planned where they still belong. ## Test plan - [x] Doc-only edit — no code changed - [x] `chapel-ci-gate` (the single required check on the Base ruleset) is path-filtered to chapel sources; should skip cleanly for a docs-only PR via the always-on aggregator gate that landed in #90 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 1a5fbc3 commit edbfcff

2 files changed

Lines changed: 28 additions & 11 deletions

File tree

.claude/CLAUDE.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,16 +164,21 @@ Three self-contained modes — none requires the others:
164164
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

167-
## Shipped Features (v2.5.0)
167+
## Shipped Features (v2.5.0+)
168168

169169
- **Shell completions**: bash, zsh, fish, nushell, powershell — `completions subcommand` + generated files in `completions/`
170170
- **Delta reporting**: `diff` subcommand — only reports changes since last scan (`src/report/diff.rs`)
171+
- **Interactive TUI mode**: `ReportTui::run()` / `run_headless()` in `src/report/tui.rs` (crossterm-backed)
172+
- **VeriSimDB hexad persistence (issue #33 S1–S3)**:
173+
- Per-finding hexads gated by `PANIC_ATTACK_STORE_FINDING_HEXADS=1` (`src/storage/mod.rs :: build_finding_hexads`)
174+
- `panic-attack campaign` subcommand: `register-pr` / `dismiss` / `status` / `poll` lifecycle (`src/campaign/mod.rs`)
175+
- `panic-attack query <expr>` S-expression DSL: heads `category`, `rule-id`, `severity`, `repo`, `file`, `pr-state`, `since`, `crosslang`, `diff`, `and`, `or`, `not` (`src/query/mod.rs`)
176+
- **Chapel CI infrastructure**: MassPanic wiring + cross-rust contract checks + always-on aggregator gate (`.github/workflows/chapel-ci.yml`)
171177

172178
## Planned Features (Next Priorities)
173179

174180
1. **verisimdb HTTP API integration**: Push hexads via REST (awaiting API stabilisation)
175-
2. **Interactive TUI mode**: Review findings in terminal (v2.3.0)
176-
3. **Chapel metalayer**: Distributed `coforall` scanning across compute clusters (v3.0.0)
181+
2. **Chapel metalayer**: Distributed `coforall` scanning across compute clusters (v3.0.0)
177182

178183
## v2.5.0 Detection Categories (COMPLETE — 25 categories total)
179184

CHANGELOG.md

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,25 @@
11
# Changelog
22

3-
## [Unreleased] — 2026-05-30
4-
5-
### Added
3+
## [Unreleased]
4+
5+
### Added (2026-05-30) — issue #33 closure
6+
- **VeriSimDB hexad persistence complete (issue #33 S1–S3)** — per-finding
7+
hexads, campaign state lifecycle, and S-expression query DSL all shipped:
8+
- **S1**: per-finding hexad emission gated by
9+
`PANIC_ATTACK_STORE_FINDING_HEXADS=1` (`src/storage/mod.rs ::
10+
build_finding_hexads`, subject format
11+
`finding:<repo>:<file>:<line>:<category>`).
12+
- **S2**: `panic-attack campaign` subcommand (`register-pr`, `dismiss`,
13+
`status`, `poll`) drives finding lifecycle with state transitions
14+
persisted as campaign hexads. `poll` performs GitHub PR state
15+
transitions (open → pr-filed → pr-merged / pr-closed).
16+
- **S3**: `panic-attack query <expr>` evaluates a small S-expression
17+
language over the persisted hexads. Heads: `category`, `rule-id`,
18+
`severity`, `repo`, `file`, `pr-state`, `since`, `crosslang`, `diff`,
19+
`and`, `or`, `not`.
620
- **Query parser: `(diff :since :category ...)` head + inline `:keyword
7-
VALUE` kwargs on every unary head** (`src/query/mod.rs`, issue #33). The
8-
issue body's three literal example expressions now parse verbatim:
21+
VALUE` kwargs on every unary head** (`src/query/mod.rs`). The issue
22+
body's three literal example expressions now parse verbatim:
923
- `(crosslang :from FFI :to ProofDrift)` — already worked.
1024
- `(category PA001 :severity Critical :pr-state nil)` — now parses as
1125
`(and (rule-id PA001) (severity Critical) (pr-state nil))`, with
@@ -18,9 +32,7 @@
1832
positional value desugars to `(and (head positional) (kw value) ...)`.
1933
Behaviour unchanged for existing query expressions; 12 new unit tests.
2034

21-
## [Unreleased] — 2026-04-18
22-
23-
### Added
35+
### Added (2026-04-18)
2436
- **User-classification registry** (`assail::UserClassification`,
2537
`load_user_classifications`, `apply_user_classifications`): panic-attack
2638
now reads an optional project-local classification file at every assail

0 commit comments

Comments
 (0)