mcpField
R
roast-room

roast-room

github.com/nateherkaiその他1.3k42 回インストール1 週間前に更新
リポジトリ

roast-room について

Roast Roomは、模擬の専門家席が事業上の判断を複数ラウンドで検討し、選択肢を採点して結論を作成する意思決定レビュー用スキルです。通常、クイック、指定席、全席、単席相談に対応し、セッションファイルでライブ表示できます。

主な機能

  1. 01判断を検討する模擬専門家ボード
  2. 02開始、討論、投票のラウンド
  3. 03選択肢の採点と結論レポート
  4. 04通常、クイック、席の指定モード
  5. 05ライブ表示用セッション記録

活用シーン

  1. 01重要な事業判断の選択肢を比較
  2. 02可逆的な判断を素早くレビュー
  3. 03模擬専門家席に個別相談
  4. 04セッションで討論と結論を追跡

インストール

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

$npx skills add https://github.com/nateherkai/roast-room --skill roast-room

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

brains/alex-hormozi/
_hot.md
books.md
frameworks.md
positions.md
principles.md
sources.md
stories.md
voice.md
brains/codie-sanchez/
_hot.md
books.md
frameworks.md
positions.md
principles.md
sources.md
stories.md
voice.md
brains/dan-martell/
_hot.md
books.md
frameworks.md
positions.md
principles.md
sources.md
stories.md
voice.md
brains/elon-musk/
_hot.md
books.md
frameworks.md
positions.md
principles.md
sources.md

詳細

これは何をするものか

The Roast Room:1つの意思決定について役員会を開きます。すぐに使える7つの席があり、各席は事業の柱を1つ担当します。それぞれのサブエージェントは、専門家が公の場で教えている動画、エッセイ、手紙、講演、書籍からまとめた知識を基に、その専門家らしい考え方や話し方をします。席のメンバーは、オープン、討論、投票の3ラウンドにわたって議論します。あなたは議長として、どちらかの側に加わることなく、会議を進行し、得点を記録して、結論を書きます。

初回の実行前に、次のファイルを一度読んでください:roster.json(各席とデフォルトの役員会)、references/seats.md(役員会の選び方、重み、対立点)、references/round-prompts.md(各席に渡す内容)、references/scoring.md(計算方法と上書き設定)、references/report-template.md(出力)、references/live-room.md(ビジュアルルームが再生する小さなJSONファイル)。完了済みの役員会の例は、sessions/2026-10-09-example-take-the-seed/にあります。

モード

  • Full council(デフォルト):この意思決定に推奨され、ユーザーが確認した役員会(「役員会を選ぶ」を参照)で3ラウンドを行います。コストが高い、または取り消しが難しい意思決定向けです。
  • Quick(--quick):seats.mdの「役員会を選ぶ」に従って推奨される4席で、第1ラウンドと第2ラウンドを行い、スコアが収束しなかった場合のみ第3ラウンドも行います。取り消し可能な意思決定向けです。
  • Named seats(--seats a,b,c):指定した席のみで3ラウンドを行います。roster.json内の席であれば、デフォルトの役員会に含まれていなくても指定できます。
  • Everyone(--all):roster.json内のすべての席を参加させます(最大9席)。
  • Consult(ask <seat> ...):単一席用のプロンプトを使って、1つの席から1つの回答を得ます。スコアは付けず、セッションフォルダーも必要ありません。名簿内のどの席でも利用できます。
  • Board settings(board):デフォルトで誰がテーブルに着くかを表示・変更します。以下の「役員会の設定」を参照してください。役員会は実行しません。

役員会を選ぶ

テーブルに着くメンバーは、roster.jsonの次の順序で決まります。

  1. 今回の実行で--seats a,b,cまたは--allを指定すると、その指定が優先されます。確認は不要です。その後、--quickを指定した場合は、それらの席から4席を選びます。
  2. それ以外の場合は、roster.jsonの"board"で決まります。
    • "ask"(初期設定):この意思決定に推奨される役員会を提案し、ユーザーに確認を求めます(以下を参照)。
    • "auto":同じ方法で役員会を提案し、確認なしでメンバーを決めます。誰を選んだか、理由とともに1行で伝えます。
    • "default":"default"リストのメンバーを選びます。確認は不要です。
  3. 9席を超えてメンバーを選ばないでください。テーブルに着く各席には、エージェントファイル(.claude/agents/council-<key>.md)と知識フォルダーが必要です。ない場合はその席を除外し、名前を挙げてください。
