Loading...
Loading...
Compare original and translation side by side
| Command | Fire after | Proceeds to |
|---|---|---|
| spec is written and committed | |
| plan is written and committed | |
| 命令 | 调用时机 | 后续流程 |
|---|---|---|
| 规格说明已编写并提交 | |
| 计划已编写并提交 | |
/multi-agent-review [mode] [path?] [--fast]
mode: spec | plan (required)
path: explicit file path (optional — omit to use most-recent artifact)
--fast: fast tier only, skip standard tier and juror (cost-saving for fast iteration)docs/superpowers/specs/docs/superpowers/plans//multi-agent-review [mode] [path?] [--fast]
mode: spec | plan (必填)
path: 明确的文件路径 (可选 — 省略则使用最新生成的工件)
--fast: 仅使用快速层级,跳过标准层级和评审员(用于快速迭代以节省成本)docs/superpowers/specs/docs/superpowers/plans/ls -t docs/superpowers/specs/*.md | head -1pathdocs/design/ls docs/design/ 2>/dev/nullls -t docs/superpowers/plans/*.md | grep -v tasks.json | head -1Spec:planPathls -t docs/superpowers/specs/*.md | head -1docs/design/ls docs/design/ 2>/dev/nullls -t docs/superpowers/plans/*.md | grep -v tasks.json | head -1Spec:planPath.claude-plugin/plugin.json${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json${CLAUDE_PLUGIN_ROOT}/.codex-plugin/plugin.json${CLAUDE_PLUGIN_ROOT}/.cursor-plugin/plugin.json<dir of this SKILL.md>/../../.claude-plugin/plugin.json<dir of this SKILL.md>/../../.codex-plugin/plugin.json<dir of this SKILL.md>/../../.cursor-plugin/plugin.json{ "fast": "haiku", "standard": "sonnet", "reasoning": "opus" }"models"modelsmodelsfor m in .claude-plugin .codex-plugin .cursor-plugin; do
jq -e '.models' "$CLAUDE_PLUGIN_ROOT/$m/plugin.json" 2>/dev/null && break
doneFAST_TIERSTANDARD_TIERREASONING_TIERmodels.fastmodels.standardmodels.reasoningagents/agents/completeness-reviewer.mdagents/alignment-reviewer.mdagents/risk-reviewer.mdagents/synthesis-agent.mdproject-rules.mdcat project-rules.md 2>/dev/null || echo ""PROJECT_CONTEXTCLAUDE.mdAGENTS.mdPROJECT_CONTEXT.claude-plugin/plugin.json${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json${CLAUDE_PLUGIN_ROOT}/.codex-plugin/plugin.json${CLAUDE_PLUGIN_ROOT}/.cursor-plugin/plugin.json<本SKILL.md所在目录>/../../.claude-plugin/plugin.json<本SKILL.md所在目录>/../../.codex-plugin/plugin.json<本SKILL.md所在目录>/../../.cursor-plugin/plugin.json{ "fast": "haiku", "standard": "sonnet", "reasoning": "opus" }models"models"modelsfor m in .claude-plugin .codex-plugin .cursor-plugin; do
jq -e '.models' "$CLAUDE_PLUGIN_ROOT/$m/plugin.json" 2>/dev/null && break
donemodels.fastmodels.standardmodels.reasoningFAST_TIERSTANDARD_TIERREASONING_TIERagents/agents/completeness-reviewer.mdagents/alignment-reviewer.mdagents/risk-reviewer.mdagents/synthesis-agent.mdproject-rules.mdcat project-rules.md 2>/dev/null || echo ""PROJECT_CONTEXTCLAUDE.mdAGENTS.mdPROJECT_CONTEXT[ARTIFACT_CONTENT][MODE_LABEL]"spec""plan"[PROJECT_CONTEXT]project-rules.md[SUPPLEMENTARY_CONTEXT][ARTIFACT_CONTENT][MODE_LABEL]"spec""plan"[PROJECT_CONTEXT]project-rules.md[SUPPLEMENTARY_CONTEXT]Agent(completeness-fast): model=FAST_TIER, prompt=completeness_prompt
Agent(completeness-standard): model=STANDARD_TIER, prompt=completeness_prompt
Agent(alignment-fast): model=FAST_TIER, prompt=alignment_prompt
Agent(alignment-standard): model=STANDARD_TIER, prompt=alignment_prompt
Agent(risk-fast): model=FAST_TIER, prompt=risk_prompt
Agent(risk-standard): model=STANDARD_TIER, prompt=risk_promptFAST_TIERSTANDARD_TIERcli:"standard": "cli:codex"--fast--fast--fastFAST_TIERCONTESTED_LIST--fast--fastFINDINGS:Agent(completeness-fast): model=FAST_TIER, prompt=completeness_prompt
Agent(completeness-standard): model=STANDARD_TIER, prompt=completeness_prompt
Agent(alignment-fast): model=FAST_TIER, prompt=alignment_prompt
Agent(alignment-standard): model=STANDARD_TIER, prompt=alignment_prompt
Agent(risk-fast): model=FAST_TIER, prompt=risk_prompt
Agent(risk-standard): model=STANDARD_TIER, prompt=risk_promptFAST_TIERSTANDARD_TIERcli:"standard": "cli:codex"--fast--fast--fastFAST_TIERCONTESTED_LIST--fast--fastFINDINGS:FINDINGS:FINDINGS: ERROR — agent did not respondFINDINGS: noneCONTESTED_LISTTOPIC: completeness | alignment | risk
HAIKU said: [severity] — <exact text> or "not raised"
SONNET said: [severity] — <exact text> or "not raised"FINDINGS:FINDINGS: ERROR — agent did not respondFINDINGS: noneCONTESTED_LISTTOPIC: completeness | alignment | risk
HAIKU said: [severity] — <确切文本> 或 "not raised"
SONNET said: [severity] — <确切文本> 或 "not raised"CONTESTED_LISTCONTESTED_LISTsynthesis-agent.md[ALL_SIX_REPORTS][CONTESTED_LIST]model=REASONING_TIERJUROR RULINGSJUROR RULINGS:CONTESTED_LISTCONTESTED_LISTsynthesis-agent.md[ALL_SIX_REPORTS][CONTESTED_LIST]model=REASONING_TIERJUROR RULINGSJUROR RULINGS:FINDINGS:FINDINGS: none--fastif valid_reports < 3:
HALT — present to operator:
"⛔ REVIEW ABORTED — only N/6 agents returned valid reports.
Cannot produce a reliable verdict with fewer than 3 reviewers.
Options: (a) Re-run, (b) Check for API/rate-limit issues, (c) Override and proceed."
Do NOT invoke the decision gate.
if valid_reports < 6:
Add a panel-health WARNING to the verdict:
[WARNING] Partial panel — N/6 agents responded
detail: <N> of 6 reviewers failed to return a valid report; coverage gaps possible.
location: Agent dispatch--fast--fastaccepted_findings = []
For each topic pair:
For each finding where BOTH models agreed (same title + same severity):
add to accepted_findings at agreed severity
If juror was invoked:
For each RULING in JUROR RULINGS:
add to accepted_findings
For each SYNTHESISED finding (if any):
add to accepted_findings
BLOCKERS = findings with severity BLOCKER
WARNINGS = findings with severity WARNING
OBS = findings with severity OBSFINDINGS:FINDINGS: none--fastif valid_reports < 3:
终止 — 向操作者展示:
"⛔ 评审中止 — 仅N/6个Agent返回了有效报告。
少于3位评审员无法生成可靠结论。
选项:(a) 重新运行,(b) 检查API/速率限制问题,(c) 覆盖并继续。"
不要调用决策门。
if valid_reports < 6:
向结论添加评审小组健康状况警告:
[WARNING] 部分评审小组 — N/6个Agent响应
详情:6位评审员中有<N>位未能返回有效报告;可能存在覆盖缺口。
位置:Agent调度--fast--fastaccepted_findings = []
For each topic pair:
For each finding where BOTH models agreed (same title + same severity):
add to accepted_findings at agreed severity
If juror was invoked:
For each RULING in JUROR RULINGS:
add to accepted_findings
For each SYNTHESISED finding (if any):
add to accepted_findings
BLOCKERS = findings with severity BLOCKER
WARNINGS = findings with severity WARNING
OBS = findings with severity OBS{"verdict": "BLOCKED | WARNINGS | CLEAN | HALTED",
"blockers": [], "warnings": [], "obs": [],
"panel_health": [], "iteration": 1}iteration_count >= 3"⛔ REVIEW EXHAUSTED — 3 iterations reached. Showing final findings."
⛔ REVIEW BLOCKED — N blocker(s) must be addressed before proceeding.
BLOCKERS:
1. [title] (topic: X, confidence: Y)
detail: ...
location: ...Two options:
(a) Fix blockers in the artifact now, then I'll re-run the full review.
(b) Override — acknowledge the blockers and proceed anyway (I'll note the override).git notegit notes append -m "MULTI-AGENT-REVIEW OVERRIDE $(date -u +%Y-%m-%dT%H:%M:%SZ): operator acknowledged N blockers: [titles]" HEAD⚠ REVIEW PASSED WITH WARNINGS — N warning(s).
WARNINGS:
1. [title] (topic: X)
detail: ...
location: ...
Fix warnings before proceeding, or accept and continue?✅ Review passed — N findings (0 blockers, 0 warnings, M observations).specwriting-plansplansubagent-driven-development{"verdict": "BLOCKED | WARNINGS | CLEAN | HALTED",
"blockers": [], "warnings": [], "obs": [],
"panel_health": [], "iteration": 1}iteration_count >= 3"⛔ 评审已耗尽 — 已达到3次迭代。显示最终发现结果。"
⛔ 评审被阻塞 — 必须解决N个阻塞项才能继续。
阻塞项:
1. [标题] (主题: X, 置信度: Y)
详情: ...
位置: ...两个选项:
(a) 现在修复工件中的阻塞项,然后我将重新运行完整评审。
(b) 覆盖 — 确认阻塞项并继续(我会记录覆盖操作)。git notegit notes append -m "MULTI-AGENT-REVIEW OVERRIDE $(date -u +%Y-%m-%dT%H:%M:%SZ): operator acknowledged N blockers: [titles]" HEAD⚠ 评审通过但存在警告 — N个警告。
警告:
1. [标题] (主题: X)
详情: ...
位置: ...
在继续前修复警告,还是接受并继续?✅ 评审通过 — N个发现结果(0个阻塞项,0个警告,M个观察项)。specwriting-plansplansubagent-driven-development| Failure | Behaviour |
|---|---|
| < 3 valid reports | HALT — abort, present to operator, do not produce verdict |
| 3–5 valid reports | Add panel-health WARNING, continue with partial coverage |
| 6 valid reports | Proceed normally |
| Juror error/timeout | Conservative fallback — promote all contested findings to BLOCKER, present as "JUROR FAILED" |
| All agents error | HALT — empty accepted_findings must never silently trigger clean verdict |
| Single tier, nothing is contested: every finding from a valid report is accepted at its emitted severity; quorum is 2 of 3; the verdict carries a note that no cross-model adjudication ran |
| 故障 | 行为 |
|---|---|
| 有效报告<3份 | 终止 — 中止,向操作者展示,不生成结论 |
| 有效报告3–5份 | 添加评审小组健康状况警告,继续进行部分覆盖评审 |
| 有效报告6份 | 正常继续 |
| 评审员出错/超时 | 保守回退 — 将所有有争议的发现升级为BLOCKER,展示为“JUROR FAILED” |
| 所有Agent出错 | 终止 — 空的accepted_findings绝不能默认触发干净结论 |
| 单层级,无争议内容:接受所有有效报告中的每一个发现,保留其生成时的严重程度;法定人数为3份中的2份;结论附带说明:未进行跨模型裁决 |
"models"| Tier variable | CC default | Codex default | Cursor default | Role |
|---|---|---|---|---|
| | | | Fast reviewer (always used) |
| | | | Standard reviewer (skipped with |
| | | | Juror (not overridable: adjudication on a weak model defeats its purpose) |
cli:"standard": "cli:codex""models"| 层级变量 | CC默认值 | Codex默认值 | Cursor默认值 | 角色 |
|---|---|---|---|---|
| | | | 快速评审员(始终使用) |
| | | | 标准评审员(使用 |
| | | | 评审员(不可覆盖:使用弱模型进行裁决会失去其意义) |
cli:"standard": "cli:codex"subagent-driven-developmentdocs/superpowers/subagent-driven-developmentdocs/superpowers/agents/completeness-reviewer.mdagents/alignment-reviewer.mdagents/risk-reviewer.mdagents/synthesis-agent.mdassets/project-rules.example.mdproject-rules.mdagents/completeness-reviewer.mdagents/alignment-reviewer.mdagents/risk-reviewer.mdagents/synthesis-agent.mdassets/project-rules.example.mdproject-rules.md