Plan Mode 使用指南
什么是 Plan Mode
Plan Mode 是 Claude Code 的一种特殊工作模式。在默认模式下,Claude 会在理解你的需求后直接开始编写和修改代码。而在 Plan Mode 下,Claude 会先探索代码库、分析问题,然后生成一份详细的执行计划,等待你审批后再动手实施。
你可以把它理解为:
- 默认模式 = 直接开工,边做边调整
- Plan Mode = 先画蓝图,确认后再施工
什么时候应该使用 Plan Mode
Plan Mode 在以下场景中特别有用:
- 大规模重构:涉及多个文件的架构调整
- 新功能开发:需要在多个模块中添加代码的复杂功能
- 不熟悉的代码库:你想先了解 Claude 对项目的理解再让它动手
- 高风险操作:修改核心模块、数据库结构等不容易回滚的变更
- 团队协作:需要先确认方案,再分享给团队成员审阅
不太适合 Plan Mode 的场景:
- 简单的 bug 修复(例如修一个 typo)
- 单文件的小改动
- 格式化或重命名等机械性操作
激活 Plan Mode
有两种方式进入 Plan Mode。
方式一:使用 Shift+Tab 切换
在 Claude Code 输入框中,按 Shift+Tab 可以在不同模式之间切换。你会看到输入框左侧的模式指示器变化:
> (默认模式,正常输入)plan> (Plan Mode,规划模式)当看到 plan> 提示符时,你就已经进入了 Plan Mode。再次按 Shift+Tab 可以切回默认模式。
方式二:使用提示词触发
你也可以在普通模式下,通过在提示中明确要求 Claude 先制定计划:
> 请先制定一个计划,不要直接修改代码。我想给用户模块添加角色权限功能。或者更直接地:
> 帮我分析一下如何重构 src/services/ 目录的代码结构,先给出方案,不要动代码。这种方式的灵活性更高,你可以在任何时候要求 Claude 进入规划状态。
Plan Mode 的工作流程
进入 Plan Mode 后,Claude 的工作流程如下:
第一步:探索代码库
Claude 会自动阅读相关文件、分析项目结构、理解代码依赖关系。你会看到它在读取文件:
plan> 我想将用户认证从 session 迁移到 JWT
Claude 正在探索代码库...- 读取 src/auth/session-manager.ts- 读取 src/middleware/auth.ts- 读取 src/routes/user.ts- 读取 src/config/auth.config.ts- 分析 package.json 中的依赖...第二步:生成执行计划
探索完成后,Claude 会输出一份结构化的计划:
## 迁移计划:Session -> JWT 认证
### 需要修改的文件
1. **package.json** - 添加 jsonwebtoken 和 @types/jsonwebtoken 依赖
2. **src/config/auth.config.ts** - 添加 JWT 配置项 - JWT_SECRET - JWT_EXPIRES_IN - JWT_REFRESH_EXPIRES_IN
3. **src/auth/jwt-manager.ts** (新建) - generateAccessToken() - generateRefreshToken() - verifyToken()
4. **src/middleware/auth.ts** - 修改认证中间件 - 从验证 session 改为验证 JWT - 添加 token 刷新逻辑
5. **src/routes/user.ts** - 修改登录和登出端点 - login: 返回 JWT token 而非设置 session - logout: 实现 token 黑名单机制
6. **src/auth/session-manager.ts** - 标记为废弃 - 添加 @deprecated 注释 - 迁移完成后删除
### 执行顺序1. 安装依赖2. 创建 JWT 配置和工具3. 修改认证中间件4. 更新路由处理5. 编写测试6. 清理旧代码
### 风险评估- 需要同步更新前端的 token 存储逻辑- 现有用户的 session 在迁移后会失效,需要考虑过渡方案第三步:等待审批
计划输出后,Claude 会暂停并等待你的反馈。此时你有几个选择。
审批、修改或拒绝计划
批准执行
如果你对计划满意,直接告诉 Claude 开始执行:
> 计划看起来不错,请开始执行。或者简短地:
> 开始吧Claude 会按照计划逐步实施修改。
修改计划
如果你想调整计划中的某些部分:
> 计划基本可以,但有几点修改:> 1. 不需要 token 刷新机制,我们用短期 token + 重新登录的方式> 2. session-manager.ts 直接删除,不需要保留> 3. 先不写测试,我后面单独处理Claude 会根据你的反馈调整计划,然后再次确认。
拒绝计划
如果你觉得方向完全不对:
> 这个方案太复杂了。我其实只想把 session 存储从内存改到 Redis,认证机制不变。请重新规划。Claude 会根据新的理解重新制定计划。
部分执行
你也可以选择只执行计划的一部分:
> 先只做第 1 和第 2 步(安装依赖和创建 JWT 工具),其他的等我确认后再继续。Plan Mode 的最佳场景
场景一:大规模重构
plan> 我们的项目目前所有 API 调用都直接用 fetch,我想统一迁移到 axios, 并添加请求拦截器处理认证 token 和错误重试。Plan Mode 会帮你梳理所有需要修改的文件,规划迁移的步骤和顺序。
场景二:新功能开发
plan> 给我们的博客系统添加评论功能,需要支持: - 多级嵌套回复(最多 3 层) - 评论点赞 - @提及其他用户 - 评论通知复杂功能涉及数据库设计、API 端点、前端组件等多个层面,Plan Mode 能确保所有方面都被考虑到。
场景三:复杂调试
plan> 用户反馈在高并发下订单会出现重复扣款。请分析可能的原因并制定排查方案。Claude 会分析相关的代码路径,找出可能存在竞态条件的地方,然后提出修复方案。
场景四:技术栈迁移
plan> 将项目的状态管理从 Redux 迁移到 Zustand。项目里有 12 个 Redux slice, 涉及约 40 个组件。这种大规模迁移必须有清晰的计划,否则很容易遗漏或出错。
Plan Mode vs 直接执行:如何选择
| 维度 | 直接执行 | Plan Mode |
|---|---|---|
| 速度 | 更快,省去规划时间 | 较慢,需要先规划后执行 |
| 适合任务规模 | 小型、明确的任务 | 大型、复杂的任务 |
| 可控性 | 较低,Claude 自行决定 | 较高,你审批后再执行 |
| 出错风险 | 小任务低,大任务高 | 通过预审降低风险 |
| 上下文消耗 | 较少 | 较多(规划+执行) |
| 回滚成本 | 依赖 git | 可以在执行前发现问题 |
经验法则
- 修改不超过 3 个文件 -> 直接执行
- 修改 3-10 个文件 -> 视复杂度决定
- 修改超过 10 个文件 -> 建议使用 Plan Mode
- 涉及架构变更 -> 始终使用 Plan Mode
- 不确定方案是否正确 -> 使用 Plan Mode 先验证
高效使用 Plan Mode 的技巧
提供充分的上下文
Plan Mode 的质量取决于你提供的信息。越具体,计划越好:
<!-- 不够好 -->plan> 优化性能
<!-- 更好 -->plan> 首页加载时间超过 5 秒,主要瓶颈是: 1. 初始 bundle 过大(2.3MB) 2. 首屏有 3 个瀑布式 API 请求 3. 图片未做懒加载 请针对这三个问题制定优化方案。分阶段规划
对于特别大的任务,可以让 Claude 分阶段规划:
plan> 将 JavaScript 项目迁移到 TypeScript。项目有 200+ 文件。 请先制定第一阶段的计划:基础设施搭建和核心模块迁移。结合 Git 使用
在 Plan Mode 执行前,确保你的 Git 工作区是干净的:
git stash # 暂存当前修改git checkout -b refactor/auth-jwt # 创建新分支这样即使计划执行后发现问题,也能轻松回滚。
小结
Plan Mode 是 Claude Code 处理复杂任务的利器。核心要点:
- 何时使用:大规模修改、新功能开发、架构变更等复杂任务
- 如何激活:Shift+Tab 切换或通过提示词触发
- 工作流程:探索代码 -> 生成计划 -> 等待审批 -> 执行实施
- 灵活控制:可以批准、修改、拒绝或部分执行计划
- 经验法则:修改文件越多、风险越高,越应该使用 Plan Mode