详细解释Claude Code的Plan Mode适用场景——在多文件修改前让模型先输出执行计划,避免架构错误扩散到大量文件后再发现。
大多数 Claude Code 用户发现 Plan Mode 都是偶然——他们在会话中运行带 --plan 的命令或输入 /plan,结果 Claude 开始写编号列表而不是代码。本能反应是把它当作一个多余的步骤,直接回去执行。
这种本能对于特定类型的任务是错误的。
在正常的 Claude Code 操作中,你描述你想要什么,Claude 立即开始写代码。Plan Mode 在你的指令和任何代码变更之间插入了一个步骤。Claude 读取所有相关文件和上下文,然后生成一份书面计划——它打算做什么、按什么顺序、有什么取舍。不修改任何文件。不运行任何命令。
# 在 Plan Mode 下启动会话
claude --plan
# 或者在会话中途切换
/plan
# 当你审查并批准计划后
/execute
Claude 生成的计划是具体的:
最昂贵的失败模式是 Claude 选择了一个方案、在十几个文件中实现了它,而你到最后才发现这是错误的架构。
"在用户订阅过期时添加邮件通知"听起来很清楚。但正确的实现取决于你是否有任务队列、使用什么邮件服务、是否需要幂等性。Claude 会做假设。没有 Plan Mode,你要到代码写完之后才知道这些假设是什么。
有了 Plan Mode,你会读到:"我计划使用一个每天运行的 cron 任务通过 Resend 发送。"这时候你可以说"我们用 BullMQ,不是 cron",在任何文件被修改之前。
当重构涉及多个文件时,你首先需要的是变更的地图。Plan Mode 恰好生成这个:
auth 中间件重构的计划变更:
1. src/middleware.ts — 将 token 验证提取为 validateToken()
2. src/lib/auth.ts — 添加 validateToken() 函数,更新类型
3. src/app/api/auth/[...nextauth]/route.ts — 移除重复的验证
4. src/app/api/webhooks/stripe/route.ts — 使用共享的 validateToken()
风险:Stripe webhook 使用不同的验证路径,
可能需要特殊处理——我会在实现中标记这一点。
阅读这个计划需要 30 秒,在 Claude 开始修改文件之前告诉你它的代码库心智模型是否正确。
身份验证流程、支付处理、数据迁移、安全敏感路径——Plan Mode 为你提供了一个与变更风险相匹配的正式审查步骤。
Plan Mode 在范围小、风险低的任务上是额外开销。
单文件、定义明确的变更
样板生成和脚手架搭建
紧凑反馈循环中的迭代改进
如果出错只需 5 分钟就能重做的任何事情
实用测试:如果你能用一句话描述你想要什么,并且能立即识别出正确的实现——跳过 Plan Mode。
claude --plan
"我需要给 API 添加多租户。每个用户属于一个组织,
所有数据按 org_id 过滤,在 Postgres 级别实现行级安全。
当前 schema 在 /prisma/schema.prisma。
先从规划方案开始。"
当 Claude 生成计划时,批判性地阅读它:
它是否正确理解了现有结构?
它计划触及的文件是正确的吗?
它遗漏了什么吗?
它对你的技术栈的假设正确吗?
如果计划错了,用直白的语言纠正:
"计划看起来没问题,但你遗漏了 /src/app/api/webhooks 中的
webhook 处理器——那些也查询数据库,需要 org_id 过滤。"
Claude 修正。你迭代直到计划正确。然后:
/execute
一个常见担忧:Plan Mode 是否花费更多?
规划步骤确实消耗 token。但失败的实现也消耗 token——读取文件、写错代码、运行失败的测试、尝试修正。一个需要多次修正尝试的搞砸的重构,轻松花费一个成功的计划实现的 3–5 倍 token。
对于涉及超过 3 个文件或具有非明显依赖关系的任务,Plan Mode 几乎总是比直接执行更节省 token。
在大任务的各个方面启动并行 subagents 之前,在编排器中进行一次规划阶段,确保每个 subagent 有清晰、不重叠的范围:
claude --plan
"我们需要添加一个通知系统:通过 Resend 发邮件、
通过通知表发应用内通知、通过 Expo 发推送通知。
规划如何将这个拆分成并行 subagents,
避免文件冲突。"
一旦你批准了协调地图,在知道它们的工作不会冲突的情况下生成 subagents。
一个问题决定了是否使用 Plan Mode:"在这项工作开始之前,我是否想要审查一份方案文件?"
如果在人与人协作中回答是 → 与 Claude 协作时也是是。Plan Mode 就是那份方案文件,在做任何变更之前几秒钟内生成、可审查。
从 Claude Code 获得最多收益的开发者把它当作需要简报的合作者——而不是需要指令的执行者。Plan Mode 就是你写简报的方式。