Community研究&データ分析github.com

pcommittee(2エージェント根本原因検討委員会)

行き詰まりやループ思考、トンネルビジョンに陥ったときに、対照的な2つのpaseoエージェントが問題を並行分析し、意見を議論して計画に収束します。"/pcommittee"、"committee"、"堂々巡り"、"何度試しても根本原因が不明"、"2つのモデルに検討させる" で起動します。分析のみで、委員会がファイルを編集することはありません。

pcommittee(2エージェント根本原因検討委員会) とは?

**pcommittee** は、Claude Code と Codex という異なるモデルファミリーの2つのエージェントを並行して起動し、同じ問題を独立して分析させるスキルです。主な目的は、開発者が難しいバグや設計の決定に行き詰まった際に、単一の視点ではなく、対照的な2つの分析を得ることで、より堅牢な根本原因分析と計画を導き出すことです。 このスキルは、"/pcommittee" や "committee" などの特定のキーワードでトリガーされます。両エージェントには同一のプロンプトファイルが渡され、分析のみを行い、ファイルの編集は行いません。分析後、2つのエージェントに互いの主張を提示して議論させ、差異を明確にします。2ラウンドの議論を経て得られた合意点と相違点を最終的にユーザーに統合して報告します。 pcommittee は、1つの意見で十分な `padvisor` や、作業を委任する `pspawn` や `phandoff` とは異なり、コストが高いものの、高リスクな意思決定において真の価値を発揮します。冗長な視点を強制することで、思考の盲点を減らし、より確実な結論に導きます。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/evrenverse/agent-skills/tree/HEAD/skills/pcommittee

Installed? Explore more 研究&データ分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

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

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

ドキュメント

pcommittee(2エージェント根本原因検討委員会) は何をしますか?

概要

2つのエージェント、2つのモデルファミリー、同じ問題を、両者とも新しいコンテキストで分析します。両者が並行して分析し、不一致がある箇所で議論させ、生き残ったものを統合します。その後、あなたが実装します — 委員会がファイルに触れることは決してありません。

真価を発揮する場面: 同じループを2周してしまった、バグの明確な根本原因がない、または計画を実行する前に複数の意見を得る価値があるほどコストが高い場合。2体の xhigh エージェントは安くありません。1つの意見で十分な場合は padvisor を、作業を委任する場合は pspawn または phandoff を使用してください。

起動されたエージェントが行うこと。 両エージェントはチームデフォルトとして許可プロンプトなしで実行されます(Claudeでは bypassPermissions、Codexでは full-access)が、プロンプトの編集禁止サフィックスによりファイルを変更しないように指示されており、モードではなく命令によって読み取り専用となります。より多くの権限を必要とするチームは、リポジトリの AGENTS.md でそれを要求できます(これも指示として機能します)。または、Claude Code の permissions.deny ルールで禁止することもできます。これは bypassPermissions でも適用されます。

起動方法

/pcommittee <問題> — デフォルトのペアは以下です。ユーザーが名前を指定したメンバーがそれを置き換えます。

構成

対照性こそが仕組みであり、単なるオプションではありません。同じファミリーの2つのエージェントは、同じ盲点を2度生み出し、その一致を確認と呼びます。

デフォルトの委員会は claude と codex をペアにします。両方とも paseo provider ls で available かつ Enabled と表示されている必要があります。

  • メンバーA: paseo provider models claude がリストする最新のOpus(例: claude/claude-opus-5-5)· 思考レベル xhigh · モード bypassPermissions
  • メンバーB: Codex の最新モデル、paseo provider models codex の最初のID · 思考レベル xhigh · モード full-access

IDはこれらのリストから読み取り、記憶から決して使用しないでください。claudeメンバーはプレーンなID(1Mモデル)を使用します(pspawn が [1m] を使わない理由を説明しています)。両メンバーとも許可プロンプトなしで実行されます(すべての spawn と同様、チームデフォルト)。ファイルを変更できないようにしているのはモードではなく、編集禁止サフィックスです。

ユーザーがメンバーを指定した場合は、それを使用します。1つのファミリーしか利用できない場合は、その旨を伝え、1メンバー委員会を委員会と偽る代わりに padvisor を実行します。

手順

1. 1つの問題プロンプトを作成します。 両メンバーは同一のテキストを受け取ります — 異なるプロンプトは、実際の意見の相違ではなく、あなたの表現のアーティファクトになります。

