3.6 CLAUDE.md(项目记忆文件)
什么是 CLAUDE.md?
•
CLAUDE.md 是 Claude Code 的"项目记忆文件",记录项目结构、构建命令、代码规范、架构决策等信息,让 Claude Code 快速理解项目上下文。
CLAUDE.md 的作用
#IBNdrKxdpJeo text { white-space: pre; }#IBNdrKxdpJeo .fb0 { stroke: var(--N900-FG, 0.15); }#IBNdrKxdpJeo .fb0 {stroke: rgba(31,35,41, 0.15)}#IBNdrKxdpJeo .fx0 { stroke-miterlimit: 10; }#IBNdrKxdpJeo .fx0 {stroke-miterlimit: 10}#IBNdrKxdpJeo .fa1 { fill: rgb(187, 191, 196); }#IBNdrKxdpJeo .fa1 {fill: rgb(187, 191, 196)}#IBNdrKxdpJeo .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#IBNdrKxdpJeo .fx1 {font-style: normal}#IBNdrKxdpJeo .fx2 { text-anchor: middle; }#IBNdrKxdpJeo .fx2 {text-anchor: middle}#IBNdrKxdpJeo .fx3 { dominant-baseline: central; }#IBNdrKxdpJeo .fx3 {dominant-baseline: central}#IBNdrKxdpJeo .fx4 { stroke: none; }#IBNdrKxdpJeo .fx4 {stroke: none}#IBNdrKxdpJeo .fc0 { fill: var(--text-caption); }#IBNdrKxdpJeo .fc0 {fill: #646a73}#IBNdrKxdpJeo .fa2 { fill: var(--text-link-disabled); }#IBNdrKxdpJeo .fa2 {fill: rgb(187, 191, 196)}#IBNdrKxdpJeo .fa3 { fill: rgb(238, 240, 246); }#IBNdrKxdpJeo .fa3 {fill: rgb(238, 240, 246)}#IBNdrKxdpJeo .fa4 { fill: rgb(255, 255, 255); }#IBNdrKxdpJeo .fa4 {fill: rgb(255, 255, 255)}#IBNdrKxdpJeo .fx5 { font: 700 14px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#IBNdrKxdpJeo .fx5 {font-style: normal}#IBNdrKxdpJeo .fx6 { text-anchor: start; }#IBNdrKxdpJeo .fx6 {text-anchor: start}#IBNdrKxdpJeo .fx7 { dominant-baseline: alphabetic; }#IBNdrKxdpJeo .fx7 {dominant-baseline: alphabetic}#IBNdrKxdpJeo .fc1 { fill: rgb(34, 34, 34); }#IBNdrKxdpJeo .fc1 {fill: rgb(34, 34, 34)}#IBNdrKxdpJeo .fx8 { font: 400 14px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#IBNdrKxdpJeo .fx8 {font-style: normal}#IBNdrKxdpJeo .fb1 { fill: var(--N900-FG, 0.15); }#IBNdrKxdpJeo .fb1 {fill: rgba(31,35,41, 0.15)}#IBNdrKxdpJeo .fb2 { fill: rgb(223, 227, 236); }#IBNdrKxdpJeo .fb2 {fill: rgb(223, 227, 236)}#IBNdrKxdpJeo .fb3 { fill: rgb(223, 230, 236); }#IBNdrKxdpJeo .fb3 {fill: rgb(223, 230, 236)}#IBNdrKxdpJeo .fa5 { fill: var(--bg-body); }#IBNdrKxdpJeo .fa5 {fill: #fff}AB12345作用项目知识库快速启动团队协作持续迭代说明📚 🚀 🤝 🔄 记录项目架构、技术栈、依赖关系自动读取,无需重复解释项目背景共享项目规范,确保团队理解一致随项目演进自动更新
CLAUDE.md 最佳位置
🌐
•
优先级: 特定规则 > 模块配置 > 项目配置 > 用户配置
CLAUDE.md 示例
完整示例:
代码块
Markdown
# 项目名称: E-Commerce Platform## 项目概述
这是一个基于 Node.js + React 的电商平台,支持商品管理、订单处理、支付集成等功能。
## 技术栈- **前端:** React 18, TypeScript, Tailwind CSS, Redux Toolkit
- **后端:** Node.js 20, Express, TypeScript
- **数据库:** PostgreSQL 15, Redis 7
- **认证:** JWT, OAuth 2.0
- **测试:** Jest, Playwright
- **部署:** Docker, Kubernetes
## 项目结构
\`\`\`
src/
├── frontend/ # React 前端
│ ├── components/ # 可复用组件
│ ├── pages/ # 页面组件
│ ├── store/ # Redux store
│ └── utils/ # 工具函数
├── backend/ # Node.js 后端
│ ├── controllers/ # 控制器
│ ├── services/ # 业务逻辑
│ ├── models/ # 数据模型
│ └── routes/ # API 路由
└── shared/ # 共享代码
└── types/ # TypeScript 类型定义
\`\`\`
## 常用命令### 开发环境
\`\`\`bash
# 安装依赖
npm install
生成 CLAUDE.md 的方式
方式一:使用 /init 命令
代码块
Bash
# 在项目根目录
claude /init
Claude Code 会自动扫描项目并生成初始 CLAUDE.md,包含:
•
构建和测试命令
•
目录结构说明
•
代码规范和架构决策
•
技术栈信息
方式二:手动创建
代码块
Bash
# 创建基础文件touch CLAUDE.md
# 让 Claude Code 帮助生成
方式三:模块化规则
代码块
Bash
# 在 .claude/rules/ 目录创建多个规则文件
.claude/rules/
├── auth.md # 认证相关规则
├── database.md # 数据库相关规则
├── api.md # API 设计规范
└── testing.md # 测试规范
方式四:Memory Updates - 动态更新记忆
代码块
Bash
# 直接告诉 Claude 更新知识
Update CLAUDE.md: always use bun instead of npm
CLAUDE.md 的 AI 进化机制
🌐
来自 Claude Code 创始人团队的实战经验:
核心理念: 让 Claude 在 Code Review 中自我迭代,越用越聪明
实战流程:
在 PR 中发现问题
代码块
Bash
# 在 GitHub PR 评论中
@claude 这里的代码使用了 enum,但我们项目规范要求使用 string union,请修复
让 Claude 记住教训
代码块
Bash
# 在 PR 中直接告诉 Claude
@claude 请把这次的教训写入 CLAUDE.md:不要使用 enum,改用 string union
Claude 自动更新
代码块
Markdown
# Claude 会在 CLAUDE.md 中添加## 代码规范更新 (2026-01-03)### Enum vs String Union- ❌ 不要使用 enum
- ✅ 改用 string union
- 理由:更好的类型推断和 Tree-shaking
团队共同维护
代码块
Bash
# 将 CLAUDE.md 签入 Git
git add CLAUDE.md
git commit -m "docs: 更新 CLAUDE.md 规范"# 整个团队共享这份"行为准则"
价值体现:
•
🧠 集体智慧: 每个团队成员的反馈都让 AI 更聪明
•
🔄 持续进化: Claude 不会重复犯同样的错误
•
📚 知识沉淀: 项目规范自动文档化
•
🤝 团队协作: 统一的 AI 助手理解团队偏好
实际案例:
代码块
Markdown
# CLAUDE.md - 实际演进示例## 初始版本 (第1周)- 使用 TypeScript
- 测试覆盖率 > 80%