Web-Based Training · 7-Day Sprint

Claude Code 精通训练

已有基础 → 系统掌握。每天1小时,理论 + 动手 + 测验。覆盖上下文工程、Subagents、Hooks、Skills、MCP。

0 / 7 天完成
DAY 1 / 7

上下文工程

Context Engineering — Claude Code 性能的头号杠杆
⏱ 约 60 分钟 · 难度 ★★★☆
📖 核心理论

Context Rot(上下文腐化)

Transformer 架构对 n 个 token 产生 n² 个注意力关系。上下文越长,注意力被稀释,模型召回精度持续下降。这不是"突然崩掉",而是渐进退化——就像人读了 10 万字后开始走神。

Context ≠ 免费资源

每加载一个 token 都在消耗"注意力预算"。系统提示词、工具定义、MCP 配置、消息历史——全部占用。200K 窗口听起来很大,但 有效工作区远小于标称值

🎛 交互演示:Context Pressure

点击按钮模拟对话中 token 累积,观察不同压力等级的行为变化:

安全注意危险Critical
0% — 工作区清爽
💡 实操要点

Context Pressure 行动表

0-50% 正常工作,自由对话

50-70% 开始注意,避免加载大文件

70-85% 精度下降,执行 /compact

85-90% 幻觉增加,必须 compact 或 handoff

90%+ 不可靠输出,执行 /clear 重新开始

Just-in-Time 检索

不要把整个文件 @mention 进上下文。让 Claude Code 用 grep / glob / head / tail 按需检索。这就像人类用搜索引擎而不是背诵百科全书。

❌ 浪费上下文
@src/index.tsx @src/utils.ts @src/api.ts @src/config.ts ↑ 4个文件全量加载,可能消耗 20K+ tokens
✅ Just-in-Time
"先 grep 找到所有 API 调用点,只读相关函数" ↑ Claude 用工具按需检索,消耗 < 2K tokens

手动 Compact + Handoff 模式

关掉 auto-compact(它在 45K 处自动触发,打断你的节奏)。改用:

1. 手动 /compact 在自然停顿点压缩

2. 写 HANDOFF.md 传给下一个 session

🎥 推荐观看
精读

Effective Context Engineering for AI Agents — Anthropic 官方博客,Claude Code 团队写的上下文管理策略。这是本课所有理论的源头。

🔧 动手实验
1
关掉 auto-compact

在 Claude Code 中执行:

/config

找到 auto-compact 选项,关闭它。

2
观察 token 消耗

打开一个真实项目,工作 15 分钟后执行:

/cost

记录当前 context 使用量和 token 消耗。这是你的基线。

3
写你的第一个 HANDOFF.md

在项目根目录创建,包含三段:

# HANDOFF ## 已完成 - [列出已完成的工作] ## 未完成 - [下一步要做什么] ## 关键决策 - [做了哪些技术选择,为什么]
4
练习 Just-in-Time 检索

在 Claude Code 中不要用 @mention 加载文件,改为:

"grep 找到所有包含 'useState' 的文件, 然后只读取 hooks 相关的那个函数"
✅ 知识检测
DAY 2 / 7

CLAUDE.md 与项目记忆

让 Claude Code 记住你的项目,100+ session 后变成复利资产
⏱ 约 55 分钟 · 难度 ★★☆☆
📖 核心理论

三层记忆体系

第一层CLAUDE.md(项目根目录):每个 session 自动加载。技术栈、规范、已知坑。

第二层~/.claude/rules/(全局):跨项目的个人偏好。

第三层 — Session 内记忆:对话中的上下文,session 结束即消失。

「正确高度」原则

写 CLAUDE.md 像调焦距——太高(太具体)= 脆弱的 if-else 规则;太低(太泛化)= 无信号噪音。最佳点:具体到能指导行为,灵活到覆盖边界情况

