0%

Claude-code-2-advanced

02-Claude Code 核心功能全解析

Skills + CLAUDE.md + Memory 三大法宝

📝 前言

上回书说到,咱们用智谱 GLM-4.7 把 Claude Code 配起来了,也能跑起来了。但说实话,那只是"能用",离"好用"还有一定距离。

真正让我觉得"真香"的,是 Claude Code 的三大核心功能:

  • Skills 系统 - 就像给 Claude 装了各种专业插件
  • CLAUDE.md - 每个项目都配一本专属使用说明书
  • Memory - 让 Claude 记住你的偏好和习惯

这三样东西配合起来,Claude 就从一个"通用聊天机器人"变成了"懂你、懂项目、懂专业领域"的超级助手。说实话,用了一段时间后,再回到普通 ChatGPT 真是各种不习惯。

这篇笔记咱们就把这三样东西彻底搞清楚,保证看完就能上手,上手就能提升效率。

第一部分:Skills 系统 - 给 Claude 装插件

1.1 什么是 Skill?

Skill 就像 Claude 的"插件"或"扩展包"。你可以把它理解成一组预定义的工作流程,让 Claude 能够以特定的方式完成特定类型的任务。

⚠️ 注意:Skills 是 model-invoked(模型自主调用),Claude 会根据你的需求描述自动识别并调用合适的 Skill。

💡 怎么让 Claude 调用 Skill?

直接描述你的需求即可:

  • “请帮我审查一下 src/utils/helpers.py 这个文件的代码质量”
  • “能不能为这个函数生成一些测试用例?”
  • “帮我优化这段代码的性能”

Claude 会根据你的描述,自动匹配合适的 Skill 并执行!

举个例子:

  • 没有 Skill:你说"帮我审查代码",Claude 会随意看看,然后给点建议
  • code-review Skill:你说"请审查我的代码质量",Claude 会按照固定模板检查代码质量、安全性、性能、错误处理等,输出标准化报告

也就是说,Skill 把"随意发挥"变成了"专业化流程"

1.1.1 Skills 工作流程图

flowchart LR
    A[用户描述需求] --> B[Claude 识别需求类型]
    B --> C{匹配对应 Skill}
    C -->|代码审查| D[code-review Skill]
    C -->|测试生成| E[test-gen Skill]
    C -->|文档生成| F[doc-gen Skill]
    C -->|任务同步| G[todo-sync Skill]

    D --> H[按固定模板执行]
    E --> H
    F --> H
    G --> H

    H --> I[输出标准化结果]

    style A fill:#e1f5ff
    style I fill:#c8e6c9
    style C fill:#fff9c4
Fig.1 Skill 工作流程图

可以发现,这个流程就像一个智能路由器,你的需求描述进去,自动匹配到专业的 Skill,最后输出标准化结果。再也不用每次都跟 Claude 解释"怎么审查代码"了!

1.2 常用自定义 Skills 介绍

以下是我常用的几个自定义 Skills(配置方法见后文"1.4 创建自定义 Skill"),它们让 Claude Code 变得更强大:

📋 code-review - 代码审查专家

作用:全面审查代码,检查质量、安全性和最佳实践

怎么用

1
2
3
# 直接描述需求,Claude 会自动调用 code-review Skill
"请帮我审查 src/utils/helpers.py 的代码质量"
"全面检查一下这个文件的安全性、性能和错误处理"

Claude 会自动做什么

  • 加载 code-review Skill 的审查模板
  • 按照固定检查项逐项审查
  • 输出标准化审查报告

输出效果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
### 文件:src/utils/helpers.py

#### 发现的问题
1. **[严重]** SQL 注入风险
- 位置:第 45 行
- 建议:使用参数化查询

2. **[警告]** 未处理的异常
- 位置:第 78 行

#### 优点
- 函数命名清晰
- 有适当的类型注解

#### 总体评分:B+

适合场景

  • 提交代码前自查
  • Code Review 前的预审
  • 学习最佳实践

🧪 test-gen - 测试用例生成器

作用:自动为代码生成单元测试和集成测试

怎么用

1
2
3
# 直接描述需求,Claude 会自动调用 test-gen Skill
"为 src/services/user.py 生成测试用例"
"帮我写一下这个函数的单元测试"

