Claude Code 完全指南:使用方式、技巧与最佳实践

本文章出自 knqiufan 大神的这一篇 Claude Code 完全指南:使用方式、技巧与最佳实践 - knqiufan - 博客园 里面的内容对我刚开始学习Claude Code 使用的帮助很大。因此想要把大佬的文章记录下来,更加深入的学习Claude Code 的用法,并以便后续自己能够使用时参考其内容。

一、Claude Code 简介

1.1 什么是Claude Code?

Claude Code(CC)是由 Anthropic 开发的系统级 AI Agent,它不仅是一个代码编写工具,更是一个可以通过自然语言指令完成各种电脑任务的智能助手。

核心特性:

全功能访问: 拥有系统级权限,可执行文件操作、运行命令、管理进程等。

超大上下文: 支持 200K token 上下文窗口,可处理大型项目。

高度可扩展: 支持MCP、Skills、Plugins、Hooks等多种扩展方式。

多代理协作: 支持子代理(Subagents)并行处理复杂任务

自然交互: 支持自然语言指令,无需学习复杂命令语法

1.2 安装与配置

1.2.1 安装准备

必需工具:

工具 用途 安装地址
Node.js 运行环境 https://nodejs.org
Git 版本控制 https://git-scm.com
API KEY 模型服务 智谱GLM/AnyRouter/阿里Qwen等

验证安装:

1
2
3
4
5
# 检查 Node.js 版本
node -v

# 检查 Git 版本
git --version

安装Claude Code

1
npm install -g @anthropic-ai/claude-code

验证安装:

1
claude --version

Claude Code 支持多种模型配置方式,你可以根据自己的需求选择合适的模型。

1.2.2 方式一:手动配置

手动配置适用于所有兼容 Anthropic API 的模型。配置方式如下:

Windows:

1
2
3
setx ANTHROPIC_BASE_URL "模型API地址"
setx ANTHROPIC_AUTH_TOKEN "你的API密钥"
setx ANTHROPIC_MODEL "模型名称"

macOS/Linux:

1
2
3
4
5
6
7
8
9
export ANTHROPIC_BASE_URL=模型API地址
export ANTHROPIC_AUTH_TOKEN=你的API密钥
export ANTHROPIC_MODEL=模型名称

# 永久配置(添加到 ~/.bashrc 或 ~/.zshrc)
echo 'export ANTHROPIC_BASE_URL=模型API地址' >> ~/.bashrc
echo 'export ANTHROPIC_AUTH_TOKEN=你的API密钥' >> ~/.bashrc
echo 'export ANTHROPIC_MODEL=模型名称' >> ~/.bashrc
source ~/.bashrc

常用国内模型配置示例:

模型 API地址 模型名称 获取API Key
智谱 GLM-4.7 https://open.bigmodel.cn/api/anthropic glm-4.7 https://open.bigmodel.cn/
Kimi K2 https://api.moonshot.cn/anthropic kimi-k2-turbo-preview https://platform.moonshot.cn/console/account
通义千问 https://dashscope.aliyuncs.com/apps/anthropic qwen-coder-plus https://bailian.console.aliyun.com/
DeepSeek https://api.deepseek.com/anthropic deepseek-chat https://platform.deepseek.com/

配置示例(以智谱GLM为例):

1
2
3
export ANTHROPIC_BASE_URL=https://open.bigmodel.cn/api/anthropic
export ANTHROPIC_AUTH_TOKEN=your_glm_api_key
export ANTHROPIC_MODEL=GLM-4.7

注意: 配置环境变量后需要重启终端或运行 source ~/.bashrc 使配置生效。

配置好以后,命令行输入claude 直接启动。

1.2.3 方式二:CC Switch

CC-Switch 是由@JasonYoung 开发的一款为 AI 编程用户准备的桌面应用,目前有4.2k星。它可以让你在多个提供商/多个 API 配置之间自由切换,从而在不同场景下灵活调用。

当你有好几个模型服务/API 端点,需要经常在这些站点中切换,这款工具可以帮你很方便的管理你的 AI 模型提供商(Provider)配置,管理 MCP 服务器配置,无需手动改配置文件、手动切换环境即可通过UI或者托盘快速切换,。除了一键切换外,还支持多终端(Windows、macOS、Linux)、支持 WSL 环境自动同步配置目录等功能。

