计划模式
计划模式是 Claude Code 的一个强大功能,它允许 Claude 在执行复杂任务前先制定详细计划,然后逐步执行。这种方法提高了任务完成的质量和可预测性。
什么是计划模式
计划模式是一种结构化的工作方式,包含三个阶段:
- 分析阶段:理解任务需求和约束
- 规划阶段:制定详细的执行计划
- 执行阶段:按计划逐步实施
这种方式特别适合复杂、多步骤的任务。
何时使用计划模式
适合使用计划模式的场景
- 大型功能开发
- 系统重构
- 架构变更
- 多文件修改
- 复杂的 bug 修复
- 数据迁移
- 性能优化
- 安全加固
不需要计划模式的场景
- 简单的单文件修改
- 快速的 bug 修复
- 添加简单的功能
- 文档更新
- 配置调整
启用计划模式
显式请求
明确要求 Claude 制定计划:
为重构用户认证系统制定详细计划,
然后等待我的批准再执行自动触发
对于复杂任务,Claude 可能会自动建议使用计划模式:
这是一个复杂的任务,我建议先制定计划。
让我分析需求并提出执行方案。计划的结构
标准计划格式
一个好的计划通常包含:
任务:重构用户认证系统
目标:
- 提高安全性
- 改善代码可维护性
- 保持向后兼容
分析:
- 当前实现使用简单的 session
- 缺少刷新令牌机制
- 密码加密算法过时
- 缺少速率限制
计划:
1. 准备阶段
- 备份当前代码
- 创建 feature 分支
- 设置测试环境
2. 实现阶段
- 步骤 1: 更新密码加密(bcrypt)
- 步骤 2: 实现 JWT 令牌
- 步骤 3: 添加刷新令牌
- 步骤 4: 实现速率限制
- 步骤 5: 更新中间件
3. 测试阶段
- 单元测试
- 集成测试
- 安全测试
4. 部署阶段
- 更新文档
- 数据迁移
- 灰度发布
风险和缓解:
- 风险:破坏现有功能
缓解:保持向后兼容,渐进式迁移
- 风险:性能下降
缓解:性能测试,优化关键路径
预计时间:2-3 天计划审查
审查要点
在批准计划前,检查:
- 目标是否清晰明确
- 步骤是否完整合理
- 顺序是否正确
- 风险是否被识别
- 缓解措施是否充分
- 时间估计是否合理
提供反馈
如果计划需要调整:
计划看起来不错,但有几点建议:
1. 在步骤 2 和 3 之间添加性能测试
2. 步骤 4 应该在步骤 2 之前,先限流再改认证
3. 增加回滚方案批准执行
当计划满意时:
计划批准,请开始执行或者分阶段执行:
先执行准备阶段,完成后等待我的确认执行过程
逐步执行
Claude 会按计划逐步执行:
执行步骤 1: 更新密码加密
1. 安装 bcrypt 包
2. 创建加密工具函数
3. 更新注册逻辑
4. 更新登录验证
5. 添加单元测试
步骤 1 完成。是否继续步骤 2?检查点确认
在关键步骤后确认:
步骤 2 完成:JWT 令牌已实现
请测试以下功能:
- 用户登录
- 令牌验证
- 令牌过期处理
确认无误后,我将继续步骤 3。处理问题
如果执行中遇到问题:
步骤 3 执行时发现问题:
现有的 session 中间件与 JWT 冲突
建议方案:
A. 先移除 session 中间件
B. 创建兼容层,同时支持两种方式
C. 调整 JWT 实现以兼容 session
请选择方案或提供其他建议。计划调整
动态调整
根据执行情况调整计划:
在执行步骤 2 时发现需要额外的步骤:
- 步骤 2.5: 实现令牌黑名单机制
更新后的计划:
1. 更新密码加密 ✓
2. 实现 JWT 令牌 ✓
2.5. 实现令牌黑名单 (新增)
3. 添加刷新令牌
4. 实现速率限制
5. 更新中间件优先级调整
根据需要调整优先级:
发现生产环境有紧急 bug,
暂停当前计划,先修复 bug计划模式的优势
提高成功率
- 提前识别问题和风险
- 确保步骤完整和顺序正确
- 减少返工和错误
更好的沟通
- 清晰的执行路径
- 明确的检查点
- 便于团队协作
可控性
- 可以在任何步骤暂停
- 可以调整计划
- 可以回滚更改
可追溯性
- 记录决策过程
- 便于后续审查
- 有助于知识传承
高级技巧
分层计划
对于超大型任务,使用分层计划:
高层计划:
1. 重构认证系统
2. 重构授权系统
3. 重构会话管理
步骤 1 的详细计划:
1.1 更新密码加密
1.2 实现 JWT
1.3 添加刷新令牌
...并行执行
识别可以并行执行的步骤:
可以并行执行:
- 分支 A: 后端 API 重构
- 分支 B: 前端组件更新
- 分支 C: 数据库迁移脚本
最后合并和集成测试回滚计划
为每个步骤准备回滚方案:
步骤 2: 实现 JWT 令牌
回滚方案:
- 恢复旧的 session 中间件
- 回滚数据库更改
- 恢复配置文件依赖管理
明确步骤间的依赖关系:
依赖关系:
- 步骤 3 依赖步骤 2
- 步骤 5 依赖步骤 3 和 4
- 步骤 6 可以独立执行计划模板
功能开发模板
任务:[功能名称]
需求分析:
- 功能描述
- 用户故事
- 验收标准
技术方案:
- 技术选型
- 架构设计
- 接口设计
实施计划:
1. 数据模型设计
2. 后端 API 实现
3. 前端界面开发
4. 集成和测试
5. 文档和部署
测试计划:
- 单元测试
- 集成测试
- E2E 测试
部署计划:
- 环境准备
- 数据迁移
- 灰度发布
- 监控和回滚重构模板
任务:[重构目标]
当前问题:
- 问题 1
- 问题 2
- 问题 3
重构目标:
- 目标 1
- 目标 2
- 目标 3
重构计划:
1. 准备阶段
- 添加测试覆盖
- 创建重构分支
- 备份数据
2. 重构阶段
- 步骤 1
- 步骤 2
- 步骤 3
3. 验证阶段
- 运行测试
- 性能对比
- 代码审查
4. 清理阶段
- 删除旧代码
- 更新文档
- 合并分支
风险控制:
- 保持向后兼容
- 渐进式迁移
- 准备回滚方案Bug 修复模板
Bug:[Bug 描述]
影响范围:
- 影响的功能
- 影响的用户
- 严重程度
根因分析:
- 问题原因
- 触发条件
- 相关代码
修复计划:
1. 重现问题
2. 编写测试用例
3. 实施修复
4. 验证修复
5. 回归测试
预防措施:
- 添加监控
- 改进测试
- 更新文档最佳实践
保持计划简洁
避免过度详细的计划:
✅ 好的粒度:
1. 实现用户认证 API
2. 添加前端登录表单
3. 集成测试
❌ 过度详细:
1. 打开 auth.ts 文件
2. 导入 bcrypt 包
3. 创建 hashPassword 函数
4. 添加 export 关键字
...灵活调整
计划不是一成不变的:
根据实际情况调整计划是正常的,
不要拘泥于最初的计划记录变更
记录计划的变更和原因:
计划变更日志:
- 2024-01-15: 添加步骤 2.5(令牌黑名单)
原因:发现需要处理令牌撤销场景
- 2024-01-16: 调整步骤 4 和 5 的顺序
原因:速率限制应该在中间件更新之前总结经验
任务完成后总结经验:
任务总结:
完成情况:
- 按计划完成 80%
- 新增 2 个步骤
- 调整 1 个步骤顺序
经验教训:
- 应该更早考虑令牌撤销
- 测试覆盖不够充分
- 文档更新应该同步进行
改进建议:
- 在计划阶段更全面地考虑边界情况
- 每个步骤完成后立即更新文档常见问题
问题 1:计划太复杂
解决:分解为多个子任务,每个子任务独立计划
问题 2:执行偏离计划
解决:及时调整计划,记录变更原因
问题 3:计划不够详细
解决:在执行前细化关键步骤
问题 4:计划过时
解决:定期审查和更新计划
总结
计划模式的核心价值:
- 提前思考,减少返工
- 结构化执行,提高质量
- 可控可追溯,便于管理
- 促进沟通,提升协作
通过掌握计划模式,你可以更有信心地处理复杂任务,提高开发效率和代码质量。