20|毕业项目:组合能力完成一次可靠交付
按完整学习路线组合命令、记忆、Skills、Hooks、Subagents 与验证。
按完整学习路线组合命令、记忆、Skills、Hooks、Subagents 与验证。
毕业项目不是展示提示词有多长,而是证明你能把模糊目标变成可维护、可验证、可回滚的产品变化。评分看证据链,而不是聊天记录的热闹程度。
本课交付物
在练习项目增加一个中英切换的偏好页:先写验收,建立检查点,设计最小权限,实施双语状态,跑测试与构建,浏览器验证路径保持,最后输出发布与回滚报告。
💡 学习建议
✅ 建议做
- 先做测验,找到自己的起点
- 完成每个里程碑的实战练习
- 先从简单开始,再逐步增加复杂度
- 在进入下一个功能前先测试当前功能
- 记下哪些做法最适合你的工作流
- 学习新内容时回头复习基础概念
- 借助 checkpoints 安全试验
- 把经验分享给团队
❌ 不建议做
- 不要跳过前置条件检查
- 不要试图一次学完所有内容
- 不要照搬配置却不理解它们
- 不要忘记测试
- 不要急着跳过里程碑
- 不要忽视文档
- 不要把自己隔离起来
🎓 学习风格
视觉型学习者
- 阅读每个 README 里的 Mermaid 图
- 观察命令执行流程
- 自己画工作流图
- 使用上面的可视化路径图
动手型学习者
- 完成每个实战练习
- 试试不同变体
- 先搞坏再修复(记得用 checkpoints)
- 创建自己的示例
阅读型学习者
- 认真阅读每个 README
- 研究代码示例
- 看对比表
- 阅读资源区链接的博客文章
社交型学习者
- 组织结对编程
- 给队友讲解概念
- 参与 Claude Code 社区讨论
- 分享你的自定义配置
📈 进度追踪
用这些清单按水平追踪进度。你可以随时运行 /self-assessment 更新自己的技能画像,也可以在每个教程后运行 /lesson-quiz [lesson] 验证理解。
🟢 Level 1:Beginner
- [ ] 完成 01-slash-commands
- [ ] 完成 02-memory
- [ ] 创建第一个自定义 slash command
- [ ] 设置项目 memory
- [ ] 达到里程碑 1A
- [ ] 完成 08-checkpoints
- [ ] 完成 10-cli 基础部分
- [ ] 创建并回退到一个 checkpoint
- [ ] 使用交互模式和 print mode
- [ ] 达到里程碑 1B
🔵 Level 2:Intermediate
- [ ] 完成 03-skills
- [ ] 完成 06-hooks
- [ ] 安装第一个 skill
- [ ] 设置 PreToolUse hook
- [ ] 达到里程碑 2A
- [ ] 完成 05-mcp
- [ ] 完成 04-subagents
- [ ] 连接 GitHub MCP
- [ ] 创建自定义 subagent
- [ ] 把多个集成组合进一个工作流
- [ ] 达到里程碑 2B
🔴 Level 3:Advanced
- [ ] 完成 09-advanced-features
- [ ] 成功使用 planning mode
- [ ] 配置权限模式(包含 auto 在内的 6 种)
- [ ] 使用带安全分类器的自动模式(Auto mode)
- [ ] 使用 extended thinking 切换
- [ ] 探索通道(Channels)和语音输入(Voice Dictation)
- [ ] 达到里程碑 3A
- [ ] 完成 07-plugins
- [ ] 完成 10-cli 的高级用法
- [ ] 配置 print mode(
claude -p)用于 CI/CD - [ ] 为自动化创建 JSON 输出
- [ ] 把 Claude 集成到 CI/CD 流水线
- [ ] 创建团队 plugin
- [ ] 达到里程碑 3B
🆘 常见学习难题
难题 1:“概念一下子太多了”
解决:一次只关注一个里程碑。完成所有练习后再往下走。
难题 2:“不知道什么时候该用哪个功能”
解决:回到主 README 里的 Use Case Matrix。
难题 3:“配置没有生效”
解决:检查主 README 里的 Troubleshooting 部分,并确认文件路径。
难题 4:“概念之间好像重叠”
解决:查看主 README 里的 Feature Comparison 表,理解差异。
难题 5:“太多东西记不住”
解决:自己做一份速查表;同时用 checkpoints 安全试验。
难题 6:“我经验很足,但不知道从哪里开始”
解决:先做上面的 自我评估测验,直接跳到你的水平,并用前置条件检查找出空缺。
🎯 学完之后做什么?
完成所有里程碑后,可以继续做这些事:
- 写团队文档 - 记录团队的 Claude Code 配置
- 构建自定义 plugins - 把团队工作流打包起来
- 探索 Remote Control - 通过外部工具以编程方式控制 Claude Code 会话
- 试试 Web Sessions - 用浏览器界面远程开发
- 使用 Desktop App - 通过原生桌面应用访问 Claude Code
- 使用自动模式(Auto Mode) - 让 Claude 在后台安全分类器保护下自主工作
- 启用 Auto Memory - 让 Claude 随时间自动学习你的偏好
- 设置 Agent Teams - 让多个 agent 协同处理复杂、多维任务
- 使用通道(Channels) - 用结构化的多会话工作流组织工作
- 试试语音输入(Voice Dictation) - 用语音无障碍地与 Claude Code 交互
- 使用 Scheduled Tasks - 借助
/loop和 cron 工具自动化周期性检查 - 贡献示例 - 把经验分享给社区
- 带新人 - 帮助队友快速上手
- 持续优化工作流 - 根据使用情况不断改进
- 保持更新 - 跟进 Claude Code 发布和新功能
📚 其他资源
官方文档
博客文章
- Discovering Claude Code Slash Commands
社区
💬 反馈与支持
- 发现问题? 在仓库里创建 issue
- 有建议? 提交 pull request
- 需要帮助? 查看文档,或者向社区提问
最后更新:2026 年 3 月
维护者:Claude How-To Contributors
许可证:仅供学习与参考,免费使用和改编
← 返回主 README
Code Preferences
Error Handling
我偏好显式的 try-catch 和清晰的错误信息。
避免泛化错误,调试时始终记录日志。
示例 4:会话中更新记忆
User: 记住:所有新组件都优先使用 React hooks,不用 class components。
Claude: 我会把它加入记忆。你希望写入哪个记忆文件?
1. 项目记忆(./CLAUDE.md)
2. 个人记忆(~/.claude/CLAUDE.md)
User: 项目记忆
Claude: ✅ 记忆已保存!
Claude Web/Desktop 中的记忆综合
记忆综合时间线
graph LR
A["第 1 天:用户对话"] -->|24 小时| B["第 2 天:记忆综合"]
B -->|自动| C["记忆更新并摘要化"]
C -->|加载到| D["第 2-N 天:新对话"]
Memory 功能对比
| 功能 | Claude Web/Desktop | Claude Code (CLAUDE.md) |
|---|---|---|
| 自动综合 | ✅ 每 24 小时 | ❌ 手动 |
| 跨项目 | ✅ 共享 | ❌ 项目级 |
| 团队访问 | ✅ 共享项目 | ✅ Git 跟踪 |
| 可搜索 | ✅ 内建 | ✅ 通过 /memory |
| 可编辑 | ✅ 聊天中 | ✅ 直接改文件 |
| 导入/导出 | ✅ 支持 | ✅ 复制粘贴 |
| 持久性 | ✅ 24h+ | ✅ 长期 |
MCP Protocol
概览
MCP(Model Context Protocol)是 Claude 访问外部工具、API 与实时数据源的标准方式。与 Memory 不同,MCP 提供的是对持续变化数据的实时访问。
MCP 架构
graph TB
A["Claude"]
B["MCP Server"]
C["外部服务"]
A -->|请求| B
B -->|查询| C
C -->|数据| B
B -->|响应| A
MCP 生态
graph TB
A["Claude"] -->|MCP| B["Filesystem<br/>MCP Server"]
A -->|MCP| C["GitHub<br/>MCP Server"]
A -->|MCP| D["Database<br/>MCP Server"]
A -->|MCP| E["Slack<br/>MCP Server"]
A -->|MCP| F["Google Docs<br/>MCP Server"]
MCP 设置流程
sequenceDiagram
participant User
participant Claude as Claude Code
participant Config as 配置文件
participant Service as 外部服务
User->>Claude: 输入 /mcp
Claude->>Claude: 列出可用 MCP server
Claude->>User: 展示选项
User->>Claude: 选择 GitHub MCP
Claude->>Config: 更新配置
Config->>Claude: 激活连接
Claude->>Service: 测试连接
Service-->>Claude: 认证成功
Claude->>User: ✅ MCP 已连接
可用 MCP Server 表
| MCP Server | 用途 | 常见工具 | 认证 | 实时 |
|---|---|---|---|---|
| Filesystem | 文件操作 | read, write, delete | 操作系统权限 | ✅ 是 |
| GitHub | 仓库管理 | list_prs, create_issue, push | OAuth | ✅ 是 |
| Slack | 团队沟通 | send_message, list_channels | Token | ✅ 是 |
| Database | SQL 查询 | query, insert, update | 凭据 | ✅ 是 |
| Google Docs | 文档访问 | read, write, share | OAuth | ✅ 是 |
| Asana | 项目管理 | create_task, update_status | API Key | ✅ 是 |
| Stripe | 支付数据 | list_charges, create_invoice | API Key | ✅ 是 |
| Memory | 持久记忆 | store, retrieve, delete | Local | ❌ 否 |
实践示例
示例 1:GitHub MCP 配置
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}
示例 2:Database MCP 配置
{
"mcpServers": {
"database": {
"command": "npx",
"args": ["@modelcontextprotocol/server-database"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost/mydb"
}
}
}
}
示例 3:多 MCP 工作流
# 使用多个 MCP 的日报工作流
## 设置
1. GitHub MCP - 获取 PR 指标
2. Database MCP - 查询销售数据
3. Slack MCP - 发送报告
4. Filesystem MCP - 保存报告
示例 4:Filesystem MCP 操作
| 操作 | 命令 | 作用 |
|---|---|---|
| 列出文件 | ls ~/projects |
查看目录内容 |
| 读取文件 | cat src/main.ts |
读取文件内容 |
| 写入文件 | create docs/api.md |
创建新文件 |
| 编辑文件 | edit src/app.ts |
修改文件 |
| 搜索 | grep "async function" |
在文件中搜索 |
| 删除 | rm old-file.js |
删除文件 |
MCP vs Memory:决策矩阵
graph TD
A["需要外部数据吗?"]
A -->|否| B["使用 Memory"]
A -->|是| C["数据是否频繁变化?"]
C -->|否/很少| B
C -->|是/经常| D["使用 MCP"]
请求 / 响应模式
sequenceDiagram
participant App as Claude
participant MCP as MCP Server
participant DB as Database
App->>MCP: Request: "SELECT * FROM users WHERE id=1"
MCP->>DB: Execute query
DB-->>MCP: Result set
MCP-->>App: Return parsed data
Agent Skills
概览
Agent Skills 是可复用、由模型自动调用的能力包。它们以目录形式存在,通常包含说明、脚本和资源文件。Claude 会在合适时自动发现并使用它们。
Skill 架构
graph TB
A["Skill 目录"]
B["SKILL.md"]
C["YAML 元数据"]
D["说明"]
E["脚本"]
F["模板"]
A --> B
B --> C
B --> D
E --> A
F --> A
Skill 加载流程
sequenceDiagram
participant User
participant Claude as Claude
participant System as System
participant Skill as Skill
User->>Claude: "Create Excel report"
Claude->>System: Scan available skills
System->>System: Load skill metadata
Claude->>Claude: Match user request to skills
Claude->>Skill: Load xlsx skill SKILL.md
Skill-->>Claude: Return instructions + tools
Claude->>Claude: Execute skill
Claude->>User: Generate Excel file
Skill 类型与位置
| 类型 | 位置 | 作用域 | 是否共享 | 同步方式 | 最适合 |
|---|---|---|---|---|---|
| 内置 | Built-in | 全局 | 全部用户 | 自动 | 文档生成 |
| 个人 | ~/.claude/skills/ |
个人 | 否 | 手动 | 个人自动化 |
| 项目 | .claude/skills/ |
团队 | 是 | Git | 团队标准 |
| 插件 | 通过 plugin 安装 | 视情况而定 | 视情况而定 | 自动 | 集成能力 |
预构建 Skills
Claude Code 现在内置了 5 个 bundled skills,可直接使用:
| Skill | 命令 | 用途 |
|---|---|---|
| Simplify | /simplify |
简化复杂代码或解释 |
| Batch | /batch |
批量对多个文件或对象执行操作 |
| Debug | /debug |
系统化调试并做根因分析 |
| Loop | /loop |
按定时计划重复执行任务 |
| Claude API | /claude-api |
直接与 Anthropic API 交互 |
实践示例
示例 1:自定义代码审查 Skill
目录结构:
~/.claude/skills/code-review/
├── SKILL.md
├── templates/
│ ├── review-checklist.md
│ └── finding-template.md
└── scripts/
├── analyze-metrics.py
└── compare-complexity.py
文件: ~/.claude/skills/code-review/SKILL.md
---
name: Code Review Specialist
description: Comprehensive code review with security, performance, and quality analysis
version: "1.0.0"
tags:
- code-review
- quality
- security
when_to_use: 当用户希望审查代码、分析代码质量或评估 pull request 时
effort: high
shell: bash
---
# 代码审查 Skill
这个 skill 提供全面的代码审查能力,重点关注:
1. **安全分析**
2. **性能审查**
3. **代码质量**
4. **可维护性**
相关 Python 脚本和模板可直接沿用原始实现;脚本逻辑本身无需翻译即可使用。
示例 2:Brand Voice Skill
这个 skill 用于统一品牌语气、用词风格和外部沟通表达。它通常包含品牌使命、价值观、推荐用词、避免用词,以及邮件 / 社交媒体等模板。
示例 3:Documentation Generator Skill
这个 skill 用于从源码生成 API 文档,常见产物包括:
- OpenAPI/Swagger 规范
- API 端点文档
- SDK 使用示例
- 集成指南
- 错误码说明
- 认证说明
Skill 发现与调用
graph TD
A["用户请求"] --> B["Claude 分析"]
B -->|扫描| C["可用 Skills"]
C -->|元数据匹配| D["Skill 描述是否匹配?"]
D -->|是| E["加载 SKILL.md"]
D -->|否| F["尝试下一个 Skill"]
E --> H["提取指令"]
H --> I["执行 Skill"]
I --> J["返回结果"]
Skill 与其他功能的区别
graph TB
A["扩展 Claude"]
B["Slash Commands"]
C["Subagents"]
D["Memory"]
E["MCP"]
F["Skills"]
A --> B
A --> C
A --> D
A --> E
A --> F
Claude Code Plugins
概览
Claude Code Plugins 是把多种能力打包在一起的一体化扩展机制,通常包含 slash commands、subagents、MCP servers、hooks 以及相关配置。它们可以通过一条命令完成安装。
架构
graph TB
A["Plugin"]
B["Slash Commands"]
C["Subagents"]
D["MCP Servers"]
E["Hooks"]
F["Configuration"]
A -->|打包| B
A -->|打包| C
A -->|打包| D
A -->|打包| E
A -->|打包| F
Plugin 加载流程
sequenceDiagram
participant User
participant Claude as Claude Code
participant Plugin as Plugin Marketplace
participant Install as Installation
participant SlashCmds as Slash Commands
participant Subagents
participant MCPServers as MCP Servers
participant Hooks
User->>Claude: /plugin install pr-review
Claude->>Plugin: 下载插件清单
Plugin-->>Claude: 返回插件定义
Claude->>Install: 解包组件
Install->>SlashCmds: 配置
Install->>Subagents: 配置
Install->>MCPServers: 配置
Install->>Hooks: 配置
Plugin 类型与分发
| 类型 | 作用域 | 是否共享 | 权威来源 | 示例 |
|---|---|---|---|---|
| Official | 全局 | 全部用户 | Anthropic | PR Review、Security Guidance |
| Community | 公开 | 全部用户 | 社区 | DevOps、Data Science |
| Organization | 内部 | 团队成员 | 公司 | 内部标准、工具 |
| Personal | 个人 | 单用户 | 开发者 | 自定义工作流 |
Plugin 定义结构
---
name: plugin-name
version: "1.0.0"
description: "What this plugin does"
author: "Your Name"
license: MIT
---
Plugin 结构
my-plugin/
├── .claude-plugin/
│ └── plugin.json
├── commands/
├── agents/
├── skills/
├── hooks/
├── .mcp.json
├── templates/
├── scripts/
├── docs/
└── tests/
实践示例
示例 1:PR Review Plugin
{
"name": "pr-review",
"version": "1.0.0",
"description": "Complete PR review workflow with security, testing, and docs"
}
示例 2:DevOps Plugin
devops-automation/
├── commands/
├── agents/
├── mcp/
├── hooks/
└── scripts/
示例 3:Documentation Plugin
documentation/
├── commands/
├── agents/
├── mcp/
└── templates/
Plugin Marketplace
graph TB
A["Plugin Marketplace"]
B["Official"]
C["Community"]
D["Enterprise"]
Plugin 安装与生命周期
graph LR
A["发现"] --> B["浏览 Marketplace"]
B --> C["查看插件页"]
C --> D["查看组件"]
D --> E["/plugin install"]
E --> F["配置"]
F --> G["启用"]
Plugin 功能对比
| 功能 | Slash Command | Skill | Subagent | Plugin |
|---|---|---|---|---|
| 安装 | 手动复制 | 手动复制 | 手动配置 | 一条命令 |
| 搭建时间 | 5 分钟 | 10 分钟 | 15 分钟 | 2 分钟 |
| 打包能力 | 单文件 | 单文件 | 单文件 | 多组件 |
| 团队共享 | 复制文件 | 复制文件 | 复制文件 | 通过安装 ID |
| 更新方式 | 手动 | 手动 | 手动 | 市场可用 / 更易分发 |
何时创建 Plugin
- 当你需要一次分发多个命令、subagents、MCP servers 或 hooks 时
- 当这是团队级工作流,需要统一安装和复制时
- 当你希望自动化配置过程并减少手工步骤时
发布 Plugin
- 创建完整的插件结构
- 编写
.claude-plugin/plugin.json - 编写
README.md - 本地测试
- 提交到 marketplace
- 审核通过
- 发布
Plugin vs 手动配置
手动配置:
- 一个个复制 slash commands
- 单独创建 subagents
- 分别配置 MCP
- 手动设置 hooks
使用 Plugin:
/plugin install pr-review
# ✅ 一次安装完成
# ✅ 即刻可用
# ✅ 团队可复现
Comparison & Integration
功能对比矩阵
| 功能 | 调用方式 | 持久性 | 作用域 | 适用场景 |
|---|---|---|---|---|
| Slash Commands | 手动 (/cmd) |
仅当前会话 | 单个命令 | 快捷操作 |
| Subagents | 自动委派 | 隔离上下文 | 专门任务 | 任务拆分 |
| Memory | 自动加载 | 跨会话 | 用户 / 团队上下文 | 长期记忆 |
| MCP Protocol | 自动查询 | 实时外部数据 | 动态访问 | 外部数据接入 |
| Skills | 自动触发 | 文件系统级 | 可复用专长 | 自动化工作流 |
| Plugins | 一键安装 | 全套组合 | 团队 / 市场分发 | 完整方案打包 |
交互时间线
graph LR
A["Session Start"] -->|Load| B["Memory (CLAUDE.md)"]
B -->|Discover| C["Available Skills"]
C -->|Register| D["Slash Commands"]
D -->|Connect| E["MCP Servers"]
E -->|Ready| F["User Interaction"]
集成示例:客户支持自动化
架构
graph TB
User["客户邮件"] -->|进入| Router["支持路由器"]
Router -->|分析| Memory["Memory<br/>客户历史"]
Router -->|查询| MCP1["MCP: 客户数据库"]
Router -->|检查| MCP2["MCP: Slack"]
Router -->|复杂问题| Sub1["Subagent: 技术支持"]
Router -->|简单问题| Sub2["Subagent: 计费支持"]
请求流
1. 用户发来报错邮件
2. 读取记忆和历史上下文
3. 通过多个 MCP 查询系统状态
4. 自动识别适合的 Skill
5. 委派给对应 Subagent
6. Subagent 处理问题
7. Skill 负责按统一语气生成回复
8. MCP 将结果同步到外部系统
9. 返回给客户
完整功能编排
sequenceDiagram
participant User
participant Claude as Claude Code
participant Memory as Memory
participant MCP as MCP Servers
participant Skills as Skills
participant SubAgent as Subagents
User->>Claude: "Build auth system"
Claude->>Memory: 加载项目标准
Claude->>MCP: 查询相似实现
Claude->>Skills: 检测匹配 Skill
Claude->>SubAgent: 委派实现
何时使用哪种功能
graph TD
A["新任务"] --> B{任务类型?}
B -->|重复工作流| C["Slash Command"]
B -->|需要实时数据| D["MCP Protocol"]
B -->|希望下次记住| E["Memory"]
B -->|需要专业子任务| F["Subagent"]
B -->|领域型自动化| G["Skill"]
选择决策树
graph TD
Start["需要扩展 Claude 吗?"]
Start -->|快速重复任务| A{"手动还是自动?"}
A -->|手动| B["Slash Command"]
A -->|自动| C["Skill"]
Start -->|需要外部数据| D{"是否实时?"}
D -->|是| E["MCP Protocol"]
D -->|否| F["Memory"]
Start -->|复杂项目| G{"是否多角色协作?"}
G -->|是| H["Subagents"]
Summary Table
| 维度 | Slash Commands | Subagents | Memory | MCP | Skills | Plugins |
|---|---|---|---|---|---|---|
| 搭建难度 | 简单 | 中等 | 简单 | 中等 | 中等 | 简单 |
| 学习曲线 | 低 | 中 | 低 | 中 | 中 | 低 |
| 团队价值 | 高 | 高 | 中 | 高 | 高 | 很高 |
| 自动化程度 | 低 | 高 | 中 | 高 | 高 | 很高 |
| 上下文管理 | 单会话 | 隔离 | 持久 | 实时 | 持久 | 全部整合 |
| 可扩展性 | 好 | 极佳 | 好 | 极佳 | 极佳 | 极佳 |
| 共享性 | 一般 | 一般 | 好 | 好 | 好 | 极佳 |
| 安装方式 | 手动复制 | 手动配置 | N/A | 手动配置 | 手动复制 | 一条命令 |
Quick Start Guide
第 1 周:先从简单的开始
- 为常见任务做 2-3 个 slash commands
- 在设置里开启 Memory
- 在
CLAUDE.md里写明团队标准
第 2 周:接入实时数据
- 先配置 1 个 MCP(GitHub 或 Database)
- 通过
/mcp配置 - 在工作流中查询实时数据
第 3 周:分发工作
- 创建第一个针对角色的 Subagent
- 使用
/agents - 用简单任务测试委派
第 4 周:全面自动化
- 创建第一个 Skill
- 使用市场里的 Skill 或自建
- 组合多个功能做完整工作流
持续优化
- 每月回顾并更新 Memory
- 当重复模式出现时新增 Skill
- 优化 MCP 查询
- 持续打磨 Subagent 提示词
Hooks
概览
Hooks 是事件驱动的 shell 命令,会在 Claude Code 的特定事件发生时自动执行,可用于自动化、校验、通知和自定义工作流。
Hook 事件
Claude Code 支持 25 个 hook 事件,分布在四类钩子中:
| Hook 事件 | 触发时机 | 常见用途 |
|---|---|---|
| SessionStart | 会话开始 / 恢复 / 清空 / compact | 环境初始化 |
| InstructionsLoaded | 加载 CLAUDE.md 或 rules |
校验、增强 |
| UserPromptSubmit | 用户提交提示词 | 输入校验 |
| PreToolUse | 工具执行前 | 审批、校验、日志 |
| PermissionRequest | 弹出权限请求时 | 自动批准 / 拒绝 |
| PostToolUse | 工具执行成功后 | 自动格式化、通知、清理 |
| PostToolUseFailure | 工具失败后 | 错误处理 |
| Notification | 通知发送时 | 外部联动 |
| SubagentStart | 启动 subagent 时 | 注入上下文 |
| SubagentStop | subagent 结束时 | 结果校验 |
| Stop | Claude 响应完成时 | 总结、清理 |
| SessionEnd | 会话结束时 | 收尾处理 |
常见 Hook 配置
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "prettier --write $CLAUDE_FILE_PATH"
}
]
}
]
}
}
Hook 环境变量
$CLAUDE_FILE_PATH:当前被写入 / 编辑的文件$CLAUDE_TOOL_NAME:正在使用的工具名$CLAUDE_SESSION_ID:当前会话 ID$CLAUDE_PROJECT_DIR:项目目录路径
最佳实践
✅ 建议:
- 让 hooks 尽量快(最好 < 1 秒)
- 用 hooks 做校验和自动化
- 优雅处理错误
- 使用绝对路径
❌ 不建议:
- 让 hooks 进入交互式流程
- 把长时间任务放在 hooks 里
- 硬编码凭据
详见: 06-hooks/README.md
Checkpoints and Rewind
概览
Checkpoints 可以保存会话状态,并在需要时回退到之前的节点,从而安全地尝试不同方案。
核心概念
| 概念 | 说明 |
|---|---|
| Checkpoint | 对消息、文件和上下文的快照 |
| Rewind | 回到某个历史 checkpoint,并丢弃之后的变化 |
| Branch Point | 从同一个 checkpoint 分叉出多种方案 |
如何访问 Checkpoints
# 按两次 Esc 打开 checkpoint 浏览器
Esc + Esc
# 或使用 /rewind
/rewind
选择 checkpoint 后有五个选项:
- 恢复代码和对话
- 恢复对话
- 恢复代码
- 从这里开始总结
- 取消
常见场景
| 场景 | 工作流 |
|---|---|
| 探索不同方案 | 保存 → 尝试 A → 保存 → 回退 → 尝试 B |
| 安全重构 | 保存 → 重构 → 测试 → 失败就回退 |
| A/B 测试 | 保存 → 设计 A → 保存 → 回退 → 设计 B |
| 误操作恢复 | 发现问题 → 回退到最近稳定状态 |
配置
{
"autoCheckpoint": true
}
详见: 08-checkpoints/README.md
Advanced Features
Planning Mode
在编码前先生成详细实现计划。
/plan Implement user authentication system
优势:
- 清晰路线图
- 时间预估
- 风险评估
- 可审查、可修改
Extended Thinking
适合复杂问题的深度推理。
export MAX_THINKING_TOKENS=50000
claude -p "Should we use microservices or monolith?"
Background Tasks
后台执行长任务而不阻塞当前对话。
/task list
/task status bg-1234
/task show bg-1234
/task cancel bg-1234
Permission Modes
| 模式 | 说明 | 适用场景 |
|---|---|---|
default |
标准权限模式 | 通用开发 |
acceptEdits |
自动接受文件编辑 | 信任编辑工作流 |
plan |
只分析不改文件 | 审查、规划 |
auto |
自动批准安全操作 | 平衡自治与安全 |
dontAsk |
不再提示确认 | 资深用户 / 自动化 |
bypassPermissions |
完全不受限 | CI/CD、可信脚本 |
Headless Mode(Print Mode)
使用 -p 标志在无交互模式下运行 Claude Code,适合自动化和 CI/CD。
claude -p "Run all tests"
cat error.log | claude -p "explain this error"
claude -p --output-format json "list all functions in src/"
Scheduled Tasks
通过 /loop 按计划周期性运行任务:
/loop every 30m "Run tests and report failures"
/loop every 2h "Check for dependency updates"
/loop every 1d "Generate daily summary of code changes"
Chrome Integration
Claude Code 可以与 Chrome 浏览器集成,用于网页自动化,如导航页面、填写表单、截图和提取页面数据。
Session Management
/resume
/rename "Feature"
/fork
claude -c
claude -r "Feature"
Interactive Features
Ctrl + R:搜索命令历史Tab:自动补全↑ / ↓:浏览历史Ctrl + L:清屏
配置
{
"planning": {
"autoEnter": true,
"requireApproval": true
},
"backgroundTasks": {
"enabled": true,
"maxConcurrentTasks": 5
},
"permissions": {
"mode": "default"
}
}
详见: 09-advanced-features/README.md
Resources
最后更新:2026 年 3 月
适用于 Claude Haiku 4.5、Sonnet 4.6、Opus 4.6
现已覆盖:Hooks、Checkpoints、Planning Mode、Extended Thinking、Background Tasks、Permission Modes、Headless Mode、Session Management、Auto Memory、Agent Teams、Scheduled Tasks、Chrome Integration、Bundled Skills 等概念。
本站实战工作台
毕业项目:不是演示,而是一次真实交付
为练习 Nuxt 应用增加语言偏好页:中文与英文切换,Cookie 持久化,SSR 首屏一致,切换保持当前路由与查询。项目规模不大,但必须走完需求、调查、计划、权限、实现、验证、审查和发布演练。
第一阶段:写可执行验收
明确 /zh/preferences 与 /en/preferences;控件可键盘操作并有本地化 aria-label;刷新后语言保持;旧无前缀路径跳中文;语言文件 key 完整;不记录 Cookie 值到遥测。建立干净分支和回滚点。
第二阶段:建立项目能力
写一份短项目记忆,包含运行命令、i18n 唯一入口、字体与安全边界。创建 locale-quality Skill 检查 key 对称、硬编码可见中文和路由 helper。Skill 只审查,不自动部署。
第三阶段:最小实现
先补失败测试,再实现偏好状态与页面。每次只改一层并看 diff。若前后端可独立调查,可以并行只读;共享路由契约确定前不要并行写入。任何依赖安装都说明来源、锁文件变化和许可证。
第四阶段:证据矩阵
运行定向与全量测试、生产构建;用浏览器验证中英文、刷新、动态参数、查询和移动端;扫描控制台、网络和可访问性。主动破坏一次 Cookie 名,确认测试能抓住,再恢复。
第五阶段:发布演练
制作不可变 release,在临时端口启动并 curl;原子切换 symlink,重启应用,检查两种语言页面、API、进程与日志;记录上一 release 的回滚命令。练习环境也禁止用 reset 或删除他人工作来“恢复”。
评分
需求清晰 15%,范围与安全 15%,实现质量 20%,双语与可访问性 15%,测试和浏览器证据 20%,发布与回滚 15%。聊天长度、工具调用数量和一次成功都不加分。
最终提交 product-brief.md、implementation-plan.md、实际 diff、verification.md 与 release-runbook.md。它们共同证明你能把 Agent 变成受控的工程协作者,而不是一个生成代码的黑箱。