cc-switch的安装十分简单,从Github的release直接获取即可。farion1231/cc-switch

安装好以后,界面如下:

刚安装,这界面其实是空白的,需要点击右上角的➕去添加供应商

填写站点名称(或从预设的常用站点中选择)、api key和请求地址即可。其余配置通常可以留空或者默认,除非站点支持多模型或需要特殊配置

配置完之后,你可以直接在主界面或者系统托盘选择你想要使用的站点资源即可开启或者切换站点,若需要还可以测试站点可用性(支持配置测试脚本)和查询用量。

二、Claude Code 核心概念详解

了解了 Claude Code 的安装配置后,深入了解一下它的一些核心概念。这些概念是充分发挥 Claude Code 能力的基础。

2.1 Skills(技能包)

Skills 是预封装的工作流,就像游戏中的”技能包”,用完即走,不占用上下文。它是别人已经编写好的、可直接使用的功能模块。

官方 Skills 库: https://github.com/anthropics/skills (32k+ Stars)

Skills 的类型

类型 说明 示例
User Skills 用户自定义技能,存储在本地 个人工作流自动化
Plugin Skills 插件提供的技能,随插件安装 frontend-design
Built-in Skills Claude Code 内置技能 commit, review-pr

常用官方 Skills

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 前端设计技能
npx skills-installer install @anthropics/claude-code/frontend-design --client claude-code

# 文档协同技能
npx skills-installer install @anthropics/claude-code/doc-coauthoring --client claude-code

# Canvas 设计技能
npx skills-installer install @anthropics/claude-code/canvas-design --client claude-code

# PDF 处理技能
npx skills-installer install @anthropics/claude-code/pdf --client claude-code

# 算法艺术生成
npx skills-installer install @anthropics/claude-code/algorithmic-art --client claude-code

查看可用 Skills:

1
claude /skills

调用 Skill:

1
2
3
4
# 在 Claude Code 对话中
使用 frontend-design skill 优化 https://example.com

使用 pdf skill 提取 report.pdf 中的表格数据

想要编写自己的 Skills 就得先了解 Skills 目录结构:

1
2
3
4
5
my-skill/
├── skill.json # Skill 元数据
├── skill.md # Skill 文档
├── api/ # API 定义(可选)
└── tools/ # 自定义工具(可选)

skill.json 示例:

1
2
3
4
5
6
7
8
9
10
11
12
{
"name": "my-custom-skill",
"description": "我的自定义技能",
"version": "1.0.0",
"author": "Your Name",
"categories": ["automation"],
"license": "MIT",
"skill": {
"file": "skill.md",
"description": "这个技能用于..."
}
}

skill.md 示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# My Custom Skill

这个技能帮助用户快速完成[特定任务]。

## 使用场景

- 场景1:描述...
- 场景2:描述...

## 使用方式

用户只需要告诉你要完成什么,这个技能就会自动:

1. 分析需求
2. 执行步骤
3. 返回结果

## 注意事项

- 注意事项1
- 注意事项2

安装本地 Skill:

1
2
3
4
5
# 将技能复制到 Claude Code 配置目录
cp -r my-skill ~/.claude/skills/

# 或使用安装命令
npx skills-installer install ./my-skill --client claude-code

2.2 Hooks(钩子)

Hooks 是在特定事件触发时自动执行的脚本,用于自定义工作流、拦截危险操作、自动格式化代码等。

Hook 事件类型

事件类型 触发时机 典型用途
user-prompt-submit 用户提交提示词前 验证、修改提示词
tool-use 工具使用前 权限检查、参数验证
after-tool-use 工具使用后 日志记录、结果处理
permission-request 权限请求时 拦截危险操作
notification 通知时 发送告警、更新状态

Hook 配置方式

方式一:通过 /hooks 命令

1
2
# 在 Claude Code 中
/hooks

方式二:通过配置文件

~/.claude/settings.json 或项目 .claude/settings.json 中配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"hooks": {
"user-prompt-submit-hook": {
"command": "npm run validate-prompt",
"enabled": true
},
"tool-use-hook": {
"command": "~/.claude/hooks/check-permission.sh",
"enabled": true,
"blocking": true
},
"after-tool-use-hook": {
"command": "echo 'Tool used: {{toolName}}' >> ~/.claude/hooks.log",
"enabled": true
}
}
}

