council
affaan-m/ECC
召集一個由四位顧問組成的委員會,以釐清針對模糊決策、是否推進的判斷以及多途徑選擇所產生的結構性分歧與權衡取捨。
...展開全部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 的可能形式:
- 架構師主張結構完整性,並避免介面混亂
- 懷疑論者質疑使用者介面是否真的是限制因素
- 務實派詢問:在不損害信任的前提下,現階段能交付什麼
- 批評者著眼於支援負擔、期望債務及推出過程的混亂
價值不在於達成共識,而在於在做出選擇之前,讓分歧變得清晰可辨。
---
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
複製





首頁
