mcpField
L
local-council-execution

local-council-execution

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

local-council-execution について

外部プロバイダーが設定されていない場合に、異なる役割の Claude サブエージェントを招集し、見解を統合するフォールバック用スキルです。同一モデル内の一致は独立した検証ではないと明示します。

主な機能

  1. 01ローカル council モードの可否を確認
  2. 02メンバーの役割と人数を決定
  3. 03役割別メンバーを並行起動
  4. 04見解を提示し相違点を統合
  5. 05council の全出力を保存

活用シーン

  1. 01外部プロバイダーなしで役割別の見解を集める
  2. 02質問の盲点や意見の対立を洗い出す
  3. 03ローカル council の実行記録を保存

インストール

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

$npx skills add https://github.com/hex/claude-council --skill local-council-execution

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

同梱ファイルagent-prompt-template.md

詳細

ローカル評議会の実行

外部プロバイダーが設定されていない場合は、代わりに独立した Claude サブエージェントによる評議会を招集します。各メンバーはほかのメンバーの回答を知らずに、1つの役割の視点から回答します。その後、さまざまな視点をまとめます。

まずこれをお読みください — 誠実な説明は必須です。 すべてのメンバーは Claude です。事前の見解やトレーニングデータを共有しているため、メンバー間の意見の一致は弱いシグナルであり、検証にはなりません。ここでの価値は、独立した視点と死角のカバーであり、合意ではありません。生成する出力では、これを明示しなければならず、メンバー間の意見の一致を、あたかも異なるベンダーによる裏付けであるかのように示してはなりません。

ステップ 0:これがローカル評議会のコンテキストであることを確認する(ガード)

ローカル評議会は、実際のプロバイダーが存在しない場合のフォールバックであり、「評議会を使う」ためのデフォルトの方法ではありません。次のいずれかに該当する場合にのみ続行してください。

  1. ユーザーが明示的に --local を指定した場合、または
  2. 設定済みのプロバイダーがなく、ユーザーがローカル評議会の提案を受け入れた場合。

ほかの経路でこのスキルに到達した場合は、何かを起動する前に、プロバイダーが実際に存在しないことを確認してください。

bash ${CLAUDE_PLUGIN_ROOT}/scripts/query-council.sh --list-default 2>&1 | head -1

プロバイダーが1つ以上表示され、ユーザーが --local を指定していない場合は、停止してください。ローカルメンバーを起動してはなりません。実際のプロバイダーから回答を得るため、標準のクロスベンダーフロー(council-execution)を実行してください。同じモデルによるロールプレイは、ユーザーが利用できるクロスベンダー評議会よりも明らかに劣るためです。

ステップ 1:役割を決める

ライブラリを一度読み込みます。

source ${CLAUDE_PLUGIN_ROOT}/scripts/lib/prompts.sh
source ${CLAUDE_PLUGIN_ROOT}/scripts/lib/roles.sh

ユーザーが --roles を指定した場合、そこには視点とメンバー数の両方がすでに指定されているため、そのまま使い、人数の質問は省略します。

local_council_roles "<--roles value>"

それ以外の場合は、招集するメンバー数をユーザーに尋ねてから、その数のメンバーを決めます。

AskUserQuestion:
  Question: "How many independent perspectives should the local council convene? More members means broader angle coverage, but a longer run and synthesis."
  Header: "Members"
  multiSelect: false
  Options:
    - "4 (Recommended) - balanced breadth"
    - "3 - quick, three sharpest lenses"
    - "5 - thorough"
    - "6 - exhaustive"

次に、選んだ数を個数として渡します。

local_council_roles "" "<chosen number>"

local_council_roles は、カンマ区切りの役割リスト(例:devil,simplicity,security,scalability)を返します。各役割が評議会のメンバー1人に対応し、N は役割の数です。多様な順序から選ばれ、利用可能な8つの役割の範囲内に収まるよう調整されます。さらに多くの役割や特定の視点を希望するユーザーは、--roles を指定できます(例:--roles=security,devil,simplicity,scalability,dx,compliance)。確認したい場合は、validate_roles "<list>" を実行すると、不明な役割がある場合にゼロ以外の値を返します。

