Claude Code 不听话?一个文件四个原则,彻底改变 AI 编程体验
AI 教程教程入门8 分钟阅读
学习路径:AI 编程入门

Claude Code 不听话?一个文件四个原则,彻底改变 AI 编程体验

Claude Code 用户常遇到模型不听指令、过度复杂化代码、乱改无关代码的问题。本文介绍一个基于 Karpathy 四原则的 CLAUDE.md 配置文件,一条命令安装,让 Claude Code 先思考再写代码、简洁优先、精确修改、目标驱动。

适合谁阅读

如果你在使用 Claude Code 时经常遇到这些问题:模型不听指令、过度复杂化代码、改了你没让它改的东西——这篇教程就是为你准备的。

背景

Andrej Karpathy(OpenAI 联合创始人、前 Tesla AI 总监)公开吐槽了 AI 编程工具的三大通病:

  1. 不确认就乱猜 — 模型替你做错误假设,然后一路狂奔不回头
  2. 过度复杂化代码 — 100 行能搞定的事非要写 1000 行,抽象满天飞
  3. 乱改无关代码 — 明明只改一个 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 规范

你的项目规则和四条原则会同时生效。

如何确认生效了

三条变化你会立刻注意到:

  1. diff 变干净了 — 只有你要求改的才出现在 diff 里,没有重格式化、没有重命名、没有你根本没提到的"改进"
  2. 先问再做 — Claude 开始问澄清问题,而不是猜着就干。你花更少时间扔掉错误的工作
  3. 代码第一版就简洁 — 不用因为过度设计重写,没有没人要求的抽象层

参考来源