Claude Code 默认很笨?一个文件就能改变一切(完整配置指南)
一份来自开源社区的真实经验:如何用一个 CLAUDE.md 配置文件,彻底改变 Claude Code 的行为模式。四个原则对应四个常见问题——过度工程化、不问就干、乱改代码、缺乏目标感。7天获得44000+星标,Andrej Karpathy 亲自验证的编程方法论。
你有没有觉得 Claude Code 有时候在"装傻"?
明明给了清晰的指令,它偏偏要自作主张。你让它修一个 bug,它给你重构了整个文件。你让它加个功能,它引入了三层抽象、两个设计模式,还顺手把你的注释全删了。
这不是幻觉。Andrej Karpathy(OpenAI 联合创始人、前 Tesla AI 总监)自己也公开吐槽过这个问题。他在转向 80% AI 辅助编程后,总结了三个最致命的习惯:
「模型会替你做错误假设,然后一路跑下去从不检查。它们不管理自己的困惑,不寻求澄清,不暴露矛盾,不呈现权衡,也不在应该反驳时反驳。」
「它们特别喜欢过度复杂化代码和 API,膨胀抽象层,不清理死代码。100行能搞定的事,它们给你写1000行。」
「它们有时候会修改甚至删除自己并不完全理解的代码和注释,即使这些跟当前任务毫无关系。」
每个用 Claude Code 的开发者看到这三句话,应该都会点头。
问题的根源
Claude Code 默认的工作模式有三个致命倾向:
第一,它不爱提问。遇到不确定的地方,它选择猜测而不是问你。猜错了?那就一错到底,浪费你的时间和 token。
第二,它过度设计。一个简单的 null 检查修复,它能给你加上类型提示、重命名变量、重写注释、重构函数签名。你以为在修 bug,结果在 review 重构。
第三,它缺乏目标感。你告诉它"做什么",它就去做。但从不停下来想"为什么要做"和"做到什么程度算成功"。
一个文件,四个原则
一位名叫 Forrest Chang 的开发者读完 Karpathy 的吐槽后,做了一个 CLAUDE.md 配置文件。只有四条原则,直接重新定义了 Claude Code 的行为模式。
这个文件发布后,7 天内获得了 44000+ GitHub 星标。
CLAUDE.md 是什么?它是 Claude Code 在每次会话开始时自动读取的行为配置文件。你写什么,它就照着做。这不是系统提示词的替代品,而是项目级的行为约束。
下面是四个原则的详解。
原则一:先思考再编码(Think Before Coding)
这个原则强制 Claude Code 在写任何代码之前,必须先完成三件事:
1. 确认它理解了你的需求 2. 列出它打算怎么做 3. 指出它不确定的地方
配置前:你让它加个用户注册功能。它二话不说开始写代码——建模型、写路由、加验证。写到一半你才发现,它用的是邮箱注册,而你要的是手机号注册。
配置后:它先停下来,输出一段思考:「我理解你需要用户注册功能。我的计划是:创建注册接口、添加数据验证、写入数据库。有一个不确定的地方:你希望用邮箱还是手机号作为注册凭证?另外,需要验证码吗?」
困惑在动手之前就暴露了,而不是做完之后。
原则二:极简主义(Simplicity First)
这个原则设定了一条硬标准:如果一个高级工程师会认为代码过度复杂,就重写。
配置前:你让它给一个列表加个排序功能。它给你创建了 SortStrategy 接口、实现了三个排序策略类、加了一个工厂模式、还写了单元测试。200 行代码,解决一个 10 行就能搞定的问题。
配置后:它直接用数组的 sort 方法,加上一个比较函数。简洁、可读、够用。如果未来确实需要更复杂的方案,到时候再重构。
核心思想:先让它工作,再让它优雅,最后才考虑优化。不要一上来就搞架构。
原则三:精准修改(Surgical Changes)
这个原则约束 Claude Code 只做你要求的事,不做任何额外修改。
配置前:你让它修一个 null 检查的 bug。它的修改包括——添加类型提示、重命名三个变量、重写两行注释、重构函数签名、顺便"优化"了隔壁一个无关函数。你 diff 一下,发现改了 40 行,真正修 bug 的只有 1 行。
配置后:只改该改的那一行。不动注释,不改变量名,不碰隔壁的函数。代码 diff 干干净净,一行不多一行不少。
为什么这很重要?因为每次额外的修改都是风险。改了不相关的代码可能引入新 bug,而且会让 code review 变成噩梦——reviewer 得一行行分辨哪些是真正的修改,哪些是"顺手优化"。
原则四:目标驱动执行(Goal-Driven Execution)
这是 Karpathy 亲自提到的关键洞察:
「LLM 在循环执行直到满足特定目标方面非常出色。不要告诉它做什么。给它成功标准,然后看它发挥。」
配置前:你告诉 Claude "写一个函数来解析 CSV 文件"。它写了一个函数,但没处理错误情况、没考虑编码问题、没处理空行。
配置后:你告诉它"我需要一个 CSV 解析函数,成功标准是:能处理 UTF-8 和 GBK 编码、空行不报错、格式错误给出明确提示、解析速度在 10MB 文件上不超过 1 秒"。它会自己想方案、自己测试、自己迭代,直到满足所有标准。
你从"微管理者"变成了"审查者"。告诉它目标,检查它交付的结果。
如何安装(两分钟搞定)
方案 A:全局安装(推荐,所有项目生效)
打开 Claude Code,依次运行以下两条命令:
claude mcp add --transport stdio -- claude-md "CLAUDE.md behavior plugin for Claude Code"
或者直接把 CLAUDE.md 文件放到你的项目根目录下,Claude Code 会自动读取。
方案 B:按项目安装
只需要在项目根目录创建一个名为 CLAUDE.md 的文件,把四条原则写进去就行。Claude Code 每次启动新会话时都会自动读取这个文件。
如何添加自己的规则
四个原则之上,你还可以叠加项目级别的特定指令。比如:
## 项目规则 - 使用 TypeScript strict 模式 - 测试框架用 Vitest - 所有 API 响应必须符合 RFC 7807 错误格式 - 中文注释
你的项目规则和四个原则同时生效,互不冲突。
怎么验证它真的在生效
三个变化,你会在第一次使用时就注意到:
1. Diff 变干净了。只有你要求的改动,没有格式化、没有变量重命名、没有"顺便优化"。
2. 提问出现在动手之前。Claude 不再猜测,而是先问清楚。你会花更少时间扔掉做错的工作。
3. 代码第一次就足够简洁。不需要因为它过度设计而重写。没有"只有 AI 觉得有意义"的抽象层。
最后说几句
这四个原则不是一个框架,不是一套方法论。它就是四条规则,写在项目根目录的一个文件里。但它解决的是 AI 编程中最真实的痛点——不是模型不够聪明,而是我们没有告诉它该怎么做。
与其抱怨 AI 工具不好用,不如花两分钟配置一下行为约束。效果可能超出你的预期。
来源与参考: 原始推文来自 @defileo(2026年4月20日),基于开源项目 CLAUDE.md 行为配置文件。Andrej Karpathy 的观点引用自其公开文章。
