# Council System

> 3つの異なる性格のサブエージェント（論理派・感情派・批判派）を並列起動し、スタンス表明→クロスレビュー→合議で進め方を決定するスキル。「合議で決めて」「3つの視点で」「多角的に検討して」「意思決定を助けて」で発動。

- Skill: `ynitto/council-system` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add ynitto/council-system`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ynitto/council-system/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ynitto (https://skillmd.com/u/ynitto)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ynitto/council-system

---


# council-system — 合議制意思決定エンジン

3つのサブエージェントを並列起動してスタンス表明・クロスレビューを行い、議長として統合結論を出す。

学術的基盤: 社会学（集団思考回避・デルファイ法）、哲学（弁証法・無知のヴェール・反証可能性）、管理工学（事前検死・フォースフィールド分析・有界合理性）。詳細は `references/academic-frameworks.md` 参照。

## パス解決

このSKILL.mdが置かれているディレクトリを `SKILL_DIR` とする:
- ペルソナ定義: `${SKILL_DIR}/references/personas.md`
- 起動テンプレート: `${SKILL_DIR}/references/subagent-guide.md`
- 学術フレームワーク: `${SKILL_DIR}/references/academic-frameworks.md`
- バイアスカタログ: `${SKILL_DIR}/references/bias-catalog.md`

---

## 実行プロトコル

### ⛔ STOP — 直ちに Step 0 から実行すること

議長自身が意見を述べない。すべての意見表明・クロスレビューはサブエージェントが行う。

---

### Step 0: 準備

1. `references/personas.md`、`references/subagent-guide.md`、`references/bias-catalog.md` を読み込む
2. ユーザーの問題・要求を「議題」として整理する

**問題フレーミングの確認（必須）**: 議題を最低2通りの表現に言い換えて比較する。

> 例: 「〇〇を採用すべきか？」→ フレーム A: 「〇〇を採用することのメリット・デメリットは？」/ フレーム B: 「〇〇を採用しない場合のコストとリスクは？」

フレーミングによって答えが誘導されていると感じた場合は、ユーザーに確認するか、複数フレームで並行検討することをサブエージェントへの指示に明記する。

3. ROUND 1 サブエージェントを起動する

---

### Step 1: ROUND 1（スタンス表明 — 3並列）

> ### ⛔ STOP — `runSubagent` を今すぐ3件同時起動する

`subagent-guide.md` のテンプレートを使い、**同一ターン内で3件の `runSubagent` をまとめて起動**する:

| ペルソナ | 役割 | 必須出力フィールド |
|---|---|---|
| MELCHIOR | 論理・データ・事実 — 合理的な最善解を追う | 推奨方針・主要な前提・反証可能性・バイアス宣言・信頼度 |
| BALTHASAR | 倫理・感情・人間性 — すべての関係者の幸福を優先する | 推奨方針・ステークホルダー影響マッピング・3軸倫理評価・主要な前提・バイアス宣言 |
| CASPER | 現実・リスク・コスト — 実現可能性と二次効果を批判的に検証する | 推奨方針・フォースフィールド分析・リスクと現状維持のコスト・事前検死シナリオ・主要な前提・懸念点・バイアス宣言・信頼度 |

各サブエージェントへの指示にはペルソナ定義ファイルのパス (`${SKILL_DIR}/references/personas.md`) を含め、ペルソナを正確に読み込ませること。

**出力例の見出し**（ユーザーへの表示）:
```
## 🔬 ROUND 1: スタンス表明

### MELCHIOR（論理・分析）
[意見]

### BALTHASAR（倫理・感情）
[意見]

