選項

召集一個由四位顧問組成的委員會,以釐清針對模糊決策、是否推進的判斷以及多途徑選擇所產生的結構性分歧與權衡取捨。

...展開全部
0
更新時間 2026-09-30

Council

針對難以抉擇的決策,召集四位顧問:

  • 情境中的 Claude 語音
  • 一位「懷疑論者」子代理
  • 一位「務實派」子代理
  • 一位「批評家」子代理

此機制適用於不確定情境下的決策,而非程式碼審查、實作規劃或架構設計。

何時使用

在以下情況下使用「council」:

  • 決策存在多條可信的路徑,且無明顯最佳選項時
  • 您需要明確呈現權衡取捨
  • 使用者要求徵求第二意見、異議或多元觀點時
  • 對話錨定(conversational anchoring)構成實際風險時
  • 「執行/不執行」的決策若能經過對立方的挑戰將更為有利

範例:

  • 單倉庫(monorepo)與多倉庫(polyrepo)
  • 立即發布 vs 暫緩以求完善
  • 功能開關 vs 全面上線
  • 簡化範圍 vs 保持戰略廣度

何時不應使用

替代方案:council 請使用
驗證輸出是否正確 santa-method
將功能拆解為實作步驟 planner
設計系統架構 architect
審查程式碼以找出錯誤或安全漏洞 code-reviewer 或 santa-method
純粹的事實性問題 請直接回答
顯而易見的執行任務 直接執行任務即可

角色

語音 鏡頭
架構師 正確性、可維護性、長期影響
懷疑論者 前提質疑、簡化、打破假設
務實派 交付速度、對使用者的影響、運作現實
批評者 邊界案例、下行風險、失效模式

這三種外部聲音應以全新的子代理形式啟動,僅包含問題及相關背景,而非完整的進行中對話。這就是反錨定機制。

工作流程

1. 提取真實問題

將決策簡化為一個明確的提示:

  • 我們要決定什麼?
  • 哪些限制條件重要?
  • 什麼才算成功?

若問題含糊不清,請在召開「council」前先提出一個澄清問題。

2. 僅蒐集必要的背景資訊

若決策與特定程式碼庫相關:

  • 請蒐集相關檔案、程式碼片段、問題描述或指標
  • 保持內容精簡
  • 僅包含做出決策所需的背景資訊

若決策屬策略性/一般性:

  • 除非程式碼片段會實質性地改變結論,否則請省略

3. 首先確立架構師的立場

在閱讀其他意見之前,請先寫下:

  • 您的初步立場
  • 支持該立場的三大最有力理由
  • 你所偏好路徑中的主要風險

請先完成這一步,以免最終的綜合結論僅是對外部觀點的照搬。

4. 並行啟動三種獨立觀點

每個子代理將獲得:

  • 決策問題
  • 如有需要,則提供簡要背景
  • 一個嚴格的角色
  • 無不必要的對話歷史

提示格式:

You are the [ROLE] on a four-voice decision council.

Question:
[decision question]

Context:
[only the relevant snippets or constraints]

Respond with:
1. Position — 1-2 sentences
2. Reasoning — 3 concise bullets
3. Risk — biggest risk in your recommendation
4. Surprise — one thing the other voices may miss

Be direct. No hedging. Keep it under 300 words.

角色重點:

  • 懷疑論者:挑戰框架、質疑假設、提出最簡單且可信的替代方案
  • 務實派:以速度、簡潔性及實際執行為優先考量
  • 批評者:揭露潛在風險、邊界案例,以及計畫可能失敗的原因

5. 在設有偏見防護欄的情況下進行綜合分析

您既是參與者也是綜合者,因此請遵循以下規則:

  • 在未說明理由的情況下,切勿駁回外部觀點
  • 若外部意見改變了你的建議,請明確說明
  • 即使最終採納,也務必納入最強烈的反對意見
  • 若兩方意見一致地反對你的初始立場,應將此視為真實訊號
  • 在做出裁決前,應將原始立場保持可見

6. 呈現簡潔的結論

採用以下呈現形式:

## Council: [short decision title]

**Architect:** [1-2 sentence position]
[1 line on why]

**Skeptic:** [1-2 sentence position]
[1 line on why]