⚖️ 对比:坏的 vs 好的 CLAUDE.md
❌ 太脆太泛
# Project Rules
Be careful with the code.
Use good variable names.
Always test your changes.
Don't break anything.
If the file is a .py file,
use Python 3.10 syntax.
If it's a .ts file, use
strict typing.
Remember to be helpful.
✅ 正确高度
# VoiceInput — WPF .NET 10

## Stack
C# 12, .NET 10, WPF
Paraformer ASR (streaming)

## Commands
- Build: dotnet build
- Test: dotnet test
- Run: dotnet run

## Rules
- UI changes need screenshot
  verification
- MVVM: ViewModel 先写
- Commit: conventional commits
💡 结构化模板
CLAUDE.md 推荐结构(< 100行)
# [项目名] — [一句话描述] ## 技术栈 [语言/框架/关键依赖] ## 常用命令 - 构建: [cmd] - 测试: [cmd] - 运行: [cmd] ## 编码规范 [3-5 条最重要的规则] ## 已知坑 [踩过的坑,避免重复]
渐进式构建原则

不要一开始就写满。从 10 行开始,只在 Claude Code 重复犯错时才加规则。每条规则应该对应一个真实的错误案例。

🎥 推荐观看
官方文档

Claude Code Best Practices — 官方推荐的 CLAUDE.md 写法和项目配置最佳实践。

视频

AI Prompt Engineering Deep Dive — Anthropic 内部专家 1 小时对谈,含系统提示词设计哲学(可直接跳到 12:17 "Refining prompts" 段)。

🔧 动手实验
1
为你的主力项目写 CLAUDE.md

选择一个你正在用的项目,在根目录创建 CLAUDE.md。

# 在你的项目根目录 touch CLAUDE.md
2
填充四个核心区块

按上面的模板,填写:技术栈、常用命令、编码规范、已知坑。控制在 50 行以内。

3
验证生效

新开一个 Claude Code session,问它:

"这个项目用什么技术栈?怎么跑测试?"

如果它能正确回答,说明 CLAUDE.md 被成功读取了。

4
添加全局规则

把跨项目的个人偏好放到全局:

mkdir -p ~/.claude/rules echo "永远使用中文回复" > ~/.claude/rules/language.md
✅ 知识检测
DAY 3 / 7

Subagents — 上下文隔离

让 Claude Code 分身术:隔离上下文、并行执行、互不污染
⏱ 约 60 分钟 · 难度 ★★★☆
📖 核心理论

什么是 Subagent

Subagent 是 Claude Code 的「分身」。它获得一个全新的 messages[]——没有主对话的历史包袱,只有你给它的任务描述。完成后返回摘要,不污染主上下文

为什么这很重要

想象你在写一个功能,同时需要代码审查。如果不分身,审查的 5000 token 会挤占你的工作上下文。用 subagent,审查在隔离环境完成,只返回结论(~500 token)。

🔄 架构图
主 Agent Subagent A 写实现代码 Subagent B 写单元测试 Subagent C 代码审查 ↑ 各自独立上下文,互不污染 ↑ 返回摘要(~500 token/个) 主 Agent 合并结果
💡 何时用 / 何时不用
✅ 用 Subagent
- 代码审查(独立判断)
- 写测试(可验证)
- 技术调研(大量搜索)
- 文档生成(格式化任务)
- 并行独立子任务
❌ 不用 Subagent
- 连续修改同一文件
(需要前序上下文)
- 快速小修改
(启动开销 > 收益)
- 需要深度对话的
设计讨论
关键指令

触发 subagent 最简单的方式——直接对 Claude Code 说:

"use a subagent to review this code for edge cases"
🔧 动手实验
1
用 Subagent 做代码审查

在一个真实项目中,让 Claude Code 审查你的代码:

"use a subagent to review src/auth.ts for security vulnerabilities and edge cases"

观察:subagent 完成后,主上下文只多了摘要,不是完整审查过程。

2
对比上下文消耗

做同一任务两次:

① 内联执行(正常对话)→ 记录 /cost

② Subagent 执行 → 记录 /cost

