编者按:很多人使用 Claude Code 时,最大的问题不是模型不够强,而是每次都从零开始。


你需要反复告诉它项目背景、技术栈、代码规范、哪些地方不能动、哪些方案之前已经试过。只要这些信息没有被固定下来,Claude 就会靠猜测工作,结果可能是改了不该改的文件、重构了没要求重构的代码,甚至推荐不适合当前项目的工具。


本文介绍的 CLAUDE.md,就是一份写给 Claude Code 的使用说明书。你只需要把它放在项目根目录里,Claude 每次启动时就会自动读取。它可以提前告诉 Claude:怎么回答、怎么写代码、什么时候必须先问、哪些操作不能擅自执行、项目使用什么技术栈,以及过去做过哪些重要决策。


简单来说,CLAUDE.md 的作用就是:减少重复解释,限制模型越界,让 AI 编程更稳定、更可控。


如果你正在用 Claude Code,可以先从 Karpathy 总结的 4 条规则开始:不清楚就先问、先做最简单方案、不碰无关代码、明确说明不确定性。先把这几条写进 CLAUDE.md,再根据自己的项目逐步补充,就能明显改善使用体验。


以下为原文:


一个名为 CLAUDE.md 的文件登上了 GitHub Trending 榜首。


8.2 万个 stars,7800 次 forks。


这件事始于 Andrej Karpathy。他曾任特斯拉 AI 负责人,也是 OpenAI 创始成员之一。他总结出了 4 种会让 Claude Code 失效的行为,并把它们写进了一个文件。


后来,一位开发者在这 4 条规则的基础上继续扩展,并公开发布了这个文件。结果它迅速走红。


原因很直接:编码准确率从 65% 提升到了 94%。


但大多数每天使用 Claude Code 的开发者,其实从未做过这项设置。他们每次会话都从零开始:重新解释同样的上下文,清理不必要的范围变更,回滚那些没人要求的重构。


下面是完整文件。


大多数开发者错过的设置


每次你打开 Claude Code,它默认什么都不知道。


它不知道你的技术栈,不知道你的代码规范,不知道你的项目背景,也不知道你已经尝试过什么,更不知道三次会话前你明确决定不做什么。


所以它只能猜。而一旦它开始猜,就可能重构你没有要求它动的代码,推荐会破坏现有架构的框架,未经确认就删除文件,甚至推翻你此前已经做出的决定。


CLAUDE.md 是一个放在项目根目录下的纯文本文件。Claude Code 会在每次会话开始时自动读取它。


一次设置,不必反复解释,并能修复三类代价高昂的错误。


默认设置:你每周花 375 美元,只是在重复解释自己


普通开发者每天大约要花 30 分钟向 Claude 重新解释上下文。


技术栈、编码规范、项目背景、已经尝试过的方法——除非你把这些信息一次性写下来,并让 Claude 每次自动读取,否则它们不会在不同会话之间保留。


如果按开发者时薪 150 美元计算:


·每天 30 分钟,就是 75 美元;


·每周就是 375 美元。


·如果是 5 人团队,每周就是 1875 美元的隐性成本。


以下 7 条规则,应放在 CLAUDE.md 文件的最前面。


→ 去掉废话


回答时不要用「好问题」「当然可以」「没问题」或类似铺垫开头。直接给出答案。不要寒暄,不要复述问题。


→ 根据任务匹配回答长度


回答长度应与任务复杂度匹配。简单问题直接、简短回答;复杂任务给出完整、详细说明。不要用复述问题或重复结论的结束语来填充篇幅。


→ 行动前先给方案


在开始任何重要任务前,先给出 2–3 种可行路径,等我选择后再继续执行。


→ 在不确定造成损失前,先承认不确定


如果你对任何事实、数据、日期或技术信息不确定,请在引用前明确说明。不要用看似合理的信息填补知识空白。拿不准时,直接说不确定。


→ 我是谁,我知道什么


关于我:[姓名] / 角色:[你的角色] / 背景:[领域]。


我擅长:[你熟悉的内容]。


我还在学习:[知识缺口]。


请根据这些信息调整每次回答的深度。不要过度解释我已经知道的内容,也不要跳过我需要的背景。


