mcpField
R
roundtable

roundtable

github.com/tt-a1iエージェントワークフロー18992 回インストール2 日前に更新
リポジトリ

roundtable について

複数のサブエージェントが異なる立場から提案を並行して論じ、未解決の異論を残したまま結論をまとめる意思決定レビュー用スキルです。意思決定や設計の評価が対象で、コード変更のレビューには使いません。

主な機能

  1. 01提案を議論可能な論題に整える
  2. 02共通の証拠資料を用意
  3. 03独立した議論を並行実行
  4. 04匿名で意見を相互レビュー
  5. 05結論、合意点、異論を整理
  6. 06議論を最大2ラウンドに制限

活用シーン

  1. 01アーキテクチャ上の決定を検証
  2. 02計画案への異なる論拠を比較
  3. 03リスクと未解決の反対意見を特定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tt-a1i/matt-skills-with-to-goal --skill roundtable

インストール後、Claude Code で/roundtableを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yaml

詳細

意思決定、計画、提案を、意図的に対立する視点から論じるサブエージェントを並行して割り当てて検証し、その議論を反対意見も残した一つの結論にまとめます。

対象は意思決定と設計のみです。差分のレビューは /code-review の担当です。コード変更をラウンドテーブルにかけないでください。

プロセス

1. 議題を設定する

ユーザーの質問を、議論可能な単一の議題として言い換えます。つまり、「Xを独立したサービスに切り出すべきです」のように賛成・反対できる主張にします。「Xについてどうすべきですか?」のような自由回答の質問にはしません。ユーザーの依頼が漠然としていて議題を設定できない場合は、まず明確化を求めます。それでも曖昧な場合は、ラウンドテーブルを招集する前に /grilling を実行するよう提案します。

次に、メインスレッドで自らエビデンスパックをまとめます。関連するファイルパスと抜粋、制約、すでに下された決定、ユーザーが添付したものを含めます。事実を見つけるのは議長の役割です。サブエージェントは独自に調査しないため、テーブル全員が同じエビデンスについて議論できるようにします。

誰かを割り当てる前に、議題が一文であり、エビデンスパックが議論に十分であることを確認します。議題が曖昧な場合は、4つのサブエージェントに並行して渡す前にここで差し戻します。

2. テーブルの席を決める

デフォルトでは4つの席を用意します。

  • 懐疑派 — 議題が失敗すると仮定して、その理由を論じます。YAGNIを徹底し、隠れた前提を探します。
  • アーキテクト — 長期的な構造、モジュールの深さ、結合度、進化にかかるコストの観点から論じます。
  • ユーザー擁護者 — 結果を使う人、または呼び出す人の体験をもとに論じます。仮定上のワークフローではなく、実際のワークフローを重視します。
  • 現実主義者 — 実現可能な最短経路、保守の負担、機会費用、今週リリースできるものの観点から論じます。

ユーザーは議題に合わせてテーブルの構成を変更できます(「セキュリティ専門家でテーブルを組む」など)。席数は3~5にしてください。デフォルトでもカスタムでも、各席のブリーフには次の一文をそのまま含めてください。「あなたの役割は、総合的な判断が別の結論に至るとしても、この視点から最も強力な主張をすることです。」 この一文が、意見の収束を防ぐ第一の策です。

3. 第1ラウンド — 独立した意見表明

席ごとに1つ、N個のサブエージェントを並行して割り当てます。それぞれには、席のブリーフを除いて同一の入力パックを渡します。以下を含めてください。

  • 議題(原文のまま)。
  • エビデンスパック全体(サブエージェントがアクセスできる情報はこれだけです)。
  • ステップ2の最も強力な主張をする一文を含む、席のブリーフ。
  • 出力条件:「立場(賛成/反対/条件付きで賛成)、最も強い論拠を3つ、認識している最大のリスクを1つ述べてください。300語未満。」

隔離することが重要です。各席は他の席の意見表明を見られないため、最初に発せられた意見に引きずられることがありません。

4. 第2ラウンド — 匿名の相互レビュー

ユーザーがクイックラウンドテーブルを希望した場合に限り、このラウンドを省略します。

第1ラウンドの意見表明から席の名前を取り除き、順番をシャッフルして、立場A、B、C、Dとラベル付けします。再びN個のサブエージェントを並行して割り当て、それぞれに以下を渡します。

  • これまでと同じ議題とエビデンスパック。
  • 自分の席のブリーフと、匿名化された立場のうち自分のものがどれか。
  • 匿名化されたすべての立場(全文)。
  • ブリーフ:「最も意見が異なる立場に反論し、攻撃対象の主張を引用してください。他の立場によって自分の立場のいずれかの点が実際に弱められた場合は、その点を認めてください。説得力の高い順にA~Dを順位付けしてください。300語未満。」

匿名化することで、席ではなく論拠を攻撃させます。「懐疑派」への反論は芝居にすぎませんが、帰属先のない主張への反論では、その主張自体に向き合う必要があります。

5. 議長による統合

メインスレッドで匿名性を解除し、評価します。評価は平均を取ることではありません。多数派ではないというだけで立場が誤りになるわけではなく、どの反論によっても覆されなかった異論は、該当する席に帰属させたまま、報告にそのまま含めます。出力形式は固定です。

## Verdict — the recommendation, one paragraph
## Consensus — points every seat agreed on
## Dissent worth weighing — undefeated objections, attributed to their seats
## Vote table — seat × position × cross-review ranking
## What would change the verdict — facts that would flip it

結論に基づいて行動しないでください。ラウンドテーブルは助言するだけであり、決めるのはユーザーです。

コストのガードレール

完全なラウンドテーブルでは、サブエージェントの実行回数は合計 2N 回(N 回の意見表明 + N 回の相互レビュー)です。クイックモードでは N 回です。ラウンド数は最大 2 回です。終わりのない議論のループは行いません。相互レビュー後も結論が出ない場合、それ自体が調査結果です。意見が分かれたままであることと、結論を出すために必要な証拠を報告してください。

コメント