适合谁阅读
如果你在使用 Claude Code 时经常遇到这些问题:模型不听指令、过度复杂化代码、改了你没让它改的东西——这篇教程就是为你准备的。
背景
Andrej Karpathy(OpenAI 联合创始人、前 Tesla AI 总监)公开吐槽了 AI 编程工具的三大通病:
- 不确认就乱猜 — 模型替你做错误假设,然后一路狂奔不回头
- 过度复杂化代码 — 100 行能搞定的事非要写 1000 行,抽象满天飞
- 乱改无关代码 — 明明只改一个 bug,结果注释、变量名、函数签名全被重写了
每个用 Claude Code 的开发者都有同感。
开发者 Forrest Chang 基于 Karpathy 的吐槽,写了一个 CLAUDE.md 配置文件,用四条原则彻底改变 Claude Code 的行为方式。一周内获得 44,000+ GitHub Star。
什么是 CLAUDE.md
CLAUDE.md 是 Claude Code 在每次会话开始时自动读取的行为配置文件。你在里面写的任何内容,都会成为 Claude 处理你项目时的一部分"思维方式"。
这个文件添加了四条原则,每条针对一个具体坏习惯。
四条原则详解
原则一:先思考再写代码(Think Before Coding)
改动前: 你说"加个登录功能",Claude 直接开始写代码,写到一半发现理解错了需求。
改动后: Claude 先列出理解、不确定的地方、实现方案,等你确认后再动手。问题在上游暴露,而不是写完才发现。
原则二:简洁优先(Simplicity First)
改动前: 你让写一个简单的工具函数,Claude 给你搞出一整套类继承体系。
改动后: Claude 会先用最简单的方案实现。如果一个高级工程师看了觉得过度设计,它会重写。100 行能解决的事,不写 1000 行。
原则三:精确修改(Surgical Changes)
改动前: 你让修一个 null check 的 bug,Claude 连带加了类型提示、重命名变量、重写注释、重构函数签名。
改动后: 只改你要求的那一处。不多动一行。
原则四:目标驱动执行(Goal-Driven Execution)
这是 Karpathy 称为"核心洞察"的一条:
"LLM 在循环执行直到达到特定目标方面非常出色。不要告诉它怎么做,给它成功标准,然后看着它行动。"
改动前: 你得一步步盯着 Claude 做事,随时纠正方向。
改动后: 你给出目标和验收标准,Claude 自己循环迭代直到满足。你从"监工"变成"评审者"。
安装方法(两种)
方法 A:全局插件(推荐)
打开 Claude Code,依次运行两条命令:
# 命令1:安装插件
claude mcp add --global claude-md-plugin
# 命令2:激活
# 重启 Claude Code 即可生效
安装后立即生效,所有项目通用。
方法 B:单项目使用
将 CLAUDE.md 文件放到你的项目根目录即可。文件内容就是那四条原则的配置。
如何添加自定义规则
这个文件设计为可以和项目级指令合并使用。在四条原则之后,添加你自己的部分:
# Project-Specific Rules
- 本项目使用 TypeScript strict mode
- 测试框架用 Vitest,不要用 Jest
- API 响应格式遵循 RESTful 规范
你的项目规则和四条原则会同时生效。
如何确认生效了
三条变化你会立刻注意到:
- diff 变干净了 — 只有你要求改的才出现在 diff 里,没有重格式化、没有重命名、没有你根本没提到的"改进"
- 先问再做 — Claude 开始问澄清问题,而不是猜着就干。你花更少时间扔掉错误的工作
- 代码第一版就简洁 — 不用因为过度设计重写,没有没人要求的抽象层