Claude 会自动做什么

  • 分析代码逻辑
  • 生成正常、边界、异常情况的测试
  • 输出完整可运行的测试代码

会生成什么

  • 正常情况测试
  • 边界情况测试
  • 异常处理测试
  • 覆盖率目标建议

测试模板示例(Python pytest):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import pytest

def test_normal_case():
"""测试正常情况"""
result = function_name("test")
assert result == "expected"

def test_edge_case():
"""测试边界情况"""
result = function_name("")
assert result == ""

def test_invalid_input():
"""测试异常输入"""
with pytest.raises(ValueError):
function_name(None)

📚 doc-gen - 文档生成助手

作用:为代码生成完整的文档注释和 API 文档

怎么用

1
2
3
# 直接描述需求,Claude 会自动调用 doc-gen Skill
"为 src/api/user.py 生成文档注释"
"帮我完善这个函数的 docstring"

生成的文档风格(Python Docstring):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def create_user(username: str, email: str) -> User:
"""创建新用户

详细说明函数的功能、使用场景和注意事项。

Args:
username: 用户名,3-20个字符
email: 邮箱地址,必须符合邮箱格式

Returns:
创建的用户对象

Raises:
ValueError: 用户名或邮箱格式不正确
UserExistsError: 用户已存在

Examples:
>>> user = create_user("alice", "alice@example.com")
>>> print(user.id)
123
"""
pass

✅ todo-sync - 任务同步器

作用:自动将当前的 todos 同步到 TODO.md 文件中

怎么用

1
2
3
# 直接描述需求,Claude 会自动调用 todo-sync Skill
"把当前的待办事项同步到 TODO.md"
"更新一下项目的任务列表"

生成的 TODO.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
# 项目待办事项

> 最后更新:2025-12-26 18:00:00

## 进行中

- [ ] 实现用户认证功能

## 待处理

- [ ] 编写单元测试
- [ ] 优化数据库查询

## 已完成

- [x] 搭建项目框架
- [x] 配置开发环境

---

## 统计
- 总计:5
- 待处理:2
- 进行中:1
- 已完成:2

🔒 llm-prompt-review - 提示词优化师

作用:审查 LLM 提示词的质量、安全性和有效性

怎么用

1
2
3
# 直接描述需求,Claude 会自动调用 llm-prompt-review Skill
"帮我审查一下这个提示词的质量"
"检查 prompts/chat.txt 有没有安全风险"

审查内容

  • 目标是否清晰
  • 指令是否具体
  • 注入风险检查
  • Token 使用效率
  • 优化建议

💡 小贴士:这个 Skill 特别适合用来优化你发给 AI 的提示词,能省不少 token 钱!

1.3 实战案例:用 Skills 完成一个完整开发流程

场景:开发一个用户注册功能

flowchart LR
    A[编写代码] --> B[生成文档
doc-gen] B --> C[生成测试
test-gen] C --> D[代码审查
code-review] D --> E[同步任务
todo-sync] style A fill:#e3f2fd style B fill:#fff3e0 style C fill:#f3e5f5 style D fill:#ffebee style E fill:#e8f5e9
Fig.2 开发案例流程
  • 步骤 1:编写代码

    1
    2
    3
    4
    5
    # src/services/user_service.py

    def register_user(username: str, email: str, password: str):
    # 实现用户注册
    pass
  • 步骤 2:生成文档

    1
    "为 src/services/user_service.py 生成文档注释"

    结果:Claude 自动调用 doc-gen Skill,添加完整的 Docstring

  • 步骤 3:生成测试

    1
    "为这个用户注册函数生成测试用例"

    结果:生成 tests/test_user_service.py

  • 步骤 4:代码审查

    1
    "请审查 src/services/user_service.py 的代码质量,重点关注安全性"

    结果:Claude 自动调用 code-review Skill,发现安全问题(密码未加密),给出修复建议

  • 步骤 5:同步任务

    1
    "把当前的待办事项同步到 TODO.md"

    结果:更新 TODO.md,标记已完成任务

这一个流程走下来,代码质量、文档、测试都有了,还省了不少时间!

1.4 自定义 Skill 入门