それを専用のファイルに書き込み、"$(cat <プロンプトファイル>)" を両方の spawn に渡します。 同じ heredoc を2回入力すると、テキストが静かにずれていきます。ファイルを使用することで、同一性が構造的になり、注意深さに依存しません。mktemp でファイルを作成し、出力されたパスを <プロンプトファイル> として使用します。/tmp 内の固定名は別のセッションの委員会と衝突し、すべてのユーザーが読み取り可能になりますが、mktemp ファイルは今回の実行用に新しく作成され、あなただけが読み取れます。

回答言語(ユーザーの会話で使用されている言語)を指定して開きます(Answer in <言語>.)。メンバーはプロンプトの言語で回答します。ある言語での会話に、別の言語の2つのレポートがあると、統合時に摩擦が生じます。

[ユーザーの会話の言語を指示として: "Answer in <その言語>."]

## 問題
[何が間違っているか、未決定か。症状であり、あなたの仮説ではありません — あなたの仮説はテストしてほしいものです。]

## 既知の情報
[事実、測定値、エラーメッセージ、逐語的なもの。結論ではありません。]

## 試したこと
- [アプローチ] — [結果、なぜ破棄したか]

## 調査すべき場所
- `/絶対パス/ファイル.ts` — [それが何か、なぜ重要なのか]

## 求めているもの
根本原因分析と計画。自分の確信度を述べ、診断を反証できるものを挙げてください。
問題そのものが間違った問題である場合は、最初にそう述べてください。

これは分析のみです。ファイルの編集、作成、削除は行わないでください。コードは書かないでください。

自分の仮説はプロンプトに含めないでください。含めると、異なる言葉で2度返ってくるだけです。どうしても言及する必要がある場合は、攻撃されるべき仮説としてマークしてください。

2. 両方をこのセッションの子として spawn します。 まずプロバイダの利用可能性を確認します(pspawn のステップ1とまったく同じです <このスキルのベースディレクトリ>/../pspawn/SKILL.md)。その後、同じレスポンス内で(並行して思考させるために)以下を実行します。

paseo run --no-wait --json --provider '<claude/newest-opus>' --thinking xhigh \
  --mode bypassPermissions --title "[Committee A] <トピック>" "$(cat <プロンプトファイル>)"
paseo run --no-wait --json --provider '<codex/newest>' --thinking xhigh \
  --mode full-access --title "[Committee B] <トピック>" "$(cat <プロンプトファイル>)"

paseo では、両方とも自動的にこのセッションのワークスペースに、このセッションの子として配置されます。そして、その状態を維持します。デタッチしないでください。 委員会はこの質問に属します。このセッションをアーカイブすると、それらもアーカイブされます。これが正しい動作です。paseo 以外では --workspace <ID> を追加し、pspawn のステップ2と同様に一度だけルックアップします。

3. 両方が終わるのを待ちます — メンバーごとに1回 paseo-notify を実行し、その後自分のターンを終了します。

paseo-notify <id-a>; paseo-notify <id-b>

各メンバーのメッセージは個別に到着します。一方が完了し、もう一方がまだの場合は、もう一度ターンを終了します。2つ目のメッセージがあなたを起こします。finished its turn → 回答した。is waiting for a permission → あなたを待っているリクエストがあります。stopped with an error → その旨を伝え、ログを読みます。静かに再spawnしないでください。使用量制限ではあなたは起こされません。paseo-limit-watch はメンバーを再開し、ウォッチを再設定します(cron 行がインストールされている場合、README を参照)。インストールされていない場合は、リセット後に自分でメンバーを確認してください。メンバーの実行時間は通常15〜30分です。ポーリング、sleep、急かしメッセージは絶対に送らないでください。

paseo 以外の場合($PASEO_AGENT_ID なし):1回の bash 呼び出しで run_in_background: true を指定し、paseo wait <id-a> --json; paseo wait <id-b> --json を実行し、JSON から各 status を読み取ります。終了コードは使用しないでください。

permission の場合(bypass と full-access では稀ですが、rm -rf は依然として確認します)、メンバーは誰も見ていない状態で停止します。それを読み取り(paseo permit ls)、与えた権限の範囲内かどうかを判断し、paseo permit allow <agent-id> <request-id> または deny を実行し(両方のIDは paseo permit ls から取得)、paseo-notify を再設定します。権限の範囲外または不明な場合は、ユーザーに確認し、代わりに承認しないでください。

4. 両方を読み取ります。

paseo logs <id> --filter text --tail 3

