← 返回资讯
陈默
AI 行业分析师
已审核

朋友把CLAUDE.md从400行删到80行,AI突然听话了

朋友发了张截图,Claude Code的报错日志,配了一句话:“我要砸键盘了。”

朋友把CLAUDE.md从400行删到80行,AI突然听话了

朋友把CLAUDE.md从400行删到80行,AI突然听话了


上周三晚上11点多,手机震了一下。

朋友发了张截图,Claude Code的报错日志,配了一句话:“我要砸键盘了。”

他说让Claude给项目加个分页功能。简单吧?结果这哥们儿不光加了分页,顺手把整个API层的错误处理重构了,顺带改了数据库查询的命名规范。一跑,炸了。满屏报错。他问我:“我明明写了CLAUDE.md啊,越写越不听使唤是怎么回事?”

我让他把文件发来看看。

好家伙。400多行。

里面有项目愿景、技术栈介绍、团队价值观、代码风格偏好,甚至还有一段“希望你能写出优雅的代码”。我说你这写的不是入职手册,是企业文化宣传册。朋友还委屈:“我想着写详细点儿,它就能更懂项目啊。”

讲真,这事儿我太熟了。

去年刚开始用Claude Code的时候,我犯过一模一样的毛病。觉得CLAUDE.md嘛,不就是把项目文档塞进去,让AI多了解上下文。结果越塞越多,Claude反而越来越飘。改个按钮颜色,它顺手重构了状态管理。让他优化个查询,它给我整了一套新的ORM方案。

后来我才搞明白一个反直觉的事儿:CLAUDE.md是给Agent看的,不是给人看的。

你想想,人看文档可以跳读、扫一眼抓重点、根据目录找需要的部分。Claude不是这么读的。每次启动,它把整个CLAUDE.md完整加载进上下文窗口,从头到尾“吃”进去。你写的每一个字都吃token,每多一行都在稀释它的注意力。

不是开玩笑。

Anthropic官方在开发者文档里给过建议,CLAUDE.md控制在合理长度,规则遵守率能到90%以上。塞太多东西进去,遵守率会明显下降。不是线性下降,是断崖式的。你辛辛苦苦多写了两百行规则,它反而更不听话了。你说讽刺不讽刺?

所以第一件事:瘦身。

我现在写CLAUDE.md有个硬指标,项目根目录那个文件控制在80行以内。超过就删。怎么删?三类内容直接砍。

复述型内容,比如“本项目使用React 18 + TypeScript”——Claude读一遍package.json就知道了,你写它干嘛?愿望型内容,“代码应该优雅”、“注重用户体验”——对人说说还行,对AI说等于没说。什么叫优雅?什么叫注重体验?它理解不了。还有术语表,你项目里有个内部黑话叫“闪推”,意思是快速推送,你专门在CLAUDE.md里写一段解释。说实话,Claude大概率用不上,但每次都吃进去。

删完之后你会发现,文件短了,Claude反而更听话。

没用的话,删。

那删掉的东西去哪儿?有些确实需要保留的规则怎么办?

这就说到第二个操作:拆。

我现在项目里除了根目录的CLAUDE.md,还有个.claude/rules/目录。里面按主题拆成几个文件:code-style.md、testing.md、api-conventions.md。这些默认启动时也会加载,但真正厉害的是路径级规则。

举个例子,我有个后端项目,API handler的规范只适用于src/api/目录下的文件。以前我把这些规范写在根CLAUDE.md里,Claude改前端代码的时候也得“吃”进去,纯浪费。现在我在规则文件顶部加个frontmatter:

CODE
---
paths: src/api/**/*.ts
---

这条规则就只在Claude处理API文件时才加载。改前端的时候完全不占上下文。省token又减少噪音。巴适得很。

我大概是两个月前才知道这个机制的。当时在社区看到有人分享,试了一下。

绝了。

就觉得自己之前白写了好多CLAUDE.md。

还有个东西叫Auto Memory,挺有意思。Claude在工作过程中会自己记笔记。你项目的构建命令、你偏好的代码风格、它踩过的坑和解决方案,会自动写到CLAUDE.md里。过几天打开文件,发现多了一堆你没写过的东西。不用慌,那是它自己记的。

