你的CLAUDE.md 写错了!别怪 Claude Code降智不好用
1. 你的CLAUDE.md 写错了!别怪 Claude Code降智不好用
用 Claude Code 写代码,效果为什么时好时坏?哪怕提示词写得无比详细,它就是不遵循?根源在于你的 CLAUDE.md 写错了、/init 用错了。本文总结六大核心原则,帮你写出 Claude 真正会遵循的 CLAUDE.md。
1.1. 核心问题
用 Claude Code 写代码,为什么效果时好时坏?
哪怕提示词写得无比详细了,Claude Code 就是不遵循,即便是按别的营销号宣讲的都写到 CLAUDE.md 还是不行?
问题的根源在于:你的 CLAUDE.md 写错了,init 用错了。
1.1.1. CLAUDE.md 的本质
CLAUDE.md 本质上来说就是 Claude Code 的上下文,每次启动会话,它都会被注入到对话上下文里。
Claude Code 最大的坑就是,它会主动忽略你的 CLAUDE.md。
是的,直接无视!
Claude Code 在注入 CLAUDE.md 时会附带一段系统提示,大意是"这些内容可能相关也可能不相关,自己判断"。
换句话说,你写的内容如果太杂太长或者完全和主题无关,Claude 会选择性地直接跳过。
那怎么写才对?
1.2. 六大核心原则
1.2.1. 第一原则:少即是多
Humanlayer 团队曾经做过实验,研究表明,前沿模型能稳定遵循的指令数量大约是 150-200 条。
这是他们给出的图表:
这张图是 LLM 指令遵循能力的基准测试,非常有价值。
1.2.1.1. 图表结构
- X 轴:指令数量(0-500 条)
- Y 轴:准确率(0-100%)
- 颜色:延迟时间(黄色=快约 20 秒,紫色=慢约 120 秒)
- 每个小图:一个模型的表现曲线
1.2.1.2. 第一梯队
gemini-2.5-pro-preview、o3、grok-3-beta、claude-3.7-sonnet、gpt-4.1、claude-opus-4
这些模型在 200 条指令时仍能保持 80%+ 准确率,衰减曲线接近线性。
1.2.1.3. 第二梯队
gpt-4.5-preview、claude-sonnet-4、deepseek-r1、o4-mini
大约在 150-200 条指令后开始明显下滑。
1.2.1.4. 第三梯队
gpt-4o、gpt-4o-mini、claude-3.5-haiku、llama-4-scout
这些小模型呈现指数级衰减,100 条指令后准确率就跌破 50%。
1.2.1.5. 关键结论
这个数据其实就和我们平时使用模型的情况很贴近了,Claude Code 系统提示占用约 50 条指令,所以 CLAUDE.md 实际可用空间是 100-150 条。
可以得出的结论就是 Claude Code 的系统提示已经占用了约 50 条,其实留给你的空间并不多,不断叠加的提示词越多,越到后面,衰减就越严重。
所以整个结论也就很清晰了:
指令并不是越多越好,给的指令越少,每条被遵循的概率越高。
HumanLayer 就说他们的 CLAUDE.md 保持 60 行上下。他们给出的最佳实践是:不要试图把所有可能用到的命令、所有代码规范、所有注意事项都塞进去。指令越多,遵循率越低,而且是均匀下降,不是忽略后面的,是全部都开始忽略。
1.2.2. 第二原则:只写通用内容
CLAUDE.md 会进入每一次会话。
所以里面的内容必须是每次都用得上的。
数据库 schema 设计规范要放吗?不该放!
因为你不是每次都在改数据库。
项目结构说明要放吗?应该放!
因为 Claude 每次都需要知道代码在哪。
判断标准很简单,那就是:
这条信息是否在 80% 以上的任务中都会用到?
1.2.3. 第三原则:渐进式披露
问题是不通用的内容怎么办?单独建文件。
agent_docs/
├── database_schema.md
├── testing_guide.md
├── api_conventions.md
└── deployment.md
然后在 CLAUDE.md 里写一句话:“以上文档包含特定领域的详细信息,按需阅读。”
Claude 会在需要的时候自己去查。这样既不污染每次会话的上下文,又保证信息随时可用。
1.2.4. 第四原则:用指针不用复制
不要在文档里贴代码片段。代码会变,文档不会自动更新。
写 “参考 src/lib/auth.ts:15-45” 比贴 50 行代码好得多。Claude 会自己去读最新版本。
1.2.5. 第五原则:别用 AI 干 linter 的活
见过太多人在 CLAUDE.md 里写代码风格规范:缩进用两个空格、字符串用单引号、函数命名用驼峰……
LLM 是概率模型,让它检查格式一是容易出错,二是极浪费 Token。
正确的做法应该是配置一个 Hook,让 Claude 改完代码后自动跑一遍格式化工具,比在 CLAUDE.md 里写十条规范有效十倍,具体可以看这个系列专栏的文章:Hooks工作流!Claude Code Hooks的正确打开方式
1.2.6. 第六原则:手写,别自动生成
别用 /init!
这点真就我前面讲的理论,你代码写少了,文档量就应该相应的增加。项目改崩N次后,我总结出大型项目重构人机协同SOP
虽然 Claude Code 有 /init 命令可以自动生成 CLAUDE.md。
CLAUDE.md 是整个工作流的杠杆点,一行坏代码影响一个功能,一行坏的 CLAUDE.md 影响所有功能。
花一小时认真写,比花十秒自动生成然后花十小时和 Claude 斗智斗勇划算!
换句话来说,对项目真正负责任的应该还是人,而不是 AI,AI 可以总结,但是它不能完全替代人的审核与判断!
1.3. 最终总结
最后总结如下:
- CLAUDE.md 要短,60 行足够
- 内容要通用,每次都用得上
- 详细文档单独放,让 Claude 按需读取
- 格式规范交给工具
- 手写,别偷懒
1.3.1. 核心理念
把 CLAUDE.md 当成给 Claude 的入职培训材料来写。道理很简单,你会给新员工发一本 500 页的手册吗?
最正确的做法是给他一页纸,告诉他项目是什么、代码在哪、有问题找谁。
对 Claude 也应该一样。
把 AI 当成人来看,你就学会用 AI 了!