Hook 实战示例

拦截危险命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
# ~/.claude/hooks/check-dangerous.sh

# 读取工具调用信息
TOOL_NAME=$(jq -r '.toolName' <<< "$CLAUDE_HOOK_INPUT")

# 危险操作列表
DANGEROUS_TOOLS=("rm" "delete" "format" "shutdown")

if [[ " ${DANGEROUS_TOOLS[@]} " =~ " ${TOOL_NAME} " ]]; then
echo "⚠️ 警告:即将执行危险操作 - $TOOL_NAME"
echo "请确认是否继续? (yes/no)"
read -r confirmation
if [[ "$confirmation" != "yes" ]]; then
exit 1 # 阻止操作
fi
fi

自动格式化代码:

1
2
3
4
5
6
7
8
9
{
"hooks": {
"after-write-hook": {
"command": "if [[ {{filePath}} == *.js ]]; then prettier --write {{filePath}}; fi",
"enabled": true,
"blocking": false
}
}
}

发送通知:

1
2
3
4
5
6
7
8
{
"hooks": {
"task-complete-hook": {
"command": "notify-send 'Claude Code' '任务已完成'",
"enabled": true
}
}
}

自动格式化代码(PostToolUse Hook):

来自创始人的实战经验 - 彻底消灭 CI 里的格式报错:

1
2
3
4
5
6
7
8
9
{
"hooks": {
"after-tool-use-hook": {
"command": "bun run format || true",
"enabled": true,
"blocking": false
}
}
}

工作原理:

  • 每次 Claude 使用 WriteEdit 工具后自动触发
  • 运行格式化命令(这里是 bun run format)
  • || true 确保即使格式化失败也不阻塞流程
  • 虽然 Claude 已经写得很规范,但这最后 10% 的自动化处理能彻底解决格式问题

效果:

✅ CI 中不再有格式报错

✅ 代码风格始终一致

✅ 无需手动运行格式化

✅ Git diff 更清晰

2.3 Plugins(插件)

Plugins 是打包在一起的扩展集合,可以包含:

  • 5 个 Skills
  • 10 个斜杠命令
  • 3 个 MCP 服务器配置
  • 2 个 SubAgent 定义
  • 若干 Hooks

Plugins vs Skills:

特性 Skills Plugins
复杂度 简单工作流 完整功能套件
内容 单一技能 多种资源的集合
安装 独立安装 一次性安装多个资源
适用场景 单一任务 完整解决方案

Plugin 安装与使用

官方插件市场:

来源 地址 说明
Anthropic Skills https://github.com/anthropics/skills 官方Skills库,包含多个插件
Claude Code Marketplace https://claudecodemarketplaces.com 插件市场目录
Awesome Claude Code https://awesomeclaude.ai/plugins 社区插件精选

添加插件市场:

1
2
3
4
5
6
7
8
9
# 添加官方Anthropic插件市场
claude /plugin marketplace add anthropics/skills

# 添加本地插件市场
claude /plugin marketplace add ~/my-marketplace

# 浏览可用插件
claude /plugin
# 选择 "Browse Plugins" 查看完整列表

常用官方插件:

1
2
3
4
5
6
7
8
9
# 文档处理插件套件
claude /plugin marketplace add anthropics/skills
claude /plugin install document-skills

# 前端开发插件
claude /plugin install frontend-design

# Git工作流插件
claude /plugin install git-workflow

从市场安装:

1
claude plugin install <plugin-name>

从本地安装:

1
2
3
4
5
# 安装本地插件
claude plugin install ./my-plugin

# 或使用完整路径
claude plugin install /path/to/my-plugin

从GitHub安装:

1
2
# 直接从GitHub仓库安装
claude plugin install github:user/repo

查看已安装 Plugins:

1
claude /plugin

浏览可用插件:

1
2
3
# 在Claude Code中输入
/plugin
# 选择 "Browse Plugins"

卸载 Plugin:

1
claude plugin uninstall <plugin-name>

创建自定义 Plugin:

