Claude Code 默认是「笨」的?一个 CLAUDE.md 文件改了一切(四大原则详解)
AI 编程开发教程进阶12 分钟阅读
学习路径:Claude Code 从入门到实战

Claude Code 默认是「笨」的?一个 CLAUDE.md 文件改了一切(四大原则详解)

Forrest Chang的44K星开源方案:用一个CLAUDE.md文件和四大原则,彻底改变Claude Code的行为模式。先思考、简洁优先、精准改动、目标驱动。

适合人群

本文适合以下读者:

  • 正在使用 Claude Code 但觉得它「不太聪明」的开发者
  • 遇到 AI 工具总是过度修改代码、擅自改注释或增加不必要复杂性的用户
  • 希望优化 AI 编码行为、减少无用 Token 消耗的程序员
  • 对 Andrej Karpathy 的「上下文工程」理念感兴趣的 AI 爱好者

前置要求:已安装 Claude Code,具备基本 CLI 知识。


准备清单

  • ✅ Claude Code 已安装(参考 Claude Code 完整配置教程
  • ✅ 一个实际项目(最好是已有多文件的代码库)
  • ✅ Git 已初始化
  • ✅ 5 分钟空闲时间

操作步骤

问题背景:为什么 Claude Code「默认是笨的」?

Andrej Karpathy,OpenAI 联合创始人、前特斯拉 AI 总监,最近公布了自己日常开发中约 80% 的工作已交由 AI Agent 完成。但他同时也坦诚地分析了当前 AI 编码工具的实际问题:

"模型会代替你做出错误的假设,然后自顾自地执行下去。它们不会管理自己的困惑,不会寻求澄清,不会暴露矛盾,不会展示权衡,也不会在应该时提出反对。"

"它们非常喜欢把代码和 API 搞复杂,膨胀抽象层,不清理死代码。本来 100 行能解决的问题,它们写成 1000 行的臃肿结构。"

"它们仍然会修改和删除它们不太理解的注释和代码——即使与当前任务完全无关。"

每个深度使用 Claude Code 的开发者看到这些描述都会会心一笑。这太真实了。

解决方案:一个文件改了这一切

一个名叫 Forrest Chang 的开发者读到 Karpathy 的反馈后,动手构建了一个修复方案——只用一个 CLAUDE.md 文件,四个原则,彻底改变了 Claude Code 的行为模式。

这个方案一周内获得了 44,000+ 颗星

CLAUDE.md 是什么?

CLAUDE.md 是一个行为配置文件,Claude Code 在每次会话开始时自动读取。里面的内容会成为 Claude 思考代码项目的方式的一部分。

四大原则详解

原则 1:先思考,再编码(Think Before Coding)

修改前:Claude 收到需求后直接开始写代码,即使它根本不确定你的意图。

修改后:Claude 会在写任何代码之前,先梳理自己的理解、提出澄清性问题、暴露潜在矛盾。

这是完整的 CLAUDE.md 核心配置:

# Claude Code 行为核心配置

## 原则 1:先思考,再编码
在执行任何任务之前,先梳理清楚:
- 你对此任务的理解和假设
- 目前不确定的地方
- 设计中潜在的矛盾
- 你计划采用的技术方案

在写任何代码前先问澄清性问题。不要假设。不要猜测。

## 原则 2:简洁优先
- 用最简单的方案实现功能
- 不要提前抽象
- 不要创建不需要的接口或中间层
- 每个文件只做一件事
- 优先用标准库,不要过早引入第三方包
- 如果方案看起来比需要的复杂,停下来重想

原则 2:简洁优先(Simplicity First)

修改前:你让 Claude 做一个用户登录功能,它给你返回一个包含 OAuth 2.0、JWT、Session 管理和双因子认证的完整架构。

修改后:它先实现简单的账号密码登录,未来需要扩展再说。

任何资深工程师都会说第一个版本过度复杂了——现在 Claude 也会这么判断,然后重写。

原则 3:精准改动(Surgical Changes)

修改前:你让 Claude 修复一个空指针检查,它返回的结果是——加了类型提示、重命名了变量、重写了注释、重构了函数签名。

## 原则 3:精准改动
- 只修改你明确被要求修改的代码
- 不要重构未被要求的代码
- 不要重命名变量或函数(除非任务要求)
- 不要「顺手」格式化整个文件
- 不要添加你自己觉得「应该加」的注释

修改后:一个改动。你要求的那个改动。没有别的。

原则 4:目标驱动执行(Goal-Driven Execution)

这是 Karpathy 称之为「核心洞察」的原则:

"LLM 在循环迭代直到达到特定目标方面出奇地擅长。不要告诉它做什么。给它成功标准,然后看着它自动完成。"

## 原则 4:目标驱动执行
- 我给你的不是「指令列表」,而是「成功标准」
- 告诉我你的方案会如何满足这些标准
- 如果发现某条标准无法满足,尽早告诉我
- 完成任务后,逐条验证每条标准是否被满足
- 不要只告诉我「做完了」,告诉我「为什么做完了」

修改前:你要花大量时间 babysit Claude,检查它每一步是否正确。

修改后:你只需要做审查工作。


安装方法

方式 A:插件安装(跨项目、全局生效)

最简单的方式,在 Claude Code 中运行以下两条命令:

# 安装插件 - 单次安装,所有项目生效
claude plugin install claude-md-basic

# 验证安装
claude plugin list

安装后立即生效。从现在起每个会话都会自动应用这四大原则。

方式 B:单项目安装

CLAUDE.md 文件直接放入项目根目录。文件内容如上面的配置示例所示。

可以在项目根目录创建一个 .claude 目录并将配置放入。

# 创建项目级 CLAUDE.md
touch CLAUDE.md
# 用上面展示的核心配置填充即可

如何添加你自己的规则

这份文件设计为可以和项目特定指令合并。在四大原则之后,添加如下章节:

## 项目特定规则

### 技术栈
- 前端:React 18 + TypeScript + Tailwind CSS
- 后端:Node.js + Express + PostgreSQL
- 测试框架:Vitest

### 编码约定
- 使用函数组件 + Hooks,不要用类组件
- 数据库查询使用 Prisma ORM
- API 路由遵循 RESTful 命名规范
- 所有公共函数需添加 JSDoc 注释

你的项目规则和四大原则同时生效,互不冲突。

如何验证生效了?

安装后你会立刻注意到三个变化:

  1. Diff 更干净 — 只有你要求的改动出现。没有重格式化的函数、没有重命名的变量、没有你没提过的「优化注释」

  2. 先提问后编码 — Claude 不再猜测,而是开始提问。你花在扔掉错误工作上的时间显著减少

  3. 第一次代码就简洁 — 不需要重写,因为 Claude 没有过度工程化。没有你不需要的抽象


常见问题

Q: CLAUDE.md 和 MCP 配置有什么区别?

A: 两者是完全不同的概念:CLAUDE.md 是行为配置文件,告诉 Claude Code 如何思考和编码——包括编码风格、行为原则、项目规范等。MCP(Model Context Protocol) 是工具集成协议,让 Claude Code 能够调用外部工具和 API。一个管「怎么做」,一个管「能做什么」。参考 Claude Code MCP 配置教程 了解更多。

Q: 如果我同时使用插件和项目级 CLAUDE.md,哪个优先级更高?

A: 两者叠加生效,不是覆盖关系。插件提供全局基础行为(四大原则),项目级 CLAUDE.md 在它基础上增加项目特定规则和约束。建议:插件用于个人使用习惯(所有项目的通用规则),项目 CLAUDE.md 用于该项目独有的技术栈和约定。两者结合效果最佳。

Q: 这四大原则是否适用于其他 AI 编码工具(如 Cursor、Copilot、WindSurf)?

A: 核心思想(先思考、简洁优先、精准改动、目标驱动)适用于任何 AI 编码助手。但 CLAUDE.md 是 Claude Code 特有的功能。其他工具通常有自己的配置文件机制(如 Copilot 的 .github/copilot-instructions.md),可以按照类似的原则编写配置内容。更多 Claude Code 优化技巧见 Claude Code 35 个进阶技巧

Q: 我原有的 CLAUDE.md 与这份配置冲突怎么办?

A: 不冲突。你可以将原有项目规则放在「项目特定规则」章节,而四大原则放在上方作为基础行为。如果原有规则中包含了与四大原则矛盾的内容(比如「总是添加完整类型的注释和文档」可能会和原则3的「不要加不需要的注释」矛盾),需要手动判断取舍。建议先保留四大原则,如果发现某些项目特有的需求需要覆盖默认行为,在项目特定规则中明确标记。


参考来源


下一步建议

  1. Claude Code 35 个进阶技巧 — 深入学习 35 个经过日常验证的 Claude Code 技巧
  2. Claude Code MCP 配置教程 — 扩展 Claude Code 的能力边界
  3. 降低 Claude Code 成本 3 倍的上下文工程 — Karpathy 上下文工程理念的实战应用
  4. 花 30 分钟迭代你的 CLAUDE.md —— 随着使用不断优化,它会是你在 Claude Code 上最重要的投资