关于 batch-operations
batch-operations 是用于跨多个文件执行一致修改的技能。它指导开发者和编码 Agent 定义模式、预览受影响文件、执行变更并验证结果。
主要功能
- 01定义模式、范围和排除项
- 02预览受影响文件与匹配项
- 03执行文本或结构性修改
- 04检查替换结果并运行测试
- 05汇报已修改的文件
适用场景
- 01在代码库中重命名函数
- 02更新多个 package 文件中的版本
- 03跨文件迁移重复代码模式
- 04为相似结构添加或移除字段
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ vudovn/ ag-kit --skill batch-operations安装后在 Claude Code 中输入/batch-operations确认已加载。
详细介绍
批量操作 — 多文件更改
一次性在多个文件中应用一致的更改。一个模式,多个目标。
适用场景
✅ 适合:
- 在所有使用某个函数/组件的文件中重命名它
- 为某个目录中的每个文件添加导入
- 更新多个包文件中的版本号
- 将相同的代码模式应用到多个相似文件
- 在整个代码库中从一个 API 迁移到另一个 API
- 为所有相似的数据结构添加/删除字段
❌ 不适合:
- 单文件编辑(使用直接编辑)
- 每个文件都有独特更改(逐个处理)
- 需要针对每个文件进行判断的更改(按领域使用一个 Agent)
批量操作流程
第 1 步:定义模式
What: [exact text/pattern to find]
Replace: [exact replacement text]
Scope: [file glob pattern, e.g., "src/**/*.tsx"]
Exclude: [files to skip, e.g., "**/*.test.tsx"]
第 2 步:执行前预览
# Find all affected files FIRST
grep -rl "oldPattern" src/ --include="*.ts"
# Count matches
grep -rc "oldPattern" src/ --include="*.ts" | grep -v ":0$"
# Show context for each match
grep -rn "oldPattern" src/ --include="*.ts"
🔴 绝不要在未预览的情况下批量修改。 向用户展示将要更改的内容。
第 3 步:执行批量操作
对于文本替换:
# On Linux/macOS
find src -name "*.ts" -exec sed -i 's/oldPattern/newPattern/g' {} +
# On Windows (PowerShell)
Get-ChildItem -Path src -Recurse -Filter *.ts |
ForEach-Object { (Get-Content $_) -replace 'oldPattern','newPattern' | Set-Content $_ }
对于结构性更改(添加导入、包装代码):
- 对每个文件使用 Edit 工具
- 按一致的顺序处理文件(按字母顺序或依赖关系)
第 4 步:验证批量操作
# Confirm no missed instances
grep -rl "oldPattern" src/ --include="*.ts"
# Should return empty
# Confirm replacements are correct
grep -rn "newPattern" src/ --include="*.ts" | head -5
# Run tests to catch breakage
npm run test
npm run build
常见批量模式
| 操作 | 命令模式 |
|---|---|
| 重命名导入 | 查找所有 import { X } → 替换为 import { Y } |
| 更新版本 | 查找 "version": "1.0" → 在所有 package.json 中替换 |
| 添加导出 | 在所有 index 文件末尾追加 export { X } |
| 移除已弃用内容 | 查找 deprecatedFn() → 替换为 newFn() |
| 添加文件头 | 在所有源文件前添加许可证文件头 |
| 类型迁移 | 查找 interface X → 替换为 type X = |
安全规则
- 先预览 — 修改前始终展示受影响的文件
- Git 安全 — 确保工作目录干净(先执行
git stash或提交) - 排除测试 — 测试通常需要与源代码不同的处理方式
- 事后验证 — 每次批量操作后运行构建和测试
- 报告更改 — 列出每个已修改的文件及更改摘要
评论
支持 Markdown