输入/memory可以查看和编辑这些自动记忆。我现在每隔一两周翻一遍,删掉过时的,保留有用的。你可以把CLAUDE.md理解成你给Claude写的入职手册,Auto Memory是Claude自己的工作笔记。两个配合起来,它对项目的理解会越来越深。真的真的很好用。

说到入职手册——扯远了,但这事儿挺逗——我最近面试的时候还真被问过对CLAUDE.md的理解。我当时大概这么答的:

“CLAUDE.md每次启动都会被完整加载进上下文,规则一多反而稀释模型注意力。我的做法是项目根CLAUDE.md控制在80行以内,按模块拆到.claude/rules/下用path-scoped加载,配合/init起步和/memory维护,规则遵守率明显上来了。”

面试官点了点头。我觉得这关过了。

得嘞,说回正题。

/init是个好东西。在项目根目录跑一下,Claude会自动扫描代码、读取README、推断技术栈,给你生成一份CLAUDE.md草稿。但这只是起点。真正有价值的东西——这个方案,应该叫策略——来自于迭代。Claude犯一次错,你就加一条规则。三个月后那个文件就是你最有价值的AI资产。

我现在的CLAUDE.md,第一条规则是我踩坑踩出来的:Claude改样式的时候把整个CSS文件重写了,我加的规则是“修改样式只准改相关选择器块,禁止重写整个文件”。这条规则值多少钱?值我debug两小时的命。

写CLAUDE.md的时候还有几条我一直遵守的东西,压过一切技巧。

具体可验证。别写“代码要简洁”,写“函数不超过50行,超过拆成两个”。别写“注意性能”,写“列表超过100条必须用虚拟滚动”。Claude需要的是可以检查的规则,不是需要它自己解读的原则。说白了,给它尺子,别给它哲学。

告诉它为什么。每条规则后面加一句原因。不是“用camelCase命名”,而是“用camelCase命名,因为后端API返回的字段都是camelCase,保持一致避免转换bug”。Claude理解了why,遇到规则没覆盖的情况也能做出正确判断。你品,细想,这跟带新人一个道理。

持续更新。CLAUDE.md不是写完就扔的。项目在变,团队在变,Claude踩的坑也在变。我每周至少打开一次,删掉不再适用的,加上新发现的。上周刚删了一条“使用axios发请求”,因为项目已经全面迁到fetch了。

最后说一个容易踩的坑。很多人——包括以前的我——会把所有东西塞进一个CLAUDE.md,越写越臃肿。后来我发现,有些内容其实更适合做成Skill而不是常驻记忆。如果某条内容是一整套操作流程、只在做某类任务时才用到,就别让它一直占着上下文。做成Skill,需要的时候调用,不需要的时候不加载。

挺好的这东西。

写到这里突然想起一个细节。Karpathy之前分享过一套规则,核心就四点:编码前思考、简洁优先、精准修改、目标驱动执行。这套规则在不同工具里命名不一样,Codex里叫AGENTS.md,Claude Code里叫CLAUDE.md,原理完全一样。如果你的团队既用Claude Code又用Copilot,不用维护两份。在CLAUDE.md里写一行@AGENTS.md把另一个引进来就行,Claude专属的规则追加在后面。

配置这事儿,说到底是迭代出来的,不是设计出来的。

你的CLAUDE.md现在多少行了?

70
1176 阅读
2 评论
分享
链接已复制
编辑说明

本文由 MakeSense 编辑团队撰写并审核。文中引用的数据和观点均经过交叉验证,如有疏漏欢迎在评论区指正。最后更新:2026年06月27日 12:32

陈默

AI 行业分析师

前某大厂 AI 实验室研究员,关注大模型技术演进和商业化落地。写过 200+ 篇行业分析,擅长从产品视角拆解技术趋势。

读者评论 2

数据分析师 1周前
数据引用很扎实,建议补充一下近三个月的最新数据。
回复 点赞 (9)
产品经理阿杰 1周前
从产品角度看,这个方向确实有机会,但商业化路径还需要验证。
回复 点赞 (15)