### CASPER（現実・批判）
[意見]
```

---

### Step 2: 対立判定と収束チェック

`subagent-guide.md` の「対立判定と収束チェックの基準」に従って**2段階判定**を行う:

#### チェック1: 通常の対立判定

3意見の `**推奨方針（1行）**` フィールドを抽出して判定する:

- **3者全員が異なる方向（対立）** → Step 3（ROUND 2）へ進む
- **2/3以上が同方向（収束）** → チェック2へ進む

#### チェック2: 不自然な収束の検知

収束が検出された場合、以下のシグナルを確認する:

| シグナル | 確認内容 |
|---|---|
| 前提が相互に矛盾しているのに推奨方針が同じ | → 偽の収束の可能性 |
| バイアス宣言が全員同じ方向に作用している | → 集団思考の可能性 |
| 信頼度が全員「高」で懸念点がほぼ同じ | → 視野狭窄の可能性 |

- **シグナルなし（真の収束）** → Step 4（SYNTHESIS）へスキップ
- **シグナルあり（不自然収束）** → Step 3 で「強制デビルズアドボカット」を発動

判定結果をユーザーに1行で提示する:
- `⚡ 意見対立を検出 — ROUND 2 を実施します`
- `✅ 3者収束 — SYNTHESIS へ進みます`
- `⚠️ 不自然な収束を検知 — デビルズアドボカットを発動します`

---

### Step 3: ROUND 2（クロスレビュー — 3並列、対立時 or 不自然収束時）

> ### ⛔ STOP — `runSubagent` を今すぐ起動する

**通常の対立時**: `subagent-guide.md` のクロスレビューテンプレートを使い、**3件の `runSubagent` を同一ターン内で並列起動**する。

各サブエージェントには ROUND 1 の **他の2名の意見全文**（前提・バイアス宣言を含む）を渡す。自分の意見は渡さない。

**不自然収束時**: `subagent-guide.md` の「強制デビルズアドボカット」テンプレートを使い、**1件の `runSubagent`** を起動する（信頼度が最も低かったエージェントを選ぶ）。

**出力例の見出し**:
```
## ⚔️ ROUND 2: クロスレビュー

### MELCHIOR のクロスレビュー
[反論]

### BALTHASAR のクロスレビュー
[反論]

### CASPER のクロスレビュー
[反論]
```

---

### Step 4: SYNTHESIS（統合結論）

**このステップは議長（オーケストレーター自身）が実行する。サブエージェントは不要。**

ROUND 1 と ROUND 2（実施した場合）の全議論を踏まえて、以下の形式で統合結論を出す:

```
---

## 🏛️ SYNTHESIS: 統合結論

### 議論の要点

| 観点 | MELCHIOR | BALTHASAR | CASPER |
|---|---|---|---|
| 推奨方針 | [方針] | [方針] | [方針] |
| 信頼度 | [高/中/低] | [高/中/低] | [高/中/低] |

### 前提監査（Assumption Audit）
3者の「主要な前提」を比較し、共有・異論・未検証を分類する:

| 前提 | MELCHIOR | BALTHASAR | CASPER | 状態 |
|---|---|---|---|---|
| [前提1] | ✓/✗/— | ✓/✗/— | ✓/✗/— | 共有 / 対立 / 未検証 |
| [前提2] | ✓/✗/— | ✓/✗/— | ✓/✗/— | 共有 / 対立 / 未検証 |

対立・未検証の前提がある場合: これらの前提が解消されない限り、統合判断は暫定的であることを明記する。

### ステークホルダー影響サマリー
BALTHASAR の影響マッピングから抽出した主要な利害関係者:
| ステークホルダー | 採用方針での影響 | 声が聞かれているか |
|---|---|---|
| [関係者1] | [影響] | [はい/いいえ] |

### 収束点
各賢者が共通して指摘した点・合意事項:
- [収束点1]
- [収束点2]

### 対立の整理
解消されなかった意見の対立:
- [対立軸]: MELCHIOR「〜」vs BALTHASAR「〜」vs CASPER「〜」
- [前提の衝突]: [対立している前提]

### 統合判断
議論全体を踏まえた最善の方針:
**[推奨方針の一文]**

[推奨理由: 各賢者の重要な指摘をどう統合したか]

### 推奨アクション（ToDo）

1. [ ] [具体的な行動1]
2. [ ] [具体的な行動2]
3. [ ] [具体的な行動3]