ステップ 2:質問とコンテキストをまとめる

各メンバーが回答するテキストを作成します。

  • ユーザーの質問。
  • --file または自動コンテキストで収集したファイルのコンテキスト(クロスベンダーフローで送信するものと同じコンテキスト)。メンバーは参照先のファイルも自分で読みますが、それに加えて推論に使えるよう、コンテキストを本文に含めます。

ステップ 3:メンバーを並列で起動する

各役割について、役割を挿入したプロンプトを作成し、メンバーを1人起動します。正確なプロンプトと build_prompt_with_role の呼び出しについては、agent-prompt-template.md を参照してください。

すべてのメンバーを1つのメッセージで(複数の Agent ツール呼び出しを使って)起動し、次のように指定します。

  • subagent_type: "general-purpose"
  • run_in_background: true

メンバー向けの説明(独立してほかのメンバーの回答を知らずに、割り当てられた視点に徹すること、回答形式)は、プロンプト自体に含まれています。テンプレートを参照してください。全員を同時に起動すると並列で実行され、それぞれがほかのメンバーの回答を知らない状態を保てます。

ステップ 4:結果を収集する

バックグラウンドのメンバーが完了するたびに、自動的に通知されます。まとめる前に、全員の完了を待ちます。メンバーが失敗またはタイムアウトした場合は、その旨を記録し、残りのメンバーで続行します。

ステップ 5:各視点を表示する

まず、次のバナーを一字一句そのまま表示します(誠実な期待値を設定するためです)。

ローカル評議会 — これらの視点はすべて、異なる AI ベンダーではなく、異なる役割を演じる Claude から得られたものです。意見の一致は、独立した確認と見なすのではなく、検証すべき共通の出発点として扱ってください。

次に、各メンバーの視点を、役割名を示す見出しの下に表示します(表示名には get_role_name "<role>" を使います)。

## 🗳️ {ROLE_NAME}

{member's Position / Key points / Risks & blind spots / Confidence}

ステップ 6:統合 — 合意ではなく、視点の広がり

メンバーが同じモデルを共有しているため、統合では合意の強さではなく、 意見の広がりと網羅性を軸にしてください。

  • 共通する出発点 — メンバーの見解が収束した点です。これは 裏付けではなく、ストレステストすべき共通の前提であることを明記し、 同じ理由で全員が見落としている可能性のある点を問いかけてください。
  • 本質的な緊張関係 — 役割ごとに見解が異なる点と、ユーザーの具体的な 状況から、どの緊張関係がこの場面で最も重要なのかを示してください。
  • 盲点 — あるメンバーが提起したリスクに、他のメンバーのアプローチでは 対処できない点です。また、どのメンバーも取り上げなかった点も指摘してください。
  • 推奨する方向性 — 最善の統合的な提案を示し、それを支持する役割と、 実際に不確実性が残る箇所を明記してください。

ステップ 7:出力を保存する

mkdir -p .claude/council-cache

出力全体(バナー+すべてのメンバーの見解+統合)を、 .claude/council-cache/local-council-{TIMESTAMP}.md に保存します。TIMESTAMP には 現在の Unix タイムスタンプを使用します。その後、ユーザーに次のように伝えます。


ローカル評議会を .claude/council-cache/local-council-{TIMESTAMP}.md に保存しました ベンダーをまたぐ視点を得るには、プロバイダーのキーを設定するか、CLI をインストールしてください (利用可能なものは /claude-council:status で確認できます)。

エラー処理

  • メンバーが失敗した場合は、その失敗を表示し、他のメンバーの処理を続行します。
  • すべてのメンバーが失敗した場合は、その旨を明確に報告し、再試行を提案します。
  • 1 つの役割だけが解決された場合は、その旨を伝えてください。1 人だけの 「評議会」は、単一の役割になりきった回答にすぎないため、ユーザーにそのことを知らせてください。

コメント