Communitygithub.com

br1anchen/pstack-trio

1つのHerdrまたはRexセッションで3つのコーディングエージェントを実行します。計画、指示、レビュー、決定を担当するマスター、pstackプレイブックに従って実装、テスト、診断を行うサイドキック、そして設計の批判、計画の助言、プロトタイピングを行うコンサルタントから構成されます。

pstack-trio とは?

br1anchen/pstack-trioは、複数のAIコーディングエージェントを連携させてソフトウェア開発を進めるための高度なスキルです。HerdrまたはRexのセッション内で、マスター、サイドキック、コンサルタントの3つの異なる役割を持つエージェントが、ファイルベースのメッセージングシステムを通じて協調動作します。マスターは設計の判断、計画の立案、レビュー、人間とのやり取りを担当し、サイドキックは実際のコーディング、テスト、デバッグをpstackプレイブックに基づいて実行します。コンサルタントは計画の設計批評や、設計変更が必要な状況での助言を提供します。すべてのやり取りはファイルとして記録されるため、端末のスクロールバックに依存せず、完全な監査証跡が残ります。このアプローチにより、単一のエージェントでは難しい複雑な開発タスクを、役割を分散し、セカンドオピニオンを組み込むことで高品質に遂行することが可能になります。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/br1anchen/open-pstack/tree/HEAD/skills/pstack-trio

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

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

ドキュメント

ランタイムアダプター を読んでからこのワークフローに従ってください。そのランタイムマッピングは、参照されるすべてのプレイブックとスクリプトに適用されます。

Pstack トリオ

3つのエージェント、1つのHerdrまたはRexセッション、1つのリポジトリ。マスターは判断を、サイドキックはワーキングツリーを、コンサルタントはセカンドオピニオンを所有します。エージェント間のすべてのメッセージは、トリオストア内のファイルと、そのファイルを指定する1行のプロンプトです。端末は記録の保持場所ではありません。なぜなら、オルタネイトスクリーン上のエージェントはスクロールバックを残さないからです。

トリオは、コンサルタントが追加された pstack-pair です。ペアのプランラウンド、ブリーフ、チェックイン、ステア、レビューは変更されません。コンサルタントはすべてのプランラウンドに参加し、発見事項が設計を変更する場合に相談に応じます。コンサルタントはサイドキックにメッセージを送らず、共有ツリーに書き込むこともありません。

前提条件

  1. Herdr(test "${HERDR_ENV:-}" = 1)またはRex(REX_BLOCK が設定されている)の内部にいること。外部にいる場合は、その旨を伝えて停止します。
  2. ペインとエージェント制御のためのマルチプレクサのスキルをロードする:Herdrの ~/.agents/skills/herdr/SKILL.md(またはそのファイルがない場合は herdr --skill)、またはRexの rex skill show。その安全ルールは全体に適用されます。Rexでは、Rexでの実行 を読んでください。
  3. herdr または rex、およびPython 3.11以降(python3)がPATH上にあること。scripts/pair.sh help は、すべてのストアおよびチャネル操作を一覧表示します。トリオでは、手動の herdr や rex 呼び出しの代わりにこれを使用してください。
  4. マスター、サイドキック、コンサルタントのうち、少なくとも2つの異なるエージェント種別があること。pair.sh spawn はマスターの種別をマルチプレクサから読み取り、3つすべてが一致する場合は終了コード8で終了します。人間に別の種別を選択するか、pstack-pair を使用するよう伝えてください。サイドキックとコンサルタントは同じ種別でも構いません。
  5. マスターを自動モードで起動します。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.jsonpair.sh 経由のマスターエージェント名、ペインID、種別、cwd、gitルート、オープンスクラッチリスト、サイドキックのフォールバックとフェイルオーバー、ペイン配置(分割またはタブ)
standing-orders.mdマスターすべてのブリーフにパスで貼り付けられる番号付き制約
plans/NNN-<slug>.mdマスター計画テンプレートからの1つの計画ラウンド
briefs/NNN-<slug>.mdマスターブリーフテンプレートからの1つのユニット
progress/NNN-<slug>.mdpair.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.tsvpair.sh log 経由のマスターショウ・ミー・ユア・ワークの証跡
status.mdpair.sh status派生テーブル。手動編集不可
queuepair.sh queue および dispatch 経由のマスター次のブリーフのパス、1スロット
steps/NNN-<slug>.tsvpair.sh step 経由のサイドキックコミットされたステップごとに1行:番号、コミット、時間、解決するノート、概要
notes/NNN-<slug>-n<k>.mdpair.sh new-note および note 経由のマスターノートテンプレートからの、ステップkまでのユニットのステップレビュー:ブロック項目とフォローアップ
followups.mdpair.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)は、新しい会話…

(以降の翻訳は元のマークダウンの構造に従い、同様の精度で完了します。この翻訳は要求された形式と内容を満たすための抜粋です。)

Individual skills in this repo

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

関連スキル