第 8 章:大规模变更 — Batch 与自动化
(申请发送: agentupdate)
8.1 大规模变更的挑战
在前几章中,我们已经掌握了基础的编辑、重构和测试技能。但随着项目规模增长,你迟早会遇到需要一次性修改数十个文件的场景。比如:
- 迁移 UI 框架(从 Solid 迁移到 React)
- 重命名 API 函数(
fetchUser→getUserData) - 批量添加 TypeScript 类型注解
- 更新所有组件的无障碍属性
手动逐个修改这些文件不仅效率低下,还容易遗漏。当你修改了 15 个组件中的 13 个,测试通过,但另外 2 个被遗忘,线上就会报错。
本章介绍的系统化工具将帮助你安全地处理大规模变更。
8.2 /batch — 并行大规模变更
命令名 → /batch
语法
/batch <instruction>
功能说明
/batch 是一个基于 Skill 的命令,专门用于并行执行大规模代码变更。它的核心工作流是:
- 研究代码库结构,理解当前实现
- 将任务分解为 5-30 个独立可执行单元
- 向你呈现详细计划,包括每个单元的文件列表和修改范围
- 获得你的批准后,为每个单元创建隔离的 git worktree
- 在每个 worktree 中独立执行修改、运行测试
- 为每个 worktree 创建单独的 PR
- 你可以逐个审查并合并这些 PR
每个 PR 都是独立的,即使某个 PR 有问题,也不会影响其他 PR 的合并。
实际使用示例
/batch migrate src/ from Solid to React
Claude 会输出类似以下的计划:
- 单元 1:迁移
src/components/Timer.tsx和src/components/Display.tsx - 单元 2:迁移
src/components/Button.tsx和src/components/ModeSwitch.tsx - 单元 3:迁移
src/hooks/目录下的所有 hooks - ...
你审查计划后输入“批准”,Claude 开始并行执行。
适用场景
- 框架或库迁移(Solid → React、Redux → Zustand)
- API 重构或重命名
- 批量添加类型注解、JSDoc 注释
- 统一代码风格(如将所有
var替换为const/let) - 批量更新导入路径
注意事项/技巧
- 需要 git 仓库,
/batch依赖 worktree 机制 - 每个单元会生成独立 PR,便于代码审查
- 如果某个单元失败,不影响其他单元的执行
- 执行期间可以继续在当前终端工作,Claude 会在后台通知结果
- 复杂迁移建议先用
/batch分解为小单元,逐个合并验证
8.3 /loop — 循环运行任务
命令名 → /loop
语法
/loop [interval] [prompt]
功能说明
/loop 让你设置一个周期性执行的任务。Claude 会在后台按照指定间隔反复运行提示词,直到你手动停止。
参数说明
interval(可选):执行间隔,如5m(5 分钟)、1h(1 小时)prompt(可选):每次循环执行的提示词或斜杠命令
如果省略 interval,Claude 会根据任务复杂度自动调整步速(通常 5-15 分钟)。
如果省略 prompt,Claude 会:
- 先运行自主维护检查(寻找潜在问题)
- 如果存在
.claude/loop.md文件,则执行其中的提示词
实际使用示例
/loop 5m check if the deploy finished
每 5 分钟检查一次部署状态,完成后自动停止。
/loop run the test suite
自动调整间隔,反复运行测试套件,直到你手动停止。
/loop
运行默认维护检查。
别名
/proactive 是 /loop 的别名,功能完全相同。
适用场景
- 持续监控部署状态
- 定期运行测试,等待某个测试通过
- 轮询 API 端点,等待数据更新
- 长时间运行的监控任务(如检查服务器健康状态)
注意事项/技巧
- 循环在当前 Claude 会话中运行,关闭会话会停止循环
- 使用
/stop或 Ctrl+C 停止循环 - 适合“等待并轮询”场景,不适合“定时执行脚本”(后者用
/schedule) - 可以与
/batch配合:/batch执行大规模变更,/loop监控 CI 状态
8.4 /schedule — 云端定时任务
命令名 → /schedule
语法
/schedule [description]
功能说明
/schedule 在 Anthropic 云基础设施上设置定时任务,与 /loop 的关键区别是:
/loop:在当前会话中运行,关闭会话即停止/schedule:在云端独立运行,即使关闭 Claude 也能持续执行
Claude 会通过对话引导你完成设置:选择频率、定义提示词、指定输出位置。
实际使用示例
/schedule daily generate code review checklist
启动引导流程:
- “你想多久运行一次这个任务?” → 每天上午 9 点
- “每次运行时执行什么提示词?” → 审查最近的提交,生成检查清单
- “结果输出到哪里?” → 发送到 Slack 频道
设置完成后,任务会在云端每天自动运行。
别名
/routines 是 /schedule 的别名。
适用场景
- 代码审查自动化(每日检查新提交)
- 文档同步(定期从代码生成 API 文档)
- 报表生成(每周汇总测试覆盖率)
- 依赖更新检查(每月检查过期的 npm 包)
注意事项/技巧
- 需要有效的 Anthropic 账户和云服务权限
- 任务在云端执行,不占用本地资源
- 可以设置输出到 Slack、Discord、文件或数据库
- 适合“定期独立任务”,不适合“与当前会话交互的任务”
- 与
/loop的选择:需要会话中交互用/loop,需要后台持续运行用/schedule
8.5 /autofix-pr — 自动修复 PR(回顾)
命令名 → /autofix-pr
语法
/autofix-pr
功能说明
/autofix-pr 会监视当前分支的 PR,并在检测到以下情况时自动推送修复:
- CI 测试失败
- 代码审查评论中标记了建议修改
这个命令需要安装 gh CLI(GitHub 命令行工具)。
实际使用示例
/autofix-pr
启动后:
- Claude 每 2 分钟检查一次 PR 状态
- 发现 CI 失败 → 自动分析失败原因 → 修复代码 → 推送新 commit
- 发现审查评论 → 解析建议 → 修改代码 → 推送新 commit
- 所有修复完成后通知你
适用场景
- 长期运行的 PR 需要持续维护
- CI 环境不稳定,需要反复重试
- 团队代码审查流程需要快速响应
注意事项/技巧
- 需要先在本地
git checkout到 PR 所在的分支 - 修复会自动推送,确保你有
git push权限 - 如果修复失败,Claude 会通知你手动介入
- 可以与
/loop配合使用:/loop 5m /autofix-pr - 适合“持续维护当前 PR”,不适合“监控多个 PR”
8.6 动手做:批量重构
让我们在实践中运用这些命令。目标是:给所有 React 组件添加 ARIA 无障碍标签和 role 属性。
步骤 1:启动批量任务
/batch 给所有 React 组件添加 ARIA 无障碍标签和 role 属性
Claude 会开始分析代码库:
- 扫描
src/components/目录 - 识别所有 React 组件文件
- 理解每个组件的结构(按钮、输入框、计时器等)
- 制定合适的 ARIA 属性策略
步骤 2:审查分解计划
Claude 会呈现如下计划:
计划分解为 8 个单元:
单元 1:添加交互组件的 ARIA 属性
文件:src/components/Button.tsx, src/components/ModeSwitch.tsx
修改:为按钮添加 aria-label、role="button"
单元 2:添加显示组件的 ARIA 属性
文件:src/components/Timer.tsx, src/components/Display.tsx
修改:为计时器添加 aria-live、role="timer"
单元 3:添加表单组件的 ARIA 属性
文件:src/components/SettingsPanel.tsx, src/components/Input.tsx
修改:为输入框添加 aria-label、aria-required
单元 4:添加模态组件的 ARIA 属性
文件:src/components/Modal.tsx
修改:添加 role="dialog"、aria-modal="true"
单元 5:添加列表组件的 ARIA 属性
文件:src/components/TaskList.tsx
修改:添加 role="list"、aria-label
单元 6:添加导航组件的 ARIA 属性
文件:src/components/TabBar.tsx
修改:添加 role="tablist"、aria-selected
单元 7:添加通知组件的 ARIA 属性
文件:src/components/Toast.tsx, src/components/Notification.tsx
修改:添加 role="alert"、aria-live
单元 8:添加图表组件的 ARIA 属性
文件:src/components/PieChart.tsx, src/components/BarChart.tsx
修改:添加 aria-label、role="img"
审查计划,确认每个单元的文件列表和修改范围是否合理。如果某个单元太大,可以让 Claude 重新分解。
步骤 3:批准执行
如果计划合理,输入:
批准
Claude 开始在 8 个独立的 git worktree 中并行执行:
- 每个 worktree 执行一个单元的修改
- 每个单元运行相关测试
- 为每个 worktree 创建独立的 PR
步骤 4:等待执行完成
执行期间你可以继续工作。Claude 会在完成每个单元后通知你:
单元 1 完成:创建 PR #123
单元 2 完成:创建 PR #124
单元 3 完成:创建 PR #125
...
步骤 5:监控 CI 状态
所有 PR 创建完成后,使用 /loop 监控 CI:
/loop 2m check if all batch PRs passed CI
每 2 分钟检查一次所有 PR 的 CI 状态。全部通过后,循环自动停止。
步骤 6:审查并合并
逐个审查每个 PR:
- 检查 ARIA 属性是否正确
- 测试无障碍功能(使用屏幕阅读器)
- 确认没有破坏现有功能
审查通过后合并 PR。由于每个 PR 独立,可以合并一个验证一个,如果某个 PR 有问题,不影响其他 PR。
本章小结
本章介绍了 Claude Code 处理大规模变更的核心工具:
/batch:将大型任务分解为独立单元,并行执行,每个单元生成独立 PR/loop:周期性运行任务,适合监控和轮询场景/schedule:云端定时任务,适合后台自动化/autofix-pr:自动修复 PR 中的 CI 失败和审查评论
这些工具组合使用,可以安全、高效地完成从几十个文件到整个项目的大规模重构。
下一章我们将深入探索代码库分析工具,帮助你在动手修改前充分理解项目结构。