你的 CLAUDE.md / AGENTS.md 里,哪几条规则真正管用?

The New Stack 最近报道了一项研究:研究者从 Claude Code 里去掉一条指令后,Agent 越界执行(做了没被要求的事)的情况明显增多。给 Agent 写清楚「做什么、不做什么」确实有用。

抛砖引玉,几种常见的写法:

  • 写明「不确定就先问,不要猜」,比写一堆「要仔细」管用
  • 列出不能碰的目录和命令,比如生产配置、数据库迁移
  • 要求改完跑哪些测试、什么结果才算完成
  • 写清项目惯例:命名、注释风格、提交信息格式

你的规则文件里哪几条最管用?哪些写了也没用? 欢迎贴片段,注意别贴密钥和内部地址。

参考来源:

楼主补充(11 月 3 日):官方文档对 CLAUDE.md 的定位

这个问题后来我们又核对了 Claude Code 的官方记忆文档,有几点和规则写法直接相关:

  • CLAUDE.md 在每次会话开始时加载,但 Claude 把它当作上下文,而不是强制执行的配置;要不管 Claude 怎么判断都拦住某个操作,应该用 PreToolUse hook。
  • 指令写得越具体、越简洁,Claude 遵守得越稳定。指令含糊或互相矛盾时,不保证严格遵守。
  • 可以在 Claude Code 里运行 /context,看 Memory files 下有没有你的 CLAUDE.md,确认它真的被加载了。
  • 项目根目录的 CLAUDE.md 在 /compact 之后会重新读入;只在对话里说过的要求,压缩后可能就丢了。

所以楼上那几种写法依然有用,但「绝对不能做」的事,最好再用 hooks 或权限规则拦一道。具体配置整理在这两帖:

欢迎继续贴你觉得管用的规则。