**Pragmatist:** [1-2 sentence position]
[1 line on why]

**Critic:** [1-2 sentence position]
[1 line on why]

### Verdict
- **Consensus:** [where they align]
- **Strongest dissent:** [most important disagreement]
- **Premise check:** [did the Skeptic challenge the question itself?]
- **Recommendation:** [the synthesized path]

確保其在手機螢幕上易於掃視。

持久性原則

請勿將臨時筆記寫入 ~/.claude/notes 或此技能的其他「影子路徑」中。

若council對建議內容產生實質性變更:

  • 請使用 knowledge-ops 將該教訓儲存至正確的持久化位置
  • 或使用 /save-session 若結果應存於會話記憶體中
  • 或若該決定改變了當前執行狀態,則直接更新相關的 GitHub / Linear 問題

僅在決策會改變實際結果時才將其持久化。

多輪後續處理

預設為一輪。

若使用者希望進行另一輪:

  • 請讓新問題保持焦點
  • 僅在必要時才納入前一輪的裁決
  • 盡可能簡潔地呈現「懷疑者」內容,以維持抗錨定效應的價值

反模式

  • 將 council 用於程式碼審查
  • 當任務僅涉及實作工作時,仍使用 council
  • 將完整的對話紀錄提供給子代理
  • 在最終裁決中隱藏意見分歧
  • 無論重要性如何,皆將每項決策以筆記形式記錄下來

相關技能

  • santa-method — 對抗性驗證
  • knowledge-ops — 正確地持久化決策差異
  • search-first — 如有需要,在council之前蒐集外部參考資料
  • architecture-decision-records — 當決策成為長期有效的系統政策時,將其結果形式化

範例

問題:

Should we ship ECC 2.0 as alpha now, or hold until the control-plane UI is more complete?

council 的可能形式:

  • 架構師主張結構完整性,並避免介面混亂
  • 懷疑論者質疑使用者介面是否真的是限制因素
  • 務實派詢問:在不損害信任的前提下,現階段能交付什麼
  • 批評者著眼於支援負擔、期望債務及推出過程的混亂

價值不在於達成共識,而在於在做出選擇之前,讓分歧變得清晰可辨。

在 GitHub 上查看
---
name: council
description: Convene a four-voice council of advisors to surface structured disagreement and tradeoffs for ambiguous decisions, go/no-go calls, and multi-path choices.
---

# Council

Convene four advisors for ambiguous decisions:
- the in-context Claude voice
- a Skeptic subagent
- a Pragmatist subagent
- a Critic subagent

This is for **decision-making under ambiguity**, not code review, implementation planning, or architecture design.

## When to Use

Use council when:
- a decision has multiple credible paths and no obvious winner
- you need explicit tradeoff surfacing
- the user asks for second opinions, dissent, or multiple perspectives
- conversational anchoring is a real risk
- a go / no-go call would benefit from adversarial challenge

Examples:
- monorepo vs polyrepo
- ship now vs hold for polish
- feature flag vs full rollout
- simplify scope vs keep strategic breadth

## When NOT to Use

| Instead of council | Use |
| --- | --- |
| Verifying whether output is correct | `santa-method` |
| Breaking a feature into implementation steps | `planner` |
| Designing system architecture | `architect` |
| Reviewing code for bugs or security | `code-reviewer` or `santa-method` |
| Straight factual questions | just answer directly |
| Obvious execution tasks | just do the task |

## Roles

| Voice | Lens |
| --- | --- |
| Architect | correctness, maintainability, long-term implications |
| Skeptic | premise challenge, simplification, assumption breaking |
| Pragmatist | shipping speed, user impact, operational reality |
| Critic | edge cases, downside risk, failure modes |

The three external voices should be launched as fresh subagents with **only the question and relevant context**, not the full ongoing conversation. That is the anti-anchoring mechanism.

## Workflow

### 1. Extract the real question

Reduce the decision to one explicit prompt:
- what are we deciding?
- what constraints matter?
- what counts as success?

If the question is vague, ask one clarifying question before convening the council.

### 2. Gather only the necessary context

If the decision is codebase-specific:
- collect the relevant files, snippets, issue text, or metrics
- keep it compact
- include only the context needed to make the decision

