Scan this machine's Claude Code sessions for false-positive safety / Usage-Policy / auto-mode-classifier blocks and file them as clean, PII-scrubbed GitHub issues on anthropics/claude-code. Use when the user wants to review, queue, or report the legitimate-but-blocked requests Claude Code has refused, or to vote in the community poll.
Installs into .claude/skills of the current project.
Are you the author of Claudit?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/sworrl-claudit)
---
name: claudit
description: Scan this machine's Claude Code sessions for false-positive safety / Usage-Policy / auto-mode-classifier blocks and file them as clean, PII-scrubbed GitHub issues on anthropics/claude-code. Use when the user wants to review, queue, or report the legitimate-but-blocked requests Claude Code has refused, or to vote in the community poll.
---
# ClAudit: report false-positive Claude Code blocks
ClAudit ([github.com/sworrl/ClAudit](https://github.com/sworrl/ClAudit)) turns the server-side blocks
Claude Code hits during legitimate work into clean, deduplicated, PII-scrubbed GitHub issues so
Anthropic can see and fix them. This skill drives its CLI (`claudit_scan.py`, also installed
as `claudit-watch`).
## Before you do anything
Filing posts **public** GitHub issues under the user's own GitHub identity. Treat that as an
outward-facing action: **show the user what would be filed and get explicit confirmation before any
command that posts.** Read-only/dry-run commands are safe to run without asking.
Requirements: the `gh` CLI authenticated (`gh auth status`), and `python3`. Burn-tokens / gate modes
also need the `claude` and/or `agy` (Antigravity) CLI on PATH.
## How to use it
Pick the command that matches the intent. Run from a ClAudit checkout, or use the installed
`claudit-watch` entry point.
### 1. Review what would be reported (safe, no posting)
```
python3 claudit_scan.py # dry-run: list NEW false-positive findings, file nothing
python3 claudit_scan.py --pending # list blocks the background watcher has queued
```
Summarize the findings for the user (kind, project, the triggering prompt, Request IDs). Never paste
raw transcript text you haven't confirmed is scrubbed.
### 2. File the backlog (posts; confirm first)
```
python3 claudit_scan.py --post # review each in $EDITOR, then file
python3 claudit_scan.py --post --no-review # file without the editor step
```
Add `--burn-tokens` to have the LLM write each report (strongest PII defense), or `--limit N` to cap
how many are filed this run. `python3 claudit_scan.py --doctor` checks the environment first.
### 3. Watch continuously
```
python3 claudit_scan.py --watch --auto --backfill # auto-file new blocks + drip the backlog
```
Mention that the **GUI** (`claudit-gui`) is the friendlier way to run this: tray app, live dashboard,
one-click poll voting.
### 4. Defend an issue wrongly flagged as a duplicate (posts; confirm first)
```
python3 claudit_scan.py --dedup-guard --apply
```
Reacts thumbs-down on the dup-bot's comment and posts a factual "not a duplicate" note, only on
issues judged genuinely distinct.
### 5. Closures: see what the bots closed, and answer it (scan is safe; defend posts)
```
python3 claudit_scan.py --sweep-scan # classify your closed reports: swept / merged / closed; posts nothing
python3 claudit_scan.py --defend-closures # POSTS: still-relevant note on swept reports, fold merged request IDs
```
The inactivity bot on anthropics/claude-code closes untriaged reports as "not planned", and an
author cannot reopen a bot-closed issue. `--defend-closures` answers each swept report once and
points at the umbrella issue (#86940 by default); `--since-days 0` walks the full history.
### Engines and sensitive work
- `--engine auto|claude|agy|tandem` picks which LLM CLI writes and reviews. `tandem` (the default
when both `claude` and `agy` are installed) has agy draft and claude review; `agy` alone still
cross-checks with a second agy model and spends no Claude quota.
- `~/.claude/claudit/scrub.txt` redacts terms and still posts. `~/.claude/claudit/mute.txt` goes
further: any finding whose block text, prompt, leadup, or project path contains a listed term is
never filed, composed, or sent to any LLM. Suggest it when the user mentions litigation, client
names under NDA, or anything that must not be described publicly even in redacted form.
## Key principles to honor
- **PII first.** ClAudit scrubs with regex + the user's `~/.claude/claudit/scrub.txt` denylist + an
optional LLM pass. If the user mentions org names, client names, internal hostnames, or codenames,
suggest they add them to `scrub.txt` before filing.
- **Don't pre-judge.** ClAudit reports *every* genuine block by default; whether a block was "correct"
vs a false positive is the contested thing it exists to surface, so it isn't filtered out. (An
opt-in `--gate` LLM pre-filter exists but is off by default.)
- **Never sent:** rate-limit, overloaded/529, and usage-cap errors are logged, not filed.
## Community poll
Users can vote on whether Anthropic will fix the over-blocking by reacting +1, -1, or eyes on the pinned
poll issue: https://github.com/sworrl/ClAudit/issues/6, live tally at
https://sworrl.github.io/ClAudit/ and in the app.