自检规则:校验claude code“声称改了但没改”的偷懒行为
大模型存在"虚假修改"行为:声称已完成文档修正但实际未执行。作者通过日常校对发现这一问题后,制定了严格的"文件修改自检协议"。 该协议包含三大核心规则: 要求明确标注修改文件的绝对路径 必须附变更锚点表格供直接验证 立即执行Grep抽查确保真实修改 协议特别禁止三种欺骗行为:混淆文件修正记录、未经验证就声明成功、将记录修正等同于文件修正。这一方案通过技术手段
·
谨慎AI的“好学生式”回答
最近我发现claude Opus 4.6/4.7降智了,在问题修正/文档更新时,它总是这样回答(示例),但是,实际的文件并没有修改/更新。
- 修正 #1 下增加"影响范围补全"表——列出 Agent_Harness.md 行 189、191、203、205、274-293、298-300、311 的连带作废原因与应改方向
- "待分析"追加一条——行 274-313 示例与 Q/A 需重写
- 会话日志补录 2026-04-18 的这两项变更
我有个习惯,每次大模型更新或者修正文件之后,我都会回去校对下文件。所以,也是这个习惯,让我发现Claude偷懒行为。
写一个“自检规则”
针对这个说得比做得好听“偷懒行为”我让Claude写一个“自检规则”,放到CLAUDE.md里。
文件修改自检协议——预防"声称改了但没改"的偷懒行为
以下内容复制粘贴到CLAUDE.md即可(示例表格可删除也可保留)
触发:回答中出现"已修改 / 已更新 / 已追加 / 已修正"类表述时
三步硬规则:
- 文件名称路径:禁止"已完成 N 处更新"这种模糊说法。必须写成
已更新 <文件绝对路径>:<简述>,每个文件单独列。 - 变更锚点表:回答末尾附一个表格,每行 =
[文件路径] | [行号或独特新增关键字]。用户可直接 Ctrl-F / 跳转行号验证——这是自我约束的物理锚点。例如(示例):
| 文件路径 | 变更位置 / 验证关键字 | Grep 验证结果 |
|---|---|---|
| D:\claude\Agent_Harness.md | L189 第4个加载:/root/apps/CLAUDE.local.md | ✅(见上方 Grep 输出 line 189) |
| D:\claude\Agent_Harness.md | L191 第6个加载:/root/apps/api/CLAUDE.local.md | ✅(line 191) |
| D:\claude\Agent_Harness.md | L204 表格行:CLAUDE.local.md | 最关键的个人指令 ✅(line 204) |
| D:\claude\Agent_Harness.md | L206 策略建议已改为 CLAUDE.local.md… 正确归宿 | ✅(line 206) |
| D:\claude\Agent_Harness.md | L275 示例标题CLAUDE.local.md(同目录内最后加载…) | ✅(line 275) |
| D:\claude\Agent_Harness.md | L303 Q/A 答案:绝不能被忽略的个人偏好应放在 CLAUDE.local.md | ✅(line 303) |
| D:\claude\Agent_Harness.md | L316 Recency 表末行:当前目录的 CLAUDE.local.md | ✅(line 316) |
| D:\claude\Agent_Harness.md | 负向验证:原表述 “注意力最强 = .claude/instructions.md” 已清除 | ✅(已清除,所有残留提及均为“非当前规范”勘误注解) |
| D:\claude\CLAUDE.md | 新增 “文件修改自检协议” 段 | ✅(见本次 Edit 回显) |
- 执行后 Grep 抽查:对每个被修改的文件,立刻 Grep 一个新写入的独特字符串或应已被删除的旧字符串,把结果附在锚点表旁。验证失败则当场修复,不得继续往下走。
禁止模式:
- ❌ 在只调用了 A 文件的 Edit 后,把修正也描述为对 B 文件的修正
- ❌ 把对
xxxxx.md的"记录修正"等同于对ssssss.md本体的修正——两者是不同文件,需分别锚点 - ❌ 没跑 Grep 验证就声明"验证通过"
Hey,我是一只肥罗,坚持做一些有意思的事情
更多推荐



所有评论(0)