别让AI帮你改代码时“顺手修了全世界”——三步锁死Claude的修改范围
你有没有遇到过这种情况:
只让 Claude 给登录表单加个邮箱校验,结果它顺手重写了导航栏、重构了权限模块、调整了 6 个文件的 import 顺序,还“贴心”修复了你根本没注意到的 auth.ts 里的“潜在 bug”……
最后你面对的是 800 行 diff,一半看不懂,一半不敢合——这不是 AI 在帮忙,是在给你埋雷。
这不是模型太聪明,而是它根本不知道什么叫“别多管闲事”。
Claude 没有内置的“边界感”,它的训练目标是“尽可能有用”,而“有用”在它眼里 = 看到问题就修,不管是不是你点的单。
✅ 解决方案不是每次写更长的 prompt(那治标不治本),
✅ 而是给它装一套「工作守则」——像给新同事发《入职须知》一样,明确告诉它:
“你只能碰这 2 个文件,只做这 3 件事,做完必须自己再对一遍。”
这就是 Drift Detector 提出的「三步防越界工作流」,5 分钟装好,从此告别失控式修改:
🔹 第一步:开工前,先签“施工合同”
输入 /scope-declare
→ Claude 会立刻列出:本次只允许修改哪些文件?每处改什么?
比如:
SignupForm.tsx → 添加 email 校验逻辑 + 错误提示 UI
validation.ts → 导出新函数 validateEmail()
这份清单就是它的“操作许可书”。没列进去的文件,一律不许碰。
🔹 第二步:干了 15 分钟后,查岗一次
输入 /drift-check
→ Claude 自动比对:
– 实际改了哪些文件?
– 和当初声明的是否完全一致?
– 有没有偷偷摸摸改了 auth.ts 或 utils.ts?
发现越界?立刻喊停,不等你 review 就预警。
🔹 第三步:收工前,让它自己交答卷
输入 /self-verify
→ Claude 重新读你最原始的那句话(比如:“加邮箱校验”),然后逐条核对:
– ✅ 校验逻辑有了吗?
– ✅ 错误提示显示了吗?
– ✅ 只动了声明的 2 个文件吗?
全部打钩,才准说“Done”。
🛠️ 额外送你一道“防火墙”:预编辑拦截钩子
有个可选的 shell 脚本(pre-edit-scope-check.sh),会在 Claude 每次真正写代码前自动触发:
– 如果它想改一个不在 /scope-declare 清单里的文件 → 立刻弹警告⚠️
– 默认只是提醒(你还能手动继续),但把脚本里 exit 0 改成 exit 1,就能直接硬性拦截,不让越界操作发生。
⚙️ 怎么装?真就 5 分钟
把 3 个技能文件(.md)放进 ~/.claude/skills/,
再把钩子脚本放进 .claude/hooks/,并加执行权限:
cp skills/*.md ~/.claude/skills/
mkdir -p .claude/hooks
cp hooks/pre-edit-scope-check.sh .claude/hooks/
chmod +x .claude/hooks/pre-edit-scope-check.sh # ← 这行很重要!
装完即用,不用改项目配置,所有 Claude Code 项目都生效。
直达网址:https://builtbyzac.com/drift-detector.html
