冷蟊初退 孤灯野澜 志起鸡鸣 墓不悲秋 技术交流 软件开发 商业合作 加Q:411239339

Day 3 CLAUDE.md:给 AI 立规矩的艺术

浏览:9次阅读
没有评论

共计 3194 个字符,预计需要花费 8 分钟才能阅读完成。

Claude Code 从入门到脱发 · Day 3

用了两天 Claude Code,你大概已经发现:这东西确实能干活,但有时候像个刚入职的实习生——干劲十足,但完全不了解团队规矩。

你说 " 帮我加个接口 ",它用了 axios,但你们团队统一用 fetch。你说 " 写个组件 ",它加了一堆注释,但你们的风格是代码即文档,不写注释。你说 " 提交代码 ",它写了个英文 commit message,但你们要求用中文。

每次都要纠正,累不累?

这就是 CLAUDE.md 要解决的问题——一次配置,永久生效。把你的规矩写进文件,Claude Code 每次启动都会读取,然后自动遵守。

本文你将学到:

  • CLAUDE.md 是什么,放在哪里
  • 应该写什么、不应该写什么
  • 多层级配置的妙用
  • 从零写一个实用的 CLAUDE.md

阅读时间 :8 分钟 | 实操时间 :15 分钟 | 难度:入门


CLAUDE.md 是什么

CLAUDE.md 就是一个 Markdown 文件,放在项目根目录下。Claude Code 每次启动时会自动读取它,把里面的内容当作 " 项目规范 " 来遵守。

你可以把它理解为给 AI 的 " 员工手册 "。新员工入职第一天看公司制度,Claude Code 启动第一件事读 CLAUDE.md。


放在哪里

Claude Code 会从多个位置加载规则文件,优先级从低到高:

~/.claude/CLAUDE.md              # 全局配置(所有项目生效)项目根目录 /CLAUDE.md              # 项目配置
项目根目录 /.claude/CLAUDE.md      # 项目配置(.claude 目录下)项目根目录 /.claude/rules/*.md     # 分主题的规则文件
子目录 /CLAUDE.md                  # 子目录配置(进入该目录时生效)

规则是:越靠近你当前工作目录的文件,优先级越高。子目录的配置会覆盖父目录的。

对于个人开发者,最常用的是在项目根目录放一个 CLAUDE.md。对于大项目或 monorepo,用 .claude/rules/ 目录按主题拆分更清晰。


应该写什么

好的 CLAUDE.md 包含四类信息:

1. 项目基本信息

## 项目概述
这是一个基于 Next.js 14 的博客系统,使用 TypeScript + Tailwind CSS。## 常用命令
- 开发:npm run dev
- 构建:npm run build
- 测试:npm test
- Lint:npm run lint

这些信息看起来简单,但对 Claude Code 很重要。它知道跑测试该用 npm test 还是 pnpm test,知道项目用的是 Next.js 还是 Nuxt。

2. 代码风格规范

## 代码风格
- 使用函数式组件,不使用 class 组件
- 状态管理使用 Zustand,不使用 Redux
- 接口请求使用 fetch,不使用 axios
- 文件命名使用 kebab-case(如 user-service.ts)- 组件命名使用 PascalCase(如 UserProfile.tsx)- commit message 使用中文,格式为:类型(范围): 描述

3. 项目架构约定

## 目录规范
- src/components/ 放可复用的 UI 组件
- src/features/ 放业务功能模块
- src/lib/ 放工具函数和第三方库封装
- src/types/ 放 TypeScript 类型定义

## 数据库
- ORM 使用 Prisma
- 数据库是 PostgreSQL
- 迁移文件在 prisma/migrations/

4. 禁止事项

## 禁止
- 不要使用 any 类型
- 不要使用 console.log 做日志(用 logger 模块)- 不要直接修改 node_modules
- 不要在组件里直接调用 API,通过 service 层
- 不要使用 var,用 const 或 let

" 禁止 " 清单往往比 " 要求 " 清单更有用。告诉 AI 不要做什么,比告诉它要做什么更容易执行。


不应该写什么

CLAUDE.md 不是写小说的地方。官方建议控制在 200 行以内。写太长会怎样?两个问题:

  1. Token 消耗增加:CLAUDE.md 的内容会注入到每次对话的上下文里,越长越费钱
  2. 注意力稀释:就像人看太长的文档会走神,AI 处理过长的指令也会 " 重点不突出 "