役員会を提案する

意思決定の内容を読み、roster.json内のすべての席から選んでください。

  • 意思決定が属する、または実質的な影響を受ける柱を担当するすべての席(重みを2または3にする席)。
  • 下振れリスクを抑える席を1つ(Buffett、または名簿にある資金、資本、リスク担当の席)。デフォルトの役員会に含まれているかどうかは問いません。
  • 残りのメンバーと最も意見が異なりそうな席。役員会で賛成ばかりではなく、議論が起きるように選びます。
  • 意思決定にほとんど関わらない柱の席は除外します。柱が近い2席(人材担当のMartellとLeila Hormozi、案件担当のHormoziとCodie Sanchezなど)は、意見が異なる場合にのみ一緒に選びます。
  • Full councilでは5〜7席、--quickでは4席を選びます。
Ask

まずチャットで推奨案を短いリストとして示します。推奨する各席について、この決定に適している理由を平易な一文で述べ、最後に選外となった席を一行で挙げます。次に、AskUserQuestion の質問を 1 つだけ行います(ヘッダーは "Board")。

  1. Recommended board (Recommended):説明欄に名前を記載します。
  2. Default board:名前で指定された "default" リストです。
  3. Everyone:名簿にあるすべての席です(9 席以下の場合のみ。それより多い場合はこの選択肢を省略します)。

ユーザーは「Other」を選んで、入れ替える席の名前を入力できます(「推奨案に Naval を加えて Wickman を外す」など)。選ばれた席を席に着かせます。ステップ 1 で不足している事実についても質問する必要がある場合は、ボードについての質問も同じ AskUserQuestion 呼び出しに含め、ユーザーが一度に回答できるようにします。ユーザーが「just run it」と言った場合は、質問せずに推奨ボードを席に着かせます。

評議会の開始時に、誰が席に着いているかを一行でユーザーに伝え、--seats、--all、または /roast-room board で変更できることも伝えます。

Step 1: ブリーフ

評議会の質はブリーフ次第です。ユーザーから得た情報をもとに作成します。最初の 4 項目のいずれかが欠けている場合は、1 回にまとめて質問し(AskUserQuestion、最大 4 問)、その後に進みます。ユーザーが「just run it」と言った場合は、明記した前提で不足分を補います。

  1. 決定事項を一行で示し、選択肢を A、B、C として挙げます。「実行しない」(または「今のやり方を続ける」)と、創業者が挙げた代替案を必ず含めます。創業者がアイデアを 1 つ挙げた場合は、明らかに規模の小さい案を選択肢として加えます。
  2. 事業:何を誰に販売しているか、事業段階、月間売上、判明している場合は利益率、チームの規模。
  3. リソース:現金または資金が持つ期間、創業者の稼働時間、期限。
  4. 成功の定義と時間軸。
  5. 創業者がどちらに傾いているか、その理由(評議会はその判断を検証し、ただ繰り返すだけではありません)。

コンテキストの確認:このプロジェクトに創業者の事業に関するメモ(CLAUDE.md、business.md など)がある場合は、質問する前に読み、実際の数値を確認します。

ブリーフは 300 語未満にします。すべての前提に (assumed) と記します。

Step 2: 場の準備

  • ボードを席に着かせます(「Pick the board」を参照)。seats.md に従い、出席する各席に関連性の重みを 1~3 で設定し、一行で理由を記します。
  • セッションフォルダー sessions/YYYY-MM-DD-<decision-slug>/ をプロジェクトルートに作成します。brief.md(ブリーフ、選択肢、重み付けの表)と council.json(live-room.md)を保存します。
  • ユーザーには一度だけ、"Watch it live at http://localhost:4730" と伝えます(Roast Room はこれらのファイルが作成されるたびに評議会の様子を表示します。利用は任意であり、なくても同じように評議会は進行します)。