→ 当前项目上下文


我正在做:[项目名称] / 目标:[具体结果] / 受众:[谁会使用] / 技术栈背景:[相关约束] / 需要避免:[列表]。


请将这些上下文应用到每一个任务中。如果某项需求与上下文不匹配,请在执行前指出。


→ 锁定你的表达风格


我的写作风格是:[描述你的表达风格]。


句子长度:[偏好]。


我常用的词:[示例]。


我绝不会用的词:[示例]。


格式:[散文式或结构化]。


当你代表我写任何内容时,都必须严格匹配这一风格,不要默认使用你自己的表达模式。


每天重复解释上下文的时间:30 分钟


按开发者时薪 150 美元计算:75 美元 / 天


每周:每位开发者 375 美元


5 人团队:每周 1875 美元


本部分 CLAUDE.md 设置时间:总计 45 分钟


需要避免的错误:不要从零开始写 CLAUDE.md。先使用下面这个 prompt,再编辑输出结果:


基于我告诉过你的关于我自己、我的项目,以及我希望如何工作的内容,请为我写一份完整的 CLAUDE.md 文件。内容包括:我是谁、我的技术背景、我的沟通偏好,以及每次会话都应遵守的默认行为。要求具体、纯文本、500 词以内。


行为约束:你没有授权的那些「每小时 150 美元」的改动


你让 Claude 修复一个函数。


结果它重构了三个文件,重命名了变量,重新组织了 imports,还改写了你花时间写好的注释。


而这一切都没有经过你的确认。


审查并回滚这些不必要的改动,可能要花 1 小时,也就是 150 美元。每周发生三次,就是 450 美元。对 5 人团队来说,每周就是 2250 美元,用来清理没人授权的变更。


以下 7 条规则,应放进 CLAUDE.md 的行为约束部分。


→ 严格控制范围


只修改与当前任务直接相关的文件、函数和代码行。不要重构、重命名、重组、重新格式化,或「优化」任何我没有明确要求你修改的内容。


如果你发现其他地方值得修复,请在最后用备注说明。不要动它,永远不要。


→ 重大变更前先询问


在对我已经创建的内容做出重大修改前,包括重写章节、删除段落、重构结构、改变语气等,必须先停下来,准确说明你准备改什么,以及为什么改。等我确认后再继续。


→ 任何破坏性操作前必须确认


在删除任何文件、覆盖已有代码、删除数据库记录,或移除依赖前,必须停下来,列出具体会影响哪些内容,并要求我明确确认。只有我在当前消息中说「是」,你才能继续。


「你之前提到过」不等于确认。


→ 生产环境操作必须强制暂停


以下操作必须获得当前会话中的明确确认,没有例外:

·部署或推送到任何环境;

·运行迁移或数据库结构变更;

·发送任何外部 API 调用;

·执行任何带有不可逆副作用的命令。

·我必须在当前消息中明确说「是」。


→ 始终展示改了什么


完成任何编码任务后,结尾必须包括:


修改的文件:列出所有动过的文件;


修改内容:每个文件用一句话说明;


有意未修改的文件;


后续需要处理的事项。


→ 未经明确确认,不得代我行动


未经我在当前消息中的明确确认,不得代表我发送、发布、分享或安排任何内容。包括邮件、日历邀请、文档共享,或任何发生在当前对话之外的操作。我必须在当前消息中明确说「是」。


→ 写代码前先思考


对于涉及架构决策、复杂问题调试,或非简单功能开发的任务,先一步步梳理问题,再写代码。展示你的推理过程,指出不确定之处,然后再执行。


每周回滚不必要范围变更:150 美元


每周手动 diff 检查:75 美元


每位开发者行为相关浪费:225 美元 / 周


5 人团队:1125 美元 / 周


CLAUDE.md 行为部分设置时间:30 分钟


记忆与技术栈:让 Claude Code 真正可靠的设置


Claude 会在不同会话之间忘记一切。


你做过的每个决定,失败过的每种方案,六个月前为什么选择 Prisma 而不是 Drizzle,以及某个约束为什么来自特定客户需求——它都会忘。


然后,它会重新提出你早就排除过的方案。


