写给小白的 Claude Code 进阶指南 - Plan Mode

cover

上个月我在重构一个认证模块,直接对 Claude Code 说”帮我把 JWT 换成 OAuth2”。它立刻动手,改了 11 个文件,跑起来一看——登录接口 500,session 全乱了。我花了将近一小时回滚,最后 git checkout . 全部撤销,什么都没留下。

那次之后我才认真看了 Plan Mode 的文档。

不是 AI 不够聪明,是我让它在没有地图的情况下开车。Claude Code 的 Plan Mode,就是那张地图——它让 AI 先把路线说清楚,再踩油门。

什么是 Plan Mode?

一句话:Plan Mode 是 Claude Code 的只读规划模式。

在这个模式下,Claude 可以读代码、搜文件、查结构、问你问题,但不能改任何东西。不能写文件,不能编辑代码,不能跑命令。

你可以把它理解为一个”军师模式”。军师只负责看地图、分析局势、制定计划,但不亲自上阵打仗。等你看完计划说”可以”,它才切换回”将军模式”去执行。

这个设计的核心理念很简单:先想清楚,再动手。

为什么你需要 Plan Mode?

很多人用 AI 编程助手的姿势是这样的:

  1. 输入一个模糊的需求
  2. AI 开始疯狂写代码
  3. 发现不对,修正一下
  4. AI 又写了一堆,又不对
  5. 来回改了五六次,代码已经面目全非
  6. 放弃,从头开始

问题出在哪?AI 太”热心”了。你给它一个方向,它立刻冲出去,沿途做了一堆假设——关于你的架构、你的习惯、你的需求。这些假设大多数情况下是对的,但错误会累积。

DataCamp 有个很形象的计算:假设 AI 每个决策有 80% 的准确率,听起来不错。但一个功能如果涉及 20 个决策点,0.8 的 20 次方等于多少?大约 1%。也就是说,整体做对的概率只有 1%。

Plan Mode 的价值就在这里。它在 AI 动手之前,插入了一个”人工审查”的环节。你可以:

  • 看看 AI 理解得对不对
  • 确认它要改哪些文件
  • 提前发现可能的坑
  • 调整方案再执行

一个判断标准:如果你能用一句话描述要改什么,直接写代码就行。如果不能,先用 Plan Mode。

三种模式,搞清楚区别

Claude Code 有三种工作模式,很多人只用过第一种:

模式 行为 适合场景
Normal Mode 每次改文件、跑命令都会问你 小改动,想逐步确认
Auto-Accept Mode Claude 自动执行,不再询问 信任的操作,执行已确认的计划
Plan Mode 只读模式,只能分析不能改 复杂任务、不熟悉的代码、多文件改动

三种模式的切换很简单,用 Shift + Tab 循环切换:

1
Normal Mode → Auto-Accept Mode → Plan Mode → Normal Mode

底部状态栏会显示当前模式:

  • Normal Mode:默认状态
  • Auto-Accept Mode:显示 ⏵⏵ accept edits on
  • Plan Mode:显示 ⏸ plan mode on

怎么进入 Plan Mode?

有好几种方式,选你最顺手的。

方式一:快捷键 Shift + Tab

最常用的方式。按两次 Shift + Tab,就从 Normal Mode 切换到 Plan Mode。

Windows 用户注意:如果 Shift + Tab 跳过了 Plan Mode,试试 Alt + M。这是一些 Windows 终端的已知问题。

方式二:输入 /plan 命令

从 Claude Code v2.1.0 开始,直接在对话框输入 /plan 就能进入 Plan Mode。对话进行到一半想切换时,这种方式特别方便。

方式三:启动时直接进入

如果你知道这次任务需要先规划,可以启动时就指定:

1
claude --permission-mode plan

方式四:设为默认模式

如果你发现自己每次都先进 Plan Mode,干脆设为默认:

1
2
3
4
5
6
// .claude/settings.json
{
"permissions": {
"defaultMode": "plan"
}
}

方式五:无头模式

适合脚本或 CI 场景,一行命令搞定:

1
claude --permission-mode plan -p "分析认证系统并给出改进建议"

核心工作流:探索 → 规划 → 执行 → 提交

Anthropic 官方推荐了一个四阶段工作流,也是高手们最常用的套路。

第一阶段:探索(Plan Mode)

别急着提需求,先让 Claude 了解现状。

1
2
3
读一下 src/api/ 目录下的代码结构,
看看现有的接口是怎么组织的,
用了什么框架和设计模式。

这一步 Claude 会读文件、搜索代码、分析结构。它不会改任何东西,但会建立起对你项目的理解。

小技巧:用 @ 符号直接引用文件,比如 @src/api/auth.ts,可以帮 Claude 更快地定位上下文,省去它自己搜索的时间。

第二阶段:规划(Plan Mode)

理解了现状之后,提出你的需求,让 Claude 制定计划。