1
2
3
4
5
6
7
8
9
10
11
12
13
my-plugin/
├── plugin.json # Plugin 配置
├── skills/ # Skills 目录
│ ├── skill1/
│ └── skill2/
├── commands/ # 自定义斜杠命令
│ └── my-command.md
├── mcp/ # MCP 配置
│ └── mcp-config.json
├── agents/ # SubAgent 定义
│ └── agent1.json
└── hooks/ # Hook 脚本
└── hook1.sh

plugin.json 示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
"name": "my-plugin",
"version": "1.0.0",
"description": "我的自定义插件",
"author": "Your Name",
"skills": [
"skills/skill1",
"skills/skill2"
],
"commands": [
{
"name": "/my-command",
"description": "我的自定义命令",
"file": "commands/my-command.md"
}
],
"mcpServers": [
{
"name": "my-mcp",
"config": "mcp/mcp-config.json"
}
],
"agents": [
{
"name": "my-agent",
"config": "agents/agent1.json"
}
]
}

2.4 MCP Servers (模型上下文协议服务器)

MCP (Model Context Protocol) 是 AI 的扩展接口标准,通过添加 MCP 服务器可以扩展 Claude Code 获取外部工具、资源、服务的能力。

常用 MCP 服务器

MCP Server 功能 Star 数
chrome-devtools-mcp 浏览器自动化,26个工具 18.5k
github-mcp GitHub API 集成 10k+
postgres-mcp PostgreSQL 数据库操作 5k+
filesystem-mcp 增强文件系统操作 3k+
web-search-mcp 网络搜索功能 2k+

MCP安装方式

方式一:命令行安装

1
claude mcp add chrome-devtools npx chrome-devtools-mcp@latest

方式二:配置文件安装

编辑~/.claude/mcp.json:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["chrome-devtools-mcp@latest"],
"disabled": false
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "your_github_token_here"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"POSTGRES_CONNECTION_STRING": "postgresql://user:password@localhost:5432/db"
}
}
}
}

验证安装:

1
2
3
4
5
6
# 在 Claude Code 中
/mcp

# 或通过命令行
claude mcp list
claude mcp test chrome-devtools

Chrome DevTools MCP 实战

安装:

1
claude mcp add chrome-devtools npx chrome-devtools-mcp@latest

使用示例:

1
2
3
4
5
6
# 在 Claude Code 中
用Chrome浏览器打开 https://example.com,然后通过 chrome devtools mcp 完成以下任务:
1. 截取页面截图
2. 提取所有链接
3. 分析页面结构
4. 获取页面性能数据

26个内置工具包括:

  • chrome_navigate: 导航到指定 URL
  • chrome_screenshot: 截取页面截图
  • chrome_click: 点击元素
  • chrome_fill: 填写表单
  • chrome_select: 选择元素
  • chrome_evaluate: 执行 JavaScript

2.5 Subagents(子代理)

Subagents 是可以并行处理任务的独立 AI 代理,每个子代理拥有独立的 200K 上下文窗口,可以分配不同任务以提高效率。

把常用工作流看作自动化运行的”子智能体”,就像圣诞老人分派任务给精灵一样,每个子智能体专注于特定领域。

Subagent 配置

方式一:通过 /agents 命令

1
claude /agents

方式二:配置文件

~/.claude/agents.json 或项目 .claude/agents.json 中配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"agents": {
"code-reviewer": {
"description": "专门负责代码审查的子代理",
"model": "claude-opus-4-5",
"instructions": "你是一个专业的代码审查专家,专注于检查代码质量、安全漏洞和性能问题。",
"tools": ["read", "search", "git"],
"permissions": {
"allowWrite": false
}
},
"test-writer": {
"description": "专门负责编写测试的子代理",
"model": "claude-sonnet-4-5",
"instructions": "你是一个测试工程师,专注于编写全面的单元测试和集成测试。",
"tools": ["read", "write", "bash"]
},
"doc-generator": {
"description": "专门负责生成文档的子代理",
"model": "claude-sonnet-4-5",
"instructions": "你是一个技术文档专家,专注于生成清晰、准确的技术文档。",
"tools": ["read", "write"]
}
}
}

场景:完成一个功能开发

1
2
3
4
5
6
7
8
 # 主任务
我需要完成用户认证功能,请帮我:

