scope-guard — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited scope-guard (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
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.
The most expensive edits are the ones nobody asked for. A "while I'm here" rename, a reformatted file two directories away, an import you "tidied" — each one widens the diff, risks another agent's work on a shared tree, and turns a reviewable change into a guessing game.
Scope Guard makes you commit to a blast radius up front, then a PreToolUse hook holds you to it: any Edit/Write/MultiEdit outside the declared files is blocked before it happens.
Declare the files, then only touch the files. Widening scope is a decision you state out loud — never a side effect.
Pick the narrowest set of paths that can satisfy the request. Three ways to declare, highest priority first:
repo someone else also works in) — one glob per line:
# the only files this task may touch
src/checkout/**
src/lib/money.ts
!src/checkout/legacy/** # never these, even though src/checkout/** allows themexport SCOPE_GUARD_PATHS="src/**, !src/legacy/**"task, no file to clean up):
SCOPE-GUARD: src/checkout/**, src/lib/money.tsGlob rules: ** spans directories, * stays within one segment, a bare token with no / (e.g. *.ts) also matches that basename anywhere, a directory (src or src/) means src/**, and a leading ! excludes.
Edits inside scope go through untouched. The first time you reach for a file outside it, the hook blocks the edit and tells you which file and which scope.
A block is a signal, not a nuisance. Ask why the file is out of scope:
new SCOPE-GUARD: line that includes it, and say why in your reply. Now it's a recorded decision, not a drive-by.
Never widen scope silently to make a block go away.
False positive, or a deliberately broad task: touch .scope-guard-off in the project root (or ~/.claude/.scope-guard-off globally), or export SCOPE_GUARD_GATE=off. With no scope declared at all, the hook is a silent no-op — it only ever acts once you've opted in.
change works*. Narrow diff + real evidence = a reviewable change.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.