不要写的东西

  • 教程式的长篇解释(Claude Code 不需要你教它什么是 React)
  • 重复的信息(同一条规则写一遍就够了)
  • 过于细节的实现指引(具体怎么实现某个功能不应该写在规范里)
  • 项目历史和变更日志

核心原则:把 CLAUDE.md 当作给一个资深工程师的入职速查卡,不是新手教程。


实战:从零写一个 CLAUDE.md

假设你有一个 Next.js + TypeScript 的项目,从头写一个 CLAUDE.md:

# 项目规范

## 技术栈
- Next.js 14 + TypeScript + Tailwind CSS
- 状态管理:Zustand
- 数据库:PostgreSQL + Prisma
- 测试:Vitest + Testing Library

## 命令
- 开发:pnpm dev
- 构建:pnpm build
- 测试:pnpm test
- Lint:pnpm lint
- 数据库迁移:pnpm prisma migrate dev

## 代码风格
- 函数式组件 + hooks,不用 class 组件
- 使用 const 箭头函数定义组件
- 文件名 kebab-case,组件名 PascalCase
- 每个文件不超过 200 行,超过要拆分
- 函数不超过 30 行

## Git 提交规范
- 中文 commit message
- 格式:类型(范围): 描述
- 类型:feat/fix/refactor/docs/test/chore

## 禁止
- 禁止使用 any
- 禁止 console.log(使用 logger)- 禁止在组件中直接请求 API
- 禁止硬编码密钥或密码

简单、直接、高信息密度。这就够了。


进阶:用 /init 自动生成

如果你懒得从头写,Claude Code 提供了自动生成功能:

> /init

Claude Code 会扫描你的项目文件——package.json、tsconfig.json、.eslintrc、目录结构等——然后自动生成一份 CLAUDE.md。

生成的版本通常需要微调,但至少省去了 80% 的工作量。


进阶:多文件规则

当 CLAUDE.md 超过 200 行时,把它拆分到 .claude/rules/ 目录:

.claude/
  rules/
    coding-style.md    # 代码风格
    git-workflow.md     # Git 工作流
    testing.md          # 测试规范
    security.md         # 安全规范

每个文件聚焦一个主题,Claude Code 会全部加载。这样维护起来更清晰,不同主题的规则不会混在一起。


常见问题 Q&A

Q1:CLAUDE.md 修改后需要重启吗?

不需要。Claude Code 每次新对话开始时都会重新读取。如果你在对话中改了 CLAUDE.md,用 /clear 清一下上下文,它就会加载最新版本。

Q2:CLAUDE.md 应该提交到 Git 吗?

看情况。如果是团队协作项目,建议提交——让所有人的 AI 助手遵守同一套规范。如果包含个人偏好(比如你喜欢的编辑器配置),放到 ~/.claude/CLAUDE.md 全局配置里,别提交。

Q3:写了规范它就一定遵守吗?

大部分时候会遵守,但 AI 不是程序——它不是硬编码的 if-else,偶尔会 " 忘记 " 或 " 创造性发挥 "。Day 5 我们会讲 Hooks,那才是强制执行的手段。CLAUDE.md 是 " 指导方针 ",Hooks 是 " 法律条文 "。


小结

今天学了 CLAUDE.md 的配置方法:

  • 它是给 Claude Code 的 " 员工手册 ",每次启动自动加载
  • 写四类内容:项目信息、代码风格、架构约定、禁止事项
  • 控制在 200 行以内,像速查卡而不是教程
  • 大项目用 .claude/rules/ 目录拆分

有了 CLAUDE.md,Claude Code 从 " 聪明但不懂规矩的实习生 " 升级成了 " 了解团队规范的新同事 "。

但你可能还有一个担心:它能读能写能执行命令,万一做了不该做的事呢?

明天 Day 4,我们聊权限管理——怎么让 AI 在安全线内干活,别把你家拆了。


系列进度:3/10

正文完
创作不易,扫码加点动力
post-qrcode
 0
果较瘦
版权声明:本站原创文章,由 果较瘦 于2026-03-29发表,共计3194字。
转载说明:除特殊说明外本站文章皆由果较瘦原创发布,转载请注明出处。