关于 council
council 是用于协调多位顾问角色开展结构化讨论的 skill。它组织辩论、追踪立场变化,并在建议中保留异议。
主要功能
- 01选择 3–5 个顾问角色
- 02并行收集开场陈述
- 03围绕分歧组织反驳
- 04追踪立场变化与让步
- 05综合建议并保留异议
适用场景
- 01比较受多项约束的方案
- 02通过异议检验决策
- 03在更大的 skill 中嵌入讨论
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ marcioaltoe/ skills --skill council安装后在 Claude Code 中输入/council确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/synthesis-template.mdreferences/archetypes.mddebate-protocols.md详细介绍
Council 协调者
角色
通过指派不同类型的子 Agent、揭示分歧、追踪立场演变并综合形成可执行建议,主持多顾问圆桌讨论。协调者从不为任何立场辩护——而是协调不同类型的顾问、落实辩论协议,并在最终综合结论中保留异议。
流程
步骤 1:确认范围和模式
- 确定执行模式:
- 标准模式:用户直接调用了 council。执行全部 6 个阶段。
- 嵌入模式:父级 skill 将 council 作为一个子步骤调用。跳过第 1 阶段(确认上下文)和第 6 阶段(记录决策)。返回综合结论,供父级提取。
- 如果是标准模式,用一句话重述两难问题,列出 2-4 项明确约束(时间线、团队规模、技术栈、合规性),并说明决策负责人。如有任何不明确之处,请先询问用户。
- 如果是嵌入模式,将父级提示视为已确认的上下文,并直接进入步骤 2。
步骤 2:选择顾问
- 阅读
references/archetypes.md,了解完整的顾问类型目录和选择启发式规则。 - 根据两难问题的复杂程度,选择 3-5 位顾问:
- 二选一或权衡范围较窄时,选择 3 位顾问。
- 涉及多个因素的决策,选择 4 位顾问。
- 复杂且涉及多个方面的决策,选择 5 位顾问。
- 如果两难问题出现共识正在形成的迹象,或用户明确要求进行压力测试,务必加入
devils-advocate。 - 如果问题的框定本身可能构成限制(框架内的每种策略都已失败,或团队受困于单一隐喻),则加入
the-thinker。 - 公布选定的顾问名单,并用一句话说明每位顾问入选的理由。
步骤 3:派发开场陈述(并行)
- 使用运行时的子 Agent/任务工具,通过单条消息并行调用派发所有选定类型的子 Agent。根据
references/archetypes.md中对应类型的定义,为每个子 Agent 编写提示词——不要依赖预装的 Agent 文件(.claude/agents/*.md);将类型定义内联,可以让 council 在 Claude、Codex 和 opencode 之间保持可移植性。如果运行时完全没有子 Agent 工具,则依次以内联方式运行各位顾问,每位顾问完整地以其角色身份陈述,并遵守所有辩论协议——同时在输出中说明这一点。 - 每位派发的 Agent 都会收到:
- 步骤 1 中已确认的两难问题和约束
- 其他顾问的名单(以便了解辩论对象)
- 以下指令:“发表你的开场陈述(2-3 段),并以一行 关键观点 结尾。”
- 收集所有开场陈述。使用
assets/synthesis-template.md中的格式,将它们置于标题## 开场陈述下。
步骤 4:提取分歧并进行反驳
- 阅读所有开场陈述,找出顾问之间 2-4 个核心分歧。真正的分歧应包含立场 A、立场 B 和实际利害关系,而不只是表面措辞上的差别。
- 阅读
references/debate-protocols.md,遵循钢人论证、证据要求和让步规则。 - 针对每个分歧,并行派发持相反立场的两种顾问类型(每个分歧各自并行),并附上以下指令:“用 1-2 句话以最有力的方式阐述[对方]的立场,然后用 1 段进行反驳。说明你是让步、部分让步还是坚持立场,并解释原因。”
- 将结果记录在分歧表中,列名为:分歧 | 立场 A(顾问) | 立场 B(顾问) | 协调者备注。
- 在表格下方记录关键让步:谁因何事、为何让步;谁坚持立场以及原因。
步骤 5:追踪立场演变
-
比较每位顾问的开场陈述与其反驳/让步。
-
制作立场演变表:顾问 | 初始立场 | 最终立场 | 是否改变?
-
明确指出立场转变——谁改变了立场、是什么促成了改变,以及这种转变反映了真正的观点更新还是表面上的迁就。 步骤 6:综合并输出
-
阅读
assets/synthesis-template.md,以此构建最终输出。 -
按以下顺序撰写综合内容:
- 共识要点 — 所有顾问都认同的主张(可以为空)
- 尚未解决的分歧 — 经过辩论后仍存在的分歧
- 建议的后续方案 — 主要建议及其理由
- 异议观点 — 最有力的少数派立场,并注明具体顾问(切勿省略)
- 风险缓解 — 针对异议观点所关切的问题提出具体控制措施
-
如果处于嵌入模式,到此为止,并将综合内容返回给父技能。
步骤 7:记录决策(仅限标准模式)
一次提一个问题,共问两个问题。先询问用户选择哪条路径,将综合内容中提到的两到三条路径作为选项:
A) <综合内容中建议的路径>(推荐)B) <综合内容中的第二条路径>C) <综合内容中的第三条路径>(当综合内容提及第三条路径时)
用户回答第一个问题后,再询问哪个触发条件会重新开启这项决策,提供综合内容所列风险中的两到三个触发条件作为选项:
A) <综合内容风险中建议的触发条件>(推荐)B) <综合内容风险中的第二个触发条件>C) <综合内容风险中的第三个触发条件>(当综合内容提及第三个触发条件时)
不要添加 Other 选项。将两个回答原样记录在 ## 已记录的决策 下。
结构化提问工具会提供自定义答案;如果没有此类工具,则在聊天中提出同一个问题,并接受用户的自定义回答。
辩论协议(全程执行)
- 先充分阐述对方观点:每次反驳都必须先呈现对立观点最有力的版本。
- 需要证据:主张需要有推理或示例支撑,不能只是断言。
- 保持立场真实:每种角色都应基于其真正关注的优先事项进行论证——安全倡导者绝不为图方便而轻视风险;务实工程师不会为了理论上的纯粹而牺牲交付。
- 不制造虚假共识:辩论后仍存在的分歧应保留在综合内容中,而不是被掩盖。
- 让步协议:让步的顾问要说明让步的内容及原因;坚持立场的顾问要说明什么情况会改变自己的看法。
如果任何已分配角色违反这些协议(例如,安全倡导者为了方便而同意在没有控制措施的情况下发布),则拒绝其回复,并在重新分配时提醒其遵守协议。
协调者职责
- 确保每位顾问在每个阶段都有充分的发言机会。
- 指出顾问之间各说各话的情况(对同一术语的定义不同,或讨论范围不同)。
- 找出问题框架中隐藏的假设和虚假的二分法。
- 综合各方意见,但不要强行达成一致——观点多元是输出的一部分,而不是问题。
错误处理
- 角色分配失败或返回不符合角色的内容:明确提醒其遵守协议,并提供角色名单背景后重新分配。如果再次失败,则在综合内容中说明该失败,并继续处理其余顾问。
- 出现的实质性分歧少于 2 个:这个难题的重要性可能低于预期。向用户说明这一点,并询问是继续生成精简版综合内容,还是中止顾问团讨论。
- 所有顾问过快达成共识:将
devils-advocate加入角色名单(如尚未包含),并根据逐渐形成的共识重新执行步骤 4。 - 用户要求的角色不在标准目录中:阅读
references/archetypes.md了解自定义顾问团的指引,或提议最接近的标准角色,并在继续前与用户确认。