译者:@飘飘
作者:@Vishwas Gopinath
原文:https://www.builder.io/blog/claude-md-guide
前言
CLAUDE.md 是一个让 Claude 在每次会话中自动记住项目背景、代码规范和工作流程的配置文件,通过持续维护,它能显著减少重复沟通并提升 AI 编程效率。

一个文件。每次对话前都会被加载。如果你在使用 Claude Code,这里是最值得投入配置时间的地方。
CLAUDE.md 是一个 Markdown 文件,Claude 会在每个会话开始时自动读取。它用于存放项目级的指令,这些内容如果没有它,你往往需要在每次提示中反复说明,比如:结构约定、代码规范、工作流、风格等。
我已经持续优化自己的 CLAUDE.md 配置一段时间了。这篇指南总结了我在创建、组织、维护以及不断演进这些文件过程中学到的全部经验。如果你使用的是其他 AI 编程工具,同样的思路也适用于 AGENTS.md(这是 Cursor、Zed、OpenCode 等 AI 编程工具使用的等效文件)。
为什么你需要一个 CLAUDE.md 文件
Claude 每次会话开始时,都是 “失忆” 的。它不知道你代码风格偏好,不知道该如何运行你的测试,也不知道你的团队使用特定的分支命名规范,或者你的认证模块里有某个奇怪但必要的绕行方案。
结果就是,你要么不断重复说明这些事情;更糟糕的是,忘了提到某个关键信息,最后不得不花时间修复那些不符合你约定的代码。
CLAUDE.md 正是为了解决这个问题而存在的。Claude 会自动读取它,因此你的偏好可以在不同会话之间持续生效。
如何创建你的 CLAUDE.md 文件
最快的方式是使用 /init命令。在项目目录中运行它,Claude 会根据你的项目结构和检测到的技术栈,生成一个初始版本的 CLAUDE.md。
有些人建议从零开始手写,但我更喜欢把 /init生成的内容当作起点,然后删除不需要的部分。相比从头写,删除要容易得多。生成的文件里通常会包含一些显而易见、不需要特别说明的内容,或者对你来说没有实际价值的填充说明。
你可能会想,既然生成器都帮你写好了,为什么不全部保留?原因很简单:上下文是宝贵的。CLAUDE.md 里的每一行,都会和你真正想让 Claude 做的工作争夺注意力。
你可以把 CLAUDE.md 放在以下几个位置:
- 项目根目录:最常见的位置。把它提交到版本控制中,确保团队成员共享同一套上下文。
- .claude/CLAUDE.md:如果你更喜欢把配置文件集中放在子目录里,这是一个可选方案。
- ~/.claude/CLAUDE.md:用户级默认配置,对你所有项目生效。
对于不希望纳入版本控制的个人偏好(比如你编辑器的使用习惯、你偏好的输出详细程度),可以使用 CLAUDE.local.md。把它加入 .gitignore,避免被提交到仓库中。
文件名是区分大小写的。必须严格命名为 CLAUDE.md(CLAUDE 全大写,.md小写)。Claude Code 在加载记忆文件时,只会查找这个特定的文件名。官方文档中并没有明确写出这一点,但当我询问官方文档的 AI 助手时,它确认:记忆文件和技能文件一样,同样区分大小写。
如何组织你的 CLAUDE.md 文件
这部分是核心内容:到底哪些东西应该写进这个文件?
必备内容
1、项目背景(Project context)
这是一个什么项目?用一句话让 Claude 快速进入状态。比如:“这是一个使用 Stripe 支付的 Next.js 电商应用。” 这样一句话,提供的信息比你想象中要多得多。
2、代码风格(Code style)
你的格式和代码模式偏好。是用 ES modules 还是 CommonJS?是否偏好具名导出?一定要具体。“代码格式规范一点” 这种说法太模糊了。
3、命令(Commands)
如何运行测试、构建、Lint、部署。当你让 Claude 运行相关操作时,它会直接使用这里写明的命令。
4、坑点 / 注意事项(Gotchas)
项目中特有的警告和陷阱。比如:
- 那个带有奇怪重试逻辑的认证模块
- 需要特定 Header 格式的 API 接口
- 绝对不能直接修改的文件
一个完整示例下面是一个适用于 Next.js 项目的 CLAUDE.md 示例:
# Project: ShopFront
Next.js 14 e-commerce application with App Router, Stripe payments, and Prisma ORM.
Code Style
- Type strict mode, no `any` types
- Use named exports, not default exports
- CSS: Tailwind utility classes, no custom CSS files
Commands
- `npm run dev`: Start development server (port 3000)
- `npm run test`: Run Jest tests
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/239958.html