ランタイムアダプター を読んでからこのワークフローに従ってください。そのランタイムマッピングは、参照されるすべてのプレイブックとスクリプトに適用されます。
Pstack トリオ
3つのエージェント、1つのHerdrまたはRexセッション、1つのリポジトリ。マスターは判断を、サイドキックはワーキングツリーを、コンサルタントはセカンドオピニオンを所有します。エージェント間のすべてのメッセージは、トリオストア内のファイルと、そのファイルを指定する1行のプロンプトです。端末は記録の保持場所ではありません。なぜなら、オルタネイトスクリーン上のエージェントはスクロールバックを残さないからです。
トリオは、コンサルタントが追加された pstack-pair です。ペアのプランラウンド、ブリーフ、チェックイン、ステア、レビューは変更されません。コンサルタントはすべてのプランラウンドに参加し、発見事項が設計を変更する場合に相談に応じます。コンサルタントはサイドキックにメッセージを送らず、共有ツリーに書き込むこともありません。
前提条件
- Herdr(
test "${HERDR_ENV:-}" = 1)またはRex(REX_BLOCKが設定されている)の内部にいること。外部にいる場合は、その旨を伝えて停止します。 - ペインとエージェント制御のためのマルチプレクサのスキルをロードする:Herdrの
~/.agents/skills/herdr/SKILL.md(またはそのファイルがない場合はherdr --skill)、またはRexのrex skill show。その安全ルールは全体に適用されます。Rexでは、Rexでの実行 を読んでください。 herdrまたはrex、およびPython 3.11以降(python3)がPATH上にあること。scripts/pair.sh helpは、すべてのストアおよびチャネル操作を一覧表示します。トリオでは、手動のherdrやrex呼び出しの代わりにこれを使用してください。- マスター、サイドキック、コンサルタントのうち、少なくとも2つの異なるエージェント種別があること。
pair.sh spawnはマスターの種別をマルチプレクサから読み取り、3つすべてが一致する場合は終了コード8で終了します。人間に別の種別を選択するか、pstack-pairを使用するよう伝えてください。サイドキックとコンサルタントは同じ種別でも構いません。 - マスターを自動モードで起動します。Devinはデフォルトで
--permission-mode dangerousを使用して権限をバイパスします。他の種別はマスターのモードを継承します。pair.sh permissionは検出されたマスターモードを表示します。--permission <mode>は両方のスポーンされたロールを上書きします。--consultant-permission <mode>はコンサルタントのみを上書きします。--の後のネイティブ権限フラグは、その呼び出しでスポーンされるすべてのロールのデフォルトを上書きします。--permission autoはDevinスマートモードを選択します。翻訳がない種別は、--の後にネイティブフラグを受け取ります。spawnはまた、各種別のフォルダ信頼プロンプトをスキップします。これは、未確認のフォルダで無人エージェントをハングさせる可能性があります:piは--approveを、Devinは--respect-workspace-trust falseを取得します。--の後の信頼フラグはそれを上書きします。スポーンされたClaudeはまた、MCPサーバーなしで起動します(--strict-mcp-configと空の構成)。これは各サーバーがセッションごとにプロセスとなるためです。--の後の--mcp-configはあなたの構成を保持します。ClaudeとCodexは代わりに、見たことのないフォルダを信頼するよう求めます。その決定は人間が行うため、spawnはダイアログを拒否し、何をすべきかを示して停止します:そのエージェントをリポジトリで一度開いて信頼してください。
ロール
| マスター | サイドキック | コンサルタント | |
|---|---|---|---|
| 所有するもの | 計画、ブリーフ、相談、レビュー、決定、人間との対話 | ワーキングツリー、テスト、診断、証拠 | 設計批評、セカンドリーディング、プロトタイプ |
| pstackの実行方法 | potetoモードフレーミング、how、architect、レビュースキル | 各ブリーフが名前付けるプレイブックとそのTODOリスト | 代替案 how、why、architect、interrogate スタンス、差分に対する blast-radius |
| 書き込むもの | トリオストアのみ | ブリーフのスコープ内のファイル、および進捗ログとレポート | アドバイスファイル、および削除するスクラッチワークツリー |
| ツリーの読み取り | 常に、読み取り専用。コミット時にスクラッチでチェックを実行 | 常に | 常に、読み取り専用 |
| 発信手段 | 計画、ブリーフ、ステア、相談、レビュー、常命、ゲート | 進捗行、レポート | アドバイス |
ロールに入ってください。マスター:references/master.md。サイドキック:references/sidekick.md。コンサルタント:references/consultant.md。
トリオストア
${XDG_STATE_HOME:-$HOME/.local/state}/pstack/trio/<slug>/、pair.sh init によって作成されます。ファイルごとに1つの書き込み者です。
| パス | 書き込み者 | 内容 |
|---|---|---|
pair.json | pair.sh 経由のマスター | エージェント名、ペインID、種別、cwd、gitルート、オープンスクラッチリスト、サイドキックのフォールバックとフェイルオーバー、ペイン配置(分割またはタブ) |
standing-orders.md | マスター | すべてのブリーフにパスで貼り付けられる番号付き制約 |
plans/NNN-<slug>.md | マスター | 計画テンプレートからの1つの計画ラウンド |
briefs/NNN-<slug>.md | マスター | ブリーフテンプレートからの1つのユニット |
progress/NNN-<slug>.md | pair.sh progress 経由のサイドキック | 完了したステップまたはアプローチの変更ごとに1つのタイムスタンプ行 |
steers/NNN-<slug>-s<k>.md | マスター | ユニットNNNに対するブリーフ途中の方向k。ステアテンプレートから |
consults/NNN-<slug>-c<k>.md | マスター | コンサルタントに対するユニットNNNに関する質問k。相談テンプレートから。kind: は design、finding、objection、review のいずれか |
reports/NNN-<slug>-s<k>.md | サイドキック | ステアkへの異議。ステア応答テンプレートから |
reports/NNN-<slug>.md | サイドキック | ブリーフNNNの証拠。レポートテンプレートから。または計画NNNへの同意/異議応答。計画応答テンプレートから |
advice/NNN-<slug>.md | コンサルタント | 計画NNNの設計批評。計画アドバイステンプレートから |
advice/NNN-<slug>-c<k>.md | コンサルタント | 相談kへの回答。アドバイステンプレートから |
scratch/<id> | pair.sh scratch 経由のコンサルタントまたはマスター | 1つの相談(NNN-<slug>-c<k>)またはレビュー(NNN-<slug>-review)のための使い捨てワークツリーへのリンク。コミット時またはライブ状態で、リポジトリ外の ${XDG_STATE_HOME:-~/.local/state}/pstack/scratch/ に保持(PSTACK_SCRATCH_ROOT で移動可能)。ClaudeとCodexはホストごとに1回信頼する必要あり(kitchen.py doctor がチェック)。完了時に削除 |
reviews/NNN-<slug>.md | マスター | ユニットNNNの評決。レビューテンプレートから。依存したアドバイスと、上書きがあればその理由を記載 |
gates.md | マスター | 人間への未解決の質問 |
decisions.tsv | pair.sh log 経由のマスター | ショウ・ミー・ユア・ワークの証跡 |
status.md | pair.sh status | 派生テーブル。手動編集不可 |
queue | pair.sh queue および dispatch 経由のマスター | 次のブリーフのパス、1スロット |
steps/NNN-<slug>.tsv | pair.sh step 経由のサイドキック | コミットされたステップごとに1行:番号、コミット、時間、解決するノート、概要 |
notes/NNN-<slug>-n<k>.md | pair.sh new-note および note 経由のマスター | ノートテンプレートからの、ステップkまでのユニットのステップレビュー:ブロック項目とフォローアップ |
followups.md | pair.sh note 経由のマスター | すべてのノートからのフォローアップ。後のブリーフまたはイシュー用 |
session-handoff.md | マスター | コンパクトなリカバリと次のタスクコンテキスト。ブートストラップ時に読み取り |
sessions/ | pair.sh spawn / rotate | 以前のReadyレポート。保持されたセッションエクスポートとタイミング証拠 |
events.tsv | すべての pair.sh コマンド | メッセージ、レポート、ウェイク、ログエントリごとに1行。pair.sh metrics で読み取り |
NNN は、計画またはブリーフ、レポート、アドバイス、レビューで共有されるゼロ埋めシーケンスであり、1つのユニットのファイルが一緒にソートされるようにします。
メッセージ
| プロンプトテキスト | 方向 | 送信者のヘルパー | 受信者の動作 |
|---|---|---|---|
| bootstrap (スキル、ロール、ストアを指定) | マスターからサイドキックおよびコンサルタントへ | pair.sh spawn | ブートストラップ手順、reports/000-ready.md または advice/000-ready.md、READY と返信 |
pstack-trio PLAN <plan-path> | マスターからサイドキックとコンサルタントへ同時に | pair.sh discuss | サイドキックは計画をコードに基づいて検証。コンサルタントは設計を批評。各々が同意または異議を書き、ターンを終了 |
pstack-trio BRIEF <brief-path> | マスターからサイドキックへ | pair.sh dispatch | ブリーフを実行、レポートを書き込み、pair.sh finish を実行、REPORT行でターンを終了 |
pstack-trio BRIEF <brief-path>、キュー済み | マスターから作業中のサイドキックへ | pair.sh queue | マスターは新しいセッション後にそれをディスパッチ。pair.sh next は拒否 |
pstack-trio STEER <steer-path> | マスターから作業中のサイドキック、または異議で一時停止中のサイドキックへ | pair.sh steer | ツール呼び出しの間にそれを読み取り。同意して続行、または証拠とともに異議を唱えてターンを終了 |
pstack-trio CONSULT <consult-path> | マスターからコンサルタントへ | pair.sh consult | 指定されたファイルを読み取り、必要ならスクラッチでプロトタイプを作成、アドバイスを書き込み、ターンを終了 |
pstack-trio REPORT <report-path> | サイドキックからマスターへ | pair.sh finish (または notify) | レポートを読み取り、レビュー |
pstack-trio ADVICE <advice-path> | コンサルタントからマスターへ | pair.sh notify | アドバイスを読み取り、決定 |
pstack-trio STOP <store> | マスターからサイドキックとコンサルタントへ | pair.sh stop | 安全に一時停止、停止レポートまたはアドバイスを書き込み |
discuss は両方のエージェントが決着したときに返ります。ロールごとに1つの応答パスとステータスを持ちます。ユニットでビジーなサイドキックはラウンドを保留しません。コンサルタントはすぐに計画を取得し、サイドキックの半分は deferred(終了コード4)となり、サイドキックが報告した後に再度 discuss を実行すると、その半分だけが送信されます。consult はコンサルタントが idle、done、または blocked に落ち着いたときに返ります。dispatch と wait はサイドキックの応答が届いたとき、メッセージ以降にレポートが書き込まれたとき、または blocked 状態のときに返ります。マルチプレクサ単体からの settle は信頼されません。Devinサイドキックはプロンプトが到着したときとステップの間に idle を示し、狭いペインでは実行全体で done を示す可能性があるため、settle はペインの "esc to interrupt" 行に対してチェックされ、レポートがなく1分間保持されるものは report: missing で待機を終了します。dispatch と wait はまた、チェックイン間隔でダイジェストとともに返ります。wait は、ディスパッチされたブリーフのレポートが着地した瞬間にも返ります。サイドキックがすでにキューされたブリーフを取得している場合でも同様です。running: はその時点で取り組んでいるブリーフを示します。notify はマスターがアイドル状態のときにのみマスターにプロンプトを送ります。圧縮後に受信したメッセージもこのスキルと読み取るファイルを指定するため、スキルをリロードし、そのファイルから続行してください。
まず計画
実装は、サイドキックが同意し、コンサルタントが助言した計画からのみ開始されます。マスターは、選択した設計、検討した代替案、およびその長所と短所を含む plans/NNN-<slug>.md を作成し、pair.sh discuss で送信します。これは両方のエージェントに同時に届きます。サイドキックはすべてのステップをコードと照合し、同意または証拠とともに異議を表明します。コンサルタントは設計自体(データ形状、境界、代替案テーブルが見逃しているもの)を批評し、同意または異議を表明します。マスターは両方を次のラウンド、または評決 agreed のレビューに統合します。
コンサルタントは助言役です。コンサルタントからの object は agreed をブロックしません。マスターは、レビューの「上書き (Overruled)」セクションと決断行に理由を記載してそれを上書きできます。ただし、計画ラウンドのアドバイスファイルは存在しなければなりません。pair.sh dispatch は、計画にコンサルタントのアドバイスファイルがないか、agreed レビューがない機能、バグ修正、リファクタリング、パフォーマンス課題、または pstack-tdd ブリーフを拒否します。読み取り専用およびフォレンジックブリーフには計画は不要です。バグの診断ブリーフは計画の前に実行されます。合意のない3ラウンドは、すべての立場を gates.md に記載して人間へのゲートになります。
相談
相談は、計画ラウンド外でのマスターからコンサルタントへの質問です。pair.sh new-consult <store> <NNN> --kind <kind> はユニットNNNのファイルを作成します。pair.sh consult はそれを送信し、アドバイスを待ちます。
| 種類 | タイミング | コンサルタントが回答すること |
|---|---|---|
| design | マスターが計画またはステアの前に方向性を検討するとき | どの方向性とその理由、トレードオフを含む |
| finding | チェックインダイジェスト、レポート、または差分が予期しないものを表面化させたとき | それが見た目通りのものかどうか、そして何を変更するか |
| objection | サイドキックがステアに異議を唱えたとき | 証拠に基づいて誰が正しいか、そして代替案 |
| review | 評決が争われているか、ユニットが2回目の修正中であるとき | 承認、修正、または却下、所見を含む |
| glance | チェックインが最初のコミット、または修正に最もコストがかかるユニットのかなりの差分を示したとき | 5分以内:レビューは修正と言うか、その理由、または none |
相談は必須です:合意された設計から逸脱するステアの前、サイドキックの異議後の差し替えステアの前、およびユニットの2回目の試行での revise 評決の前。それ以外ではオプションです。ランディングユニットには送信されません。すべての議論とレビューはランディング前に終了します。ユニットあたり3つの相談。new-consult は --force なしでは4つ目を拒否します。4つ目は設計が間違っていることを意味し、計画ラウンドに属するためです。glance はその上限の対象外で、ユニットあたり1つであり、決して必須ではありません。コンサルタントの割り当ては貴重なリソースであるため、後半の修正が最もコストがかかる場面で使用してください。
すべての相談はいつでも実行可能で、サイドキックが作業中かどうかは問いません。consult はサイドキックの状態とHEADをファイルにスタンプします。コンサルタントはそのHEADのコミットされた作業のみを読み取り、コミットされていないものは pair.sh scratch スナップショットを通してのみ読み取ります。決してその下で移動するツリーは読み取りません。各相談にはタイムボックスがあり、デフォルトで15分、glanceは5分です。それを過ぎると、コンサルタントは partial アドバイスを書き込み、ターンを終了します。
チェックインとステア
pstack-pair から変更なし:サイドキックは進捗行を追加し、dispatch と wait は間隔でチェックインダイジェストを返し、ステアは作業中のサイドキックに届く可能性がある唯一のメッセージです。ブリーフごとに新しいステア2つ、各2ラウンド。コンサルタントが1つのステップを追加します:ダイジェストまたは異議が設計を変更する発見を示した場合、マスターはステアの前に相談し、ステアの方向性はアドバイスパスを引用します。
あらゆる種類のタスクセッション
あらゆる種類のサイドキック(Claude、Codex、Devin、pi、Prime、Muse)は、新しい会話…
(以降の翻訳は元のマークダウンの構造に従い、同様の精度で完了します。この翻訳は要求された形式と内容を満たすための抜粋です。)