batch-operations について
batch-operationsは、複数ファイルに一貫した変更を適用するスキルです。開発者やコーディングエージェント向けに、パターンの定義、対象ファイルの事前確認、変更の実行、結果の検証を案内します。
主な機能
- 01パターン、範囲、除外対象の定義
- 02対象ファイルと一致箇所の事前確認
- 03テキストまたは構造の変更
- 04置換結果の確認とテスト実行
- 05変更ファイルの報告
活用シーン
- 01コードベース全体で関数名を変更
- 02複数のパッケージファイルでバージョンを更新
- 03複数ファイルの反復コードパターンを移行
- 04類似した構造のフィールドを追加または削除
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ vudovn/ ag-kit --skill batch-operationsインストール後、Claude Code で/batch-operationsを入力して読み込まれたか確認します。
詳細
一括操作 — 複数ファイルの変更
多くのファイルに一貫した変更を一度に適用します。1 つのパターンを複数の対象に適用します。
使用する場面
✅ 適しているケース:
- 関数やコンポーネントの名前を、使用しているすべてのファイルで変更する
- ディレクトリ内のすべてのファイルにインポートを追加する
- パッケージファイル全体のバージョン番号を更新する
- 類似した複数のファイルに同じコードパターンを適用する
- コードベース全体で、ある API から別の API に移行する
- 類似したすべてのデータ構造にフィールドを追加または削除する
❌ 適していないケース:
- 単一ファイルの編集(直接編集してください)
- ファイルごとに異なる変更(個別に対応してください)
- ファイルごとの判断が必要な変更(ドメインごとにエージェントを使用してください)
一括操作の手順
ステップ 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 対応