mcpField
L
local-council-execution

local-council-execution

github.com/hexAgent 工作流91161 次安装2 天前更新
代码仓库

关于 local-council-execution

在未配置外部提供方时,以不同角色召集 Claude 子 Agent 并综合其观点的后备技能。它强调,同一模型的意见一致不构成独立验证。

主要功能

  1. 01确认是否允许本地 council 模式
  2. 02确定成员角色与人数
  3. 03并行启动不同角色的成员
  4. 04展示观点并综合差异
  5. 05保存完整 council 输出

适用场景

  1. 01没有外部提供方时收集不同角色的观点
  2. 02发现问题中的盲点与分歧
  3. 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”方式。只有满足以下条件之一时才继续:

  1. 用户明确传入了 --local,或
  2. 没有配置任何提供方,且用户接受了本地 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”只是单一角色扮演式回答,用户应该了解这一点。

评论

支持 Markdown