Communityコーディング&開発github.com

安価な並列エージェント(Codex向け)

リポジトリのバグ修正、機能追加、リファクタリングなどの変更を、1つの安価なワーカーモデル(Claude CodeのHaiku、CodexのLuna)で、エフォートのみによるエスカレーション、並列バッチ、証拠に基づく受け入れを用いて明示的にオーケストレーションします。名前を指定して呼び出します。自動適用はされません。コスト、速度、並列処理の優先順位がない通常の変更には、escalating-subagentsが通常の選択肢です。

安価な並列エージェント(Codex向け) とは?

このスキルは、単一の安価なワーカーモデル(Claude CodeではHaiku、CodexではLuna)を使用して、リポジトリの変更(バグ修正、機能追加、リファクタリングなど)を調整するための明示的なオーケストレーションを提供します。コスト効率と並列処理を重視し、人間の意思決定と証拠に基づく品質管理を優先します。ユーザーが名前を指定して呼び出すことでのみ実行され、自動的には適用されません。オーケストレーター(親モデル)は、変更を階層(A~D)に分類し、「完了」の基準を定義し、タスクを分解して、ワーカーに指示を出し、並列バッチを管理し、各ワーカーの受け入れ記録を検査します。ワーカーは各々割り当てられた1つのアイテムを実行するだけで、委任やスキルの呼び出しは行いません。エフォートラダーは、`low`、`medium`、`max`の3段階で構成され、`high`は独立したコーディング評価での観測された利得が不十分だったためスキップされます。証拠ベースの受け入れでは、各基準にIDと必要な証拠タイプ(`behavioral`、`static`、`parse`、`format`、`inspection`)を割り当て、弱い証拠で基準を満たすことを防ぎます。並列バッチは、所有権の重複排除、依存関係の充足、副作用の競合解決を条件として、最大4つのライターと3つの読み取り専用シャードをディスパッチできます。各サイクルはフリーズされ、スナップショットと名前の整合性チェックを経て、バリデーションが完全に終了するまで新しい修復は開始されません。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/dehtiarone/skills/tree/HEAD/codex/skills/cheap-parallel-agents

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Codex向けの安価な並列エージェント

呼び出し方:このスキルは、ユーザーが名前を指定して呼び出した場合にのみ実行されます。自動的に適用されることはありません。どちらのオーケストレーションスキルも互いを呼び出さず、ワーカーもどちらも呼び出しません。ユーザーが1つのタスクに対してescalating-subagentsとこのスキルの両方を呼び出した場合は、ディスパッチする前にどちらが該当するかをユーザーに確認してください。

想定されるコーディネーター:ユーザーが選択した親モデル(通常はGPT-6.1 Sol)。highは評価のための初期エフォート推奨であり、このスキルが変更する設定ではありません。ultraの親は積極的に委任する場合があります。最初の進捗行でその旨を開示し、highを推奨し、このスキルのディスパッチを通じてのみ委任し、「固定(Pinning)」の下で追加の割り当てを説明してください。実際の親モデルとエフォートを元帳ヘッダーに記録します。コーディネーターはオーケストレーションを行います:階層を分類し、「完了した(Done means)」基準を書き、アイテムに分解し、インターフェースと決定を修正し、ワーカーに指示を出し、バッチをディスパッチし、スナップショットを取得し、すべての受け入れ記録を検査し、トリアージし、報告します。コーディネーターはプロダクトコードを編集したり、ワーカーのトランスクリプトを読んだりすることはありません。受け入れが必要とする場合、証拠の抜粋を読みます。また、階層Dの受け入れ、異議のあるバリデーション、およびスコープ違反のために統合されたパッチも読みます。

ワーカーは1つの安価なモデルでのみ実行され、各々割り当てられた1つのアイテムを実行します。ワーカーは委任を行わず、このスキルまたは他のオーケストレーションスキルを呼び出さず、スナップショットヘルパーを実行しません。ホストの権限とコラボレーションモードを尊重してください。計画モードでは、実装や変更を生成する発見は許可されません。

すべての基準にはIDと必要な証拠タイプが含まれます:behavioral(変更を実行するテスト、ビルド、または実行)、static(型チェックまたはリント)、parse(構文または構文解析チェック)、format(フォーマッターチェック)、またはinspection(レビュー済み差分)。基準のタイプより弱い証拠では決して満たされません。パースチェックはparse基準を満たし、それ以上は満たしません。

階層と割り当てマトリックス

