可视化参考
Claude Code 核心概念的 ASCII 图表合集。涵盖上下文管理、权限模式、工作流、架构、安全和决策树的快速可视化参考。
上下文管理区间
Section titled “上下文管理区间”根据上下文窗口使用率(通过 /status 查看)采取对应操作:
上下文使用率0% 50% 70% 90% 100%├───────────┼───────────┼───────────┼──────────┤│ 绿色 │ 黄色 │ 橙色 │ 红色 ││ 自由 │ 谨慎选择 │ 立即 │ 必须 ││ 工作 │ 操作 │ /compact │ /clear │└───────────┴───────────┴───────────┴──────────┘ ^ ^ | | 减少不必要的 风险:遗忘指令、 读取和工具调用 产生幻觉| 区间 | 上下文 % | 操作 |
|---|---|---|
| 绿色 | 0-50% | 全速前进,自由读取文件和探索 |
| 黄色 | 50-70% | 谨慎选择,避免不必要的文件读取 |
| 橙色 | 70-90% | 立即执行 /compact,上下文正在退化 |
| 红色 | 90%+ | 执行 /clear 并重启,响应已不可靠 |
权限模式循环
Section titled “权限模式循环”使用 Shift+Tab 循环切换:
Shift+Tab Shift+Tab┌──────────┐ ──────────→ ┌───────────────┐ ──────────→ ┌───────────┐│ 默认 │ │ 自动接受 │ │ 计划模式 ││ │ │ │ │ ││ edit=ask │ │ edit=auto │ │ edit=no ││ exec=ask │ │ exec=ask │ │ exec=no │└──────────┘ ←────────── └───────────────┘ ←────────── └───────────┘ Shift+Tab Shift+Tab| 模式 | 适用场景 | 风险等级 |
|---|---|---|
| 默认 | 日常开发——逐一审查每个变更 | 低 |
| 自动接受 | 可信任务(格式化、重构) | 中 |
| 计划模式 | 复杂/高风险操作——安全探索 | 无 |
工作流流水线(9 步)
Section titled “工作流流水线(9 步)”每个任务的推荐工作流:
┌─────────┐ ┌──────────┐ ┌────────────┐ ┌─────────────┐│ 1.启动 │───→│ 2./status│───→│ 3. 计划? │───→│ 4. 描述任务 ││ claude │ │ 查看上下文│ │ Shift+Tab×2│ │ 做什么/在哪 │└─────────┘ └──────────┘ │ (若有风险) │ │ 怎么做/验证 │ └────────────┘ └──────┬──────┘ │ ┌───────────────────────────────────────────────────┘ │ ▼┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐│ 5.审查 │───→│ 6. y/n │───→│ 7. 测试 │───→│ 8. 提交 │───→│9./compact││ diff │ │ 接受? │ │ 运行 │ │ 完成时 │ │ >70% 时 │└──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘核心原则:
- 第 2 步:开始前务必检查上下文。超过 70% 先
/compact。 - 第 3 步:高风险、复杂或多文件操作使用计划模式。
- 第 4 步:描述要具体——模糊的提示产生模糊的结果。
- 第 5 步:阅读每个 diff,切勿盲目接受。
- 第 9 步:每个任务后压缩上下文,保持在绿色区间。
你需要什么?│├─ 简单任务 ─────────────────→ 直接问 Claude│├─ 复杂任务│ ├─ 单个会话 ──────────────→ /plan + Tasks API│ └─ 多个会话 ──────────────→ Tasks API + CLAUDE_CODE_TASK_LIST_ID│├─ 重复任务 ─────────────────→ 创建 Agent 或 Command│├─ 上下文 >70% ──────────────→ /compact│├─ 上下文 >90% ──────────────→ /clear(重启对话)│├─ 需要类库文档 ─────────────→ Context7 MCP│├─ 深度调试 ─────────────────→ Opus 模型 + Alt+T(思考)│├─ 从设计稿到 UI ────────────→ Figma MCP 或截图输入│└─ 团队推广 ─────────────────→ 阅读采纳指南整个架构是一个简单的 while 循环——没有 DAG、没有分类器、没有 RAG。
┌─────────────────────────────────────────────────────────────┐│ CLAUDE CODE 主循环 │├─────────────────────────────────────────────────────────────┤│ ││ ┌──────────────┐ ││ │ 你的提示词 │ ││ └──────┬───────┘ ││ │ ││ ▼ ││ ┌──────────────────────────────────────────────────────┐ ││ │ CLAUDE 推理 │ ││ │ (无分类器,无路由层) │ ││ └────────────────────────┬─────────────────────────────┘ ││ │ ││ ▼ ││ ┌────────────────┐ ││ │ 工具调用? │ ││ └───────┬────────┘ ││ │ ││ 是 │ 否 ││ ┌─────────────────┴─────────────────┐ ││ │ │ ││ ▼ ▼ ││ ┌────────────┐ ┌────────────┐ ││ │ 执行工具 │ │ 文本 │ ││ │ │ │ 响应 │ ││ │ │ │ (完成) │ ││ └─────┬──────┘ └────────────┘ ││ │ ││ ▼ ││ ┌─────────────┐ ││ │ 将结果反馈 │ ││ │ 给 Claude │──────────────────┐ ││ └─────────────┘ │ ││ ▼ ││ ┌────────────────┐ ││ │ 循环回到 │ ││ │ (下一轮) │ ││ └────────────────┘ ││ │└─────────────────────────────────────────────────────────────┘Hook 事件流
Section titled “Hook 事件流”Hook 如何拦截 Claude Code 的执行流水线:
┌─────────────────────────────────────────────────────────┐│ 事件流 │├─────────────────────────────────────────────────────────┤│ ││ 用户输入消息 ││ │ ││ ▼ ││ ┌────────────────────┐ ││ │ UserPromptSubmit │ ← 添加上下文(git status) ││ └────────────────────┘ ││ │ ││ ▼ ││ Claude 决定运行工具(如 Edit) ││ │ ││ ▼ ││ ┌────────────────────┐ ││ │ PreToolUse │ ← 安全检查 ││ └────────────────────┘ ││ │ ││ ▼(如果允许) ││ 工具执行 ││ │ ││ ▼ ││ ┌────────────────────┐ ││ │ PostToolUse │ ← 自动格式化 ││ └────────────────────┘ ││ │└─────────────────────────────────────────────────────────┘使用 Claude Code 时哪些数据离开你的机器:
┌─────────────────────────────────────────────────────────────┐│ 你的本地机器 │├─────────────────────────────────────────────────────────────┤│ - 你输入的提示词 ││ - Claude 读取的文件(包括 .env 如果未排除!) ││ - MCP 服务器结果(SQL 查询、API 响应) ││ - Bash 命令输出 ││ - 错误消息和堆栈追踪 │└───────────────────────┬─────────────────────────────────────┘ │ ▼ HTTPS┌─────────────────────────────────────────────────────────────┐│ ANTHROPIC API │├─────────────────────────────────────────────────────────────┤│ - 处理你的请求 ││ - 根据保留策略存储对话 ││ - 可能用于模型训练(如果未选择退出) │└─────────────────────────────────────────────────────────────┘MCP 恶意更新攻击
Section titled “MCP 恶意更新攻击”恶意 MCP 服务器如何利用一次性审批模型:
┌─────────────────────────────────────────────────────────────┐│ 1. 攻击者发布无害的 MCP "code-formatter" ││ | ││ 2. 用户添加到 ~/.claude.json,一次性批准 ││ | ││ 3. MCP 正常工作 2 周(建立信任) ││ | ││ 4. 攻击者推送恶意更新(无需重新审批!) ││ | ││ 5. MCP 窃取 ~/.ssh/*、.env、凭据 │└─────────────────────────────────────────────────────────────┘缓解措施:版本锁定 + 哈希验证 + 持续监控Docker 沙箱架构
Section titled “Docker 沙箱架构”为 Claude Code 自主会话提供完全隔离:
┌──────────────────────────────────────────────────────────┐│ 宿主机 ││ ││ ┌────────────────────────────────────────────────────┐ ││ │ DOCKER 沙箱(microVM) │ ││ │ │ ││ │ ┌──────────────┐ ┌───────────────────────────┐ │ ││ │ │ Claude Code │ │ 私有 Docker 守护进程 │ │ ││ │ │ (--dsp 模式) │ │ (与宿主机隔离) │ │ ││ │ └──────────────┘ └───────────────────────────┘ │ ││ │ │ ││ │ ┌──────────────────────────────────────────────┐ │ ││ │ │ 工作空间:~/my-project(与宿主机同步) │ │ ││ │ └──────────────────────────────────────────────┘ │ ││ │ │ ││ │ 基础环境:Ubuntu, Node.js, Python 3, Go, Git, │ ││ │ Docker CLI, GitHub CLI, ripgrep, jq │ ││ │ 用户:非 root 的 'agent'(有 sudo 权限) │ ││ └────────────────────────────────────────────────────┘ ││ ││ 宿主机 Docker 守护进程:沙箱内不可访问 ││ 宿主机文件系统:不可访问(工作空间除外) │└──────────────────────────────────────────────────────────┘搜索工具选择
Section titled “搜索工具选择”选择正确搜索工具的三级决策树:
第一级:你知道什么?
Section titled “第一级:你知道什么?”你知道确切的文本/模式吗?│├─ 知道 → 使用 rg(ripgrep)│ ├─ 已知函数名:rg "createSession"│ ├─ 已知导入:rg "import.*React"│ └─ 已知模式:rg "async function"│└─ 不知道 → 进入第二级第二级:你在找什么?
Section titled “第二级:你在找什么?”你的搜索意图是什么?│├─ "按含义/概念查找"│ → 使用 grepai│├─ "查找函数/类定义"│ → 使用 Serena│├─ "按代码结构查找"│ → 使用 ast-grep│└─ "理解依赖关系" → 使用 grepai trace第三级:优化
Section titled “第三级:优化”结果太多?│├─ rg → 添加 --type 过滤或缩小路径├─ grepai → 添加 --path 过滤或使用 trace├─ Serena → 按符号类型过滤(函数/类)└─ ast-grep → 为模式添加约束信任校准流程
Section titled “信任校准流程”根据风险等级决定对 AI 生成代码的审查力度:
┌─────────────────────────────────────────────────────────┐│ 信任校准流程 │├─────────────────────────────────────────────────────────┤│ ││ AI 生成代码 ││ │ ││ ▼ ││ ┌──────────────┐ ││ │ 什么类型? │ ││ └──────────────┘ ││ │ │ │ ││ ▼ ▼ ▼ ││ 模板 业务 安全 ││ 代码 逻辑 关键 ││ │ │ │ ││ ▼ ▼ ▼ ││ 浏览 测试+ 全面审查 ││ 即可 审查 + 工具 ││ │ │ │ ││ └────┴────┘ ││ │ ││ ▼ ││ 测试通过? ──否──> 调试修复 ││ │ ││ 是 ││ │ ││ ▼ ││ 发布 ││ │└─────────────────────────────────────────────────────────┘TDD 红-绿-重构循环
Section titled “TDD 红-绿-重构循环” ┌──────────────────────────┐ │ │ ▼ │ ┌──────────────┐ │ │ RED │ │ │ 编写一个 │ │ │ 失败的 │ │ │ 测试 │ │ └──────┬───────┘ │ │ 测试失败 │ │ (预期的) │ ▼ │ ┌──────────────┐ │ │ GREEN │ │ │ 编写最小 │ │ │ 代码使 │ │ │ 测试通过 │ │ └──────┬───────┘ │ │ 测试通过 │ │ (最小化) │ ▼ │ ┌──────────────┐ │ │ REFACTOR │ │ │ 在测试 │ │ │ 保持通过 │ │ │ 的前提下 │ │ │ 清理代码 │ │ └──────┬───────┘ │ │ 下一个功能 │ └───────────────────────────┘核心规则:
- RED:在编写实现前,测试必须失败
- GREEN:只写刚好能通过测试的代码(不多写)
- REFACTOR:改善结构,测试必须保持通过
- 循环:一次一个功能,始终按此顺序
安全三层防御
Section titled “安全三层防御”┌─────────────────────────────────────────────────────────────┐│ 安全三层防御 │├─────────────────────────────────────────────────────────────┤│ ││ 时间 ──────────────────────────────────────────────────> ││ 事前 事中 事后 ││ ││ ┌─────────────────┐ ┌─────────────────┐ ┌───────────────┐ ││ │ 第一层 │ │ 第二层 │ │ 第三层 │ ││ │ 预防 │ │ 检测 │ │ 响应 │ ││ │ │ │ │ │ │ ││ │ - MCP 审查 │ │ - 提示注入 │ │ - 密钥 │ ││ │ - 版本锁定 │ │ 检测 │ │ 轮换 │ ││ │ - .claudeignore │ │ - 输出扫描 │ │ - MCP │ ││ │ - 输入 Hook │ │ - 异常监控 │ │ 隔离 │ ││ │ - 权限设置 │ │ - 密钥泄露 │ │ - 历史 │ ││ │ │ │ 检测 │ │ 重写 │ ││ │ │ │ │ │ │ ││ │ 目标:在入口 │ │ 目标:实时 │ │ 目标:限制 │ ││ │ 点阻断威胁 │ │ 捕获攻击 │ │ 损失并恢复 │ ││ └─────────────────┘ └─────────────────┘ └───────────────┘ ││ ││ 采纳路径: ││ 个人开发者 → 第一层基础 ││ 团队 → 第一层 + 第二层 ││ 企业 → 全部三层 ││ │└─────────────────────────────────────────────────────────────┘密钥泄露应急时间线
Section titled “密钥泄露应急时间线”密钥(API 密钥、令牌、密码)泄露时的紧急响应:
密钥泄露 — 应急响应时间线═══════════════════════════════════════════════════════════
0 分钟 15 分钟 1 小时 24 小时│ │ │ │▼ ▼ ▼ ▼┌──────────────────┐ ┌─────────────────┐ ┌────────────────┐│ 前 15 分钟 │ │ 第一个小时 │ │ 前 24 小时 ││ 止血 │ │ 评估损失 │ │ 补救 ││ │ │ │ │ ││ 1. 立即吊销 │ │ 3. 审计 git │ │ 6. 轮换所有 ││ 密钥 │ │ 历史 │ │ 相关凭据 ││ │ │ │ │ ││ 2. 确认泄露 │ │ 4. 扫描依赖 │ │ 7. 通知团队 ││ 范围 │ │ 中的密钥 │ │ /合规部门 ││ │ │ │ │ ││ │ │ 5. 检查 CI/CD │ │ 8. 记录事件 ││ │ │ 日志 │ │ 时间线 │└──────────────────┘ └─────────────────┘ └────────────────┘
严重程度指南:┌─────────────────────────────────────────────────────────┐│ 仅本地(未推送) → 吊销 + 轮换(步骤 1-2) ││ 已推送到远程 → 完整时间线(步骤 1-8) ││ 公开仓库泄露 → 假设已被利用,轮换所有凭据, ││ 检查是否有滥用 │└─────────────────────────────────────────────────────────┘研究、规格、编码流水线
Section titled “研究、规格、编码流水线”┌─────────────────────────────────────────────────────────┐│ 1. 研究(如 Perplexity 深度研究) ││ "研究 Next.js 15 中 JWT 刷新令牌的最佳实践" ││ → 输出:附带来源的详细规格说明 │└───────────────────────────┬─────────────────────────────┘ | 导出为 spec.md┌─────────────────────────────────────────────────────────┐│ 2. CLAUDE CODE ││ "按照 spec.md 实现 JWT 刷新令牌, ││ 使用推荐的 jose 库。" ││ → 输出:带测试的可工作实现 │└─────────────────────────────────────────────────────────┘┌─ "我要高质量代码" ──────────→ Claude TDD 工作流│├─ "我要先写规格再写代码" ────→ 规格优先工作流│├─ "我需要规划架构" ──────────→ 计划驱动开发│├─ "我在迭代某个功能" ────────→ 迭代优化工作流│└─ "我需要方法论理论" ────────→ 方法论概述