重要说明:前面提到的 code-reviewtest-gendoc-gentodo-syncllm-prompt-review 等都是自定义 Skills,需要你自己配置才能使用。

下面介绍如何配置这些常用 Skills。

1.4.1 Skill 文件结构

1
2
3
4
.claude/skills/my-custom-skill/
├── SKILL.md # Skill 定义文件(必须)
├── index.js # 可选的脚本文件
└── package.json # Node 依赖(如果需要脚本)

1.4.2 配置常用 Skills

方法一:手动创建(推荐学习)

在项目根目录创建 .claude/skills/ 目录,然后为每个 Skill 创建 SKILL.md 文件。

1. code-review - 代码审查 Skill

创建 .claude/skills/code-review/SKILL.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
---
name: code-review
description: "对代码进行全面审查,检查质量、安全性和最佳实践"
license: MIT
---

# 技能:代码审查

对代码进行全面审查,检查质量、安全性和最佳实践。

## 审查检查项

- 代码质量(命名、逻辑、冗余)
- 安全性(注入漏洞、敏感数据)
- 性能(循环、内存、查询优化)
- 错误处理(异常捕获、日志记录)
- 测试覆盖(单元测试、边界情况)

## 输出格式

### 文件:xxx.ts/xxx.py

#### 发现的问题
1. **[严重]** 问题描述
- 位置:第 X 行
- 建议:修复方案

2. **[警告]** 问题描述
- 位置:第 X 行

#### 优点
- 列出代码的优点

#### 总体评分:B+
2. test-gen - 测试生成 Skill

创建 .claude/skills/test-gen/SKILL.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
---
name: test-gen
description: "为代码自动生成单元测试和集成测试"
license: MIT
---

# 技能:测试生成

为代码生成完整的单元测试和集成测试。

## 测试类型

- 正常情况测试
- 边界情况测试
- 异常处理测试
- 覆盖率目标建议

## 输出格式

使用标准测试框架(pytest/unittest/jest),生成可运行的测试代码。

每个测试函数需要:
1. 清晰的函数名(test_xxx)
2. 完整的 docstring
3. 断言(assert)
3. doc-gen - 文档生成 Skill

创建 .claude/skills/doc-gen/SKILL.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
---
name: doc-gen
description: "为代码生成完整的文档注释和 API 文档"
license: MIT
---

# 技能:文档生成

为代码生成完整的文档注释和 API 文档。

## 文档风格

- Python:Google Style Docstring
- JavaScript/TypeScript:JSDoc
- Go:Go Doc

## 文档内容

每个函数/类必须包含:
1. 功能描述
2. 参数说明(Args/Parameters)
3. 返回值说明(Returns)
4. 异常说明(Raises/Throws)
5. 使用示例(Examples)
4. todo-sync - 任务同步 Skill

创建 .claude/skills/todo-sync/SKILL.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
---
name: todo-sync
description: "将当前的待办事项同步到 TODO.md 文件中"
license: MIT
---

# 技能:任务同步

自动将当前的待办事项同步到 TODO.md 文件中。

## 输出格式

```markdown
# 项目待办事项

> 最后更新:时间戳

## 进行中
- [ ] 任务描述

## 待处理
- [ ] 任务描述

## 已完成
- [x] 任务描述
##### 5. llm-prompt-review - 提示词审查 Skill

创建 `.claude/skills/llm-prompt-review/SKILL.md`:

```markdown
---
name: llm-prompt-review
description: "审查 LLM 提示词的质量、安全性和有效性"
license: MIT
---

# 技能:提示词审查

审查 LLM 提示词的质量、安全性和有效性。

## 审查内容

- 目标是否清晰
- 指令是否具体
- 注入风险检查
- Token 使用效率
- 优化建议

## 输出格式

按以下格式输出审查结果:

### 评估结果
- **目标清晰度**:评分 + 说明
- **指令具体性**:评分 + 说明
- **安全性**:风险等级 + 说明
- **Token 效率**:评估 + 说明

### 优化建议
1. 具体建议
2. 优化后的提示词示例

方法二:使用配置包(推荐快速上手)

我已经准备好了完整的 Skills 配置包,包含上面提到的 5 个常用 Skills。

下载和安装

