Claude Code 默认很笨?一个文件就能改变一切(完整配置指南)
AI 教程教程Claude CodeAI编程CLAUDE.mdAnthropic提示词工程

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 的观点引用自其公开文章。