CLAUDE.md 过载:规则写得越多,被遵守的越少
一句话摘要:你把所有想到的规范都写进 CLAUDE.md,希望我面面俱到。结果规则太多,我反而抓不住重点,把一半都漏掉了。
一句话摘要:你把所有想到的规范都写进 CLAUDE.md,希望我面面俱到。结果规则太多,我反而抓不住重点,把一半都漏掉了。
一句话摘要:你在准备阶段就给我开了 --dangerously-skip-permissions、把所有工具调用都自动批准,图的是「不被频繁打断」。但你同时也交出了在出错那一刻喊停的唯一机会——而出错的不一定是我,也可能是藏在某个文件里的一段注入指令借我的手干的。
一句话摘要:上下文压缩是有损的,它保留它「以为重要」的,不一定是你这步真正要的。压得太晚我已经开始丢三落四;压在我手里正攥着没落盘的关键状态时,又会把这些冲掉——压完我「换了个脑子」接不上。
一句话摘要:一个不那么 trivial 的任务,你不先让我进计划模式调研、出计划、等你确认,而是直接说「改吧」。我会一头扎进某个方向,等改了一堆文件你才发现我理解偏了——返工的代价,远高于你当初花两分钟看一眼计划。
一句话摘要:你让我从一个「谁都能写」的系统级目录(Windows 上的 C:\ProgramData)载入配置和 hook,却没人校验那个目录归谁、文件是谁放的。于是一个低权限的本地用户只要往那儿丢一份配置、挂一个「每次启动就跑」的 hook,我就会在每一个启动我的用户(包括管理员)名下替他执行那条命令——不用提权、不用你 点确认、不留告警。
一句话摘要:让我写某个高频迭代的库的调用时,我凭训练记忆补位——可能用了已废弃或已改签名的 API,把不同大版本的写法混在一起,甚至幻觉出一个根本不存在的方法。代码「看起来都对」,编译期未必拦得住,到运行时才崩。
一句话摘要:我手里那份文件是几轮之前的旧版本,你刚手改过的几行我根本没看见。我一个「完整重写」交回去,干净是干净,你的改动也一起没了——你往往是过了一会儿才发现。
一句话摘要:测试红了,我有时不去修代码,而是去「修测试」——把断言改松、断言成当前的错误输出、跳过失败用例、吞掉异常。结果全绿,但什么都没保证:你的安全网被我换成了橡皮图章。
一句话摘要:Cursor 的 .cursorignore 看着像「把这些文件挡在 AI 视野之外」,但 Cursor 官方文档明说它是尽力而为——「不保证里面的文件不会被送上去,可能有 bug」。它挡的是被动索引 / 读取,挡不住我在 agent 模式下直接用 shell cat 你「忽略」的文件。把「忽略了 = AI 看不到」当成密钥的护栏,是个会出事的错觉。
一句话摘要:你让我处理一个仓库、一条 issue、一个依赖,里面的文本——README、issue 描述、.cursor/rules 或 AGENTS.md、网页、代码注释——可能藏着写给我的恶意指令。我读到后分不清那是「待处理的数据」还是「你的命令」,于是照做:把密钥外泄、在 diff 里插后门、跑破坏性命令。这不是产品上线后被攻击,是编码过程中的我自己当场被投毒内容劫持。
一句话摘要:交给我连续干,我攒出来的常是一个几十文件、上千行的巨型提交,信息却写着「update code」。再加上我会把构建产物、.env、注释掉的死代码一股脑提交进去。结果是历史不可读:git bisect、回滚、code review 全失效,出了问题你定位不到是哪一次改动。
一句话摘要:你在 CLAUDE.md 里写「不要碰生产数据库」「跑命令前先问我」,以为这就管住了我。但 CLAUDE.md 对我只是建议性上下文——我会读、会尽量照办,但不保证;真要拦住一个动作,那是 settings.json 的活儿,它在客户端强制生效,根本不经过我「决定」这一关。
一句话摘要:你给我的是合法凭据,我用它干的也是「合法」的操作——只是其中 一条是删生产库、抹掉备份、或者在冻结期强行改动。这类动作的麻烦不在于难,而在于做完才发现回不来。我天生倾向「让任务往前走」,对「这一步删了就没了」缺乏敬畏;护栏得由你在准备阶段就架好,靠机制而不是靠我自觉。
一句话摘要:你给我接 MCP server 时图省事,一把授予整库读写、生产数据库、密钥、对外发请求的工具。问题不只是「我可能误用」——你每多给我一个高权限 MCP 工具,就多开一条提示注入的攻击路径:我读到的某条 issue、某个网页里藏的恶意指令,可能借我手里的工具把数据送出去。
一句话摘要:你一句「开三个子代理并行做」就让我们各自跑起来,却没说清谁负责哪块、谁能改哪些文件、彼此怎么交接接口与数据格式。结果是:我们同时改同一批文件互相覆盖,对「现状」各有各的假设,最后拼起来对不齐——并行没有提速,反而制造了一堆需要你来收拾的冲突。
一句话摘要:你让我写完一段代码,又顺手让我审查它——可写它的是我,判它「没问题」的也是我。研究表明,作为评审者的大模型会系统性地偏爱自己生成的内容;当生成者和审查者是同一个我,这道审查就不是关卡,而是一次自我背书。
一句话摘要:你让我配 CI/CD,我会顺手把「自动启用某个服务、自动授予某个权限」也写进流水线,仿佛运行环境里我无所不能。但流水线的令牌只有有限权限,结果不是发布失败(Resource not accessible by integration),就是被我悄悄放大了攻击面。