对比两者 context 消耗差异。

3
并行任务拆分

尝试让 Claude Code 并行处理:

"同时做两件事: 1. Subagent A: 给 utils.py 写单元测试 2. Subagent B: 检查 API 错误处理 两件事互不依赖"
✅ 知识检测
DAY 4 / 7

Hooks — 零成本自动化

在工具执行前后插入逻辑,不需要 LLM 参与,零 token 消耗
⏱ 约 55 分钟 · 难度 ★★★★
📖 核心理论

Hooks 是什么

Hooks 是 Claude Code 工具生命周期的扩展点。在工具执行前/后插入确定性逻辑——不经过 LLM,纯执行,零 token 成本

两个钩子点

PreToolUse — 工具执行触发。用途:安全校验、参数预处理、危险命令拦截。

PostToolUse — 工具执行触发。用途:自动格式化、自动 lint、日志记录、自动测试。

🔄 Hook 执行流程
Claude 决定调用工具 ⚡ PreToolUse Hook 安全校验 · 参数预处理 · 危险命令拦截 通过 ↓ 拦截 → ✋停止 工具执行(Write / Bash / Edit) ⚡ PostToolUse Hook 自动格式化 · lint · 日志记录 · 自动测试 结果返回 Claude 零 token 消耗 · 纯执行 循环直到任务完成
💡 配置示例
.claude/settings.json — PostToolUse 自动格式化
{ "hooks": { "PostToolUse": [{ "matcher": "Write|Edit", "command": "prettier --write $FILE" }] } }
PreToolUse 危险命令拦截
{ "hooks": { "PreToolUse": [{ "matcher": "Bash", "command": "echo $COMMAND | grep -q 'rm -rf' && exit 1 || exit 0" }] } }
关键原则

Hooks 只做确定性逻辑。如果需要"理解"或"判断",那不是 Hook 的工作——那是 Skill 或 Command 的领域。

🎥 参考资源
模板库

Ultimate Guide: examples/hooks/ — 37 个生产级 Hook 模板(bash + PowerShell),含自动格式化、安全拦截、日志等。

🔧 动手实验
1
创建 hooks 配置文件

在你的项目中创建或编辑设置文件:

# 如果还没有 .claude 目录 mkdir -p .claude touch .claude/settings.json
2
写一个 PostToolUse 自动格式化 Hook

根据你的技术栈选择工具:

// Python 项目 → ruff { "hooks": { "PostToolUse": [{ "matcher": "Write|Edit", "command": "ruff format $FILE && ruff check --fix $FILE" }] } } // JS/TS 项目 → prettier { "hooks": { "PostToolUse": [{ "matcher": "Write|Edit", "command": "npx prettier --write $FILE" }] } }
3
测试 Hook 是否生效

让 Claude Code 修改一个文件,观察是否自动格式化:

"在 main.py 末尾加一个空函数 test_placeholder"

检查文件是否被自动格式化了。

4
写一个安全守卫 Hook
{ "hooks": { "PreToolUse": [{ "matcher": "Bash", "command": "bash -c 'echo \"$COMMAND\" | grep -qE \"rm -rf|DROP TABLE|git push --force\" && { echo \"BLOCKED\"; exit 1; } || exit 0'" }] } }
✅ 知识检测
DAY 5 / 7

Custom Commands — 工作流编排

把重复流程封装成一个斜杠命令,一步到位
⏱ 约 55 分钟 · 难度 ★★★☆
📖 核心理论

什么是 Custom Command

.claude/commands/ 目录下放一个 .md 文件,就变成了一个 /命令名 斜杠命令。里面写的是给 Claude 的结构化指令

命令内可用的变量

$ARGUMENTS — 用户在命令后输入的参数

$FILE — 当前打开的文件路径

编排模式:三层调用链

Command(入口)→ Agent(执行)→ Skill(知识)。命令定义"做什么",Agent 定义"怎么做",Skill 提供"领域知识"。