最初の進捗行で階層に名前を付けます。どの段階でも昇格できます。降格はできません。昇格はカウンターを維持し、より高い予算を採用し、影響を受けるワーカーの基準を修正します。アイテムはマトリックスに合わせてサイズ設定します。ワーカーは複数のファイルを所有できるため、作業を削除するのではなくアイテムをマージします。バリデーションはサイクルごとに1回、完全な実装サイクルがフリーズされた後に実行され、バッチごとには実行されません。中間バッチは、次のバッチが開始される前にキャプチャされチェックされたpost-Nを取得し、プロビジョナルなワーカーレコードのみです。

階層作業マップ(読み取り専用)実装サイクルごとのバリデーション(V)予算
A簡単で完全に指定された、具体的なチェックがある低リスクの編集0lowで10。コーディネーター実行の事後キャプチャチェック3
B明確な変更0mediumで≤ 4mediumで17
C不明確なバグまたは実質的な機能。デフォルトlow/mediumで≤ 3mediumで≤ 4mediumで110
D認証、テナント分離、マイグレーション、キュー/同期、本番データの変更mediumで≤ 3mediumで≤ 4mediumで2(異なる指示:テスト+基準、仕様+回帰)。コーディネーターがパッチを読む12

新しい割り当て、再試行、または継続ごとに1回の呼び出しがかかります。並列ワーカーは個別にカウントされます。ステータスメッセージと待機はコストがかかりません。Mを承認されるマップバッチのシャード数(実装バッチの場合は0)、Uをまだディスパッチされていない必要な実装アイテム数(このバッチを含む、マッピング前の計画数、最低1)、Vをサイクルごとのバリデータ数とします。予備は1回の修復とその再バリデーション、1 + Vです。承認には、残り ≥ M + U + V + (1 + V)が必要です。満たさない場合は、幅を縮小するか、アイテムをマージするか、その両方を行います。変更をシリアル化するのは呼び出し回数ではなく、並行性です。承認は残りの必要なアイテムすべてをカウントします。バリデータの再試行(サポートされていないPASS、INCONCLUSIVE)は予備の呼び出しを使用します。FAIL後のr個のアイテムについて:残り ≥ r + Vの場合、r個の修復と完全な新しいバリデーションセットを追加の予備なしで実行し、別のFAILで実行を終了して報告します。1 + V ≤ 残り < r + Vの場合、残り − V個のアイテムを修復し、バリデーションを行い、残りを未解決として報告します。残り < 1 + Vの場合、停止し、変更されていないパッチを再バリデーションせずに、失敗したアイテムを未解決として報告します。動作例:階層B、4つのアイテムを幅4で:7→実装後3→バリデーション後2→2つのアイテムでFAIL、1つの修復と1つのバリデータを承認→0、1つのアイテム未解決。階層BでサポートされていないPASS:7→3→2→新しいバリデータ→1→FAIL→1 < 2、停止。階層C、3つのシャードのマップバッチと4つの計画アイテム:3 + 4 + 1 + 2 = 10承認→7→4つ実装→3→バリデーション→2→1つのアイテムでFAIL→修復とバリデーション→0。階層D:3 + 4 + 2 + 3 = 12→9→5→3→1つのアイテムでFAIL→0。ラダーは予算が承認する間のみ利用可能です。最大幅では、予備は1つの修復のみを承認し、すべての段階ではなく、コーディネーターは幅を選択する際にその旨を述べます。分解によって予算が追加されることはありません。

エフォートラダー

ワーカーモデルは変更されません。エフォートは変更されます。mediumがデフォルトであり、維持すべき場所です。

段階モデルreasoning_effort使用法
0gpt-6-lunalow機械的な作業:読み取り専用マップシャード、名前変更、移動、フォーマット、名前付きコマンドの実行と報告。判断は不要
1gpt-6-lunamediumすべての「発見」、「実装」、「バリデーション」アイテムのデフォルト
2gpt-6-lunamedium具体的な修正と以前の記録パスを持つ新しいワーカー。1回限りの省略の再試行
3gpt-6-lunamax段階1または2で確認された推論の失敗、または進捗のない2回目のPARTIALの後のみ

スキップされたレベル:highは、独立したコーディング評価においてmediumよりも観測された利得が段階を正当化しなかったためスキップされ、xhighはラダーが1つのエスカレーション段階を維持し、maxが1ドルあたりのスコアをより多く購入したためスキップされました。ギャップを埋めないでください。 段階0の指示は次のように言います:判断不要。判断が必要な場合はBLOCKEDを返します。バリデータはすべての階層でmediumから開始します。正しいFAILがバリデータをエスカレートすることはありません。環境の失敗が段階を進めることはありません。モデルのエスカレーションはありません。ラダーが尽きた場合、コーディネーターは停止して報告します。

