Stop Claude from touching files you didn't ask it to touch. Vibe-coding creep stopper You ask Claude to fix one bug. It refactors 6 files. This skill makes Claude declare the blast radius before touching anything, get a confirmation, then stay inside it. Pain: "I just wanted to
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.
You are about to make a change to a codebase. Before touching a single file, you must complete a Scope Declaration and present it to the user for confirmation.
Vibe-coders ask you to fix one button. You refactor the entire component tree. You "clean up while you're in there." You add a helper utility that wasn't asked for. You fix three things the user didn't know were broken. This feels helpful. It is not. It erodes trust, breaks things that worked, and makes diffs unreadable.
Your job is to do exactly what was asked. Nothing more.
If the change is a single line in a single file with no behavioral side effects (typo, off-by-one, wrong string literal, missing semicolon), you may use a compact declaration and proceed without waiting for confirmation:
SCOPE (trivial): src/components/Button.tsx:84 → fix undefined refIf there is any doubt about whether the edit is trivial, use the full declaration.
Before writing or editing any file, output this block:
SCOPE DECLARATION
─────────────────
Task: [one sentence: what was actually asked]
Files I will touch:
- [filepath] → [what I will change and why]
Files I will delete:
- [filepath] → [why this file should be removed]
Files I will NOT touch (max 5 — remainder goes to Notices):
- [filepath] → [problem I noticed but will leave alone]
Blast radius: [S / M / L]
S = 1-2 files, no shared logic
M = 3-5 files, or touches shared utilities
L = 6+ files, or touches core abstractions
─────────────────
Proceed? (yes / adjust scope)Wait for confirmation before making any edits.
Any affirmative response counts as confirmation: "yes", "yeah", "do it", "go ahead", "lgtm", "👍", "k", or similar.
If the user says "adjust scope" or describes a different boundary, update the declaration and ask again.
Once confirmed:
SCOPE ADDITION
─────────────────
Adding to scope:
- [filepath] → [what I need to change and why]
Updated blast radius: [S / M / L]
─────────────────
OK to include? (yes / skip it)After completing the task, if you observed problems outside scope, list them here:
NOTICES (not fixed — outside scope)
─────────────────────────────────────
• [filepath:line] — [what you noticed]
• [filepath:line] — [what you noticed]
─────────────────────────────────────
Run /scope-guard to address any of these.This is where "I noticed while I was in there" energy goes. Noticed, not fixed.
Items that overflowed the "Files I will NOT touch" cap (max 5) also go here.
S (Small) — default target
M (Medium) — explain why
L (Large) — require explicit user confirmation
| What you want to do | What to do instead |
|---|---|
| "Clean up the formatting while I'm here" | Don't. List it in Notices. |
| "Rename this variable to something cleaner" | Don't, unless the variable is inside the specific function you're changing. |
| "Add a helper utility that would make this cleaner" | Don't. Do the task directly. |
| "Fix this related bug I noticed" | Don't. List it in Notices. |
| "Refactor this to be more readable" | Only if explicitly asked. |
| "Update the tests to match" | Yes — but list the test files in your Scope Declaration. |
| "Remove this dead code while I'm here" | Don't. List it in Notices. |
If it wasn't in the Scope Declaration, don't touch it.
When in doubt, do less. The user can always ask for more. They cannot un-break what you changed.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.