SuperAPI AI 工具集

assemble-panel

智能体与模型

查看项目

更新于 10-15 14:52

技能介绍

用途

assemble-panel 用于集中管理评审者的选择与循环治理。当另一个技能或智能体需要组建、保留或收敛一个评审小组时调用它,通常由 /review、/plan-review 和 code-reviewer 触发,而不是直接使用。它向调用方返回一个评审小组(panel)加策略(policy),由调用方负责派发。该技能只产出数据——它从不派发智能体,也不修改文件。

集成契约

调用方需提供:

  • scope:一个计划文件路径,或一个 git diff(即被评审的产物)
  • overrides(可选):{ include: [], exclude: [] }

返回内容(供调用方解析的结构化文本):

  • panel:有序的评审者智能体名称列表
  • policy:gate、cap 以及下述策略代数

不可用时的回退: [technical-editor, code-reviewer],gate=P2,cap=3。

跨工具说明:Codex/Cursor 无法通过 Skill 工具调用技能。请直接读取本文件并内联应用策略代数。

策略代数(已冻结——请勿修改,版本:1)

DEFAULTS:
  gate    = P2                       # fix P0-P2, record P3+
  cap     = 3                        # max rounds before escalate
  always  = [technical-editor]       # expandable, never reducible

ASSEMBLE(scope: plan_file | diff):
  panel = always
        + select_by_scope(file_types(scope))
        + select_by_keywords(body(scope))
        + overrides.include
        - overrides.exclude            # cannot remove `always` members

RETAIN(reviewer, round_findings):
  keep(reviewer) while round_findings.any_above(gate)

EXPAND(panel, prior_scope, current_scope):
  new_coverage = file_types(current_scope) - file_types(prior_scope)
  panel += select_by_scope(new_coverage) when new_coverage

CONVERGE(round, panel, cap):
  APPROVE   when all(reviewer.done for reviewer in panel)
  ESCALATE  when round >= cap
  EXIT      when any(reviewer.verdict == DROP)
  continue  otherwise

ESCALATE_RECURRING(finding, rounds_present):
  finding.severity += 1 when rounds_present >= 2

范围到评审者映射

由 select_by_scope(file_types) 使用:

文件模式 评审者
.ts, .js, src/, tests/ code-reviewer
.yml, .github/workflows/ code-reviewer, security-auditor
.sh, scripts/, hooks/ code-reviewer, security-auditor
.md(计划、ADR、文档) architect-reviewer
*.css, *.tsx, UI 组件 design-reviewer, accessibility-tester
sync.sh, AGENTS.md, config.toml, skills codex-specialist
*.pem, *.key, secrets 模式 security-auditor

当多个模式匹配时,取所有评审者的并集。重复项会被合并。

关键词到评审者映射

由 select_by_keywords(body) 使用:

关键词 / 短语 评审者
"architecture", "ADR", "system design", "plan" architect-reviewer
"security", "auth", "token", "PAT", "OIDC" security-auditor
"WCAG", "accessibility", "a11y", "aria" accessibility-tester
"UI", "component", "layout", "design system" design-reviewer
"docs", "research", "ecosystem", "reference", "educational" fact-checker
"Codex", "cross-tool", "sync.sh" codex-specialist

关键词对范围正文进行不区分大小写的子串匹配。

覆盖规则

  • overrides.include 无条件追加评审者。
  • overrides.exclude 移除评审者,但 always 中的成员除外。尝试排除 always 成员会被静默忽略。
  • 无效的评审者名称会被拒绝,并返回列出有效名称的错误。

失败模式

  • 范围为空或不可读:仅返回 always 小组,并警告调用方。
  • 未检测到文件类型:回退到仅关键词匹配。若两者都不匹配,返回 always 小组。
  • 调用方请求 cap > 5:钳制为 5。这是不可协商的上限。
  • 小组超过 5 名成员:警告调用方——这很可能意味着变更范围过宽。
  • 派发时评审者不可用:调用方跳过该评审者并记录此缺口。

编排者权限

小组只提供建议;编排者(派发小组的智能体)做决定。上述 gate 和 cap 是该决定的输入,而非对其的覆盖。

可以(MAY):

  • 若处理某个 P1/P2 发现会使范围膨胀到超出单一关注点,可将其降级范围——另开一个后续 issue。
  • 当小组发现使范围超出合理的单次落地时,拆分为分阶段的 PR。核心先发布;加固与文档随后。派发前:在交给实现者之前,检查计划的范围——若 Files-to-Modify > 5 或计划测试总数 > 8,预先拆分为顺序阶段。上述反应式触发在小组反馈之后触发;此触发在实现开始前触发,防止单智能体上下文溢出(例如 PR #241:3 个新脚本 + 聚合器变更 + ADR + 11 个测试 → 78 次工具使用 → 溢出)。
  • 以明确理由反驳误报。若同一发现在评审者或轮次间反复出现,检查原因——要么评审者是对的,要么代码看起来像他们所标记的模式有结构性原因。反驳时,指明该发现(评审者 + 严重级别 + 引用文本),给出理由,并引用证据(代码路径、现有模式、先前的 ADR)。
  • 接受并记录偏差——处理部分 P1,在计划的 Risks 部分为其余部分提供理由后推迟。

不得(MUST NOT):

  • 静默丢弃 P0 发现。P0 必须被处理、升级,或计划被拒绝。
  • 不向人类升级就覆盖 security-auditor 的发现。

升级到人类的情形:

  • 某个 P0 存在争议,且反驳理由不清晰。
  • 多个评审者就某个关注点达成一致,而编排者不同意。
  • 某个安全发现的缓解权衡影响信任模型。

反驳示例:

Security-auditor P1:"Include severity inside HMAC payload." Orchestrator:Pushing back. Severity is computed by a separate classifier (classify-findings.sh), not emitted by the CLI wrapper, so it's not available at sign-time. Binding it into HMAC would require restructuring the entire review pipeline. Alternative: include tier in fingerprint — this closes the cross-tier collision vector without HMAC restructure. Will address P0-2 with tier-in-fingerprint; defer severity-in-HMAC as a separate ADR if needed.

输出格式

PANEL: technical-editor, code-reviewer, security-auditor
GATE: P2
CAP: 3
ALWAYS: technical-editor
NOTE: codex-specialist included — scope touches sync.sh

每个非显而易见的选取决定对应一行 NOTE。调用方在评审摘要中呈现这些内容。