1
2
3
4
5
我想给这个项目添加 OAuth2 认证。
请制定一个详细的实施计划:
- 需要改哪些文件?
- 实施顺序是什么?
- 有哪些边界情况需要注意?

这时候 Claude 会做几件事:

  1. 问你问题 —— 通过 AskUserQuestion 工具,Claude 会提出选择题来澄清需求。比如”你想用哪种 Token 存储方案?A) Redis B) 数据库 C) JWT”
  2. 生成计划 —— 列出要创建的文件、要修改的文件、实施顺序、注意事项

第三阶段:执行(切出 Plan Mode)

计划确认没问题后,按 Shift + Tab 切换到 Normal Mode 或 Auto-Accept Mode,让 Claude 开始执行。

1
2
按照计划开始实施。
先从数据模型开始,每完成一步跑一下测试。

因为 Claude 已经在规划阶段建立了完整的上下文,执行时会更快、更准确。

第四阶段:提交

执行完成后,让 Claude 帮你提交代码。

1
提交代码,写好 commit message,然后开一个 PR。

关键洞察:探索和规划两个阶段消耗的 Token 最少,但带来的价值最大。

一个实用技巧:Ctrl + G 编辑计划

Claude 生成计划后,你可能想调整一些细节。手动在对话里来回改,效率不高。

Ctrl + G,Claude 会把计划用你的默认文本编辑器打开。你可以直接在编辑器里修改、添加注释、调整顺序。保存关闭后,Claude 会读取你的修改,继续基于新计划工作。

这个功能特别适合复杂的计划。比如你想在某个步骤旁边批注”这里要用现有的 helper 函数,不要新建”,直接在编辑器里写就行。

Plan Mode 的最佳实践

用了一段时间后,我总结了几个实用的经验。

1. 保持范围小

Plan Mode 最适合 30 分钟以内能完成的任务。如果一个功能太大,拆成小块,每块走一遍”规划 → 执行 → 提交”的循环。

1
2
3
规划 → 执行 → 提交
规划 → 执行 → 提交
规划 → 执行 → 提交

这种小步快跑的方式,比一次性规划一个大功能效果好得多。

2. 写好 CLAUDE.md

Plan Mode 的输出质量,很大程度上取决于你的 CLAUDE.md 文件写得好不好。这个文件告诉 Claude 你的项目约定、技术栈、编码风格。

Claude 在规划时会读取 CLAUDE.md,如果里面写了”我们用 TypeScript 严格模式”、”接口命名用 I 前缀”,那规划出来的方案就会自动遵守这些规则。

3. 善用多会话并行

如果你同时在做好几个功能,可以开多个 Claude Code 会话。一个在 Plan Mode 里规划下一个功能,另一个在 Auto-Accept Mode 里执行当前功能的代码。

结合 Git Worktree 功能,每个会话在独立的工作目录里运行,互不干扰:

1
2
3
4
5
# 一个会话做认证功能
claude --worktree feature-auth

# 另一个会话修 Bug
claude --worktree bugfix-123

4. 计划偏离时及时纠正

执行过程中,如果发现 Claude 偏离了计划(比如计划说先改数据层,结果它同时改了路由层),立刻按 Shift + Tab 切回 Plan Mode,重新对齐。

及时纠正比事后修复成本低得多。

5. 什么时候不需要 Plan Mode

并不是所有任务都需要 Plan Mode。以下场景直接写代码更高效:

  • 改一个变量名
  • 修一个明显的 Bug
  • 加一行日志
  • 只涉及 1-2 个文件的小改动

记住那个判断标准:能用一句话描述的 diff,不需要 Plan Mode。

Opus Plan Mode:更强大的规划能力

如果你使用 Opus 4.6 模型,Plan Mode 还有一个增强版。通过 /model 命令选择第四个选项”Use Opus in plan mode, Sonnet 4.6 otherwise”,可以让规划阶段使用 Opus(更强的推理能力),执行阶段使用 Sonnet(更快的速度)。

Opus 4.6 拥有 100 万 Token 的上下文窗口,意味着它可以在规划时”看到”更大的代码库。对于大型项目,这个优势非常明显。

写在最后

Plan Mode 看起来是多了一个步骤,但我用下来的感受是:它省掉的不是时间,是那种”改到一半不知道自己在干什么”的焦虑感。

Claude Code 的创建者 Boris Cherny 自己就是这么用的:大部分会话从 Plan Mode 开始,来回讨论直到计划满意,然后切换到 Auto-Accept Mode 让 Claude 全速执行。

回到我那次 OAuth2 重构。后来我用 Plan Mode 重新做了一遍:先让 Claude 读了现有的认证代码,列出要改的 7 个文件和改动顺序,我确认没问题再执行。整个过程 40 分钟,没有一次回滚。

我现在的习惯是:改动超过 3 个文件,先进 Plan Mode。这条规则比”先想清楚再动手”这种话更好用——因为它是可以执行的。