第 8 章:大规模变更 — Batch 与自动化

⏱ 预计阅读 12 分钟 更新于 2026/5/16
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)

8.1 大规模变更的挑战

在前几章中,我们已经掌握了基础的编辑、重构和测试技能。但随着项目规模增长,你迟早会遇到需要一次性修改数十个文件的场景。比如:

  • 迁移 UI 框架(从 Solid 迁移到 React)
  • 重命名 API 函数(fetchUsergetUserData
  • 批量添加 TypeScript 类型注解
  • 更新所有组件的无障碍属性

手动逐个修改这些文件不仅效率低下,还容易遗漏。当你修改了 15 个组件中的 13 个,测试通过,但另外 2 个被遗忘,线上就会报错。

本章介绍的系统化工具将帮助你安全地处理大规模变更。


8.2 /batch — 并行大规模变更

命令名/batch

语法

/batch <instruction>

功能说明 /batch 是一个基于 Skill 的命令,专门用于并行执行大规模代码变更。它的核心工作流是:

  1. 研究代码库结构,理解当前实现
  2. 将任务分解为 5-30 个独立可执行单元
  3. 向你呈现详细计划,包括每个单元的文件列表和修改范围
  4. 获得你的批准后,为每个单元创建隔离的 git worktree
  5. 在每个 worktree 中独立执行修改、运行测试
  6. 为每个 worktree 创建单独的 PR
  7. 你可以逐个审查并合并这些 PR

每个 PR 都是独立的,即使某个 PR 有问题,也不会影响其他 PR 的合并。

实际使用示例

/batch migrate src/ from Solid to React

Claude 会输出类似以下的计划:

  • 单元 1:迁移 src/components/Timer.tsxsrc/components/Display.tsx
  • 单元 2:迁移 src/components/Button.tsxsrc/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 会:

  1. 先运行自主维护检查(寻找潜在问题)
  2. 如果存在 .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 失败和审查评论

这些工具组合使用,可以安全、高效地完成从几十个文件到整个项目的大规模重构。

下一章我们将深入探索代码库分析工具,帮助你在动手修改前充分理解项目结构。