元記事: テスト失敗を並行で直す「dispatching-parallel-agents」(cccskills)
スキルのページ: dispatching-parallel-agents
この記事の結論
dispatching-parallel-agentsを入れると、Claude Codeなどのエージェントが複数のテスト失敗を並行で調べて直せるようになります。
原因の違う失敗を、別々のサブエージェントに分担させる仕組みです。
この記事では、担当の切り分け方、指示の書き方、修正を統合する手順を説明します。
インストール方法と依頼文の例も紹介します。
複数のテスト失敗を見せて頼むと、エージェントが問題を領域ごとに分け、サブエージェントに1つずつ割り当てます。
サブエージェントとは、元の会話とは別の文脈で動く補助のエージェントのこと。
依頼文は次のような形です。
大きなリファクタリングのあと、3つのテストファイルで合計6件のテストが落ちています。
原因が別々なら、ファイルごとに担当を分けて並行で直してください。
エージェントはまず、失敗を「何が壊れているか」でまとめます。
中断処理、バッチ完了の挙動、ツール承認の競合状態のように、1つを直しても他に影響しない単位に分ける流れです。
そのうえで、担当ごとの指示を作ります。
指示に書くのは、対象のテストファイルと目標、触らない範囲、報告してほしい内容です。
3つの担当への指示は、同じ応答の中でまとめて送ります。
**1つの応答で複数のサブエージェントを呼ぶと並行で動き、1回に1つずつだと順番に動きます。
**
結果が戻ってきたら、各担当の要約を読み、同じコードを編集していないかを確認。
そのあとテスト全体を実行してから、変更を取り込みます。
スキルに載っている実例では、3つの担当がそれぞれ別の修正を返しました。
固定の待ち時間をイベント待ちに置き換えた修正、イベント構造の不具合を直した修正、非同期処理の完了待ちを加えた修正の3つ。
修正同士の衝突はなく、テスト全体も通っています。
このスキルは、互いに独立した問題を「1つの問題領域に1つのエージェント」で並行処理するための型です。
順番に調べると時間がかかる複数の失敗も、同時に進められます。
作業の流れは、次の4段階に分かれる形です。
最初に判断するのは、失敗同士が関係しているかどうか。
1つを直すと他も直りそうな失敗は、まとめて1つのエージェントが調べます。
独立していてもファイルや資源を共有する場合は、並行にせず順番に担当を回します。
各担当に渡す指示は、範囲・目標・制約・報告内容の4点で組み立てます。
範囲は、1つのテストファイルかサブシステム。
目標は「このテストを通す」、制約は「他のコードを変えない」といった形です。
サブエージェントは元の会話の履歴を引き継ぎません。
そのため、必要な情報はすべて指示に書き込みます。
スキルには、指示の悪い例と良い例の対比も載っています。
要点は次の表のとおりです。
| 観点 | 悪い例 | 良い例 |
|---|---|---|
| 範囲 | 「テストを全部直して」 | 「agent-tool-abort.test.tsを直して」 |
| 文脈 | 「競合状態を直して」 | エラーメッセージとテスト名を貼る |
| 制約 | 制約を書かない | 「本番コードは変えない」「テストだけ直す」 |
| 報告 | 「直しておいて」 | 「原因と変更点の要約を返して」 |
指示の見本には「タイムアウトを延ばすだけで済ませず、本当の原因を探す」という一文も入っています。
表面的な修正で終わらせないための書き方です。
作業が戻ったあとの確認手順も決まっています。
まず各要約を読んで何が変わったかを把握し、複数の担当が同じコードを編集していないかを調べます。
次に、テスト全体を実行して、すべての修正が一緒に動くことを確認。
最後は、一部の変更を抜き取って目で確認する段階です。
エージェントは同じ種類の誤りを繰り返すことがあるので、この確認は省きません。
入れ方は、コマンドで入れる方法とエージェントに頼んで入れる方法の2通りです。
コマンドの場合は、次を実行してください。
npx skills add https://github.com/obra/superpowers --skill dispatching-parallel-agents
このコマンドでは、入れる先のエージェントをClaude CodeやCodexなどから選べます。
中身を確かめてから入れたい場合は、次の文面をエージェントにそのまま送ってください。
次の Agent Skill をインストールしてください。
https://github.com/obra/superpowers/tree/main/skills/dispatching-parallel-agents
まず SKILL.md と付属ファイルの中身を確認し、不審な処理(外部への送信、認証情報の読み取りなど)がないことを確かめてから、Claude Code なら ~/.claude/skills/dispatching-parallel-agents/、Codex なら ~/.agents/skills/dispatching-parallel-agents/ に配置してください。
置き場所は、すべてのプロジェクトで使うか、特定のプロジェクトだけで使うかで変わります。
| エージェント | すべてのプロジェクトで使う | 特定のプロジェクトだけで使う |
|---|---|---|
| Claude Code | ~/.claude/skills/ | プロジェクトの .claude/skills/ |
| Codex | ~/.agents/skills/ | プロジェクトの .agents/skills/ |
配布元はobra/superpowersです。
依頼文には、失敗しているテストや不具合の状況をそのまま書きます。
エラーメッセージやテスト名を添えれば、担当への指示に文脈を渡せるでしょう。
テストが3つのファイルで落ちています。
失敗を原因ごとに整理して、独立しているものは担当を分けて並行で調べてください。
エージェントは失敗を問題領域ごとにまとめ、独立しているかを判断します。
独立していれば担当ごとの指示を作って並行で送り、関係していれば1つのエージェントでまとめて調べる方針を返します。
ログイン画面の不具合とCSV出力の不具合を、別々のエージェントに直させてください。
それぞれ変更してよい範囲と、報告してほしい内容を決めてから始めてください。
この依頼では、担当ごとに範囲・目標・制約・報告内容を書いた指示が先に示されます。
そのあと2つの担当が同時に動き、それぞれ原因と変更点の要約を返す流れです。
戻ってきた3つの修正を確認して、衝突がなければテスト全体を実行してから統合してください。
エージェントは各要約を読み、同じコードを編集した担当がいないかを確かめます。
テスト全体の結果を確認してから変更を取り込み、一部の変更を抜き取って見直す手順です。
使う前に、問題が本当に独立しているかを確かめてください。
**並行で直せるのは、他の調査結果を待たずに理解でき、同じファイルや資源を触らない問題だけです。
** 次の場面は対象になりません。
複数のエージェントを並行で動かせる環境が前提です。
スキルに含まれるファイルはSKILL.mdの1つだけで、ライセンスはMIT。
入れる前にSKILL.mdを開き、内容に目を通しておくと安心です。
並行作業の修正は、統合する前に必ず確認してください。
担当ごとのテストが通っていても、組み合わせると動かない場合があります。
テスト全体の実行と抜き取り確認を、統合の条件にしておきましょう。
同じobra/superpowersには、並行修正の前後で使えるスキルがあります。
systematic-debuggingは、不具合やテスト失敗の原因を、再現手順やログ、直近の変更から調べるスキルです。
原因がまだ見えない段階で使い、独立した問題に切り分けてから並行修正に移れます。
subagent-driven-developmentは、実装計画をタスクごとに別のエージェントへ任せるスキルです。
不具合修正ではなく新しい実装を分担したいときに向いています。
finishing-a-development-branchは、実装完了後に全テストを確認し、マージやPull Request作成に進むスキル。
並行修正を統合したあとの仕上げに使えます。
2つ以上の独立した作業があり、状態の共有や順番の依存がないときが対象です。
目安として、3つ以上のテストファイルが別々の原因で失敗している場面が挙げられています。
使えません。
何が壊れているか分からない探索的な調査は対象外です。
先に原因を調べ、独立した問題に分けられた段階で使います。
Codex向けの置き場所に入れることはできます。
ただし手順は、複数のエージェントを並行で動かせる環境が前提です。
dispatching-parallel-agentsは、原因の違う複数の失敗を、担当ごとに分けて同時に直すための型です。
独立性の見極めから、4点をそろえた指示、統合前の確認まで、流れが決まっています。
テスト失敗が重なって順番に直す時間が足りないときは、まず試してみてください。
詳しくはcccskillsのページを参照してください。
この記事は cccskills の読みもの「テスト失敗を並行で直す「dispatching-parallel-agents」」の転載です。
スキルの詳細とインストール方法は cccskills の dispatching-parallel-agents のページ にあります。