本教程面向已具备 Claude Code 基础使用经验的开发者,系统讲解 Claude Code 的记忆系统(Memory System)和配置体系(Configuration System)。你将学会如何构建一个六层记忆架构,精确控制权限模型,配置 Hooks 实现自动化流水线,让 Claude Code 从"能用"进化为"高度定制化的开发伙伴"。适用于中高级开发者、技术团队负责人和 DevOps 工程师。
学习目标:
- 理解 Claude Code 记忆系统的六层架构与加载机制
- 掌握 CLAUDE.md 的分层设计与最佳实践
- 精通 settings.json 的权限、Hooks、环境变量配置
- 实战构建完整的项目配置体系
| 条件 | 说明 |
|---|---|
| Claude Code 版本 | ≥ 2.1.x(本文基于 2026 年 6 月最新版本) |
| 操作系统 | macOS / Linux / Windows (WSL) |
| 基础知识 | 熟悉终端操作、Markdown 语法、JSON 配置 |
| 模型订阅 | Claude Pro / Max / Team / Enterprise 任一 |
| 项目经验 | 至少在一个项目中使用过 Claude Code |
每次启动 Claude Code 会话,上下文窗口都是全新的。Claude 不知道你的项目用什么框架、代码风格是什么、测试命令是什么。你不得不反复告诉它相同的事情。
Claude Code 通过两套互补机制解决这个问题:
graph TB
A[新会话启动] --> B[上下文窗口为空]
B --> C{加载记忆}
C --> D[CLAUDE.md 层级]
C --> E[Auto Memory]
C --> F[Rules 规则文件]
D --> D1[~/.claude/CLAUDE.md<br/>用户全局]
D --> D2[项目根/CLAUDE.md<br/>项目共享]
D --> D3[子目录/CLAUDE.md<br/>模块专属]
D --> D4[CLAUDE.local.md<br/>个人不提交]
E --> E1[.claude/memory/*.md<br/>主题记忆文件]
F --> F1[.claude/rules/*.md<br/>路径规则]
B --> G[会话对话]
G --> H[自动记忆写入]
H --> E1
Claude Code 在会话启动时按以下优先级加载记忆:
| 加载顺序 | 文件位置 | 作用域 | 是否提交 Git |
|---|---|---|---|
| 1 | ~/.claude/CLAUDE.md |
用户全局 | ❌ |
| 2 | 项目根目录 CLAUDE.md |
整个项目 | ✅ |
| 3 | 项目 CLAUDE.local.md |
整个项目(个人) | ❌ |
| 4 | 子目录 CLAUDE.md |
该目录及子目录 | ✅ |
| 5 | .claude/rules/*.md |
路径匹配的规则 | ✅ |
| 6 | .claude/memory/*.md |
自动生成的主题记忆 | ❌ |
关键细节: 后加载的文件会覆盖先加载的同名指令。这意味着子目录的 CLAUDE.md 可以覆盖根目录的设定,路径规则优先于全局指令。
文件位置:~/.claude/CLAUDE.md
这是你的个人偏好层,适用于所有项目:
# 全局偏好
## 语言与风格
- 默认使用中文回复,代码注释用英文
- 回复简洁明了,避免冗长解释
## 编码习惯
- 优先使用函数式编程风格
- 变量命名使用 camelCase
- 始终添加 TypeScript 类型注解
## 通用规则
- 修改代码后主动运行测试
- 不要自动 commit,除非明确要求
- 不要提交 .env 等敏感文件
操作命令:
# 创建用户全局 CLAUDE.md
mkdir -p ~/.claude
cat > ~/.claude/CLAUDE.md << 'EOF'
# 全局偏好
- 默认中文回复
- 修改后运行测试
- 不自动 commit
EOF
# 或使用 Claude Code 的 /memory 命令
# 在 Claude Code 中输入: /memory 然后添加内容
文件位置:项目根目录/CLAUDE.md
这是最重要的配置层,团队共享,提交到 Git:
# 项目:电商平台 API
## 技术栈
- Runtime: Node.js 22 + TypeScript 5.8
- Framework: Fastify 5(注意:不是 Express)
- ORM: Drizzle ORM + PostgreSQL 16
- 测试: Vitest + Supertest
- 包管理: pnpm 9
## 项目结构
- `src/routes/` — API 路由(按领域分文件)
- `src/services/` — 业务逻辑层
- `src/db/schema/` — 数据库 Schema
- `src/middleware/` — 中间件
- `test/` — 测试文件镜像 src 结构
## 命令
- 开发: `pnpm dev`
- 构建: `pnpm build`
- 测试: `pnpm test`
- 单测: `pnpm test:unit`
- Lint: `pnpm lint`
## 编码规范
- 路由必须使用 Fastify schema validation
- Service 层不能直接访问 Fastify request/reply
- 数据库操作必须通过 Drizzle query builder
- 错误使用 AppError 类,禁止直接 throw new Error
## 架构决策
- API 版本化通过 URL 前缀: `/api/v1/`, `/api/v2/`
- 认证使用 JWT + Refresh Token 双令牌
- 文件上传使用 S3 预签名 URL
文件位置:项目根目录/CLAUDE.local.md
加入 .gitignore,用于个人调试和临时配置:
# 个人本地配置(不提交)
## 调试
- 当前在调试支付模块的并发问题
- 本地数据库端口: 5433(非默认)
- 使用 test_ 前缀的测试数据
## 临时偏好
- 详细输出 SQL 查询日志
- 跳过集成测试
# 确保 CLAUDE.local.md 不被提交
echo "CLAUDE.local.md" >> .gitignore
在特定模块目录下放置 CLAUDE.md:
# src/workers/CLAUDE.md
## Worker 模块规范
- 所有 Worker 必须继承 BaseWorker 类
- 使用 BullMQ 队列,不用 Bull
- 重试策略: 最多 3 次,指数退避
- 必须实现 graceful shutdown
- 日志使用结构化 JSON 格式
## 命名约定
- 文件名: `{domain}.worker.ts`
- 类名: `{Domain}Worker`
- 队列名: `{domain}:{action}`
文件位置:.claude/rules/*.md
规则文件支持路径匹配,只在 Claude Code 操作匹配路径时加载:
mkdir -p .claude/rules
创建路径匹配规则:
<!-- .claude/rules/react-components.md -->
---
description: React 组件开发规则
globs: src/components/**/*.tsx
---
## React 组件规范
- 使用函数组件 + Hooks
- Props 必须定义 TypeScript interface
- 使用 React.memo 包裹纯展示组件
- 样式使用 Tailwind CSS 类名
- 组件文件名使用 PascalCase
<!-- .claude/rules/api-routes.md -->
---
description: API 路由开发规则
globs: src/routes/**/*.ts
---
## API 路由规范
- 必须定义 Fastify schema(request/response)
- 使用 rate-limit 插件
- 错误处理统一使用 setNotFoundHandler/setErrorHandler
- 路由注册在 src/routes/index.ts 统一导出
关键点: globs 字段使用 glob 模式匹配,只有在 Claude Code 处理匹配的文件时才会加载该规则,这避免了全局上下文的膨胀。
Claude Code 内置的自动记忆系统,存储在 .claude/memory/ 目录下:
# 查看自动记忆目录
ls .claude/memory/
# 输出示例:
# architecture-decisions.md
# api-patterns.md
# debugging-notes.md
自动记忆文件格式:
---
name: architecture-decisions
description: 项目架构决策记录
metadata:
type: project
---
## 决策记录
- 2026-06-10: 选择 Fastify 替代 Express,原因是性能基准测试提升 40%
- 2026-06-08: 采用 Drizzle ORM 替代 Prisma,避免生成步骤和更好的 TypeScript 支持
使用 /memory 命令管理记忆:
# 在 Claude Code 会话中
> /memory
# 输入要记住的内容,Claude 会自动写入合适的记忆文件
Claude Code 的配置系统同样采用多层架构:
| 层级 | 文件位置 | 作用域 | 优先级 |
|---|---|---|---|
| Enterprise Managed | 管理员配置 | 企业全局 | 最高 |
| User Global | ~/.claude/settings.json |
用户所有项目 | 高 |
| Project Shared | .claude/settings.json |
项目所有成员 | 中 |
| Project Local | .claude/settings.local.json |
项目个人 | 低 |
// .claude/settings.json
{
// ===== 权限配置 =====
"permissions": {
"allow": [
// Bash 命令白名单
"Bash(pnpm install)",
"Bash(pnpm test)",
"Bash(pnpm test:unit)",
"Bash(pnpm lint)",
"Bash(pnpm build)",
"Bash(pnpm dev)",
"Bash(git status)",
"Bash(git diff *)",
"Bash(git log *)",
"Bash(git branch *)",
"Bash(docker compose *)",
// 文件操作白名单
"Read(*)",
"Write(src/**)",
"Edit(src/**)",
"Edit(test/**)"
],
"deny": [
// 禁止写入的危险路径
"Write(.env*)",
"Write(*.pem)",
"Write(*.key)",
"Bash(rm -rf *)",
"Bash(sudo *)",
"Bash(curl * | bash*)"
]
},
// ===== 环境变量 =====
"env": {
"NODE_ENV": "development",
"DATABASE_URL": "postgresql://localhost:5433/myapp_dev",
"REDIS_URL": "redis://localhost:6379"
},
// ===== Hooks 配置 =====
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": ".claude/hooks/pre-bash-validate.sh"
}
]
}
],
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": ".claude/hooks/post-format-check.sh"
}
]
}
],
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": ".claude/hooks/notify.sh"
}
]
}
]
},
// ===== MCP 服务器 =====
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@anthropic/mcp-postgres"],
"env": {
"DATABASE_URL": "postgresql://localhost:5433/myapp_dev"
}
}
},
// ===== 其他设置 =====
"model": "claude-sonnet-4-6",
"theme": "dark",
"preferredNotifChannel": "iterm2"
}
Claude Code 的权限有三种模式:
graph LR
A[工具调用请求] --> B{检查权限}
B -->|在 allow 列表| C[自动执行]
B -->|在 deny 列表| D[拒绝执行]
B -->|未匹配任何规则| E[弹出确认]
E -->|用户允许| F[执行 + 记住选择]
E -->|用户拒绝| G[跳过]
权限语法详解:
{
"permissions": {
"allow": [
// 精确匹配:只允许特定命令
"Bash(git status)",
// 通配符匹配:允许以某前缀开头的命令
"Bash(pnpm test*)",
// 路径通配符:允许操作特定目录下的文件
"Write(src/**/*.ts)",
"Edit(test/**/*.test.ts)",
// 完全通配:允许该工具的所有操作(谨慎使用)
"Read(*)"
]
}
}
使用 /permissions 命令交互式管理:
# 在 Claude Code 会话中
> /permissions
# 会打开交互式 UI,可以添加/删除/修改权限规则
除了配置文件,也可以通过 CLI 标志一次性配置:
# 临时允许特定命令
claude --allow "Bash(pnpm test)" --allow "Bash(pnpm lint)"
# 临时设置模型
claude --model claude-opus-4-8
# 一次性执行命令
claude -p "运行所有测试并报告结果" --allowedTools "Bash(pnpm test)"
Hooks 是 Claude Code 的扩展点,允许你在特定事件触发时执行自定义脚本:
| Hook 类型 | 触发时机 | 典型用途 |
|---|---|---|
PreToolUse |
工具调用前 | 命令校验、安全审计、日志记录 |
PostToolUse |
工具调用后 | 格式化、测试、通知、统计 |
Notification |
Claude 通知时 | Slack/钉钉推送、声音提醒 |
Stop |
Claude 停止生成时 | 总结报告、状态更新 |
sequenceDiagram
participant U as 用户
participant C as Claude Code
participant H as Hook 脚本
participant T as 工具
U->>C: 输入指令
C->>C: 决定调用工具
C->>H: PreToolUse Hook
H-->>C: approve / deny / 修改参数
alt Hook 批准
C->>T: 执行工具
T-->>C: 返回结果
C->>H: PostToolUse Hook
H-->>C: 后处理完成
else Hook 拒绝
C-->>U: 报告被拒绝
end
# 创建 hooks 目录
mkdir -p .claude/hooks
# .claude/hooks/pre-bash-validate.sh
#!/bin/bash
# 从 stdin 读取工具调用的 JSON 输入
INPUT=$(cat)
COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // empty')
# 阻止危险命令
DANGEROUS_PATTERNS=(
"rm -rf /"
"drop database"
"DROP TABLE"
"truncate table"
"sudo rm"
":(){:|:&};:"
"mkfs"
"dd if="
)
for pattern in "${DANGEROUS_PATTERNS[@]}"; do
if echo "$COMMAND" | grep -qi "$pattern"; then
echo "BLOCKED: 命令包含危险操作 '$pattern'"
exit 1 # exit 1 = 阻止执行
fi
done
# 阻止生产环境操作
if echo "$COMMAND" | grep -qi "prod\|production"; then
echo "BLOCKED: 当前不允许操作生产环境"
exit 1
fi
# 允许执行
exit 0
chmod +x .claude/hooks/pre-bash-validate.sh
# .claude/hooks/post-format-check.sh
#!/bin/bash
INPUT=$(cat)
TOOL=$(echo "$INPUT" | jq -r '.tool_name // empty')
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')
# 只在文件写入/编辑时触发
if [[ "$TOOL" == "Write" || "$TOOL" == "Edit" ]]; then
# TypeScript/JavaScript 文件自动格式化
if echo "$FILE_PATH" | grep -qE '\.(ts|tsx|js|jsx)$'; then
pnpm prettier --write "$FILE_PATH" 2>/dev/null
echo "Formatted: $FILE_PATH"
fi
# Python 文件自动格式化
if echo "$FILE_PATH" | grep -qE '\.py$'; then
ruff format "$FILE_PATH" 2>/dev/null
echo "Formatted: $FILE_PATH"
fi
fi
exit 0
# .claude/hooks/notify.sh
#!/bin/bash
INPUT=$(cat)
MESSAGE=$(echo "$INPUT" | jq -r '.message // "Claude Code 任务完成"')
# macOS 通知
if [[ "$OSTYPE" == "darwin"* ]]; then
osascript -e "display notification \"$MESSAGE\" with title \"Claude Code\""
fi
# Linux 通知
if [[ "$OSTYPE" == "linux"* ]]; then
notify-send "Claude Code" "$MESSAGE" 2>/dev/null
fi
# iTerm2 通知(如果安装了 it2attention)
which it2attention &>/dev/null && it2attention fireworks
exit 0
// .claude/settings.json
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": ".claude/hooks/pre-bash-validate.sh"
}
]
}
],
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": ".claude/hooks/post-format-check.sh"
}
]
}
],
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": ".claude/hooks/notify.sh"
}
]
}
],
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "echo '[✓] Claude Code 会话结束' >> .claude/session-log.txt"
}
]
}
]
}
}
# 创建项目
mkdir -p ecommerce-api && cd ecommerce-api
git init
# 创建 Claude Code 配置目录结构
mkdir -p .claude/rules .claude/hooks .claude/memory
# 初始化 Claude Code
claude
# 在 Claude Code 中输入:
> /init
# Claude 会扫描项目并生成初始 CLAUDE.md
# 电商平台 API
## 技术栈
- Node.js 22 + TypeScript 5.8
- Fastify 5 + Drizzle ORM + PostgreSQL 16
- BullMQ + Redis 7(消息队列)
- pnpm 9 + Vitest
## 项目结构
src/ ├── routes/ # API 路由(按领域分文件) │ ├── v1/ # API v1 │ └── v2/ # API v2 ├── services/ # 业务逻辑层 ├── db/ │ ├── schema/ # Drizzle Schema │ └── migrations/ # 数据库迁移 ├── workers/ # BullMQ Workers ├── middleware/ # Fastify 中间件 └── utils/ # 工具函数 test/ # 测试(镜像 src 结构)
## 命令
- `pnpm dev` — 开发服务器
- `pnpm build` — 生产构建
- `pnpm test` — 运行所有测试
- `pnpm test:unit` — 只跑单元测试
- `pnpm test:integration` — 只跑集成测试
- `pnpm lint` — ESLint 检查
- `pnpm db:generate` — 生成数据库迁移
- `pnpm db:migrate` — 执行迁移
## 编码规范
- 使用函数式风格,避免 class
- 错误使用 AppError,不要 throw new Error()
- 路由必须定义 Fastify schema validation
- Service 层不能直接依赖 Fastify request/reply
- 所有 async 函数必须处理错误
## 测试规范
- 单元测试: `test/**/*.test.ts`
- 集成测试: `test/**/*.integration.test.ts`
- 使用 `test()` 而非 `it()`
- Mock 外部依赖,不要 mock 内部模块
## 注意事项
- 不要修改 src/generated/ 目录(代码生成产物)
- 不要直接操作数据库,使用 Drizzle query builder
- 修改 Schema 后必须运行 `pnpm db:generate`
- API 必须有版本前缀 /api/v1/ 或 /api/v2/
# React 前端规则(如果项目有前端)
cat > .claude/rules/frontend.md << 'RULEEOF'
---
description: 前端 React 组件开发规则
globs: frontend/src/**/*.tsx
---
## 前端规范
- 使用 React 19 + Server Components
- 样式使用 Tailwind CSS v4
- 状态管理使用 Zustand
- 数据获取使用 TanStack Query v5
- 组件文件名 PascalCase.tsx
RULEEOF
# Worker 规则
cat > .claude/rules/workers.md << 'RULEEOF'
---
description: BullMQ Worker 开发规则
globs: src/workers/**/*.ts
---
## Worker 规范
- 继承 BaseWorker 类
- 队列命名: `{domain}:{action}`
- 重试: 最大 3 次,指数退避
- 必须实现 graceful shutdown
- 日志使用结构化 JSON
RULEEOF
# 数据库规则
cat > .claude/rules/database.md << 'RULEEOF'
---
description: 数据库 Schema 和迁移规则
globs: src/db/**/*.ts
---
## 数据库规范
- Schema 定义在 src/db/schema/
- 使用 Drizzle 的 pgTable 定义
- 所有表必须有 createdAt/updatedAt 字段
- 软删除使用 deletedAt 字段
- 索引命名: idx_{table}_{columns}
RULEEOF
// .claude/settings.json
{
"permissions": {
"allow": [
"Bash(pnpm *)",
"Bash(git status)",
"Bash(git diff *)",
"Bash(git log *)",
"Bash(git branch *)",
"Bash(git checkout *)",
"Bash(docker compose *)",
"Bash(node *)",
"Bash(npx *)",
"Read(*)",
"Write(src/**)",
"Write(test/**)",
"Write(.claude/rules/**)",
"Edit(src/**)",
"Edit(test/**)"
],
"deny": [
"Write(.env*)",
"Write(*.pem)",
"Write(*.key)",
"Write(terraform/**)",
"Write(.github/workflows/**)",
"Bash(rm -rf *)",
"Bash(sudo *)",
"Bash(DROP *)",
"Bash(production *)"
]
},
"env": {
"NODE_ENV": "development"
},
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": ".claude/hooks/pre-bash-validate.sh"
}
]
}
],
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": ".claude/hooks/post-format-check.sh"
}
]
}
],
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": ".claude/hooks/notify.sh"
}
]
}
]
}
}
# 添加到 .gitignore
cat >> .gitignore << 'EOF'
# Claude Code 个人配置
CLAUDE.local.md
.claude/settings.local.json
.claude/memory/
.claude/todos/
EOF
# 启动 Claude Code 并验证
claude
# 在 Claude Code 中执行以下验证:
> 列出你加载的所有记忆文件和规则
# Claude 应该显示:
# - ~/.claude/CLAUDE.md(用户全局)
# - ./CLAUDE.md(项目根)
# - .claude/rules/*.md(路径规则)
# - 确认 settings.json 已加载
> 创建一个新的 API 路由 /api/v2/products
# Claude 应该:
# - 使用 Fastify 而非 Express
# - 文件放在 src/routes/v2/
# - 定义 schema validation
# - 自动运行格式化 hook
# - 不触碰 .env 或其他禁止文件
问题: CLAUDE.md 过长导致上下文浪费,关键指令被忽略。
解决方案:分层 + 路径规则
graph TD
A[CLAUDE.md 总内容] --> B{超过 200 行?}
B -->|否| C[保持单文件即可]
B -->|是| D[拆分为路径规则]
D --> E[通用规则保留在 CLAUDE.md]
D --> F[领域规则移到 .claude/rules/]
D --> G[临时笔记用 /memory]
最佳实践:
- CLAUDE.md 控制在 50-100 行
- 每条规则用一句话,避免解释性文字
- 使用 globs 路径匹配按需加载
- 定期清理过时的记忆文件
# 提交共享配置,忽略个人配置
git add CLAUDE.md .claude/rules/ .claude/settings.json .claude/hooks/
git commit -m "chore: add Claude Code configuration"
# 个人配置在 .gitignore 中排除
# CLAUDE.local.md
# .claude/settings.local.json
# .claude/memory/
团队约定建议:
- CLAUDE.md —— 技术负责人维护,PR 审核
- .claude/rules/ —— 各模块负责人维护各自规则
- .claude/settings.json —— DevOps 维护权限和 Hooks
- .claude/hooks/ —— DevOps 维护,脚本需要 code review
Q: Claude 忽略了我的 CLAUDE.md 指令
- 检查文件是否在正确位置(项目根目录)
- 确认文件名大小写(必须是 CLAUDE.md)
- 缩减文件长度,越靠前的指令权重越高
- 使用 /memory 命令确认 Claude 是否已加载
Q: 权限配置不生效
- 检查 settings.json 的 JSON 格式是否正确
- 确认文件在正确层级(~/.claude/ 或 .claude/)
- 使用 /permissions 命令查看当前权限状态
- 注意 CLI --allow 标志会覆盖配置文件
Q: Hooks 没有触发
- 确认脚本有执行权限:chmod +x .claude/hooks/*.sh
- 检查脚本的 shebang 行:#!/bin/bash
- 手动运行脚本测试:echo '{"tool_name":"Bash","tool_input":{"command":"ls"}}' | .claude/hooks/pre-bash-validate.sh
- 查看 Claude Code 的调试日志
Q: 自动记忆太多/太杂
- 定期清理 .claude/memory/ 目录
- 使用 /memory 命令管理(删除过时条目)
- 在 CLAUDE.md 中指导 Claude 什么该记、什么不该记
对于企业团队,建议使用 Managed Settings(管理员配置):
// 企业管理员配置(通过管理平台下发)
{
"permissions": {
"deny": [
"Bash(curl * | *sh)",
"Bash(wget * | *sh)",
"Bash(eval *)",
"Write(/etc/*)",
"Write(/var/*)"
]
},
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "/usr/local/bin/claude-security-audit.sh"
}
]
}
]
},
"mcpServers": {
"company-knowledge": {
"command": "npx",
"args": ["-y", "@company/mcp-knowledge-base"],
"env": {
"API_URL": "https://internal-api.company.com"
}
}
}
}
flowchart TB
subgraph 会话启动
A[用户输入 claude] --> B[加载全局 CLAUDE.md]
B --> C[加载项目 CLAUDE.md]
C --> D[加载 CLAUDE.local.md]
D --> E[加载路径规则 .claude/rules/]
E --> F[加载自动记忆 .claude/memory/]
F --> G[加载 settings.json]
G --> H[注册 Hooks]
end
subgraph 对话过程
H --> I[用户输入指令]
I --> J[Claude 分析意图]
J --> K{需要调用工具?}
K -->|是| L[触发 PreToolUse Hook]
L --> M{Hook 批准?}
M -->|是| N[执行工具]
M -->|否| O[报告拒绝]
N --> P[触发 PostToolUse Hook]
P --> Q[返回结果给 Claude]
K -->|否| Q
Q --> R[Claude 生成回复]
R --> S{需要保存记忆?}
S -->|是| T[写入 .claude/memory/]
S -->|否| U[继续对话]
T --> U
U --> I
end
style A fill:#4A90D9,color:#fff
style H fill:#7B68EE,color:#fff
style N fill:#50C878,color:#fff
style T fill:#FFD700,color:#333
| 资源 | 说明 |
|---|---|
| Claude Code 官方记忆文档 | Anthropic 官方关于 CLAUDE.md 和记忆系统的权威文档 |
| Claude Code 官方设置文档 | settings.json 和权限系统的官方参考 |
| Claude Code 官方命令参考 | 所有斜杠命令和 CLI 标志的完整列表 |
| Claude Code 官方权限文档 | 权限模型和管理的官方指南 |
| 维度 | 评估 |
|---|---|
| 适合训练营类型 | Claude Code 进阶训练营、AI 工程师训练营、DevOps 自动化训练营 |
| 预计教学时长 | 3-4 小时(含实操练习) |
| 学员基础要求 | 已使用 Claude Code 至少 1 周,熟悉终端和 JSON 配置 |
| 实操占比 | 70%(大量动手配置)+ 30%(原理解释) |
| 推荐教学顺序 | 第二章(CLAUDE.md)→ 第三章(settings.json)→ 第四章(Hooks)→ 第五章(综合实战) |
| 考核方式 | 学员提交一个完整配置的项目仓库,评审配置的完整性和规范性 |
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