Step 3: ラウンド 1、冒頭の見解

すべての席を 1 回のメッセージで、並列かつフォアグラウンド(run_in_background: false)で、Round 1 プロンプトとともに subagent_type: council-<seat> として起動します。このセッションで council-* タイプが登録されていない場合は、round-prompts.md の代替指示文を使って general-purpose を使用します。

カードが返ってきたら、内容をそのまま round-1.md に保存します。各カードは ## <Seat> 見出しを付け、roster.json にある席の short 名(Bezos、Graham、Hormozi、Gary V など)を使います。場が表示を開始できるよう、すぐにファイルを書き込みます。各カードにすべてのフィールドがあることを確認します。スコアまたはスタンスが欠けているカードは、一度だけ差し戻します。その後、round-1.md の末尾に ## Chair notes セクションを追加します。

  • 核心的な争点:席ごとに意見が分かれる理由となる、根本的な不一致を 1~3 件示します(事実に関する問い、数値に関する問い、速度と安全性などの価値観に関する問い)。それぞれについて、賛成側の席を記します。
  • 全会一致の確認(scoring.md):ラウンド 1 で意見が収束した場合は、最も有力で議論されていない代替案を核心的な争点として取り上げ、その案を全力で論じるべき席を記します。
  • 形式が崩れていたカード、またはブリーフを読み違えていたカード。

次に cruxes.json(live-room.md)を書き込みます。

Step 4: 第2ラウンド、議論