💡 实战命令模板
.claude/commands/review.md — 代码审查命令
对当前改动执行结构化代码审查: 1. 运行 git diff 查看所有未提交改动 2. 检查以下维度: - 安全漏洞(SQL注入、XSS、硬编码密钥) - 性能问题(N+1查询、不必要的循环) - 代码风格(与项目规范一致性) 3. 输出格式: ## 🔴 必须修复 ## 🟡 建议改进 ## 🟢 做得好的 参数: $ARGUMENTS
.claude/commands/ship.md — 发布命令
执行发布流程: 1. 运行全量测试,确保通过 2. 检查是否有未提交的改动 3. 用 conventional commits 格式提交 4. 推送到远程 5. 输出发布摘要 如果任何步骤失败,停止并报告原因。
🌐 社区工作流生态
Top 工作流仓库

Superpowers(23万★)— brainstorm → plan → TDD → review → verify 全链路

gstack(11万★)— plan-review → spec → ship → canary 发布流水线

不需要从零写,可以安装现成的:在 Claude Code 中执行 /plugin marketplace add anthropics/skills

🔧 动手实验
1
创建 commands 目录
mkdir -p .claude/commands
2
写 /review 命令

把上面的 review.md 模板复制进去:

cat > .claude/commands/review.md << 'EOF' 对当前改动执行结构化代码审查: 1. 运行 git diff 查看所有未提交改动 2. 检查安全、性能、风格 3. 输出红/黄/绿三级报告 EOF
3
测试命令

在 Claude Code 中输入:

/review

观察它是否按定义的流程执行。

4
写一个带参数的命令
# .claude/commands/test.md 为 $ARGUMENTS 编写单元测试: - 覆盖正常路径和边界情况 - 使用项目现有的测试框架 - 先写测试再运行确认通过

使用:/test src/auth.py

✅ 知识检测
DAY 6 / 7

Agent Skills (SKILL.md)

按需加载的专业知识模块,遇到匹配场景自动触发
⏱ 约 60 分钟 · 难度 ★★★☆
📖 核心理论

Skill 是什么

Skill 是一个 SKILL.md 文件 + 可选的子目录(references/scripts)。Claude Code 遇到匹配场景时自动加载,用完即弃,不占常驻上下文。

触发机制

加载与否完全由 description 字段决定。Claude Code 扫描所有 skill 的 description,与当前任务匹配度高的自动加载。写好 description = 写好触发条件。

Skills vs CLAUDE.md vs Hooks

CLAUDE.md — 常驻加载,项目级通用规则

Skill — 按需加载,特定任务的专业知识

Hook — 确定性自动化,不需要 LLM 理解

Command — 手动触发的流程编排

💡 SKILL.md 解剖
一个完整 SKILL.md 的结构
--- name: python-testing description: > Python 单元测试最佳实践。 当用户需要写测试、运行测试、 或讨论测试覆盖率时触发。 --- # Python 测试规范 ## 框架 - pytest(主框架) - pytest-asyncio(异步测试) ## 规则 1. 测试文件命名: test_*.py 2. 每个函数至少 3 个测试用例 3. 使用 fixture 共享 setup ## 示例 (代码示例...)
渐进式加载

主文件保持精简(< 200行)。详细参考放在 references/ 子目录,Claude Code 需要时自动读取。这控制了上下文消耗。

🔧 动手实验
1
创建你的第一个 Skill
mkdir -p .claude/skills/my-first-skill cat > .claude/skills/my-first-skill/SKILL.md << 'EOF' --- name: commit-format description: > Git 提交消息格式化。当用户需要 提交代码、写 commit message 时触发。 --- # Conventional Commits 规范 格式: type(scope): description type 可选: - feat: 新功能 - fix: 修复 bug - refactor: 重构 - docs: 文档 - test: 测试 - chore: 杂项 示例: feat(auth): 添加 JWT 刷新令牌 EOF
2
验证自动触发

在 Claude Code 中说:

"帮我提交当前的改动"