pagent.py <id> -t -n 3 --full(<このスキルのベースディレクトリ>/../pagent/)は、タイムスタンプ付きでよりリッチであり、Claude と Codex の両メンバーを同様に読み取れます。

5. 議論させます。 これが委員会を2つのエージェントにする価値のあるステップです — これをスキップすると、2つのレポートが残るだけで、解決策は得られません。

実際に分岐している箇所(異なる根本原因、異なる修正、異なるリスク評価)を見つけます。表現や強調の違いは無視してください。それらは不一致ではありません。

各実際の乖離について、各メンバーにもう一方の主張を送信します。

paseo send --behavior steer --no-wait <id-a> "メンバーBは <X> と結論付けています。根拠: <逐語的な推論>。これに直接対応してください。B が間違っているのはどこですか、それともあなたが間違っていますか?B が正しいなら、あなたの立場を変えてください。そうでないなら、そのまま率直に述べてください。"
paseo send --behavior steer --no-wait <id-b> "メンバーAは <Y> と結論付けています。根拠: <逐語的な推論>。これに直接対応してください。A が間違っているのはどこですか、それともあなたが間違っていますか?A が正しいなら、あなたの立場を変えてください。そうでないなら、そのまま率直に述べてください。"

長い逐語的な推論はファイル経由で渡す方が簡単です。メッセージをファイルに書き込み、paseo send --behavior steer --no-wait --prompt-file <ファイル> <id> を使用します。プロバイダが steer を受け入れられない場合は、割り込みにフォールバックできます。paseo send はアーカイブされたエージェントを復活させます — 最初に paseo inspect <id> --json で ArchivedAt を確認してください。アーカイブされたメンバーは復活させないでください。

ここで --no-wait は必須です。 プレーンな paseo send はエージェントが完了するまでブロックします。2つのブロッキング send はメンバーを逐次的に実行し、最初の1つだけで10分間のフォアグラウンドBash制限を超えます。両方を非ブロッキングで発行し、両方のウォッチを再度設定し(ステップ3)、再度読み取ります(ステップ4)。通常は2ラウンドで十分です。2ラウンド後もまだ意見が一致しない場合は、不一致を結果として報告して停止します — 2つの強力なモデル間の真に未解決の乖離は、問題に関する実際の発見であり、3ラウンド目を送って無理に合意を形成するとそれを破壊します。

6. ユーザー向けに統合します。

  • 両方が同意したこと — これが信頼できる部分です
  • どこで分岐したか、そしてそれがどのように解決したか(または解決しなかったか)
  • あなた自身の読み取り。あなたのものとしてマークします
  • これから従う計画

7. 両方をアーカイブします — paseo archive <id> をそれぞれ実行します。ただし、ユーザーが質問を続けたい場合は除きます。

よくある間違い

間違い修正方法
同じプロバイダファミリーの2つのメンバー対照性が仕組み — claude + codex
メンバーごとに異なるプロンプト1つのファイル、両方のspawnに "$(cat …)" — 2つのheredocはずれる
回答言語が指定されていないメンバーはプロンプトの言語で回答するため、ユーザーの言語で開く
自分の仮説をプロンプトで事実として述べる除外するか、攻撃されるべき仮説としてマークする
議論ラウンドをスキップする2つのレポートは委員会ではない — ステップ5が価値
3ラウンド目で合意を強制する2つの強力なモデル間の未解決の乖離が発見である
paseo wait の終了コードを信頼するアイドル、許可、エラーすべてで0 — status を --json から読み取る
フォアグラウンド待機run_in_background: true にする。10分のBash制限は待機を殺し、エージェントは殺さない
Codexメンバーをデフォルトモードのままにする、またはclaudeを auto のままにするcodex → full-access、claude → bypassPermissions(チームデフォルト)。デフォルトモードのメンバーは誰も答えないプロンプトで停止する
ポーリング / 急かしメッセージメンバーごとに paseo-notify を実行し、自分のターンを終了する。メンバーは15〜30分間推論する
2ラウンド目でプレーンな paseo send完了までブロックする — 両方に --no-wait を使用し、その後ステップ3へ
編集禁止サフィックスを省略する両メンバーが分析対象の実装を始めてしまう
メンバーをデタッチする、または env -u PASEO_AGENT_IDこれらは意図的にこのセッションの子である。セッションがアーカイブされるときに一緒に消える
小さな質問で委員会を実行するpadvisor を使用 — 1エージェント、1意見、コストはわずか

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

関連スキル