1. 使用 code-reviewer agent 审查现有认证代码
2. 使用 test-writer agent 编写测试用例
3. 使用 doc-generator agent 更新 API 文档

这三个任务并行执行

Claude Code 会自动:

1.创建三个独立的子代理

2.分配各自的上下文(200K x 3)

3.并行执行任务

4.汇总结果返回

实战子代理案例:

code-simplifier:

1
2
3
4
5
6
7
# .claude/agents/code-simplifier.md

你是一个代码精简专家。在 Claude 完成工作后,你的任务是:
1. 分析代码的复杂度和可读性
2. 识别可以简化的逻辑
3. 提供优化建议但保持功能不变
4. 优先考虑性能和可维护性

verify-app:

1
2
3
4
5
6
7
8
# .claude/agents/verify-app.md

你是一个端到端测试专家。你的任务是验证应用功能:
1. 运行完整的测试套件
2. 检查所有关键路径
3. 验证边界情况
4. 确保用户体验"感觉对劲"
5. 如果发现问题,提供详细的修复步骤

使用方式:

1
2
3
4
# 在 Claude Code 中
使用 code-simplifier agent 优化刚才写的代码

使用 verify-app agent 验证应用是否正常工作

2.6 CLAUDE.md (项目记忆文件)

CLAUDE.md 是 Claude Code 的”项目记忆文件”,记录项目结构、构建命令、代码规范、架构决策等信息,让 Claude Code 快速理解项目上下文。

作用 说明
📚 项目知识库 记录项目架构、技术栈、依赖关系
🚀 快速启动 自动读取,无需重复解释项目背景
🤝 团队协作 共享项目规范,确保团队理解一致
🔄 持续迭代 随项目演进自动更新作用

CLAUDE.md 最佳位置

优先级: 特定规则 > 模块配置 > 项目配置 > 用户配置

CLAUDE.md 完整示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# 项目名称: 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

# 启动前端开发服务器
npm run dev:frontend

# 启动后端开发服务器
npm run dev:backend

