banthis — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited banthis (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Extend the local instruction surface with a named prohibition. The op-cell is extend: add one hard rule, keep existing project memory intact, and make the rule visible to future sessions.
Banthis is for user frustration or correction that should persist. It is not a notes system, preference logger, or policy engine.
Apply immediately when the user signals a behavior should never recur:
Certainty:
Do not write a ban when:
If a requested ban conflicts with an existing ban, surface the conflict instead of rewriting history.
<60 characters, noun phrase or imperative fragment, no markdown markers.No silent scope shrinkUser got mad because we keep doing dumb partial workDo not X — reason.--global.--global. node scripts/banthis.mjs add "<title>" "Do not X — reason."For user-wide bans:
node scripts/banthis.mjs --global add "<title>" "Do not X — reason."The script resolves the write target deterministically:
--global always writes ~/.claude/CLAUDE.md.AGENTS.md takes precedence over CLAUDE.md.CLAUDE.md.No repository scan. No editor adapter. No external binary.
The script owns only this range:
<!-- banthis:start -->
...
<!-- banthis:end -->Guardrails:
# H1; if no H1 exists, prepend the section.The managed section contains a preamble asserting that bans win over the current request. Future sessions must surface conflicts instead of quietly violating bans.
node scripts/banthis.mjs add <title> <rule>
node scripts/banthis.mjs list
node scripts/banthis.mjs remove <title>
node scripts/banthis.mjs initShortcut:
node scripts/banthis.mjs <title> <rule>Flags:
-g, --global target ~/.claude/CLAUDE.md
-h, --help print usageResults:
added — no case-insensitive title match existed.updated — title matched case-insensitively and title or rule changed.unchanged — exact title and rule already present.Do not … — reason.Before yielding after a ban operation:
<!-- banthis:start --> and one <!-- banthis:end --> pair.Do not unless the user supplied a stronger exact wording.list reports the expected title and rule preview.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.