
很多开发者第一次接触 Claude Code都以为它只是一个“能在终端里聊天的 AI”用起来无非是输入问题、复制答案。但真正到了项目级开发场景你会发现这种用法远远不够复杂代码库需要多个角色分工协作高价值操作需要自动化守卫外部数据源需要统一接入CI 流水线需要非交互式执行。这些能力单靠一句 prompt 是做不到的。本文把这套高频使用的进阶能力从头到尾梳理一遍覆盖子代理、技能、钩子、MCP、工作树、无头模式以及与之配合的权限模式、输出控制、会话恢复等辅助能力并给出可以直接复制的配置示例和命令。无论你是刚开始接触 CLI 编程助手的新手还是已经被“AI 写码”吸引但觉得无法工程化的开发者这篇文章都能帮你把 Claude Code 从“玩具”用成“生产力工具”。1. Claude Code 是什么为什么要学高级玩法1.1 从对话式提问到工程化协作Claude Code 是 Anthropic 推出的命令行 AI 编程工具它不像网页版聊天窗口那样只回答问题而是直接运行在项目目录里可以读取代码、搜索文件、执行命令、修改代码、运行测试。也就是说它不只是“给你讲思路”而是真的会动手参与开发。早期使用者大多停留在这几种用法上让 AI 解释报错、生成某个函数、写一段 SQL。这些需求的共同特点是“一次性”上下文少不涉及项目整体结构也不需要权限控制和自动化。但一旦面对大型仓库问题就变了业务模块几十个多个分支并行开发构建流程一堆命令外部数据源好几个靠单次对话根本管理不过来。这时候必须引入类似“团队协作”的机制让主 Agent 拆任务让子代理分头处理把高频操作固化成技能在危险操作前挂上自动拦截钩子通过 MCP 接入外部数据源用 Git Worktree 隔离实验分支用无头模式让 AI 在无人值守时也能执行任务。1.2 九个进阶能力一览这里先给你一张总览表后面每个功能都会专门展开。序号能力一句话说明1子代理 Subagents为特定任务创建专用 AI 角色分工处理复杂任务2技能 Skills将可复用的操作流程沉淀为技能文件3钩子 Hooks在 AI 调用工具前后触发脚本实现自动拦截与检查4MCP 服务器通过 Model Context Protocol 接入外部数据源和工具5工作树 Worktrees利用 Git worktree 在不影响主分支的前提下并行开发6无头模式 Headless用-p参数非交互式执行任务适合 CI/CD7权限模式 Permission Modes精细化控制 AI 能执行的操作范围8输出控制 Output Control以 JSON 等结构化格式输出结果便于程序处理9会话恢复 Session Resume恢复历史会话上下文跨任务继续工作后面第 3 到第 8 章会着重讲前六项第 8 章的组合实战会把九个功能全部串起来。1.3 本文适合哪些读者已经简单用过 Claude Code但只停留在提问和生成代码阶段。正在做技术选型想知道 AI 编程工具能不能接入团队工作流。负责 CI/CD想尝试把 AI 编程助手引入自动化流水线。想学习子代理、钩子、MCP 等概念的底层逻辑和最佳实践。读完这篇文章你会掌握每个功能的作用、配置方式、关键命令、常见坑点以及一套组合使用的方法论。2. 环境准备与基础工程结构2.1 安装与登录Claude Code 以 npm 包形式分发安装命令如下npm install -g anthropic-ai/claude-code安装完成后检查版本claude --version首次运行需要登录授权。当你输入claude进入交互界面时CLI 会引导你完成身份验证。这一步通常需要你拥有对应平台的账户访问权限并且会明确提示 Claude Code 将读取哪些项目信息。这里建议你注意登录时选择最小授权范围只在需要用到的项目目录里运行 Claude Code不要把整个服务器账户都暴露出去。后续如果要调整权限也可以通过claude交互界面或配置文件修改。命令参数会随着版本迭代频繁调整比较稳妥的做法是用claude --help查看当前版本支持的全部选项不要盲目记忆网上过时的参数。2.2 初始化 Claude Code 工程目录推荐在 Git 仓库根目录中使用 Claude Code原因有两个一是方便利用 Git 追踪 AI 对代码的修改二是 Claude Code 本身也能利用 Git 信息理解项目历史。进入项目目录后直接运行cd your-project claude首次进入时Claude Code 会在项目中生成或识别以下结构your-project/ ├── .claude/ │ ├── agents/ # 子代理配置 │ ├── skills/ # 技能配置 │ ├── hooks/ # 钩子脚本 │ └── settings.json # 全局与项目设置 ├── CLAUDE.md # 项目说明文件供 AI 阅读 └── .gitignore # 确认是否忽略敏感配置其中CLAUDE.md是最基础的项目背景说明Claude Code 会自动读取这个文件。你可以把项目的技术栈、目录结构、编码规范、常用命令写进去。比如# 项目说明 这是一个订单管理服务。 ## 技术栈 - 后端Python 3.11 FastAPI - 数据库PostgreSQL 15 - 构建poetry ## 常用命令 - 启动poetry run uvicorn app.main:app --reload - 测试poetry run pytest - 静态检查poetry run flake8 ## 规范 - 所有新增接口必须写类型注解。 - 禁止在代码中硬编码密钥。这个文件相当于给 AI 的一份“入职手册”后面的子代理、技能、钩子都会在此基础上工作。2.3 验证基础能力配置好CLAUDE.md后输入一个基础指令验证 AI 能否正确理解项目请阅读 CLAUDE.md然后告诉我这个项目的启动命令和目录结构。如果 AI 的回答与文件内容一致说明基础配置生效。接下来就可以逐步加入高级功能。3. 子代理把任务分工做细3.1 子代理解决什么问题单个 Claude Code 会话在处理小型任务时够用但遇到大型需求就容易“眉毛胡子一把抓”。比如你让它“检查整个项目并修复所有潜在问题”它可能会在一个会话里反复横跳改完前端又去改后端缺乏一致性和专注度。子代理的思路是“专人专事”。你可以为每个子代理定义角色、擅长领域、可用工具甚至专用模型。主 Agent 遇到复杂任务时会把子任务委派给对应的子代理让它们独立分析并返回结果。这样做的好处有三个任务边界清晰每个子代理只负责一种工作prompt 更短上下文更聚焦。可复用团队可以沉淀一批常用子代理比如代码审查、SQL 优化、依赖升级。权限控制子代理的工具权限可以独立配置避免它使用不必要的危险命令。3.2 创建第一个代码审查子代理在.claude/agents/目录下创建一个 Markdown 文件文件名就是子代理的名称。子代理配置使用 frontmatter 格式包含name、description、tools、model等字段。示例文件路径.claude/agents/code-reviewer.md--- name: code-reviewer description: 代码审查代理负责审查代码质量、安全隐患和边界条件适合在代码提交前使用。 tools: Read, Grep, Glob, Bash model: sonnet --- 你是一名资深代码审查工程师。当收到代码审查任务时按以下流程执行 1. 先用 Grep 和 Glob 定位相关文件。 2. 阅读核心代码重点检查 - 异常处理是否完善是否存在未捕获的边界条件 - 是否存在安全风险SQL 注入、路径穿越、硬编码密钥 - 是否有明显的性能问题无索引查询、N1 查询等 - 命名是否清晰函数是否过长 3. 输出报告 - 问题列表按严重程度排序 - 每个问题对应的文件路径和行号 - 具体修复建议 注意只输出审查结果不要直接修改代码。关键字段含义如下name子代理名称用于在主会话中唤起。description子代理的职责说明主 Agent 会根据这个描述决定何时调用它。tools允许使用的内置工具白名单。这里只给了读取和搜索类工具不允许写文件。model使用的模型档位。不同模型的质量和速度不同按需选择。在主会话中唤起子代理可以直接在提示词中写出子代理名称请使用 code-reviewer 子代理审查 src/services/order_service.py 的代码输出安全问题和改进建议。或者选中代码后通过斜杠命令调用具体交互方式以当前版本为准。3.3 子代理实战注意事项创建子代理时有几个容易踩的坑描述不够具体。description是主 Agent 选择子代理的依据。写得含糊主 Agent 就不会在合适时机调用它。工具权限给太多。子代理应当坚持最小权限。审查代理只需要读不需要写如果给了Edit或Bash它容易画蛇添足直接改代码。输出格式没约定。在子代理正文里明确输出结构主 Agent 才能对接结果。否则子代理返回几百行文本主 Agent 也很难消化。子代理的数量也不是越多越好。团队早期先沉淀 2 到 3 个高频角色比如代码审查、测试生成、依赖分析等流程跑顺了再扩充。4. 技能沉淀可复用的操作手册4.1 技能与子代理的区别子在代理解决的是“角色分工”问题技能解决的是“经验复用”问题。一个技能的实质是把你希望 AI 遵循的操作步骤写成一个文件。当触发条件满足时Claude Code 会自动加载这个文件并按其中的流程执行。技能适合承载那些“每次做都要重复一遍”的检查项例如项目规范的静态检查步骤发布前的自检清单新模块创建的脚手架流程代码提交前的回归测试步骤子代理更像“员工”技能更像“SOP 手册”。员工干活前先看手册效率和质量都会稳定很多。实际使用中子代理也可以引用技能文件两者是配合关系。4.2 写一个 Python 项目规范检查技能在.claude/skills/目录下创建技能文件夹并放置一个SKILL.md文件。文件同样使用 frontmatter 格式。示例文件路径.claude/skills/python-lint/SKILL.md--- name: python-lint description: 当用户要求执行代码规范检查或 lint 时使用。触发词包括规范检查、lint、代码风格检查。 --- 执行 Python 项目规范检查时依次执行以下步骤 1. 检查是否安装了 flake8 如果没有安装先执行pip install flake8 2. 运行静态检查 flake8 app tests 3. 检查未使用的导入 flake8 --selectF401 app tests 4. 运行一轮快速测试确认改动没有破坏已有功能 python -m pytest tests/ -x -q 5. 汇总检查结果如果存在错误按文件路径分组输出并给出修复建议。技能文件的内容会作为上下文注入 AI 的当前对话。当用户说“提交之前跑一遍规范检查”时AI 就会自动加载python-lint技能按照里面的步骤执行。description字段非常重要Claude Code 往往通过描述中的触发词来判断何时加载技能。写得越明确命中率越高。因此建议在描述里同时写清楚功能说明和触发词。4.3 技能的实际调用方式技能不一定要通过“命令”调用。更常见的用法是AI 在阅读用户指令后自动判断是否关联某个技能。比如用户说“我要发版了帮我做一次检查”AI 会加载发布检查技能用户说“新加了一个模块帮我补测试”AI 会加载测试生成技能。所以技能的命名和描述要尽量贴近自然语言的使用场景。比如“python-lint”这个名称适合内部管理但description里必须包含“规范检查”“lint”“代码风格”等人类会使用的词汇。此外技能也可以主动在CLAUDE.md中声明。例如在项目说明中写上## 质量要求 - 每当修改 Python 文件后必须执行 .claude/skills/python-lint 中的规范检查流程。这样 AI 在每次修改完代码后都会倾向先检查再汇报。技能就从一个“手动命令”变成了“自动行为规范”。5. 钩子让关键操作拥有“哨兵”5.1 钩子的执行时机钩子是 Claude Code 提供的自动触发机制它允许你在 AI 调用工具之前、之后或者其他生命周期节点执行自定义脚本。你可以把它理解成 Git 的 pre-commit 钩子只不过触发事件完全不同。Claude Code 常见的钩子事件包括事件触发时机典型用途PreToolUseAI 准备调用某个工具之前拦截危险命令、检查文件路径PostToolUseAI 调用工具完成之后自动格式化、自动跑测试Notification需要通知用户时发送消息到企业 IMStopAI 完成一次任务回答后记录日志、触发后续流水线UserPromptSubmit用户提交提示词后做输入预处理或敏感词过滤钩子通过.claude/settings.json配置。当对应事件发生时Claude Code 会把包含事件信息的 JSON 数据通过标准输入传给指定命令命令的输出可以控制 AI 能否继续执行。5.2 用 PreToolUse 钩子保护危险命令下面这个示例实现了一个安全闸门当 AI 准备通过 Bash 工具执行命令时钩子脚本会检查命令内容如果发现删除性操作或生产环境敏感命令就直接拦截。配置文件路径.claude/settings.json{ hooks: { PreToolUse: [ { matcher: Bash, hooks: [ { type: command, command: python3 .claude/hooks/preflight.py } ] } ] } }钩子脚本路径.claude/hooks/preflight.py#!/usr/bin/env python3 import json import sys def main(): # Claude Code 通过 stdin 传入事件信息 data json.load(sys.stdin) tool_input data.get(tool_input, {}) command tool_input.get(command, ) blocked_keywords [ git push --force, rm -rf, DROP TABLE, production, ] for keyword in blocked_keywords: if keyword in command: # 输出 JSON 并设置阻断标志 result { decision: block, reason: f命令包含危险关键词: {keyword}已自动拦截。 } print(json.dumps(result)) return # 放行 print(json.dumps({decision: allow})) if __name__ __main__: main()注意脚本的输出格式钩子脚本需要向标准输出打印一段 JSON包含decision字段值为allow或block。block时会携带reason告诉用户为什么被拦截。创建脚本后需要赋予执行权限或者在配置中直接使用python3方式运行。强烈建议在settings.json中写相对仓库根的路径并在脚本开头判断文件是否存在避免路径问题导致钩子失效。5.3 验证钩子与日志配置完成后可以做一个简单验证在 Claude Code 中故意请求 AI 执行rm -rf /tmp/test_dir观察返回结果。如果钩子生效AI 会收到拦截原因并停止执行该命令。钩子带来的价值不仅在安全防护。你还可以用 PostToolUse 钩子实现“AI 每次写完文件后自动执行格式化”{ hooks: { PostToolUse: [ { matcher: Edit|Write, hooks: [ { type: command, command: bash .claude/hooks/auto-format.sh } ] } ] } }auto-format.sh内部可以调用flake8、prettier、go fmt等格式化命令。要注意钩子脚本执行时间不能太长否则会拖慢整个对话节奏钩子脚本出错时要有日志记录并保证不会阻塞用户手动操作。6. MCP接入外部工具与数据源6.1 MCP 的价值与两种接入方式MCP 全称 Model Context Protocol是一套用于连接 AI 模型与外部数据源、工具的开放协议。你可以把它理解为 AI 世界的“USB 接口”任何符合 MCP 协议的数据源、搜索引擎、数据库、API 服务都可以通过统一的方式接入 Claude Code。实际项目中最常见的接入场景包括接入公司内部知识库让 AI 在回答问题时检索文档。接入项目管理工具让 AI 读取工单状态并更新任务进度。接入数据库让 AI 通过 MCP 查询数据再进行分析。接入自定义脚本服务复用团队已有工具链。MCP 服务器的接入方式主要有两种本地 stdio 模式CLI 直接启动一个本地进程适合本地文件系统、本地脚本工具。远程 HTTP/SSE 模式连接一个远程服务适合企业内部知识库等集中部署的平台。6.2 配置一个本地 MCP 服务器在 Claude Code 中使用claude mcp add命令添加 MCP 服务器。以下命令示例表示添加一个本地文件系统 MCPclaude mcp add local-fs -- npx -y modelcontextprotocol/server-filesystem /path/to/docs参数含义local-fsMCP 服务器的自定义名称。--后面是启动该服务器的命令。npx -y ...通过 npx 临时启动 MCP 服务器。/path/to/docs服务器对外暴露的目录。添加完成后可以查看当前配置claude mcp list如果 MCP 服务器是远程服务连接命令类似claude mcp add --transport http internal-wiki -- http://internal-wiki.example.com/mcp实际项目中的具体包名和参数请以你使用的 MCP 服务器文档为准。这里最核心的是理解流程用claude mcp add注册 → 用claude mcp list校验 → 在对话中让 AI 使用对应工具。配置完成后你可以直接问 AI“用 local-fs 读取 /path/to/docs 里的 README 文件总结项目背景。”AI 会自动通过 MCP 工具完成读取而不需要你手动复制文件内容。6.3 MCP 安全边界MCP 让 Claude Code 能访问更多信息也意味着更大的风险。一定注意以下几点不要给 MCP 服务器过大的文件系统权限。只暴露必要目录。远程 MCP 必须走内网或可信网络涉及生产环境数据时需要在测试环境先行验证。敏感数据脱敏。日志和对话记录中可能包含数据内容接入真实客户数据前要做脱敏演练。MCP 也会失败。给 AI 的提示词中写明“如果 MCP 查询失败请明确报告”避免 AI 编造数据。7. 工作树与无头模式并行与自动化的核心7.1 Git Worktree 隔离实验分支Git worktree 允许你在同一个仓库中同时检出多个工作目录每个目录对应不同分支。相比传统切分支它的好处是并行的两个目录互不干扰极大降低了“切换分支后代码不兼容”的焦虑。在 Claude Code 场景里worktree 的价值尤其明显你可以在一个干净的新分支目录中让 AI 自由改代码、跑测试即使把代码改坏了也不会影响主分支正在进行的其他工作。创建 worktree 的命令git worktree add ../my-service-preview -b feature/claude-demo这条命令会在项目同级目录下创建一个my-service-preview目录并新建feature/claude-demo分支。之后可以在这个目录中运行 Claude Codecd ../my-service-preview claude这样做的好处是主分支工作区保持干净不会被 AI 的尝试性修改污染。利用 Git 的 diff 能力随时查看 AI 改了什么。验证通过后把 worktree 分支合并回主干即可。使用结束后清理 worktreegit worktree remove ../my-service-preview注意删除前确保分支已经合并或已把必要改动提交。worktree 目录中如果有未提交的修改移除可能失败。7.2 Headless 模式非交互式执行无头模式指不进入交互界面直接通过命令行参数执行单次任务。它非常适合 CI/CD 流水线、定时任务、脚本批处理等场景。基础用法claude -p 阅读项目 README总结项目功能并输出 markdown 文件-p或--print参数让 Claude Code 执行指定提示词后直接退出。常用组合参数如下claude -p 检查代码中是否有未使用的导出 \ --output-format json \ --max-turns 20 \ --permission-mode acceptEdits参数说明--output-format json以 JSON 格式输出结果适合后续被程序解析。--max-turns 20限制最大执行轮数防止 AI 陷入长循环。--permission-mode acceptEdits允许 AI 自动接受文件编辑类操作。生产环境中建议使用更严格的模式。无头模式还支持从文件读取提示词claude -p $(cat prompts/analyze.md) --output-format json result.json7.3 无头模式与 CI 组合把无头模式接入 CI 时推荐的做法是在 CI 中拉取代码后创建临时 worktree。运行claude -p执行自动化分析或修复。将 JSON 输出保存为构建产物。检查产物中是否存在阻断级别的问题决定是否让 CI 继续。例如一个简单的脚本流程git worktree add /tmp/ci-worktree -b ci/auto-fix cd /tmp/ci-worktree claude -p 运行静态检查并修复所有 P1 级别告警 \ --output-format json \ --max-turns 50 \ --permission-mode acceptEdits /tmp/claude-result.json git add -A git commit -m ci: auto fix by claude git push origin ci/auto-fix在把 AI 接入 CI 之前务必先在本地反复测试确认它不会产生不可控的副作用。CI 环境中的权限应该比本地开发环境更严格而不是更宽松。8. 九个功能组合实战一次完整任务演示8.1 场景描述与任务拆分假设你现在有一个 Python 后端项目需要完成一个新功能给订单接口增加“根据日期范围统计订单数量”的端点。要求如下不污染当前主分支。代码必须通过 flake8 检查。自动补充基础测试。运行结果以结构化方式保存。如果把所有事情都压在一条指令里AI 容易顾此失彼。更好的方式是用九个功能拆解流程用 Git Worktree 创建隔离分支。在 worktree 中启动 Claude Code。用无头模式执行“新增接口”任务。用技能执行规范检查。用钩子拦截危险操作并用 PostToolUse 自动验证。用子代理审查生成代码的质量。通过输出控制把结果保存为 JSON。通过权限模式控制 AI 操作范围。用会话恢复机制在后续修补时继续上下文。8.2 组合执行脚本设计下面是一个可参考的命令组合。第一步创建 worktreegit worktree add ../order-service-preview -b feature/add-order-stats cd ../order-service-preview第二步用无头模式让 AI 完成主要开发任务claude -p 在现有订单服务中新增一个统计接口要求1. 路由为 GET /orders/stats?start_dateend_date2. 返回 JSON包含总订单数和订单总金额3. 编写对应的 pytest 测试。请阅读 CLAUDE.md 后按项目规范实现。 \ --output-format json \ --max-turns 60 \ --permission-mode acceptEdits \ --continue /tmp/order-preview-result.json参数要点--output-format json保证输出可解析。--max-turns 60防止任务过长导致失控。--permission-mode acceptEdits允许编辑文件但不允许任意执行危险命令。--continue会尝试恢复上次会话上下文适合分阶段任务。第三步用子代理审查 AI 生成的代码claude -p 请使用 code-reviewer 子代理审查 app/api/order.py 和 tests/test_order_stats.py重点是边界条件与安全风险。 \ --output-format json /tmp/order-review.json第四步查看最终输出的 JSONcat /tmp/order-preview-result.json | jq .result8.3 执行效果与结果分析这串命令跑完后你会得到两类结果文件变更worktree 分支中出现新接口代码、测试代码以及可能被自动格式化修改过的文件。结构化日志order-preview-result.json和order-review.json中记录了 AI 的操作过程、最终回复和审查意见。基于这些结果你可以决定是合并分支还是让 AI 继续修补。如果审查报告中发现 P1 级别问题可以直接再跑一轮无头模式修复claude -p 根据 /tmp/order-review.json 中的问题修复 order 接口代码并补充回归测试 \ --continue \ --output-format json --max-turns 40整个流程中人的角色从“手动写代码”变成了“编排任务 把关结果”这正是 Claude Code 工程化使用的核心思路。9. 常见问题与排查清单9.1 功能不生效类问题问题现象常见原因解决思路子代理无法唤起文件不在.claude/agents或者 frontmatter 中名称拼写错误检查文件目录和name字段用小写无空格命名技能没有被加载description中没有包含触发词用户指令无法关联在 description 中增加功能触发词和场景描述钩子没有执行settings.json路径错误或脚本没有可执行权限检查配置路径在本地手动运行一次脚本MCP 服务器连接失败传输模式不匹配、命令路径错误或端口被占用用claude mcp list检查配置用claude mcp doctor类诊断命令查看连接情况Worktree 创建失败原工作区存在未提交的修改先git commit或git stash再创建 worktreeHeadless 模式卡住任务过大超过上下文限制且未设置最大轮数加--max-turns拆分子任务9.2 安全与性能问题问题现象常见原因解决思路AI 执行了不该执行的命令权限模式过于宽松使用更严格的--permission-mode通过钩子拦截高危命令对话上下文迅速膨胀大型文件被整体读取技能文件过大拆分技能文件避免一次性注入无关内容钩子拖慢了操作钩子脚本运行耗时过长将耗时操作异步化或在脚本内限制执行时间结果 JSON 解析失败Claude Code 版本升级导致输出格式变化先在小样本上跑通再在 CI 中正式使用排查问题时有一个通用思路先确认功能配置能被 Claude Code 正确发现再确认执行环境是否正常最后看日志。Claude Code 会在本地日志目录中记录会话和工具调用信息路径通常在用户主目录下的.claude/projects/按项目归档。遇到诡异问题时直接看日志往往比反复猜配置更有效。10. 最佳实践与工程建议10.1 目录与配置管理建议把.claude/目录作为团队工程资产入库管理。这样每个成员本地都能拥有相同的子代理、技能、钩子和项目说明。推荐的结构.claude/ ├── agents/ # 团队共享子代理 ├── skills/ # 团队共享技能 ├── hooks/ # 安全与检查脚本 └── settings.json # 项目级配置settings.json中不要存放个人密钥或账户信息。个人偏好配置应放在用户级配置中避免被误提交到仓库。10.2 安全与权限最小化AI 编程助手本质上有“代你执行命令”的能力权限控制必须从第一天就认真对待。几个落地建议危险操作写进拦截钩子而不是依赖 AI 自觉。生产环境权限严格收紧无头模式尽量使用最小权限模式。数据库、密钥、客户数据等敏感信息不要直接放入对话上下文必要时通过 MCP 按需读取并做脱敏。所有 AI 产生的变更都要经过 Git diff 和人工审查不要因为 AI 写的代码能跑就直接合入主干。在测试环境完整演练先让 AI 在临时分支上跑一遍完整流程确认无副作用后再推广到核心仓库。10.3 渐进式落地路线不必一开始就把九个功能全部铺开建议按下面顺序渐进式引入第一阶段先把CLAUDE.md写好让 AI 理解项目。这一阶段投入最小收益最直接。第二阶段引入子代理和技能把“代码审查”“测试生成”“规范检查”等固定动作沉淀下来。第三阶段配置钩子把安全拦截和自动检查变成强约束而不是靠提示词约束。第四阶段再考虑 MCP、工作树、无头模式与 CI 的结合。这个阶段需要更多工程配套设施例如日志收集、结果解析、失败告警。这样的顺序能保证每一步都在可控制范围内验证不会一次引入过多变量导致问题难定位。11. 总结从“会提问”到“会编排”Claude Code 这类工具的进化速度很快今天写下的命令参数大概率会在几个月后变化。但底层的方法论是稳定的子代理决定分工粒度技能决定经验沉淀钩子决定质量底线MCP 决定信息边界工作树决定并行安全无头模式决定自动化能力。建议你现在找一个真实项目从最基础的CLAUDE.md写起然后逐个加入子代理、技能、钩子最后尝试用 Git Worktree 和无头模式跑一次完整任务。遇到问题就查日志、看官方文档、调整配置。等这套体系跑通了你会发现 AI 编程真正的价值不在于“它替你写了多少行代码”而在于它能否成为你可控、可审查、可复用的工程化协作伙伴。