agent-wave
受け入れられたキュー項目の宣言されたバッチを、このホストが実際に公開する機能を使用して実行します。予算は項目数またはウェーブ数をカウントします。オプションの時間制限は新しいウェーブを停止しますが、実行中の項目は停止しません。長期実行の自動化はホストのスケジューリング機能を使用します(README参照)。このセッションは自分自身よりも長く存続することを約束しません。
前提条件とホスト機能
パラメータを尋ねる前に、リポジトリのエントリポイント、規約、キュー、および自律プロンプトを読み取ってください。_agent/ を含むすべてのアーティファクトパスを、記録されたルートに対して解決します。実際のゲートとそれが歩くキューを要求します。
| 記録されたモード | 実行 |
|---|---|
| 単一ライター | 要求されたすべての幅で、オペレーターを逐次自律プロンプトに停止して誘導します。 |
| 共有チェックアウト、直接統合 | そのチェックアウト内で一度に1つのエグゼキュータ。項目ステータスとロック行を使用します。クレームブランチや統合ワークツリーはありません。 |
| 共有チェックアウト、PR統合 | クレーム前に停止します。PRウェーブには別個のワークツリーが必要です。 |
| 独立したワークツリー | 各エグゼキュータは独自のワークツリーを使用します。統合は記録されたモデルに従います。 |
記録されたリモートをフェッチ/プルーニングし、その統合ブランチを要求します。フェッチされたベースSHAを出力します。ローカル統合参照を比較します。プッシュされていないコミットまたは分岐を報告し、進行する前に決して静かに破棄しません。遅れていてクリーンなチェックアウトは、安全な場合にのみ高速転送できます。それ以外の場合はそのままにします。ウェーブの状態とプローブは、オペレーターのチェックアウト内のコミットされていないファイルではなく、フェッチされたベースから取得されます。リモートキューが空でもローカルキューが異なる場合は、その違いを説明します。
ホストが委任、チェックアウトの分離、同時実行、オペレーターによってすでに有効化されているオーケストレーションファシリティの使用、および整形された結果の要求ができるかどうかを導出します。利用可能な最高のラングを選択します。
- 有効化されたオーケストレーションファシリティ: このウェーブのみの1回のファンアウト。ウェーブループ、クロックチェック、質問はオーケストレーターに保持します。
- プレーンなサブエージェント: 利用可能な場合は並列、そうでなければ逐次。ホストのワークツリー分離は、その開始ヘッドが宣言されたベースと等しい場合にのみ使用します。それ以外の場合は、そのベースで各ワークツリーを明示的に作成します。
- オーケストレーターは、記録されたモードが許可するように、独自のワークツリーまたは共有チェックアウト内で一度に1つの項目を実行します。
実行: ラング N — 理由 を報告します。オペレーターはこの選択を下げることができます。観察された機能を超えて上げたり、有効化を求めたりしないでください。ファシリティに言及するスキルは、オペレーターのオプトインではありません。同じ標準的なブリーフがすべてのラングで使用されます。証明された同時実行の上限がない場合は、1を使用します。
評価と宣言
すでに提供された該当する回答(深さを含む)を再利用します。デフォルトが明示的な選択を置き換えることはありません。完全に指定された仕様は、セレクターや確認を繰り返す必要はありません。重要な欠落または競合する選択についてのみ質問します。記録された設定だけでは、現在の実行権限にはなりません。それ以外の場合は、推奨される回答と理由を添えて、利用可能な場合は構造化セレクターを使用して、一度に1つの質問をします。深さが未解決の場合は、express(デフォルト)、guided(予算/監視)、またはfull depthを、記録された深さを事前選択して提供します。ここというデフォルトまたはgo-deeperを尊重します。
- 要求された幅: min(適格なキュー深さ, 3, ホスト上限) を推奨します。
- 予算: 項目数またはウェーブ数。1ウェーブを推奨します。オプションでソフトな時間制限。
- 監視: 各ウェーブ後のチェックポイント(推奨)、または継続的。
- 統合: 明示的にオーバーライドされない限り、リポジトリプロファイルを使用します。直接統合は、記録された同時実行ガードレールがある場合に正当です。その統合はシリアルです。オーバーライドはサポートされていないモードを有効にすることはできません。
実行前に結果の仕様を宣言して確認します(明示的な呼び出しパラメータはすでに確認を構成します)。以下を含めます。
- ウェーブ名、日付、リモート、統合ブランチ、フェッチされたベースSHA。
- 要求/実効幅、ラング/理由、ホスト上限、任意のトークン制限。
- 予算、監視、ソフトキャップ。トークン制限を項目数に変換しないでください。
- 各項目のキー、所有する決定、依存関係、クレームバリアント、正確な所有アーティファクト、シーケンス付きの予約済み識別子、およびContinueフラグ。
- 分離と統合プロファイル。実際に許可された統合/マージアクション。
- 許可: 「アテンドウェーブ: オペレーターはこれらのパラメータとこの項目を<日付>に確認しました。名前付き項目のみを実装し、他の項目を選択しないでください。」
項目が作成する識別子のみを、有限の非連続ブロックで予約します。既存のライブ予約を含めます。継続された項目は元の予約を保持します。同じ決定または計画本文に2人のライターを割り当てないでください。INDEXは派生します。エグゼキュータは自分の行のみを変更し、統合はテーブル全体を再生成します。枯渇した予約は項目を停止します。スロットを奪うことはありません。
確認後、独立ワークツリーモードの場合、オペレーターのツリーの外側に、ベースでデタッチされた統合/プローブワークツリーを作成します。残り物は、それがクリーンで所有されていることを証明した後にのみ再利用します。追跡されたファイルと既存の環境のみを使用して、そこで正確なゲートをプローブします。環境障害が発生した場合は、ディスパッチ前に停止し、コマンド、出力、終了コードを報告します。不足している依存関係をインストールしたり、ラング3を選択するとゲートが修復されることを示唆したりしないでください。実効フックパスと署名設定の起源を報告します。
各ウェーブの前に収集
再度フェッチ/プルーニングします。項目ステータス、クレームチップ、ワークツリー、PR状態を読み取ります。この優先順位を使用して、各項目をベースおよびクレームチップで解決します。
| クラス | 証拠とアクション |
|---|---|
| 検証不能 | 必要なリモート/PR証拠が利用不可または矛盾: 実行を停止します。 |
| 出荷済み | 到達可能なフッターコミットまたは確認されたマージ済みPRを持つ統合ブランチ上の完了エントリ。除外します。 |
| マージ済みだが未出荷 | 作業/PRはマージされたが、項目はまだベースにキューイングされている。除外し、調整を要求します。 |
| 停止済み | ベースまたはクレームチップのStoppedフィールド。明示的に継続されない限り除外します。 |
| ライブ | マージされていないリモートクレームまたはドラフト/準備完了PR、または現在の共有チェックアウト所有者/ロック。明示的に継続されない限り除外します。 |
| 古い | 確認されたリモート参照の消失後のブランチバックのローカル所有権。クリーンアップを報告します。不確かな残り物を再割り当てしないでください。 |
| 適格 | 受け入れられた所有権、満たされた依存関係、クレーム/停止/古いの競合なし。キュー順に選択します。 |
準備完了したPRは、項目を独自のブランチで完了に移動した可能性があります。リンクされたPR/履歴を通じてその移動を解決します。それはまだライブであり、孤立ではありません。スカッシュ/リベースによってソースの祖先が決定的でない場合、確認されたPRマージをチェックします。共有クレームは、リモートクレームの不在ではなく、項目/ロックから評価されます。デタッチされたワークツリーは、クレームでも古くもありません。先に進んだローカルクレーム参照は、プッシュされていない作業を意味します。不明を返し、それを保持します。
ガイド付き/フルデプスでは、既存のライブ/停止クレームに対してのみContinueを提供します。デフォルトで除外します。Expressは除外し、継続方法をリストします。クレームまたは項目に名前を付ける呼び出しが明示的な回答です。継続は新しいクレームまたは予約を作成しません。残りのワークツリーを報告します。選択後、所有するパスの重複と依存関係を再確認します。
標準エグゼキュータブリーフ
この完全なブリーフを、項目の仕様とともに、すべてのラングで変更せずに渡します。
- 開いて方向を定める。 ベースの祖先と名前付き項目を確認します。継続されたチェックアウトは、フェッチされたクレームチップと等しくなければなりません。リンクされた準備完了PRの完了移動は有効なコンテキストです。エントリポイントと自律プロンプトを読み取ります。不一致はブロックされ、別の項目を処理する許可ではありません。
- クレーム。 再度フェッチします。新しい独立ワークツリー項目の場合、ベースから
claim/<item-key>を作成します。Claimed by(アクター/日付/ブランチ)でコミットし、実際のクレームブランチ、ウェーブ、予約、所有アーティファクトを最初のコミットメッセージに配置します。 公開前に、git show -s --format=%B HEADおよびgit show HEAD:<owned-plan-path>を読み戻します。メッセージとClaimed byの両方でリテラルな実際のブランチ、ウェーブ名、予約(なしを含む)、正確な所有パスをチェックします。git diff-tree --no-commit-id --name-only -r HEADをチェックします。この初期コミットは、所有する項目のStatusのみを変更し、実装出力はありません。欠落したメタデータは、取得前にローカルで修復します。後のコミットで不十分な初期クレームを修復することはできません。git check-ref-format --branchでキーを検証します。リテラルなプレースホルダーを使用しないでください。git push --porcelain --force-with-lease=refs/heads/claim/<item-key>: origin HEAD:refs/heads/claim/<item-key>で取得します。終了コード0と、その宛先に対するポーセリンの*new-ref結果が必要です。同じチップ/最新の結果を含む既存の参照は、所有権を付与しません。そのプッシュが終了し、成功したnew-ref受信を検査してから、実装書き込みを発行します。取得と実装を同じツール呼び出しにバッチしないでください。署名/プッシュの失敗は、実装前に停止します。不明な結果を保持します。別のクレームを上書きしないでください。取得後にアップストリームを設定します。PRモードの場合、項目、アクター、ブランチ、予約、所有パス、クロージングブロックを含むドラフトPRを直ちに開く/再利用します。失敗は実装をブロックします。継続は、既存のリモートチップでデタッチし、予約を保持し、最初のコミットでClaimed byを更新し、その参照にプッシュバックします。共有チェックアウト: 各編集の前に項目ステータスとロック行を通じてクレームします(新しいレコードを含む)。クレームブランチを作成したり切り替えたりしないでください。 - 実装。 この1つの項目について、自律プロンプトに従います。決定を受け入れたり/取って代わったり、既存のキュー項目を挿入したり再番号付けしたり、予約を超えたり、バージョンバンプ、タグ付け、公開、またはオペレーターに質問したりしないでください。ブリーフを尊重できない場合はブロッカーを返します。
- 検証してコミット。 記録されたゲートを正確に実行します。理解された実装の失敗を修復して再実行します。ゲートを実行できない場合は、ゲート自体がインストールしないものをインストールしないでください。正確なエラーをBlockersに記録し、許可範囲内で回復可能な作業をコミット/プッシュし、ブロックされた(出荷または検証されていない)を返します。署名、Rationale、ゲート整合性ルールに従います。
- プロファイルごとに統合。 独立ワークツリー直接統合: 検証済みクレームをプッシュし、準備完了を返します。オーケストレーターがship-itemの統合モードを呼び出します。共有チェックアウト: アクティブツリーでship-itemを呼び出します。PRモード: 実際のPRでship-itemを呼び出します(リベース、衝突チェック、自身の番号修復、両方のゲート、完了コミットを含む)。その本文/レポートを最新に保ちます。準備完了には、現在のヘッドでのチェックが必要です。許可範囲内でのみマージし、着陸が確認された後にのみ出荷済みを報告します。移動されたベースを最大2回再試行します。失敗時に未解決のクレームを保持します。
- 停止して報告。 日付/理由と3つの報告ラベルを、キューイングされた項目のStoppedフィールド、またはすでにそこに移動されている場合はPR本文に配置します。許可範囲内でのみコミット/プッシュします。以下のフィールドと最終ブロックを返します。調整スナップショットを作成したり、ダーティな作業を静かに削除したりしないでください。
実行、統合、結果の収集
派生したメカニズムで宣言されたウェーブをディスパッチします。実効幅はラング3および共有チェックアウトでは1です。ラング3では、クレームは項目を開始します。ローカルまたはリモートのクレームブランチを作成し、現在の項目に対してのみClaimed byを入力します。残りのバッチを事前クレームしないでください。次の項目のコマンドを発行する前に、そのゲート結果を検査します。後の事前クレームは、すでに実行中のエグゼキュータではありません。ラング3では、各項目を完了してから統合し、次の項目を開始します。ループを進める前に、最後のエグゼキュータのゲート結果をチェックします。環境ブロッカーは、次の項目が独立していて予算に余裕がある場合でも、ウェーブ全体を直ちに終了します。次の項目や別の統合を開始しないでください。 このルールは、継続的な監視と数値的な失敗しきい値よりも優先されます。新しい作業を開始せずにすでに実行中のエグゼキュータを収集し、システムブロッカーを報告します。回復可能なクレームを保持します。成功したベースプローブは、実装後の環境障害をオーバーライドしません。
並列直接作業の場合、デタッチされた統合ワークツリーを使用して、キュー順に準備完了クレームに対してship-itemの統合モードを呼び出します。統合メカニズムは、ここの2番目のプロシージャではなく、ship-itemに存在します。PRホストは、許可されたPRマージをシリアル化します。
各リターンを正規化します。項目キー; 結果(shipped、ready、failed、blocked、stopped、unknown); クレーム/実際のブランチ; 統合SHAまたはPR; 使用/再番号付けされた識別子; ブロッカー; 競合ファイル; 最終ブロックをそのまま。リターンがない場合は不明を意味します。結果はOverallの語彙とは別です。統合待ちの準備完了クレームの場合、Outcome: ready および Overall: partially verified を書き込みます。準備完了および出荷済みは決してOverall値ではありません。各項目と、Status at a glanceを含むウェーブサマリーを報告します。不明があると、ウェーブはpartially verifiedで上限に達します。除外/撤回されたクレーム、実効幅、ラング、ゲート結果、フック/署名の起源、残りの作業を含めます。
最終応答では、各項目に対して1つのStatus at a glanceブロックを保持し、次にウェーブ用の別のブロックを保持します。それぞれにThis run、Overall、Yet to doがあります。項目ごとの結果テーブルはこれらのブロックに付随できますが、逐次ラングを含めて決して置き換えません。戻る前にその数を確認します。項目キーまたは「ウェーブ」を、そのブロックの上の別の見出しに配置します。ブロックの見出しは正確に Status at a glance とし、項目サフィックスやウェーブプレフィックスは付けません。Wave を項目と同じように、独自のスコープ見出しに配置します。例:
## アイテム <key>
### Status at a glance
- **This run:** <観察されたアクションとゲート出力/終了>
- **Overall:** <許可された語彙>
- **Yet to do:** <残りの作業またはなし>
チェックポイントは別のウェーブの前に尋ねます。継続モードはgitから再収集し、確認された予算内で続行します。最初のディスパッチ時と各ウェーブ後にシェルクロックを読み取ります。利用できない場合は、ソフトキャップが適用されていないことを報告します。キャップを超えてウェーブを開始するのを停止します。進行中の項目を中断することはありません。
停止とクリーンアップ
明示的なホスト/ツール権限拒否は、実行を停止します。