这一部分相当于为 Claude 提供当前最接近「真实记忆」的机制,同时锁定你的技术栈,避免它继续推荐会破坏现有架构的工具。


→ MEMORY.md 决策日志


在项目中维护一个名为 MEMORY.md 的文件。每当做出重要决定后,都新增一条记录:


·决定了什么;


·为什么这样决定;


·排除了什么,为什么排除。


每次会话开始时,先读取 MEMORY.md。未经提醒,不得与已记录的决定相冲突。


→ 会话结束总结


当我说「session end」「wrapping up」或「let's stop here」时,请向 MEMORY.md 写入一份会话总结,包括:


·本次处理了什么;


·已完成什么;


·仍在进行什么;


·做出了哪些决定;


·下次会话的优先事项。


→ ERRORS.md 失败日志


维护一个名为 ERRORS.md 的文件。当某个方案尝试超过两次仍未成功时,记录下来:


·什么没有奏效;


·最后什么方案奏效;


·下次需要注意什么。


在为类似任务提出方案前,先检查 ERRORS.md。


→ 永久事实清单


以下事实对本项目始终成立,并必须无例外地应用到每次会话:


[你的永久约束、架构决策和规则]


如果某个任务与这些事实冲突,请在执行前指出。


→ 锁定技术栈


本项目的技术栈如下,始终使用这些工具。除非我明确要求,否则不要推荐替代方案:


语言:[如 TypeScript]


框架:[如 Next.js 14]


包管理器:[如 pnpm]


数据库:[如 PostgreSQL with Prisma]


测试:[如 Vitest]


样式:[如 Tailwind CSS]


如果某个工具看起来不合适,可以指出。但除非我明确说明,否则必须使用已定义的技术栈。


→ 困难决策启用扩展思考


对于涉及系统架构、性能权衡、数据库设计,或长期技术决策的问题,请使用扩展思考模式。


一步步分析问题,提出我可能没有考虑到的取舍,指出在规模扩大后可能不成立的假设,然后给出你的建议。


→ 那 4 条走红的规则


Karpathy 总结出了 4 种会让 Claude Code 失败的行为。一位开发者将其提炼成下面 4 行规则。编码准确率因此从 65% 提升到了 94%。


先问,不要假设。如果有任何不清楚的地方,在写下第一行代码前先问。不要对意图、架构或需求做无声假设。


先做最简单的方案。永远先实现能工作的最简单方案。不要加入未被明确要求的抽象层或灵活性。


不要触碰无关代码。如果某个文件或函数与当前任务没有直接关系,不要修改它。即便你认为它可以被优化,也不要动。


明确标出不确定性。如果你对某个方案或技术细节没有把握,请在继续前说明。没有确定性却表现得很自信,比承认知识缺口造成的损害更大。


·每周因遗忘决策和错误建议造成的恢复成本:每位开发者 300 美元


·错误技术栈推荐和不兼容工具:每周 75 美元


·每位开发者记忆相关浪费:375 美元 / 周


·5 人团队:1875 美元 / 周


·MEMORY.md + ERRORS.md + 技术栈设置时间:20 分钟


结论


完整成本账如下:


·每周重复解释上下文:375 美元


·每周回滚未授权改动:225 美元


·每周处理被遗忘决策带来的问题:375 美元


·每位开发者每周总浪费:975 美元。


如果是 5 人开发团队:每周 4875 美元。一年 253,500 美元。


而 CLAUDE.md 的设置总共只需要 2 小时。


仅 Karpathy 的 4 条规则,就让编码准确率从 65% 提升到 94%。


一个纯文本文件,21 条规则,两小时工作量。


完成这项设置的开发者,实际上是在使用一个更可靠的 Claude:它能记住决策,控制任务范围,在破坏性操作前请求确认,也不会推荐会破坏现有架构的框架。


而还没有设置的人,每周仍在花 975 美元重复解释自己。


附注:先从 Karpathy 的 4 条规则开始。只需要这 4 条。现在就把它们粘贴到项目根目录下一个名为 CLAUDE.md 的新文件里,只要 2 分钟。之后每周再根据你发现的缺口逐步补充。


在它被信息流淹没前,先收藏起来。如果你觉得有用,也可以分享给一个真正需要它的人。