1
2
3
4
5
6
7
8
9
# 1. 克隆或下载配置包
# 假设配置包在当前目录的 skills-package/ 目录下

# 2. 复制到项目目录(推荐)
cp -r skills-package/* .claude/skills/

# 3. 验证配置
ls -la .claude/skills/
# 应该看到:code-review/, test-gen/, doc-gen/, todo-sync/, llm-prompt-review/

配置包位置

💡 小贴士:配置包里的 Skills 可以直接使用,也可以根据自己的需求修改 SKILL.md 文件中的检查项和输出格式。

1.4.3最简单的 Skill 示例

如果你想从零开始创建一个简单的 Skill(纯提示词):

创建文件:.claude/skills/my-review/SKILL.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
---
name: my-review
description: "按照我的个人代码风格审查代码"
license: MIT
---

# 技能:个性化代码审查

## 我的代码风格要求

- 使用 4 空格缩进
- 函数不超过 50 行
- 变量名用 snake_case
- 每个函数必须有 docstring

## 使用方法

```bash
/skill my-review --file <filename>
```

## 输出格式

按以下格式输出审查结果:

1. **风格问题**
- 位置:第 X 行
- 问题:...
- 建议:...
2. **命名问题**
- 位置:第 X 行
- 问题:...
- 建议:...

就这么简单!保存后直接就能用:

1
"用我的个人代码风格审查 src/utils/helpers.py"

Claude 会自动识别并调用 my-review Skill!

💡 小贴士:自定义 Skill 不需要写代码也能用!SKILL.md 本身就是一个"提示词模板",Claude 会按照你定义的格式执行任务。

1.5 Skills 避坑指南

坑 1: Skill 不生效

症状:描述了需求,但 Claude 没有调用预期的 Skill

可能原因

  1. SKILL.md 文件的 front matter 格式错误
  2. skill 目录名和 SKILL.md 里的 name 不一致
  3. description 描述不够清晰,Claude 无法匹配

检查方法

1
2
3
4
5
6
7
8
9
# 检查 Skill 文件格式
cat ~/.claude/skills/my-skill/SKILL.md

# 正确的格式:
---
name: my-skill # 要和目录名一致
description: "清晰描述这个 Skill 的用途,让 Claude 能准确匹配"
license: MIT
---

坑 2:找不到 Skill

症状:Claude 提示找不到 Skill

原因:Skill 不在 .claude/skills/ 目录下

解决

  • 全局 Skill:放在 ~/.claude/skills/
  • 项目 Skill:放在 项目根目录/.claude/skills/

第二部分:CLAUDE.md - 项目专属使用说明书

2.1 什么是 CLAUDE.md

CLAUDE.md 就像是给 Claude 写的"项目 README"

每次你在一个项目里使用 Claude Code 时,它会自动读取项目根目录下的 CLAUDE.md 文件,了解:

  • 这个项目是干什么的
  • 用了什么技术栈
  • 代码规范是什么
  • 你有哪些个人偏好
  • 常用命令有哪些

有了 CLAUDE.md,Claude 就从"陌生人"变成了"团队老成员"

graph TD
    A[CLAUDE.md] --> B[项目概述]
    A --> C[开发规范]
    A --> D[常用命令]
    A --> E[项目结构]
    A --> F[交互偏好]

    B --> B1[技术栈]
    B --> B2[项目类型]

    C --> C1[代码风格]
    C --> C2[命名规范]
    C --> C3[文档要求]

    D --> D1[开发命令]
    D --> D2[测试命令]
    D --> D3[部署命令]

    F --> F1[工作流程]
    F --> F2[权限配置]
    F --> F3[Skills 配置]

    style A fill:#e1f5ff
    style B fill:#fff9c4
    style C fill:#ffe0b2
    style D fill:#c8e6c9
    style E fill:#b2dfdb
    style F fill:#e1bee7
Fig.3 CLAUDE.md 结构示意图

2.2 CLAUDE.md 的作用

  • 作用 1:项目上下文管理

告诉 Claude 这个项目的基本信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
## 项目概述

**项目名称**: Tutor - Python AI 项目模板
**项目类型**: Python AI/LLM 应用开发学习项目
**主要技术栈**:
- Python 3.10+
- LangChain / LlamaIndex
- OpenAI API / Anthropic Claude API
- Vector Database (ChromaDB/Pinecone)
- FastAPI (API 服务)

**沟通语言**: 中文
**代码注释**: 中文 docstring
  • 作用 2:开发规范定义

告诉 Claude 你希望代码怎么写:

1
2
3
4
5
6
7
8
9
10
11
12
## 开发规范

### 代码风格

- **缩进**: 4 空格
- **命名规范**:
- 变量/函数: `snake_case`
- 类: `PascalCase`
- 常量: `UPPER_SNAKE_CASE`
- **文档字符串**: Google Style Docstrings
- **类型注解**: 使用 Python 3.10+ 类型注解
- **行宽限制**: 100 字符
  • 作用 3:常用命令配置

列出常用的命令,Claude 会根据这些命令操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
## 常用命令

### 开发

```bash
# 虚拟环境
python -m venv .venv
source .venv/bin/activate

# 依赖管理
pip install -r requirements.txt
pip freeze > requirements.txt

# 代码检查
ruff check .
ruff check --fix .
```

### 测试
pytest # 运行测试
pytest -v # 详细输出
pytest --cov=src # 覆盖率
  • 作用 4:工作流程指导

告诉 Claude 你希望它怎么配合工作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
## Claude Code 交互偏好

### 工作流程

1. **开发新功能前**: 先使用 Spec Kit 编写规范
2. **实现功能时**: 参考 `.specify/specs/` 中的规范
3. **代码审查**: 说"请审查代码质量",Claude 自动调用 code-review
4. **测试生成**: 说"为这个函数生成测试",Claude 自动调用 test-gen
5. **文档生成**: 说"生成文档注释",Claude 自动调用 doc-gen

### 权限配置

允许的命令:
- Python: `python*`, `pip*`, `pytest*`
- 代码检查: `ruff*`, `black*`, `isort*`, `mypy*`
- Git: `git:*`

2.3 实战案例:Python AI 项目 CLAUDE.md 配置

下面是一个完整的 Python AI 项目 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
# Claude Code 配置 - Python AI 项目

## 项目概述

**项目名称**: AI Chatbot
**项目类型**: Python AI/LLM 应用
**主要技术栈**:
- Python 3.10+
- LangChain
- OpenAI API
- FastAPI
- SQLAlchemy

**沟通语言**: 中文
**代码注释**: 中文 docstring

---

## 开发规范

### 代码风格

- **缩进**: 4 空格
- **命名**: snake_case(变量/函数),PascalCase(类)
- **文档**: Google Style Docstrings
- **类型注解**: 必须添加

### AI/LLM 特定规范

- **API Key**: 使用环境变量,不写死在代码里
- **重试机制**: 实现指数退避重试
- **提示词管理**: 放在 `prompts/` 目录
- **数据隐私**: 敏感数据脱敏处理

---

## 常用命令

### 开发

```bash
# 环境管理
source .venv/bin/activate
pip install -r requirements.txt

# 代码质量
ruff check .
ruff check --fix .
black .
isort .
```

### 测试
```
pytest # 运行测试
pytest -v # 详细输出
pytest --cov=src # 覆盖率
```


## 项目结构
```
project-root/
├── src/
│ ├── agents/ # AI Agents
│ ├── chains/ # LangChain chains
│ ├── prompts/ # 提示词模板
│ ├── tools/ # 自定义工具
│ └── api/ # FastAPI 路由
├── tests/
│ ├── unit/ # 单元测试
│ └── integration/ # 集成测试
├── data/ # 数据文件
├── .claude/ # Claude Code 配置
└── CLAUDE.md # 本文件
```

## Claude Code 交互偏好

### 工作流程

1. **开发新功能前**: 先编写规范文档
2. **实现功能时**: 参考规范,生成代码
3. **代码审查**: 说"请审查代码质量",Claude 自动调用 code-review
4. **测试生成**: 说"为这个函数生成测试",Claude 自动调用 test-gen
5. **文档生成**: 说"生成文档注释",Claude 自动调用 doc-gen

### 允许的命令

- Python: `python*`, `pip*`, `pytest*`
- 代码检查: `ruff*`, `black*`, `isort*`, `mypy*`
- Git: `git:*`

有了这个配置,Claude 生成的代码就会自动遵守你的规范,不用每次都重复说明了!

2.4 开箱即用 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
---
title: Claude Code 项目配置
date: 2025-12-26
---

# Claude Code 配置

## 项目概述

**项目名称**: [项目名称]
**项目类型**: [Web/AI/数据科学/脚本工具]
**主要技术栈**:
- [技术栈 1]
- [技术栈 2]
- [技术栈 3]

**沟通语言**: 中文
**代码注释**: 中文/英文

---

## 开发规范

### 代码风格

- **缩进**: 2 / 4 空格(Tab)
- **命名**:
- 变量/函数: `snake_case` / `camelCase`
- 类: `PascalCase`
- 常量: `UPPER_SNAKE_CASE`
- **文档**: JSDoc / Docstring / 注释
- **类型注解**: 是 / 否

### 特定规范

- [ ] [规范 1]
- [ ] [规范 2]
- [ ] [规范 3]

---

## 常用命令

### 开发

```bash
# [命令说明]
命令
```

###测试

```
# [命令说明]
命令
```

## 项目结构

```
project-root/
├── src/ # 源代码
├── tests/ # 测试
├── docs/ # 文档
├── .claude/ # Claude Code 配置
└── CLAUDE.md # 本文件
```

## Claude Code 交互偏好

### 工作流程

1. [步骤 1]
2. [步骤 2]
3. [步骤 3]

### 允许的命令

2.5 CLAUDE.md 避坑指南

坑 1:CLAUDE.md 不生效

症状:Claude 好像没看到 CLAUDE.md

原因

  1. 文件不在项目根目录
  2. 文件名不是 CLAUDE.md(必须全大写)
  3. 没有在项目目录下启动 Claude Code

解决

1
2
3
4
5
6
# 确保文件位置正确
ls CLAUDE.md # 必须在项目根目录

# 在项目目录下启动 Claude Code
cd /path/to/project
claude

坑 2:Claude 不遵守规范

症状CLAUDE.md 写了规范,Claude 还是不按规范来

原因:规范描述不够具体

解决

1
2
3
4
5
6
7
8
9
## 不好 ❌
"代码要规范"

## 好 ✅
"代码风格:
- 使用 4 空格缩进
- 变量名用 snake_case
- 每个函数必须有 docstring
- 行宽不超过 100 字符"

坑 3:不同项目 CLAUDE.md 冲突

症状:多个项目的 CLAUDE.md 互相干扰

解决

  • 每个 CLAUDE.md 只放项目特定的内容
  • 通用规范可以提取到 ~/.claude/CLAUDE.md(全局配置)

第三部分:Memory - 让 Claude 记住你

3.1 Memory vs CLAUDE.md 的区别

很多人搞不清 Memory 和 CLAUDE.md 的区别,我简单解释一下:

特性 CLAUDE.md Memory
作用域 项目级 全局
内容 项目相关的规范和信息 个人偏好和跨项目知识
位置 项目根目录 Claude 全局存储
更新频率 很少更新 经常更新
示例 “这个项目用 Python” “我喜欢 4 空格缩进”

简单来说

  • CLAUDE.md = 项目说明书(每个项目都不一样)
  • Memory = 个人偏好设置(所有项目通用)
flowchart LR
    A[用户输入信息] --> B{/memory remember}
    B --> C[存储到全局 Memory]
    C --> D[跨项目可访问]

    E[需要信息时] --> F{/memory view/search}
    F --> G[检索相关记忆]
    G --> H[应用到当前任务]

    D -.->|跨项目共享| H

    style A fill:#e1f5ff
    style H fill:#c8e6c9
    style C fill:#fff9c4
Fig.4 Memory 使用流程图

3.2 Memory 常用命令

  • 记住信息
1
2
3
/memory remember "我喜欢用 4 空格缩进"
/memory remember "项目使用 LangChain + OpenAI API"
/memory remember "我的 API Key 存在环境变量里"
  • 查看所有记忆
1
/memory view

输出示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
## 你的记忆

### 编码偏好
- 缩进:4 空格
- 命名风格:snake_case
- 必须写注释

### 项目信息
- 当前项目:AI Chatbot
- 技术栈:Python + LangChain + OpenAI
- 数据库:PostgreSQL

### API 配置
- API Key 存储位置:环境变量
- 使用的模型:gpt-4
  • 搜索记忆
1
/memory search "API"

输出:

1
2
3
4
找到 3 条相关记忆:
1. 项目使用 LangChain + OpenAI API
2. 我的 API Key 存在环境变量里
3. 使用的模型:gpt-4

3.3 实战案例:初始化项目 Memory

假设你刚接手一个新项目,可以这样初始化 Memory:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 1. 记住项目基本信息
/memory remember "项目名称:AI Chatbot"
/memory remember "技术栈:Python 3.10 + LangChain + FastAPI"
/memory remember "数据库:PostgreSQL 14"

# 2. 记住开发规范
/memory remember "代码风格:4 空格缩进,snake_case 命名"
/memory remember "必须写类型注解和 docstring"
/memory remember "函数不超过 50 行"

# 3. 记住个人偏好
/memory remember "我喜欢详细的注释"
/memory remember "错误处理要完整"
/memory remember "测试覆盖率要达到 80%"

# 4. 记住常用命令
/memory remember "运行测试:pytest"
/memory remember "代码检查:ruff check ."

# 5. 记住特殊注意事项
/memory remember "API Key 不能写死在代码里"
/memory remember "用户数据必须脱敏处理"

初始化完成后,Claude 在整个项目中都会遵守这些设置!

3.4 Memory 最佳实践

实践 1:分层管理 Memory

把 Memory 分成几个类别:

1
2
3
4
5
6
7
8
# 全局偏好(一次设置,所有项目通用)
/memory remember "编码风格:4 空格,snake_case"

# 项目特定(每个项目都不同)
/memory remember "当前项目使用 FastAPI"

# 临时信息(用完可以删)
/memory remember "今天在修用户登录的 bug"

实践 2:定期清理 Memory

1
2
3
4
5
# 查看所有记忆
/memory view

# 删除过期记忆
/memory forget "今天在修用户登录的 bug"

实践 3:和 CLAUDE.md 配合使用

  • CLAUDE.md:放项目静态信息(技术栈、目录结构)
  • Memory:放动态信息(当前任务、临时偏好)

3.5 Memory 避坑指南

坑 1:Memory 丢失

症状:之前记住的东西,Claude 忘了

原因

  1. Memory 存储在本地,换了电脑就没了
  2. 长时间不用,Memory 可能被清理

解决

1
2
3
4
5
# 定期导出 Memory
/memory export > memory-backup.txt

# 需要时导入
/memory import < memory-backup.txt

坑 2:Memory 太多太乱

症状/memory view 输出一大堆,找不到有用的

原因:啥都往 Memory 里塞

解决

  • 只记真正常用的东西
  • 定期清理过时记忆
  • 使用分类前缀方便搜索
1
2
3
4
5
6
7
# 好的做法 ✅
/memory remember "[偏好] 4 空格缩进"
/memory remember "[项目] 使用 FastAPI"
/memory remember "[临时] 今天修登录 bug"

# 不好的做法 ❌
/memory remember "我觉得今天天气不错" # Claude 用不上

坑 3:Memory 和 CLAUDE.md 重复

症状:同样的内容两边都写了

建议

  • 项目信息CLAUDE.md
  • 个人偏好 → Memory

三大功能联动使用

最后,咱们来看看这三大功能怎么配合使用:

场景:新项目开发第一天

1. 创建 CLAUDE.md

1
2
# 在项目根目录创建 CLAUDE.md
# 配置项目信息、技术栈、开发规范

2. 初始化 Memory

1
2
3
/memory remember "新项目:AI Chatbot"
/memory remember "当前任务:搭建项目框架"
/memory remember "使用 FastAPI + LangChain"

3. 使用 Skills 开发

1
2
3
"帮我生成文档"
"为这个函数生成测试"
"审查代码质量"

Claude 会自动调用相应的 Skill!

4. 同步任务

1
"更新 TODO.md 任务列表"

👉 下一篇预告:03-Spec Kit 规范驱动开发:从零到一完整项目实战

📚 参考来源

本文内容基于以下官方文档和社区资源整理:

官方文档

社区资源

相关工具

-------------This blog is over! Thanks for your reading-------------