### リスク・留意点
採用方針に伴うリスクと対策:
- ⚠️ [リスク1]: [対策]
- ⚠️ [リスク2]: [対策]

### 認識論的謙虚さ（Epistemic Humility）
**信頼度**: [高 / 中 / 低]
**この判断を変える可能性がある情報**:
- [情報・証拠1]
- [情報・証拠2]

### 未解決の対立（対立が残った場合のみ）
> **[議長からの問い]**: 上記の対立点について、あなた自身はどちらに重きを置きますか？
> （例: スピード重視 / 品質重視 / コスト重視 など）

---
⚠️ **限界の開示**: この合議は同一LLMベースの疑似的多様性に基づいています。各賢者の意見はペルソナ指示・バイアス自覚・フレームワーク差異によって生成されたものであり、本質的に独立した知性による合議ではありません。認識論的謙虚さ欄の信頼度と留保条件を必ず確認し、**最終判断はあなた自身が行ってください。**

---
```

---

### Step 5: 事前検死（Pre-mortem）

**CASPER の「事前検死シナリオ」との違い**: CASPER のシナリオは CASPER ペルソナ視点の個別評価。このステップは議長が全議論を統合した後、推奨方針全体に対して俯瞰的に失敗シナリオを点検する「統合後の総括チェック」である。

SYNTHESIS の後、以下の事前検死を議長が実施する（Gary Klein の手法）:

```
## ⚠️ 事前検死（Pre-mortem）

**仮定**: 統合判断「[推奨方針]」を採用し実行したが、6ヶ月後に明確に失敗した。

**最も可能性が高い失敗シナリオ（3つ以内）**:
1. [失敗シナリオ1 — CASPERの事前検死に基づく]
2. [失敗シナリオ2 — 前提監査の未検証前提に基づく]
3. [失敗シナリオ3 — 見落とされたステークホルダーの反応]

**事前対策として推奨アクションに追加すべき事項**:
- [ ] [追加アクション1]
- [ ] [追加アクション2]
```

---

### Step 6: 判断の記録（必須）

事前検死が完了したら、ユーザーの確認を待たずに**自動的に** `ltm-use` の save 操作を実行する。

保存内容:
- **議題**: ユーザーの原文
- **統合判断**: SYNTHESIS の推奨方針一文
- **推奨アクション**: ToDoリスト全件（事前検死で追加されたものを含む）
- **事前検死シナリオ**: 失敗シナリオ全件

```
### 📝 判断の記録
この合議結果を `ltm-use` に保存しました。
```

---

## 使用上の注意

### サブエージェントに渡す情報

- 必ずペルソナ定義ファイル (`references/personas.md`) のパスを添える
- 議題はユーザーの言葉をそのまま渡す（議長が解釈・変形しない）
- ROUND 2 では自分自身の ROUND 1 意見は渡さない（自己バイアスを持ち込ませない）
- 各エージェントの「主要な前提」と「バイアス宣言」を必ず ROUND 2 に引き継ぐ

### バイアス管理の原則

`references/bias-catalog.md` を参照し、以下の原則を維持する:

- **確証バイアス対策**: 各エージェントに「推奨を否定する証拠」の提示を必須化
- **フレーミング効果対策**: Step 0 で複数フレームに言い換えて確認
- **集団思考対策**: 不自然収束検知と強制デビルズアドボカット発動
- **過信対策**: SYNTHESIS の認識論的謙虚さフィールドで信頼度を明示

### 予定調和を防ぐ

サブエージェントへの指示に `「安易に同意しない」「予定調和は厳禁」` を明記すること。3者が全員同じ意見になった場合でも、Step 2 のチェック2で不自然収束シグナルを必ず確認する。

### SYNTHESIS の中立性

統合結論は1つのペルソナに偏らない。CASPER の懸念を無視した楽観論も、BALTHASAR の理想論に傾いた非現実的プランも避ける。前提監査で未検証の前提が残る場合は、統合判断に留保条件を付ける。