观察 Claude Code 是否自动使用了 conventional commits 格式。

3
安装官方 Skills 市场
/plugin marketplace add anthropics/skills

浏览可用 skills,安装一个你觉得有用的。

4
写一个带子目录的 Skill
.claude/skills/dax-patterns/ ├── SKILL.md # 精简主文件 └── references/ └── dax-cookbook.md # 详细参考

SKILL.md 里只写概要,references/ 里放详细内容。Claude Code 需要时会自动读 references。

✅ 知识检测
DAY 7 / 7

MCP 集成 & 生产实践

连接外部世界,整合全部知识,建立生产级工作流
⏱ 约 65 分钟 · 难度 ★★★★★
📖 核心理论

MCP 是什么

Model Context Protocol — 让 Claude Code 连接外部工具和数据的开放标准。装一个 MCP server,Claude Code 就多了一项能力(浏览器控制、数据库查询、API 调用等)。

三个核心原语

Tools(模型控制)— Claude 自主决定何时调用。如:数据库查询、API 请求。

Resources(应用控制)— 只读数据,由应用决定何时提供。如:配置文件。

Prompts(预定义)— 指令模板,用户选择触发。

两种传输协议

stdio — 本地进程通信。适合本地工具(文件系统、本地数据库)。

Streamable HTTP — 远程服务。适合云端 API、Web 服务。

🔄 MCP 架构
Claude Code MCP Client stdio stdio HTTP filesystem 文件读写 Playwright 浏览器自动化 GitHub API 远程服务 每个 MCP Server 提供:Tools(动作)+ Resources(只读数据)+ Prompts(模板)
⚠️ 安全须知

生产安全清单

Claude Code 生态已发现 28 个 CVE655 个恶意 Skills

5 分钟审计清单:

1. ☐ 所有 MCP server 来源可信?(只用官方或社区验证的)

2. ☐ Hooks 中的命令没有硬编码密钥?

3. ☐ CLAUDE.md 不含敏感信息?

4. ☐ Skills 来源已审查?

5. ☐ 权限模式设置正确?(不要全局 auto-approve)

💡 渐进式部署策略

Phase 1(第1-2周)— 基础:CLAUDE.md + 几个 Command

Phase 2(第3-4周)— 加 Hooks(自动格式化/安全守卫)

Phase 3(第5-6周)— 加 Subagents(多任务并行)

Phase 4(第7周+)— 加 MCP(外部工具集成)

关键原则

每个阶段在生产环境跑 至少 2 周再进下一阶段。不要一次性配齐所有功能。

🔧 动手实验
1
安装一个 MCP Server

推荐从 filesystem 开始(最安全、最实用):

# 在 Claude Code 中 /mcp add filesystem --command npx --args @anthropic/mcp-filesystem --args /path/to/allowed/dir

验证:让 Claude Code 列出指定目录的文件。

2
整合全部知识:写一个综合工作流

结合 Day 1-6 的所有知识:

# 项目结构 .claude/ ├── settings.json # Hooks (Day 4) ├── commands/ │ ├── review.md # Command (Day 5) │ └── ship.md ├── skills/ │ └── commit-format/ # Skill (Day 6) │ └── SKILL.md ├── agents/ # Subagent (Day 3) │ └── code-reviewer.md CLAUDE.md # 项目记忆 (Day 2) HANDOFF.md # 上下文交接 (Day 1)
3
执行安全审计

用 5 分钟审计清单检查你的 .claude/ 配置:

① 有没有硬编码的密钥?

② MCP server 都是可信来源吗?

③ 权限模式是 yolo(全局自动批准)吗?改回去。

4
完成最终挑战

用一个命令完成完整的开发循环:

/ship

这个命令应该:跑测试 → 代码审查(subagent)→ 格式化(hook)→ 提交(skill 格式化 commit)→ 推送。

如果全部跑通,恭喜——你已经建立了生产级 Claude Code 工作流。

🎓 毕业测验