# 同时启动前后端
npm run dev
\`\`\`

### 构建与部署
\`\`\`bash
# 构建前端
npm run build:frontend

# 构建后端
npm run build:backend

# 构建所有
npm run build

# Docker 构建
docker-compose build
docker-compose up
\`\`\`

### 测试
\`\`\`bash
# 运行所有测试
npm test

# 前端单元测试
npm run test:frontend

# 后端单元测试
npm run test:backend

# E2E 测试
npm run test:e2e

# 测试覆盖率
npm run test:coverage
\`\`\`

### 代码质量
\`\`\`bash
# 代码格式化
npm run format

# 代码检查
npm run lint

# 类型检查
npm run type-check
\`\`\`

## 代码规范

### 命名规范
- **文件名:** kebab-case (user-profile.ts)
- **组件名:** PascalCase (UserProfile)
- **函数/变量:** camelCase (getUserProfile)
- **常量:** UPPER_SNAKE_CASE (API_BASE_URL)
- **类型/接口:** PascalCase (UserProfile)

### Git 提交规范
遵循 Conventional Commits:
- \`feat: 新功能\`
- \`fix: 修复 bug\`
- \`docs: 文档更新\`
- \`style: 代码格式调整\`
- \`refactor: 代码重构\`
- \`test: 测试相关\`
- \`chore: 构建/工具链更新\`

### 代码审查清单
- [ ] 代码符合项目命名规范
- [ ] 添加了必要的注释
- [ ] 更新了相关文档
- [ ] 编写了/更新了测试
- [ ] 通过了所有测试
- [ ] 通过了 lint 检查
- [ ] 没有引入安全漏洞

## 架构决策

### ADR-001: 选择 TypeScript 而非 JavaScript
**日期:** 2024-01-15
**状态:** 已接受
**理由:**
- 类型安全减少运行时错误
- 更好的 IDE 支持
- 代码可维护性更高

### ADR-002: 采用微服务架构
**日期:** 2024-02-20
**状态:** 已接受
**理由:**
- 便于团队并行开发
- 独立部署和扩展
- 技术栈灵活性

## 环境变量

### 必需变量
\`\`\`bash
DATABASE_URL=postgresql://...
REDIS_URL=redis://...
JWT_SECRET=your-secret-key
API_BASE_URL=https://api.example.com
\`\`\`

### 可选变量
\`\`\`bash
LOG_LEVEL=info
NODE_ENV=development
PORT=3000
\`\`\`

## 常见问题

### Q: 如何添加新的 API 端点?
A:
1. 在 \`backend/routes/\` 创建路由文件
2. 在 \`backend/controllers/\` 创建控制器
3. 在 \`backend/services/\` 实现业务逻辑
4. 添加测试用例
5. 更新 API 文档

### Q: 如何调试前端状态管理问题?
A:
1. 使用 Redux DevTools 浏览器扩展
2. 在 \`src/frontend/store/\` 添加日志
3. 检查 action 和 reducer 逻辑

## 重要注意事项

1. **安全:** 永远不要在代码中硬编码密钥或敏感信息
2. **性能:** 大数据查询必须使用分页
3. **测试:** 所有新功能必须包含测试
4. **文档:** API 变更必须更新文档
5. **兼容性:** 确保向后兼容,使用版本控制

## 相关资源
- [项目 Wiki](https://wiki.example.com)
- [API 文档](https://docs.example.com)
- [设计规范](https://design.example.com)

生成 CLAUDE.md 方式

方式一:使用 /init 命令

1
2
# 在项目根目录
claude /init

Claude Code 会自动扫描项目并生成初始 CLAUDE.md,包含:

  • 构建和测试命令
  • 目录结构说明
  • 代码规范和架构决策
  • 技术栈信息

方式二:手动创建

1
2
3
4
5
# 创建基础文件
touch CLAUDE.md

# 让 Claude Code 帮助生成
claude "请根据当前项目结构生成 CLAUDE.md 文件"

方式三:模块化规则

1
2
3
4
5
6
# 在 .claude/rules/ 目录创建多个规则文件
.claude/rules/
├── auth.md # 认证相关规则
├── database.md # 数据库相关规则
├── api.md # API 设计规范
└── testing.md # 测试规范

方式四:Memory Updates - 动态更新记忆

1
2
3
4
5
# 直接告诉 Claude 更新知识
Update CLAUDE.md: always use bun instead of npm
Update CLAUDE.md: 不要使用 enum,改用 string union

# Claude 会自动把新知识写入记忆文件,无需手动编辑

CLAUDE.md 的 AI 进化机制

核心理念: 让 Claude 在 Code Review 中自我迭代,越用越聪明

实战流程:

  1. 在 PR 中发现问题

    1
    2
    # 在 GitHub PR 评论中
    @claude 这里的代码使用了 enum,但我们项目规范要求使用 string union,请修复
  2. 让 Claude 记住教训

    1
    2
    # 在 PR 中直接告诉 Claude
    @claude 请把这次的教训写入 CLAUDE.md:不要使用 enum,改用 string union
  3. Claude 自动更新

    1
    2
    3
    4
    5
    6
    7
    # Claude 会在 CLAUDE.md 中添加
    ## 代码规范更新 (2026-01-03)

    ### Enum vs String Union
    - ❌ 不要使用 enum
    - ✅ 改用 string union
    - 理由:更好的类型推断和 Tree-shaking
  4. 团队共同维护

    1
    2
    3
    4
    5
    # 将 CLAUDE.md 签入 Git
    git add CLAUDE.md
    git commit -m "docs: 更新 CLAUDE.md 规范"

    # 整个团队共享这份"行为准则"

价值体现:

🧠 集体智慧: 每个团队成员的反馈都让 AI 更聪明

🔄 持续进化: Claude 不会重复犯同样的错误

📚 知识沉淀: 项目规范自动文档化

🤝 团队协作: 统一的 AI 助手理解团队偏好

实际案例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# CLAUDE.md - 实际演进示例

## 初始版本 (第1周)
- 使用 TypeScript
- 测试覆盖率 > 80%

## 第1次更新 (第2周 - PR反馈)
+ 永远使用 bun 而不是 npm
+ 理由:启动速度快 10 倍

## 第2次更新 (第3周 - PR反馈)
+ 不要使用 enum,改用 string union
+ 理由:更好的类型推断

## 第3次更新 (第4周 - PR反馈)
+ 所有 API 必须添加错误处理
+ 使用 try-catch 包装所有 async 函数