Commit b64b6b3
audits: assail-classifications.a2ml — Track-C suppressions (echo-types#113) (#158)
## Summary
First population of \`audits/assail-classifications.a2ml\` for
echo-types, mirroring the canonical estate convention (boj-server /
standards / linguist / hypatia). Resolves the in-repo half of
[#113](#113) by
classifying the two real-path panic-attack findings and documenting the
ten path-duplicate findings as scan artefacts.
## What the issue actually reports
The 2026-05-26 sweep reported 12 findings on echo-types. On inspection,
the breakdown is:
| Bucket | Count | Disposition |
|---|---|---|
| \`.claude/worktrees/<id>/flake.nix\` SupplyChain | 5 | Scan artefact —
paths are gitignored, absent from committed tree |
| \`.claude/worktrees/<id>/arghda-core/src/lint/orphan_module.rs\`
UnboundedAllocation | 5 | Scan artefact — same reason |
| \`flake.nix\` SupplyChain (real path) | 1 | **Stale** — \`flake.lock\`
now exists; agda-stdlib is tag-pinned, absolute-zero is SHA-pinned, CI
re-verifies |
| \`arghda-core/src/lint/orphan_module.rs\` UnboundedAllocation (real
path) | 1 | **False positive** — bounded by HashSet dedup at L88/L101;
dev-tooling, no untrusted-input surface |
| **Total** | **12** | All dismissible |
Detailed audit rationale in the file itself; brief reasoning in the
commit body.
## Seam observations (drive-by, surfaced for the owner)
While triaging, two adjacent things were noticed:
1. **\`arghda-core/\` has no CI workflow.** It's a Rust crate inside
echo-types with a proper \`Cargo.toml\` + tests directory, but no
\`.github/workflows/\` step runs \`cargo test\` / \`cargo clippy\`. This
is independent of #113; surfacing as a potential follow-up issue.
2. **\`flake.lock\` only locks \`nixpkgs\` in its \`.nodes\` map**
(verified via \`jq '.nodes | keys[]'\`). The other two inputs
(\`agda-stdlib\`, \`absolute-zero\`) are \`flake = false\` and have
concrete tag / SHA refs in \`flake.nix\` directly, so the security
posture isn't materially weaker, but a future \`nix flake update\` may
want to fully populate the lockfile for narHash provenance on those two
as well. Tangential to #113.
Neither is in-scope for this PR; flagging as observations.
## Test plan
- [x] Pure config / docs addition. Agda suite unaffected.
- [x] A2ML format matches the canonical schema used by boj-server /
standards / linguist / hypatia.
- [ ] Re-running \`panic-attack assail\` against the post-merge tip
should produce no findings (or report the two classified entries as
suppressed); the ten path-duplicates should not reappear since
\`.claude/\` is gitignored.
## Closes
Closes #113 — the in-repo Track-C work is complete; if the panic-attack
scanner re-raises any of these on a future sweep, that's a scanner-side
question (scan-artefact paths shouldn't be in the haystack) rather than
an echo-types content question.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent ff9eb24 commit b64b6b3
1 file changed
Lines changed: 34 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
0 commit comments