关于 local-council-execution
在未配置外部提供方时,以不同角色召集 Claude 子 Agent 并综合其观点的后备技能。它强调,同一模型的意见一致不构成独立验证。
主要功能
- 01确认是否允许本地 council 模式
- 02确定成员角色与人数
- 03并行启动不同角色的成员
- 04展示观点并综合差异
- 05保存完整 council 输出
适用场景
- 01没有外部提供方时收集不同角色的观点
- 02发现问题中的盲点与分歧
- 03记录本地 council 会话
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ hex/ claude-council --skill local-council-execution安装后在 Claude Code 中输入/local-council-execution确认已加载。
附带文件agent-prompt-template.md
详细介绍
本地 Council 执行
未配置外部提供方时,改为召集一组独立的 Claude 子 Agent。每位成员只从一个角色出发作答,不会看到其他成员的回答;随后由你综合这些不同视角。
请先阅读——必须如实说明情况。 所有成员都是 Claude。他们共享先验认知和训练,因此,成员之间意见一致的信号很弱,不能视为验证。这里的价值在于提供独立视角并覆盖盲点,而不是达成共识。你生成的输出 MUST 明确说明这一点,MUST NOT 把成员意见一致说成是跨供应商的交叉印证。
步骤 0:确认这是本地 Council 场景(守卫条件)
本地 Council 是没有真实提供方时的备用方案,不是默认的“使用 Council”方式。只有满足以下条件之一时才继续:
- 用户明确传入了
--local,或 - 没有配置任何提供方,且用户接受了本地 Council 的提议。
如果你是通过其他方式进入此技能,请先确认确实没有提供方,再启动任何成员:
bash ${CLAUDE_PLUGIN_ROOT}/scripts/query-council.sh --list-default 2>&1 | head -1
如果这里列出了一个或多个提供方,且用户没有要求使用 --local,停止——不要启动本地成员。请运行标准的跨供应商流程(council-execution),让真实提供方作答,因为同一模型的角色扮演,严格来说弱于用户实际可以使用的跨供应商 Council。
步骤 1:确定角色
加载库一次:
source ${CLAUDE_PLUGIN_ROOT}/scripts/lib/prompts.sh
source ${CLAUDE_PLUGIN_ROOT}/scripts/lib/roles.sh
如果用户传入了 --roles,其中已指定视角和成员数量——直接使用,并跳过数量确认:
local_council_roles "<--roles value>"
否则,询问用户要召集多少名成员,然后解析对应数量:
AskUserQuestion:
Question: "How many independent perspectives should the local council convene? More members means broader angle coverage, but a longer run and synthesis."
Header: "Members"
multiSelect: false
Options:
- "4 (Recommended) - balanced breadth"
- "3 - quick, three sharpest lenses"
- "5 - thorough"
- "6 - exhaustive"
随后将选定的数量作为计数传入:
local_council_roles "" "<chosen number>"
local_council_roles 会返回以逗号分隔的角色列表(例如
devil,simplicity,security,scalability)。每个角色对应一名 Council 成员;
N = 角色数量。它会从多样化的顺序中选取,并将数量限制在 8 个可用角色之内——如果用户想要更多角色或指定视角,可以传入 --roles
(例如 --roles=security,devil,simplicity,scalability,dx,compliance)。如需确保安全,可运行 validate_roles "<list>";如果角色未知,该命令会返回非零值。
步骤 2:整理问题和上下文
整理每位成员需要回答的文本:
- 用户的问题。
- 通过
--file或自动上下文收集的任何文件上下文(与跨供应商流程会发送的上下文相同)。将其直接写入文本中,这样成员即使也会自行读取引用的文件,仍能据此推理。
步骤 3:并行启动成员
对每个角色,构建注入角色的提示词并启动一名成员。确切的提示词和 build_prompt_with_role 调用方式请参阅
agent-prompt-template.md。
在一条消息中启动所有成员(多个 Agent 工具调用),并设置:
subagent_type: "general-purpose"run_in_background: true
关于成员的说明(彼此独立、互不知情、遵循指定视角、返回格式)都写在提示词中——请参阅模板。将它们一起启动可使其并发运行,并确保每位成员都看不到其他成员的回答。
步骤 4:收集结果
每位后台成员完成时,系统会自动通知你。请等待所有成员完成后再综合结果。如果某位成员失败或超时,请注明并继续处理其余成员的结果。
步骤 5:展示各方视角
请原样用以下横幅开头(以便如实说明情况):
本地 Council——这些视角都来自 Claude 扮演不同角色,而非不同的 AI 供应商。请将意见一致视为共同的起点,并进一步检验,而非独立确认。
然后,为每位成员添加一个以角色命名的标题,并在标题下展示其视角(显示名称请使用 get_role_name "<role>"):
## 🗳️ {ROLE_NAME}
{member's Position / Key points / Risks & blind spots / Confidence}
第 6 步:综合——关注角度,而非共识
由于成员共享同一个模型,综合时应围绕观点分歧和覆盖面展开, 而非认同程度:
- 共同出发点 — 成员观点趋同之处。明确指出这是需要压力测试的共同先验,而非佐证,并追问他们是否会因为相同的原因而遗漏了什么。
- 真正的张力 — 不同角色意见相左之处,以及用户的具体情况意味着哪种张力在此处最重要。
- 盲点 — 某位成员提出的风险,而其他成员的方法会忽视这些风险。此外,还要指出没有任何成员提及的事项。
- 建议方向 — 给出你综合后的最佳建议,说明哪些角色支持该建议,以及真正的不确定性仍在哪里。
第 7 步:保存输出
mkdir -p .claude/council-cache
将完整输出(横幅 + 所有成员观点 + 综合内容)写入
.claude/council-cache/local-council-{TIMESTAMP}.md,其中 TIMESTAMP 为当前 Unix 时间戳。然后告知用户:
本地 council 已保存至
.claude/council-cache/local-council-{TIMESTAMP}.md如需获取跨供应商观点,请配置提供商密钥或安装 CLI (/claude-council:status可显示可用选项)。
错误处理
- 如果某位成员失败,请显示失败信息并继续处理其他成员。
- 如果所有成员都失败,请清楚地报告,并建议重试。
- 如果最终只解析出一个角色,请说明这一点——只有一位成员的“council”只是单一角色扮演式回答,用户应该了解这一点。