一、Hooks 钩子系统:让 Claude 自动化执行(15 分钟)
Hooks 是 Claude Code 的自动化系统,在特定事件发生时自动执行操作。

1.1 什么是 Hooks?
Hooks 就像”触发器”——当某个事件发生时,自动执行你预设的操作。比如:
- 每次提交代码前自动运行 lint
- 每次对话开始时自动加载项目信息
- 每次工具调用后发送通知
1.2 Hook 事件类型
| 事件 | 触发时机 | 常见用途 |
|---|---|---|
PreToolUse | 工具调用前 | 拦截危险操作、注入上下文 |
PostToolUse | 工具调用后 | 日志记录、通知 |
Notification | 通知事件 | 桌面通知、消息推送 |
Stop | 代理停止时 | 清理工作、汇总报告 |
SubagentStop | 子代理停止时 | 合并结果 |
1.3 Hook 类型
| 类型 | 说明 | 适用场景 |
|---|---|---|
command | 执行系统命令 | 运行 lint、格式化 |
prompt | 注入提示词 | 自动添加上下文 |
agent | 启动子代理 | 复杂任务委派 |
http | 发送 HTTP 请求 | 通知外部系统 |
mcp_tool | 调用 MCP 工具 | 使用 MCP 服务器功能 |
1.4 配置示例
在 .claude/settings.json 中配置:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "echo '即将执行 Bash 命令'"
}
]
}
],
"PostToolUse": [
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "npx prettier --write $CLAUDE_FILE_PATH"
}
]
}
],
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "powershell -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code 任务完成!')\""
}
]
}
]
}
}
1.5 实用 Hook 场景
场景 1:提交前自动 lint
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash(git commit*)",
"hooks": [
{
"type": "command",
"command": "npm run lint"
}
]
}
]
}
}
场景 2:写文件后自动格式化
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "npx prettier --write $CLAUDE_FILE_PATH"
}
]
}
]
}
}
场景 3:任务完成时 Windows 通知
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "powershell -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code 任务完成!')\""
}
]
}
]
}
}
1.6 重要属性
matcher:匹配工具名称,支持通配符(如Bash(git*))type:Hook 类型command:要执行的命令timeout:超时时间(毫秒),默认 60000
1.7 注意事项
- Hooks 在
.claude/settings.local.json中配置(不提交到仓库) - command 类型有安全风险,需要用户确认
- Hook 执行失败不会阻止主流程
- 谨慎使用 PreToolUse 拦截,可能影响正常操作
二、Headless 模式:非交互式调用(10 分钟)
Headless 模式让 Claude Code 可以在脚本和 CI/CD 中自动运行。
2.1 基本用法
# 非交互式执行
claude -p "帮我写一个 Hello World 的 Python 脚本"
# 输出 JSON 格式
claude -p "分析这个项目的结构" --output-format json
# 指定模型
claude -p "审查代码" --model opus
# 从 stdin 读取
echo "帮我写个测试" | claude -p
2.2 常用参数
| 参数 | 说明 | 示例 |
|---|---|---|
-p | 非交互式模式 | claude -p "任务描述" |
--output-format | 输出格式 | json, text, stream-json |
--model | 指定模型 | opus, sonnet, haiku |
--max-turns | 最大对话轮数 | --max-turns 10 |
--allowedTools | 允许的工具 | --allowedTools "Read,Write,Bash" |
--disallowedTools | 禁止的工具 | --disallowedTools "Bash" |
--resume | 继续上次对话 | --resume |
--session-id | 指定会话 ID | --session-id abc123 |
--verbose | 详细输出 | --verbose |
2.3 CI/CD 集成示例
GitHub Actions 自动代码审查:
name: Claude Code Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Code Review
run: |
claude -p "审查这个 PR 的代码变更,重点关注安全性和代码质量" \
--output-format json \
--max-turns 5
Git 提交前自动检查:
#!/bin/bash
# pre-commit hook
result=$(claude -p "检查暂存的代码有没有明显问题" --max-turns 3)
if echo "$result" | grep -q "问题"; then
echo "发现代码问题:"
echo "$result"
exit 1
fi
自动生成变更日志:
#!/bin/bash
# 生成变更日志
claude -p "根据最近的 git 提交记录,生成本周的变更日志" \
--output-format text > CHANGELOG.md
三、子代理与并行执行(10 分钟)
3.1 什么是子代理?
Claude Code 可以把任务委派给专门的子代理,每个子代理有自己的专长。
3.2 内置子代理类型
| 子代理 | 专长 | 适用场景 |
|---|---|---|
coder | 代码编写 | 实现功能、修复 bug |
dbexpert | 数据库专家 | SQL 优化、数据库设计 |
debugger | 调试专家 | 排查问题、分析日志 |
reviewer | 代码审查 | 代码质量、最佳实践 |
planner | 规划专家 | 架构设计、方案制定 |
researcher | 调研专家 | 技术调研、方案对比 |
writer | 文档专家 | 写文档、整理资料 |
3.3 使用方式
Claude 会自动判断何时需要子代理,你也可以主动指定:
用 dbexpert 子代理帮我优化这个 SQL 查询:
【SQL 语句】
用 reviewer 子代理审查这个模块的代码质量
3.4 并行执行
多个独立任务可以并行执行:
同时做以下三件事:
1. 审查 src/auth 模块的代码
2. 写单元测试
3. 更新 API 文档
Claude 会自动识别独立任务并并行处理。
四、Git Worktree 工作流(5 分钟)
4.1 什么是 Git Worktree?
Git Worktree 让你在同一个仓库中同时工作在多个分支上,不用来回切换。
4.2 基本操作
# 创建 worktree
git worktree add ../feature-auth feature/auth
# 在新 worktree 中工作
cd ../feature-auth
claude
# 完成后移除
git worktree remove ../feature-auth
4.3 Claude Code 内置 Worktree 支持
Claude Code 可以自动管理 worktree:
帮我在新 worktree 中实现用户认证功能
它会自动创建 worktree、切换过去、实现功能、提交代码、切回来。
五、自定义代理角色(5 分钟)
5.1 什么是自定义代理?
你可以定义专门的代理角色,让 Claude 用特定风格和专长来处理任务。
5.2 配置方式
在 .claude/settings.json 中:
{
"customAgents": {
"tech-writer": {
"name": "技术文档专家",
"description": "专门写技术文档,风格严谨专业",
"systemPrompt": "你是一位技术文档专家。你写的文档结构清晰、语言准确、格式规范。所有文档使用中文,技术术语保留英文。"
},
"code-reviewer": {
"name": "代码审查专家",
"description": "严格审查代码质量和安全性",
"systemPrompt": "你是一位严格的代码审查专家。重点关注:安全性、性能、可维护性、代码风格。每个问题都要给出具体的改进建议和代码示例。"
}
}
}
5.3 使用自定义代理
用 tech-writer 代理帮我写 API 文档
六、最佳实践 Pro Tips(10 分钟)
Tip 1:用 CLAUDE.md 管理项目上下文
不要每次都重新介绍项目,把项目信息写在 CLAUDE.md 里。
Tip 2:善用 Plan 模式
复杂改动先用 Plan 模式看方案,确认后再执行。
Tip 3:配置权限减少确认
把常用的安全操作加入 allow 列表,减少确认弹窗。
Tip 4:用 /compact 管理上下文
长对话中定期用 /compact 压缩上下文,保持响应速度。
Tip 5:拆分大任务
大任务拆成小步骤,每步确认后再继续。比如:
第一步:先分析现有代码结构
第二步:设计新功能的接口
第三步:实现后端逻辑
第四步:写单元测试
第五步:更新文档
Tip 6:用规则文件自动匹配
在 .claude/rules/ 下创建规则文件,用 globs 匹配特定文件类型。
Tip 7:用 Hooks 自动化重复操作
提交前自动 lint、写文件后自动格式化、完成后自动通知。
Tip 8:用 Headless 模式集成 CI/CD
在 CI/CD 流水线中用 Headless 模式自动审查代码、生成文档。
Tip 9:合理使用子代理
复杂任务委派给专门子代理,比自己处理效果更好。
Tip 10:定期检查 /cost
关注 token 消耗,优化提示词和上下文长度。
七、实战演练(5 分钟)
大家选一个练习:
- 配置一个 Hook:写文件后自动格式化,或任务完成后桌面通知
- 试一次 Headless 模式:用
claude -p非交互式执行一个任务 - 创建自定义代理:定义一个适合你岗位的代理角色
总结(5 分钟)
今天讲了高级技巧:
- Hooks – 自动化执行,5 种 Hook 类型 × 9 种事件
- Headless 模式 – 非交互式调用,CI/CD 集成
- 子代理 – 7 种内置子代理,并行执行
- Git Worktree – 多分支并行工作
- 自定义代理 – 定义专门的代理角色
- 最佳实践 – 10 条 Pro Tips
关键:从简单开始,先掌握基础操作,再逐步引入高级功能。
有问题吗?随时找我!
实战练习
第3次培训:实战练习
练习一:配置 Hooks 钩子
目标:学会配置 Hooks 实现自动化
步骤:
- 在项目目录下创建或编辑
.claude/settings.local.json - 配置一个”写文件后自动格式化”的 Hook:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "npx prettier --write $CLAUDE_FILE_PATH"
}
]
}
]
}
}
- 测试:让 Claude 创建一个文件,观察是否自动格式化
- 配置一个”任务完成通知”的 Hook:
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "powershell -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code 任务完成!')\""
}
]
}
]
}
}
- 测试:完成一个任务后观察是否弹出通知
完成标准:成功配置至少一个 Hook 并验证生效
练习二:Headless 模式
目标:学会非交互式调用 Claude Code
步骤:
- 基本用法:
claude -p "帮我列出当前目录的文件结构"
- 输出 JSON 格式:
claude -p "分析 README.md 的内容" --output-format json
- 限制对话轮数:
claude -p "检查 package.json 的依赖" --max-turns 3
- 指定允许的工具:
claude -p "读取 src 目录下的所有文件" --allowedTools "Read"
- 从管道读取输入:
echo "帮我写一个简单的 Python Hello World" | claude -p
完成标准:成功使用至少 3 种 Headless 参数
练习三:子代理使用
目标:体验不同子代理的专长
步骤:
- 使用 coder 子代理:
用 coder 子代理帮我实现一个用户登录的 JWT 工具类
- 使用 reviewer 子代理:
用 reviewer 子代理审查 src/utils 目录下的代码质量
- 使用 planner 子代理:
用 planner 子代理帮我规划微服务架构的拆分方案
- 尝试并行任务:
同时做以下两件事:
1. 审查 src/auth 模块的安全性
2. 为 src/auth 写单元测试
完成标准:成功使用至少 2 种子代理
练习四:Git Worktree
目标:学会使用 Git Worktree 并行开发
步骤:
- 创建 worktree:
git worktree add ../feature-test feature/test
- 在新 worktree 中启动 Claude:
cd ../feature-test
claude
- 让 Claude 在新 worktree 中工作:
帮我实现一个简单的测试工具函数
- 完成后回到主 worktree:
cd ../main-project
- 清理 worktree:
git worktree remove ../feature-test
完成标准:成功创建和使用 Git Worktree
练习五:自定义代理角色
目标:创建适合自己岗位的代理角色
步骤:
- 在
.claude/settings.json中添加自定义代理:
技术文档专家:
{
"customAgents": {
"tech-writer": {
"name": "技术文档专家",
"description": "专门写技术文档",
"systemPrompt": "你是一位技术文档专家。文档结构清晰、语言准确、格式规范。中文撰写,技术术语保留英文。"
}
}
}
代码审查专家:
{
"customAgents": {
"code-reviewer": {
"name": "代码审查专家",
"description": "严格审查代码质量",
"systemPrompt": "你是一位严格的代码审查专家。重点关注安全性、性能、可维护性。每个问题都要给出改进建议和代码示例。"
}
}
}
- 使用自定义代理:
用 tech-writer 代理帮我写 API 接口文档
完成标准:成功创建并使用自定义代理
练习六:完整项目配置
目标:综合运用所有高级技巧配置一个完整项目
步骤:
- 创建 CLAUDE.md 项目指令
- 创建规则文件
.claude/rules/ - 配置 MCP 服务器
.mcp.json - 配置权限
.claude/settings.json - 配置 Hooks
.claude/settings.local.json - 配置自定义代理
完整配置示例:
帮我为项目配置完整的 Claude Code 环境:
1. CLAUDE.md:项目说明、技术栈、开发规范、文档规范
2. .claude/rules/java-rules.md:Java 代码规范
3. .claude/rules/doc-rules.md:文档编写规范
4. .mcp.json:memory + fetch 服务器
5. .claude/settings.json:权限配置 + 自定义代理
6. .claude/settings.local.json:Hooks 配置
完成标准:项目配置完整,Claude Code 能高效工作
挑战任务(进阶)
挑战 1:CI/CD 集成
写一个 GitHub Actions workflow,在 PR 时自动用 Claude Code 审查代码:
name: AI Code Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Claude Code
run: npm install -g @anthropic-ai/claude-code
- name: Code Review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
claude -p "审查这个 PR 的代码变更" --output-format json > review.json
挑战 2:自动化工作流
用 Hooks + Headless 模式搭建一个自动化工作流:
- 提交代码时自动审查
- 审查通过后自动格式化
- 格式化后自动运行测试
- 测试通过后自动更新文档
挑战 3:多代理协作
设计一个多代理协作的工作流:
- planner 代理规划任务
- coder 代理实现代码
- reviewer 代理审查代码
- writer 代理更新文档
提示词库
第3次培训:提示词库
高级提示词合集,按场景分类,复制即用。
一、项目初始化提示词
1.1 生成完整项目配置
帮我为当前项目配置完整的 Claude Code 环境,包括:
1. CLAUDE.md - 项目说明、技术栈、开发规范
2. .claude/rules/ - 代码规范和文档规范规则文件
3. .mcp.json - 常用 MCP 服务器配置
4. .claude/settings.json - 权限和自定义代理配置
项目信息:
- 名称:【项目名称】
- 技术栈:【技术栈】
- 主要模块:【模块列表】
1.2 分析项目结构
帮我分析当前项目的结构,然后:
1. 生成 CLAUDE.md 项目说明
2. 列出主要模块和职责
3. 识别技术栈和依赖
4. 建议适合的 Claude Code 配置
二、代码开发提示词
2.1 实现新功能
帮我实现【功能名称】功能。
需求:
【详细描述需求】
技术要求:
- 遵循项目现有代码风格
- 添加必要的错误处理
- 写单元测试
- 更新相关文档
步骤:
1. 先分析现有代码结构
2. 设计接口和数据结构
3. 实现核心逻辑
4. 写测试
5. 更新文档
2.2 修复 Bug
帮我修复这个 Bug:
Bug 描述:【描述】
复现步骤:
1. 【步骤1】
2. 【步骤2】
期望行为:【应该怎样】
实际行为:【实际怎样】
请按以下步骤修复:
1. 先定位问题原因
2. 分析影响范围
3. 实现修复
4. 写回归测试
5. 检查是否有类似问题
2.3 重构代码
帮我重构【模块/文件名称】。
重构目标:
- 【目标1,如:提高可读性】
- 【目标2,如:减少重复代码】
- 【目标3,如:改善性能】
要求:
- 保持现有功能不变
- 逐步重构,每步都可以独立验证
- 先用 Plan 模式给出方案
2.4 系统化调试
/superpowers:systematic-debugging
帮我调试这个问题:
现象:【描述现象】
环境:【运行环境】
日志:【相关日志】
按以下步骤排查:
1. 形成假设
2. 添加诊断代码
3. 复现问题
4. 分析结果
5. 修复并验证
2.5 TDD 开发
/superpowers:test-driven-development
帮我用 TDD 方式实现【功能名称】:
需求:【描述需求】
步骤:
1. 先写测试用例
2. 运行测试(应该失败)
3. 写最小实现
4. 运行测试(应该通过)
5. 重构优化
三、代码审查提示词
3.1 全面代码审查
/review
帮我全面审查代码变更,重点关注:
1. 安全性(SQL 注入、XSS、敏感信息泄露、权限问题)
2. 代码质量(命名规范、重复代码、圈复杂度)
3. 错误处理(异常捕获、边界条件、空值处理)
4. 性能(N+1 查询、内存泄漏、不必要的循环)
5. 可维护性(注释、可读性、扩展性、耦合度)
6. 测试覆盖(是否有对应测试、边界用例)
3.2 安全审查
/security-review
帮我做安全审查,重点检查:
1. SQL 注入风险
2. XSS 跨站脚本
3. CSRF 跨站请求伪造
4. 敏感信息泄露(API Key、密码、Token)
5. 权限控制缺陷
6. 不安全的依赖
7. 加密和认证问题
3.3 性能审查
帮我做性能审查,重点检查:
1. 数据库查询效率(N+1、缺少索引、全表扫描)
2. 内存使用(大对象、缓存策略、内存泄漏)
3. 网络请求(不必要的请求、缺少缓存、批量处理)
4. 算法复杂度(嵌套循环、递归深度)
5. 并发问题(竞态条件、死锁)
四、文档编写提示词
4.1 技术方案
帮我写一份技术方案。
项目:【项目名称】
需求:【需求描述】
方案结构:
1. 背景与目标
2. 现状分析
3. 方案设计(架构图用 Mermaid)
4. 技术选型及理由
5. 数据库设计(ER 图用 Mermaid)
6. 接口设计(表格列出)
7. 非功能性需求(性能、安全、可用性)
8. 风险与应对
9. 实施计划(甘特图用 Mermaid)
中文,专业但不过于学术化。
4.2 API 文档
帮我写 API 接口文档。
项目:【项目名称】
认证方式:【如:Bearer Token / API Key】
接口列表:
【列出需要文档化的接口】
每个接口包含:
- URL 和 HTTP 方法
- 请求参数(表格:参数名、类型、必填、说明)
- 请求示例(JSON)
- 返回示例(JSON)
- 错误码(表格)
中文,技术术语保留英文。
4.3 变更日志
帮我根据最近的 git 提交记录生成本周变更日志。
格式:
## v版本号 (日期)
### 新增
- 【新增功能】
### 修复
- 【修复问题】
### 变更
- 【变更内容】
### 移除
- 【移除内容】
五、项目管理提示词
5.1 项目计划
/superpowers:writing-plans
帮我制定项目计划。
项目:【项目名称】
目标:【项目目标】
团队:【团队配置】
时间:【开始日期】到【结束日期】
计划包含:
1. 项目目标和范围
2. 里程碑和交付物
3. 任务分解(WBS)
4. 甘特图(Mermaid)
5. 风险识别和应对
6. 资源分配
5.2 风险分析
帮我做项目风险分析。
项目:【项目名称】
当前状态:【描述当前状态】
分析:
1. 识别潜在风险(技术、管理、外部)
2. 评估风险(概率 × 影响 = 风险等级)
3. 制定应对策略(规避、转移、减轻、接受)
4. 风险监控计划
用表格展示风险矩阵。
六、自动化提示词
6.1 生成 CI/CD 配置
帮我生成 CI/CD 配置。
项目:【项目名称】
技术栈:【技术栈】
部署环境:【如:开发/测试/生产】
需要包含:
1. 代码检查(lint + type check)
2. 单元测试
3. 构建
4. 部署
5. Claude Code 自动审查(PR 时触发)
6.2 生成 Git Hooks
帮我生成 Git Hooks 配置:
pre-commit:
- 运行 lint 检查
- 运行类型检查
- 检查提交信息格式
pre-push:
- 运行测试
- 检查是否有未提交的变更
commit-msg:
- 检查提交信息格式(类型(范围): 描述)
6.3 生成 Docker 配置
帮我生成 Docker 配置。
项目:【项目名称】
技术栈:【技术栈】
端口:【端口号】
需要:
1. Dockerfile(多阶段构建)
2. docker-compose.yml(开发环境)
3. .dockerignore
七、自定义代理角色提示词
7.1 技术文档专家
{
"name": "技术文档专家",
"systemPrompt": "你是一位资深技术文档专家。你的文档:1) 结构清晰,层次分明;2) 语言准确简洁;3) 格式规范统一;4) 所有文档使用中文,技术术语保留英文;5) 善用表格、图表、代码示例增强可读性;6) 每个概念都有简明解释。"
}
7.2 代码审查专家
{
"name": "代码审查专家",
"systemPrompt": "你是一位严格的代码审查专家。审查标准:1) 安全性优先,任何安全隐患必须标记为严重;2) 关注性能瓶颈;3) 检查错误处理是否完善;4) 评估可维护性和扩展性;5) 每个问题给出具体改进建议和代码示例;6) 按严重程度分级:致命/严重/一般/建议。"
}
7.3 架构师
{
"name": "架构师",
"systemPrompt": "你是一位资深架构师。设计原则:1) 关注非功能性需求(性能、可用性、安全性、扩展性);2) 权衡取舍要说明理由;3) 提供多种方案对比;4) 用架构图(Mermaid)说明设计;5) 考虑演进路线,不只看当前需求;6) 中文沟通,技术术语保留英文。"
}
7.4 测试专家
{
"name": "测试专家",
"systemPrompt": "你是一位测试专家。测试策略:1) 先写测试用例再写实现(TDD);2) 覆盖正常流程、边界条件、异常情况;3) 测试命名清晰描述测试场景;4) 每个测试只验证一个行为;5) Mock 外部依赖;6) 关注测试的可维护性和执行速度。"
}
八、最佳实践提示词
8.1 渐进式开发
我要实现【功能描述】,请按以下步骤逐步进行:
第一步:分析现有代码结构,找到相关模块
第二步:设计接口和数据结构(先出方案,我确认)
第三步:实现核心逻辑
第四步:写单元测试
第五步:处理边界情况和错误
第六步:更新文档
第七步:做代码审查
每一步完成后等我确认再继续。
8.2 知识沉淀
/skill:claude-mem
把以下知识记录下来,方便以后使用:
主题:【主题】
内容:【具体内容】
标签:【标签1, 标签2】
8.3 上下文管理
/compact
当前对话太长了,帮我压缩上下文,保留以下关键信息:
1. 【关键信息1】
2. 【关键信息2】
3. 【关键信息3】
原创文章,作者:AI下载网站,如若转载,请注明出处:https://www.qidm.com/Ai/40