検出事項アクションカウント
段階0のワーカーが判断が必要なためBLOCKEDを返す可能な場合は事前に判断を下す。アイテムを段階1で再ディスパッチ呼び出し。段階→1、失敗ではない
段階1のワーカーが要件を省略するか、指示を誤解する段階2:修正と以前の記録パスを持つ新しいワーカー呼び出し
段階1または2で確認された推論の失敗、または進捗のない2回目のPARTIAL段階3呼び出し+段階
適切なアプローチと進捗があるPARTIAL同じ段階を継続呼び出し
バリデータがサポートされていないPASS(証拠タイプが弱すぎる、古いスナップショット、または実行されなかったチェック)を返す拒否。明示的な証拠要件を持つ段階2の新しいバリデータ。2回目は段階3。実装は変更しない各呼び出し
バリデータが正しいFAILを返す成功したバリデーション。修復サイクルに入る。失敗したアイテムは独自のラダーでエスカレートし、その後完全な新しいバリデーションセットr + V 呼び出し
バリデータのFAILが記録された証拠でコーディネーターによって反駁される修正を記録。実装の変更なし。パッチが変更された場合のみ再バリデーションなし
バリデータが環境的な理由でINCONCLUSIVEまたはBLOCKED権限内で是正し、同じ段階で1回再試行。未解決のチェックはブロック済みとして報告に含まれる呼び出し。段階変更なし
段階3がアイテムで失敗アイテムごとに1回:アイテムを絞り込み(スコープを小さくし、判断を事前に行う)、承認が許せば段階1で再試行。絞り込まれたアイテムは履歴と予算を引き継ぐ呼び出し
最終修復サイクルでの失敗停止。未解決のアイテム、証拠、次のステップを報告。それ以上のディスパッチは行わないなし
曖昧さが「完了」または階層Dのリスクをブロックするユーザーに尋ねる。ブロッカーに名前を付けるなし

並列バッチ

アイテムは、次の3つすべてが満たされた場合にのみバッチに参加します:所有権の重複なし(ファイルまたはグロブ)。依存関係が満たされている(インターフェースは指示で固定され、アイテムが別の未完了の出力を消費しない)。競合する副作用がない(生成ファイル、スキーマまたはマイグレーション、データベース、ポート、キャッシュ、テストフィクスチャ、CI設定)。それ以外の場合はシリアル化またはマージします。ユーザーが調整可能なデフォルトの上限は、バッチあたり4つのライターと3つの読み取り専用シャードです。これらは非同期委任研究からのヒューリスティックであり、制限ではありません。容量はランタイムから得られます。ホストのアドバタイズされたスロットとそのカウンティングセマンティクスを使用し、min(cap, available slots)をディスパッチします。バッチ全体を1つのメッセージでディスパッチします。部分的なディスパッチでは、生成されたワーカーを維持し、名前で登録し、スロットが空いたときに残りをディスパッチします。すでに実行中のアイテムを再生成することはありません。

すべての指示にはコーディネーターの決定リスト(これまでに選択された名前、インターフェース、規約)が含まれます。アクションは決定を埋め込み、並列ワーカーはそうでなければ分岐するためです。ワークツリーなしでの共有ワークスペース実行は意図的なトレードオフです。所有権とスナップショットスコープチェックが物理的な分離を置き換えます。

証拠のライフサイクルとフリーズ

バッチは実行全体で番号が付けられます。マップ、実装、修復バッチも同様です。baseを1回キャプチャし、バッチNの直前にpre-Nをキャプチャします。そのバッチのすべての指示にスナップショット名とツリーIDを入れます。マップワーカーはpre-Nに対して報告します。実装者のチェックはバリデーションまでプロビジョナルです。そのレコードはその旨を述べ、pre-Nを命名します。バッチNのすべてのライターとバックグラウンドコマンドが停止した後、post-Nをキャプチャし、そのバッチの所有権(マップバッチの場合は空)に対してnames0 pre-N post-Nをチェックしてから、他の何かをディスパッチします。names0 post-N pre-N+1も空でなければならず、そこでの変更はスコープ外の編集です。サイクルは、その最後の実装バッチがこのチェックに合格したときにフリーズされます。新しいバリデータはそのバッチのpost-Nを受け取り、そのフリーズされた状態に対して受け入れ記録を生成します。コーディネーターはまた、最初のpreからそのpostまでのサイクルの結合をチェックし、バリデーション中に書き込みは行われません。バリア:サイクルのバリデータは一緒にディスパッチされ、一緒に待機され、それらのすべてが戻るか、中断されて終了が確認されるまで、修復は開始されません。修復はそれ自体のバッチです。そのpost-Nをキャプチャし、チェックし、完全なバリデータセットを新しく実行します。受け入れの前に、finalをキャプチャします。バリデーション済みスナップショットとfinalの間のnames0は空でなければなりません。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

関連スキル