If the decision is strategic/general:
- skip repo snippets unless they materially change the answer

### 3. Form the Architect position first

Before reading other voices, write down:
- your initial position
- the three strongest reasons for it
- the main risk in your preferred path

Do this first so the synthesis does not simply mirror the external voices.

### 4. Launch three independent voices in parallel

Each subagent gets:
- the decision question
- compact context if needed
- a strict role
- no unnecessary conversation history

Prompt shape:

```text
You are the [ROLE] on a four-voice decision council.

Question:
[decision question]

Context:
[only the relevant snippets or constraints]

Respond with:
1. Position — 1-2 sentences
2. Reasoning — 3 concise bullets
3. Risk — biggest risk in your recommendation
4. Surprise — one thing the other voices may miss

Be direct. No hedging. Keep it under 300 words.
```

Role emphasis:
- Skeptic: challenge framing, question assumptions, propose the simplest credible alternative
- Pragmatist: optimize for speed, simplicity, and real-world execution
- Critic: surface downside risk, edge cases, and reasons the plan could fail

### 5. Synthesize with bias guardrails

You are both a participant and the synthesizer, so use these rules:
- do not dismiss an external view without explaining why
- if an external voice changed your recommendation, say so explicitly
- always include the strongest dissent, even if you reject it
- if two voices align against your initial position, treat that as a real signal
- keep the raw positions visible before the verdict

### 6. Present a compact verdict

Use this output shape:

```markdown
## Council: [short decision title]

**Architect:** [1-2 sentence position]
[1 line on why]

**Skeptic:** [1-2 sentence position]
[1 line on why]

**Pragmatist:** [1-2 sentence position]
[1 line on why]

**Critic:** [1-2 sentence position]
[1 line on why]

### Verdict
- **Consensus:** [where they align]
- **Strongest dissent:** [most important disagreement]
- **Premise check:** [did the Skeptic challenge the question itself?]
- **Recommendation:** [the synthesized path]
```

Keep it scannable on a phone screen.

## Persistence Rule

Do **not** write ad-hoc notes to `~/.claude/notes` or other shadow paths from this skill.

If the council materially changes the recommendation:
- use `knowledge-ops` to store the lesson in the right durable location
- or use `/save-session` if the outcome belongs in session memory
- or update the relevant GitHub / Linear issue directly if the decision changes active execution truth

Only persist a decision when it changes something real.

## Multi-Round Follow-up

Default is one round.

If the user wants another round:
- keep the new question focused
- include the previous verdict only if it is necessary
- keep the Skeptic as clean as possible to preserve anti-anchoring value

## Anti-Patterns

- using council for code review
- using council when the task is just implementation work
- feeding the subagents the entire conversation transcript
- hiding disagreement in the final verdict
- persisting every decision as a note regardless of importance

## Related Skills

- `santa-method` — adversarial verification
- `knowledge-ops` — persist durable decision deltas correctly
- `search-first` — gather external reference material before the council if needed
- `architecture-decision-records` — formalize the outcome when the decision becomes long-lived system policy

## Example

Question:

```text
Should we ship ECC 2.0 as alpha now, or hold until the control-plane UI is more complete?
```

Likely council shape:
- Architect pushes for structural integrity and avoiding a confused surface
- Skeptic questions whether the UI is actually the gating factor
- Pragmatist asks what can be shipped now without harming trust
- Critic focuses on support burden, expectation debt, and rollout confusion

The value is not unanimity. The value is making the disagreement legible before choosing.

所有檔案

1 個檔案

安裝 council

請下載並將技能檔案解壓縮至您的 .claude/skills/ 目錄中。

下載 ZIP

複製儲存庫並將技能檔案複製到您的專案中。

git clone https://github.com/affaan-m/ECC/tree/main/skills/council # Copy SKILL.md to your .claude/skills/ directory

複製 複製
快速設定: 將技能資料夾複製到 .claude/skills/ Claude 會自動偵測並使用該技能
儲存庫 affaan-m/ECC

相關技能

airtable-automation
更新時間 2026-06-29
notion-automation
更新時間 2026-06-29
seo-programmatic
更新時間 2026-06-29
fairdb-backup-manager
更新時間 2026-06-29
OR