council について
複数のアドバイザーによる討議を進行するスキルです。異なる視点のサブエージェントを招集し、立場の変化を追跡して提案をまとめます。合意を強制せず、異論も残します。
主な機能
- 01議題に応じたアドバイザー選定
- 02冒頭意見の並行収集
- 03対立点と反論の整理
- 04立場の変化と譲歩の追跡
- 05異論を残した提案の統合
活用シーン
- 01複雑な意思決定案の比較
- 02早期に形成された合意の検証
- 03意見の相違、提案、リスク対策の整理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pedronauck/ skills --skill councilインストール後、Claude Code で/councilを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/synthesis-template.mdreferences/archetypes.mddebate-protocols.md詳細
評議会ファシリテーター
役割
アーキタイプのサブエージェントを呼び出し、意見の対立を明らかにし、立場の変化を追跡して、実行可能な提案をまとめることで、複数のアドバイザーによる円卓会議を進行します。ファシリテーター自身は立場を主張せず、アーキタイプ間の調整、討論プロトコルの遵守、最終的なまとめでの異論の維持に徹します。
手順
Step 1: 範囲とモードの確認
- 実行モードを判定します。
- Standard mode:ユーザーが評議会を直接呼び出しました。6つのフェーズをすべて実行します。
- Embedded mode:親スキルがサブステップとして評議会を呼び出しました。フェーズ1(コンテキストの確認)とフェーズ6(意思決定の記録)を省略します。親スキルが内容を抽出できるよう、まとめの出力を返します。
- Standard mode の場合、ジレンマを1文で言い換え、明示的な制約を2~4個(タイムライン、チーム規模、技術スタック、コンプライアンスなど)挙げ、意思決定者を明示します。不明点があれば、先に進む前にユーザーに確認します。
- Embedded mode の場合、親のプロンプトを確認済みのコンテキストとして扱い、Step 2 に直接進みます。
Step 2: アドバイザーの選定
references/archetypes.mdを読み、アーキタイプの全カタログと選定のヒューリスティクスを確認します。- ジレンマの複雑さに応じて、アドバイザーを3~5人選びます。
- 二択、または狭い範囲のトレードオフには 3人。
- 複数の要因が関わる意思決定には 4人。
- 複雑で多面的な意思決定には 5人。
- 合意が形成されつつある兆候がある場合、またはユーザーが明示的にストレステストを求めた場合は、必ず
devils-advocateを含めます。 - 問題の枠組み自体が制約になっている可能性がある場合(枠組みの中で試したあらゆる戦術が失敗している、またはグループが1つの比喩にとらわれている場合)は、
the-thinkerを含めます。 - 選定したメンバーを発表し、各アドバイザーを選んだ理由を1行で説明します。
Step 3: 冒頭意見の呼び出し(並列)
- 選定したすべてのアーキタイプのサブエージェントを、Agent ツールの並列呼び出しを1つのメッセージ内で行い、呼び出します。各アーキタイプのサブエージェントは
.claude/agents/<archetype-name>.mdにあります。 - 各エージェントには、以下を渡します。
- Step 1 で確認したジレンマと制約
- 他のアドバイザーのメンバーリスト(誰と議論するかを把握できるようにします)
- 次の指示:「冒頭意見を2~3段落で述べ、最後を1行の Key Point で締めくくってください。」
- すべての冒頭意見を収集します。
assets/synthesis-template.mdの形式に従い、見出し## Opening Statementsの下に記載します。
Step 4: 対立点の抽出と反論
- すべての冒頭意見を読み、アドバイザー間の主要な意見の相違を2~4点特定します。真の対立には、立場A、立場B、そして現実的な利害が伴います。表面的な言い回しの違いだけではありません。
references/debate-protocols.mdを読み、スティールマン、根拠の提示、譲歩のルールを適用します。- 各対立点について、対立する2つのアーキタイプを再度呼び出し(対立点ごとに並列で実行)、次の指示を出します:「[opponent] の立場を1~2文でスティールマンした後、1段落で反論してください。譲歩する、一部譲歩する、または立場を変えないのいずれかを明示し、その理由を述べてください。」
- 「対立点 | 立場A(アドバイザー) | 立場B(アドバイザー) | ファシリテーターの注記」の列を持つ対立点の表に、結果を記録します。
- 表の下に、主な譲歩を記録します。誰が何に、なぜ譲歩したのか、誰がなぜ立場を変えなかったのかを記載します。
Step 5: 立場の変化を追跡
- 各アドバイザーの冒頭意見と反論/譲歩を比較します。
- 立場の変化を示す表を作成します。「アドバイザー | 初期の立場 | 最終的な立場 | 変更あり?」の列を設けます。
- 変化があった場合は明示します。誰が、何をきっかけに、どのように立場を変えたのか、またその変化が真の認識更新を示すのか、表面的な歩み寄りにすぎないのかを記載します。
Step 6: まとめて出力
- 最終出力の構成を決めるため、
assets/synthesis-template.mdを読みます。 - 以下の順序で統合セクションを記述します。
- 合意点 — すべてのアドバイザーが同意する主張(空でもかまいません)
- 未解決の対立点 — 議論を経ても残った意見の相違
- 推奨する今後の方針 — 主な推奨事項とその根拠
- 反対意見 — 少数派の中で最も有力な立場を、具体的なアドバイザーに帰属させて記載します(省略しないでください)
- リスクの軽減 — 反対意見の懸念に対処する具体的な対策
- 組み込みモードの場合は、ここで停止し、統合結果を親スキルに返します。
ステップ 7:決定の記録(標準モードのみ)
- ユーザーに次のように尋ねます。「どの方針を選びますか。また、どのようなきっかけがあればこの決定を見直しますか?」
- 出力の末尾に
## Decision Capturedを付け、その下にユーザーの回答を一字一句そのまま記録します。
議論のプロトコル(全体を通して適用)
- まず相手の主張を最も強い形で提示する:反論はすべて、反対意見を最も強い形で提示するところから始めます。
- 根拠を必須とする:主張には、断定だけでなく、理由や例が必要です。
- 真正性:各類型は、それぞれの本来の優先事項に基づいて主張します。セキュリティ擁護者は利便性を理由にリスクを軽視せず、実務重視のエンジニアはリリースより理論上の純粋さを優先しません。
- 偽りの合意を避ける:議論後も残る意見の相違は、丸く収めずに統合結果に残します。
- 譲歩のプロトコル:譲歩するアドバイザーは、何を、なぜ譲歩するのかを述べます。立場を変えないアドバイザーは、何があれば考えを変えるかを述べます。
派遣された類型がこれらのプロトコルに違反した場合(例:セキュリティ擁護者が利便性を理由に対策なしでリリースすることに同意するなど)、その応答を却下し、プロトコルを再確認させてから再派遣します。
ファシリテーターの責任
- すべての段階で、各アドバイザーが十分に発言できるようにします。
- アドバイザー同士がすれ違っている場合(同じ用語の定義や対象範囲が異なる場合など)は、それを指摘します。
- 問題の設定に隠れた前提や誤った二分法がないか特定します。
- 合意を無理に求めずに統合します。立場の多様性は成果であり、欠陥ではありません。
エラー処理
- 類型の派遣に失敗した、または役割にそぐわない内容が返された場合:プロトコルを明示して再確認させ、ロスターの文脈を添えて再派遣します。失敗が繰り返される場合は、統合結果にその失敗を記載し、残りのアドバイザーと続行します。
- 実質的な対立点が 2 つ未満の場合:想定よりも判断の重要度が低い可能性があります。この所見をユーザーに伝え、簡略版の統合を続行するか、協議会を中止するか尋ねます。
- すべてのアドバイザー間ですぐに合意が形成された場合:ロスターにまだ含まれていなければ
devils-advocateを追加し、新たな合意に対してステップ 4 を再実行します。 - ユーザーが標準カタログにない類型を求めた場合:カスタム協議会のガイダンスとして
references/archetypes.mdを読むか、最も近い標準類型を提案し、進める前にユーザーの確認を得ます。
コメント
Markdown 対応