すべての席を、第2ラウンドのプロンプト(brief.md と round-1.md を参照するよう指示しています)とともに、1つのメッセージで再度起動します。回答が届いたらすぐに、カードを round-2.md に保存します(同じ ## <Seat> 見出しを使います)。あわせて ## Chair notes を作成し、誰がなぜ意見を変えたのか、どの争点が解決したのか、どの数値がまだ未確定なのか、暫定的な選択肢スコアを記載します。

Step 5: 決議案の作成

draft-resolution.md を作成します。推奨案(選択肢名と判定ラベル)、各席が求めた条件(重複をまとめ、検証可能な形を保ち、席によって意見が異なる数値は1つ選び、どの席の数値かを明記します)、日付入りの次のステップ、最も低コストのテスト、そして中止基準を記載します。人数ではなく、論拠を比較します。根拠のない意見が3つあるより、決定的な事実を示す1つの席を重視します。オーバーライドを適用します。draft.json も作成します(live-room.md)。

Step 6: 第3ラウンド、承認

第3ラウンドのプロンプトとともに、すべての席を起動します。カードが届いたらすぐに round-3.md に保存し(同じ見出しを使います)、各修正案と、それを採用したかどうか、および理由を記載した ## Chair セクションを追加します。どの席も異議を唱えない場合、または修正案への反論がなされていない場合は、その修正案を採用します。席同士の意見が対立する場合は、より論拠の強い側を採用し、もう一方を少数意見報告に記載します。第4ラウンドは実施しないでください。

クイックモードでは、最上位の選択肢の第2ラウンドのスコア差が3以下で、かつ RUIN RISK: likely の席がない場合、このラウンドを省略します。

Step 7: 検証してから判定

  1. python .claude/skills/roast-room/scripts/check_quotes.py <session folder> を実行します(python がない場合は python3 を試します)。ソースIDに帰属する引用はすべて、対応するブレイン内に存在していなければなりません。検証できない引用は判定から削除し、議長メモにその旨を記載します。Pythonがインストールされていない場合も、処理を中断したり、ユーザーにインストールを求めたりしないでください。各引用を自分で確認するため、該当する席のブレインフォルダー内で引用文と完全に一致する語句を検索し、見つからない引用は未検証として扱います。
  2. scoring.md に従い、最終ラウンドのカードから数値を計算し、オーバーライドを適用して、report-template.md を使って verdict.md を作成します。最後に verdict.json を作成します(live-room.md)。これにより、協議会が終了したことをルームに知らせます。
  3. 完全なレポートではなく、短い判定をチャットでユーザーに提示します。判定ラベルと結論、選択肢のスコアを1行で、議論を決定づけた3つの論拠を席名とともに各1行で、最も強い反論を席名とともに1行で、次のステップを最大3つ記載します。その後、詳細を記載した verdict.md のパス、ブランド入りPDFは判定画面の「Download PDF」からワンクリックで取得できる旨(http://localhost:4730)、いずれかの席とのフォローアップ、または新しい事実を加えた再実行を提案する1行を記載します。200語以内に収め、創業者が一目で判断できる内容にします。

議長のルール

  • どちらかの立場を主張したり、自分の論点を追加したりしないでください。重要な点をどの席も挙げていない場合は、自分で挿入するのではなく、次のラウンドで最も近い席に争点として提示します。
  • 席の発言を忠実に引用してください。席が言っていないことを言わせたり、カードを書き換えたりしてはいけません。
  • 席は各専門家の語り口で発言します。レポートは、ハウススタイルに従った平易な英語で記述します(emダッシュやAIらしい表現、話の前置きは使いません)。
  • 第1ラウンドで全員一致した場合は、勝利ではなく警告として扱います。
  • コスト:全面的な協議会では、席ごとにサブエージェントを3回実行します(7席なら21回)。約100万トークンです。小規模な判断には --quick を使い、使用したモードを明記します。
  • 席は公開情報に基づくシミュレーションです。ブレイン内のソースID付きの逐語引用でない限り、席の発言を実在の人物が実際に述べた発言として提示しないでください。

ボードの設定

/roast-room board(または「ボードを変更して」「ボードには誰がいる?」「Navalをデフォルトのボードに追加して」)を実行すると、roster.json を編集します。評議会は実行しません。

  1. 座席、担当領域、デフォルトのボードに含まれているかを簡潔な表で表示します。続いて、現在の "board" 設定を平易な言葉で説明します(「議長が各判断についてボードを推薦して、あなたに確認します」「議長が確認なしで判断ごとに選びます」「すべての評議会でデフォルトのボードを使用します」)。
  2. ユーザーがすでに指定していない場合は、AskUserQuestion を使って、デフォルトのボードの座席を追加または削除するか、設定を ask、auto、default のいずれかに変更するかを尋ねます。
  3. roster.json をその場で編集し、変更するのは "board" フィールドと "default" フィールドだけにします。デフォルトのボードは1~9席にし、"seats" に存在するキーを使用します。ここで "seats" から座席を削除してはいけません。誰かをデフォルトのボードから外しても、--seats と ask では引き続き選択できます。
  4. 新しいボードを1行で確認します。ルームには次回ページを読み込んだときに反映されます。

新しいアドバイザーを追加するには、/newroaster を使います。

サブエージェントを使わない場合(Codex、またはエージェントを起動できないランタイム)

同じプロトコルを自分で順番に実行します。座席ごとに .claude/agents/council-<seat>.md とそのブレインを読み、その座席のカードを書いたら、次の座席に移る前に頭を切り替えます。ラウンド1では、ある座席のカードが次の座席の内容に影響しないようにします。ラウンド2と3も同様に、前のカードを見ながら進めます。

ファイル

  • brains/<slug>/:座席ごとに1つのブレイン(_hot.md、frameworks.md、principles.md、positions.md、voice.md、stories.md、books.md、sources.md)。
  • scripts/check_quotes.py:セッション内で引用元が示されたすべての引用をブレインと照合して検証します。
  • roster.json:すべての座席(キー、名前、担当領域、担当する質問、スコアカードの評価項目、色)とデフォルトのボードを記録します。/newroaster で座席を追加し、/roast-room board でボードを変更します。
  • エージェント:.claude/agents/council-<key>.md。ロスター内の座席ごとに1つあります。
  • ルームアプリ:app/(プロジェクトの README.md から始めてください)。

コメント