council
affaan-m/ECC
召集一个由四名顾问组成的委员会,以厘清在模糊决策、是否推进的决定以及多路径选择中存在的结构性分歧和权衡取舍。
...展开全部Council
在面临难以抉择的情况时,召集四位顾问:
- 情境化的克劳德语音
- 一个“怀疑论者”子代理
- 一个“务实派”子代理
- 一位“批评家”子代理
此功能适用于不确定情况下的决策,不适用于代码审查、实施规划或架构设计。
何时使用
在以下情况下使用council:
- 决策存在多种可信路径且无明显优选方案时
- 需要明确呈现权衡取舍
- 用户要求听取第二意见、异议或多种视角
- 存在对话锚定(conversational anchoring)的实际风险
- “执行/不执行”的决策将受益于对抗性挑战
示例:
- 单仓库 vs 多仓库
- 立即发布 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
复制





首页
