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-reviewSkill:你说"请审查我的代码质量",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
可以发现,这个流程就像一个智能路由器,你的需求描述进去,自动匹配到专业的 Skill,最后输出标准化结果。再也不用每次都跟 Claude 解释"怎么审查代码"了!
1.2 常用自定义 Skills 介绍
以下是我常用的几个自定义 Skills(配置方法见后文"1.4 创建自定义 Skill"),它们让 Claude Code 变得更强大:
📋 code-review - 代码审查专家
作用:全面审查代码,检查质量、安全性和最佳实践
怎么用:
1 | 直接描述需求,Claude 会自动调用 code-review Skill |
Claude 会自动做什么:
- 加载 code-review Skill 的审查模板
- 按照固定检查项逐项审查
- 输出标准化审查报告
输出效果:
1 | ## 文件:src/utils/helpers.py |
适合场景:
- 提交代码前自查
- Code Review 前的预审
- 学习最佳实践
🧪 test-gen - 测试用例生成器
作用:自动为代码生成单元测试和集成测试
怎么用:
1 | # 直接描述需求,Claude 会自动调用 test-gen Skill |
Claude 会自动做什么:
- 分析代码逻辑
- 生成正常、边界、异常情况的测试
- 输出完整可运行的测试代码
会生成什么:
- 正常情况测试
- 边界情况测试
- 异常处理测试
- 覆盖率目标建议
测试模板示例(Python pytest):
1 | import pytest |
📚 doc-gen - 文档生成助手
作用:为代码生成完整的文档注释和 API 文档
怎么用:
1 | # 直接描述需求,Claude 会自动调用 doc-gen Skill |
生成的文档风格(Python Docstring):
1 | def create_user(username: str, email: str) -> User: |
✅ todo-sync - 任务同步器
作用:自动将当前的 todos 同步到 TODO.md 文件中
怎么用:
1 | # 直接描述需求,Claude 会自动调用 todo-sync Skill |
生成的 TODO.md:
1 | # 项目待办事项 |
🔒 llm-prompt-review - 提示词优化师
作用:审查 LLM 提示词的质量、安全性和有效性
怎么用:
1 | # 直接描述需求,Claude 会自动调用 llm-prompt-review Skill |
审查内容:
- 目标是否清晰
- 指令是否具体
- 注入风险检查
- 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
-
步骤 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-review、test-gen、doc-gen、todo-sync、llm-prompt-review 等都是自定义 Skills,需要你自己配置才能使用。
下面介绍如何配置这些常用 Skills。
1.4.1 Skill 文件结构
1 | .claude/skills/my-custom-skill/ |
1.4.2 配置常用 Skills
方法一:手动创建(推荐学习)
在项目根目录创建 .claude/skills/ 目录,然后为每个 Skill 创建 SKILL.md 文件。
1. code-review - 代码审查 Skill
创建 .claude/skills/code-review/SKILL.md:
1 | --- |
2. test-gen - 测试生成 Skill
创建 .claude/skills/test-gen/SKILL.md:
1 | --- |
3. doc-gen - 文档生成 Skill
创建 .claude/skills/doc-gen/SKILL.md:
1 | --- |
4. todo-sync - 任务同步 Skill
创建 .claude/skills/todo-sync/SKILL.md:
1 | --- |
方法二:使用配置包(推荐快速上手)
我已经准备好了完整的 Skills 配置包,包含上面提到的 5 个常用 Skills。
下载和安装:
1 | 1. 克隆或下载配置包 |
配置包位置:
- 教程仓库:skills-package Download Now
- 包含:5 个常用 Skills 的完整 SKILL.md 文件
💡 小贴士:配置包里的 Skills 可以直接使用,也可以根据自己的需求修改 SKILL.md 文件中的检查项和输出格式。
1.4.3最简单的 Skill 示例
如果你想从零开始创建一个简单的 Skill(纯提示词):
创建文件:.claude/skills/my-review/SKILL.md
1 | --- |
就这么简单!保存后直接就能用:
1 | "用我的个人代码风格审查 src/utils/helpers.py" |
Claude 会自动识别并调用 my-review Skill!
💡 小贴士:自定义 Skill 不需要写代码也能用!SKILL.md 本身就是一个"提示词模板",Claude 会按照你定义的格式执行任务。
1.5 Skills 避坑指南
坑 1: Skill 不生效
症状:描述了需求,但 Claude 没有调用预期的 Skill
可能原因:
检查方法:
1 | # 检查 Skill 文件格式 |
坑 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
2.2 CLAUDE.md 的作用
- 作用 1:项目上下文管理
告诉 Claude 这个项目的基本信息:
1 | ## 项目概述 |
- 作用 2:开发规范定义
告诉 Claude 你希望代码怎么写:
1 | ## 开发规范 |
- 作用 3:常用命令配置
列出常用的命令,Claude 会根据这些命令操作:
1 | ## 常用命令 |
- 作用 4:工作流程指导
告诉 Claude 你希望它怎么配合工作:
1 | ## Claude Code 交互偏好 |
2.3 实战案例:Python AI 项目 CLAUDE.md 配置
下面是一个完整的 Python AI 项目 CLAUDE.md 示例:
1 | # Claude Code 配置 - Python AI 项目 |
有了这个配置,Claude 生成的代码就会自动遵守你的规范,不用每次都重复说明了!
2.4 开箱即用 CLAUDE.md 模板
我整理了一个通用模板,可以根据项目类型调整:
1 | --- |
2.5 CLAUDE.md 避坑指南
坑 1:CLAUDE.md 不生效
症状:Claude 好像没看到 CLAUDE.md
原因:
- 文件不在项目根目录
- 文件名不是
CLAUDE.md(必须全大写) - 没有在项目目录下启动 Claude Code
解决:
1 | # 确保文件位置正确 |
坑 2:Claude 不遵守规范
症状:CLAUDE.md 写了规范,Claude 还是不按规范来
原因:规范描述不够具体
解决:
1 | ## 不好 ❌ |
坑 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
3.2 Memory 常用命令
- 记住信息
1 | /memory remember "我喜欢用 4 空格缩进" |
- 查看所有记忆
1 | /memory view |
输出示例:
1 | ## 你的记忆 |
- 搜索记忆
1 | /memory search "API" |
输出:
1 | 找到 3 条相关记忆: |
3.3 实战案例:初始化项目 Memory
假设你刚接手一个新项目,可以这样初始化 Memory:
1 | # 1. 记住项目基本信息 |
初始化完成后,Claude 在整个项目中都会遵守这些设置!
3.4 Memory 最佳实践
实践 1:分层管理 Memory
把 Memory 分成几个类别:
1 | # 全局偏好(一次设置,所有项目通用) |
实践 2:定期清理 Memory
1 | # 查看所有记忆 |
实践 3:和 CLAUDE.md 配合使用
- CLAUDE.md:放项目静态信息(技术栈、目录结构)
- Memory:放动态信息(当前任务、临时偏好)
3.5 Memory 避坑指南
坑 1:Memory 丢失
症状:之前记住的东西,Claude 忘了
原因:
- Memory 存储在本地,换了电脑就没了
- 长时间不用,Memory 可能被清理
解决:
1 | # 定期导出 Memory |
坑 2:Memory 太多太乱
症状:/memory view 输出一大堆,找不到有用的
原因:啥都往 Memory 里塞
解决:
- 只记真正常用的东西
- 定期清理过时记忆
- 使用分类前缀方便搜索
1 | # 好的做法 ✅ |
坑 3:Memory 和 CLAUDE.md 重复
症状:同样的内容两边都写了
建议:
- 项目信息 → CLAUDE.md
- 个人偏好 → Memory
三大功能联动使用
最后,咱们来看看这三大功能怎么配合使用:
场景:新项目开发第一天
1. 创建 CLAUDE.md
1 | # 在项目根目录创建 CLAUDE.md |
2. 初始化 Memory
1 | /memory remember "新项目:AI Chatbot" |
3. 使用 Skills 开发
1 | "帮我生成文档" |
Claude 会自动调用相应的 Skill!
4. 同步任务
1 | "更新 TODO.md 任务列表" |
👉 下一篇预告:03-Spec Kit 规范驱动开发:从零到一完整项目实战
📚 参考来源
本文内容基于以下官方文档和社区资源整理:
官方文档
- Claude Code 官方文档 - Skills 系统
- Claude Code 官方文档 - CLAUDE.md 项目配置
- Claude Code 官方文档 - Memory 功能
- Claude Code 官方文档 - 内置 Skills