你项目根目录下那个
.claude文件夹,可能是你最被低估的生产力武器。
用Claude Code写代码的人越来越多,但绝大多数人对项目里那个自动生成的 .claude 文件夹视而不见——知道它在,从没打开过,更谈不上配置。
这就像买了一辆顶配车,却从来没调过座椅和后视镜,一直用出厂设置在开。
今天这篇文章,把 .claude 文件夹从里到外拆给你看。 看完之后,你能让Claude Code完全按照你的规矩干活,省掉大量重复沟通的时间。
先搞清楚:其实有两个 .claude
很多人不知道,.claude 文件夹其实有两个:
项目级别——在你的项目根目录下,提交到git里,团队共享。所有人用同一套规则、同一套命令、同一套权限策略。
用户级别——在你的 ~/.claude/ 目录下,存放个人偏好和本机状态,比如会话历史、自动记忆等。
一个管团队,一个管个人。搞混了就乱了。
CLAUDE.md:整个系统的灵魂文件
如果你只记一件事,记这个:CLAUDE.md 是最重要的文件。
每次启动Claude Code,它做的第一件事就是读 CLAUDE.md,把内容加载到系统提示词里,整个对话过程中都会遵守。
换句话说——你写什么,它就照做。
你说"所有错误处理用自定义logger模块,不许用console.log",它每次都会遵守。你说"先写测试再写实现",它真的会先写测试。
写什么好?
-
构建、测试、lint的命令(
npm run test、make build等) -
关键架构决策("我们用Turborepo管理monorepo")
-
容易踩坑的地方("TypeScript开了严格模式,不允许未使用的变量")
-
导入规范、命名规则、错误处理风格
-
主要模块的文件结构
不要写什么?
-
linter或formatter已经配置好的规则(重复了)
-
大段理论解释(浪费上下文窗口)
-
超过200行的内容(太长了Claude反而记不住)
一个20行的 CLAUDE.md,就能让Claude在你的项目里如鱼得水,不用反复纠正。
💡 小技巧:如果有些偏好只是你个人的,不想影响团队,建个
CLAUDE.local.md,它会自动被gitignore,只在你本地生效。
/rules 文件夹:当CLAUDE.md装不下的时候
项目大了、人多了,一个 CLAUDE.md 写到300行,谁都不愿意维护,最后就废了。
解决方案是 .claude/rules/ 文件夹。把指令按职责拆成多个文件:
.claude/rules/
负责API的人改 api-conventions.md,负责测试的人改 testing.md,互不干扰。
更厉害的是路径限定。 在规则文件头部加一段YAML,就能让规则只在特定目录下生效:
---
这样,当Claude在写React组件时不会加载API规则,只有进入 src/api/ 目录才会激活。精准投放,不浪费上下文。
commands/ 文件夹:你的专属快捷命令
Claude Code自带 /help、/compact 这些内置命令。但你也能自己加。
在 .claude/commands/ 里放一个 review.md,就自动变成了 /project:review 命令。文件名就是命令名,简单粗暴。
最关键的特性是 ! 反引号语法——它能在命令里嵌入shell命令的输出。比如你写一个代码审查命令:
#
# 变更文件
运行 /project:review,Claude会自动把真实的git diff注入到提示词里,不是让你手动粘贴。这才叫真正好用。
还能用 $ARGUMENTS 接收参数。写一个 fix-issue.md,运行 /project:fix-issue 234,就能自动拉取GitHub第234号issue的内容,让Claude直接分析修复。
skills/和 agents:高级玩法
Skills(技能) 和命令看起来像,但触发方式完全不同。命令需要你手动输入斜杠调用,而技能是Claude自己识别时机、主动调用的。
每个技能是一个子目录,包含 SKILL.md 和可能的辅助文件。你在 SKILL.md 里写清描述,比如"当用户提到安全审查时使用",Claude就会在对话中自动匹配触发。技能可以打包配套文件,比命令更强大。
Agents(智能体) 更进一步。你可以在 .claude/agents/ 里定义专门角色——比如一个"代码审查专家",指定它只能读文件不能写文件,用更便宜的模型运行。Claude会在需要时启动这个独立子智能体,完成任务后压缩结果返回主会话,不污染你的上下文窗口。
settings.json:权限的红绿灯
settings.json 控制Claude能做什么、不能做什么。核心就是 allow 和 deny 两个列表:
allow(绿灯):不用确认直接执行。比如 Bash(npm run *)、Bash(git diff *)、常规文件读写。
deny(红灯):彻底禁止。比如 Bash(rm -rf *)、Bash(curl *)、读取 .env 文件。
两个列表都不在的:Claude会先问你再执行。这个"灰色地带"是故意设计的安全网。
同样,settings.local.json 是你个人的权限覆盖,自动gitignore。

从零开始的最佳路径
别一上来就想把所有功能配齐。按这个顺序来就够了:
第一步,在Claude Code里运行 /init,它会自动分析你的项目生成一个 CLAUDE.md 初稿,你再精简到20行左右的精华。
第二步,加一个 settings.json,允许常用命令,禁止危险操作和敏感文件读取。
第三步,为你最常做的工作流建一两个自定义命令——代码审查和issue修复是最好的起点。
第四步,等 CLAUDE.md 变得臃肿了,再拆分到 rules/ 文件夹里。
第五步,加一个全局的 ~/.claude/CLAUDE.md 写上你的个人编码原则。
这五步覆盖95%的需求。Skills和Agents是锦上添花,等你有复杂重复流程时再说。
写在最后
.claude 文件夹的本质,是一套告诉Claude"你是谁、项目是什么、规矩有哪些"的协议。你定义得越清楚,纠正Claude的时间就越少,它产出有效工作的时间就越多。
CLAUDE.md 是你最该投入精力的文件,把它写好,其他都是优化。
像对待基础设施一样对待它——前期花点时间设置,之后每天都在享受回报。
