debate
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesedebate
辩论
Prompt templates, context assembly rules, and synthesis format for structured multi-round debates between AI tools.
用于AI工具间结构化多轮辩论的提示词模板、上下文组装规则及合成格式。
Arguments
参数解析
Parse from :
$ARGUMENTS- topic: The debate question/topic (required)
- --proposer: Tool for the proposer role (claude, gemini, codex, opencode, copilot)
- --challenger: Tool for the challenger role (must differ from proposer)
- --rounds: Number of back-and-forth rounds (1-5, default: 2)
- --effort: Thinking effort applied to all tool invocations (low, medium, high, max)
- --model-proposer: Specific model for proposer (optional)
- --model-challenger: Specific model for challenger (optional)
从中解析以下内容:
$ARGUMENTS- 主题:辩论的问题/主题(必填)
- --proposer:担任正方角色的工具(可选值:claude, gemini, codex, opencode, copilot)
- --challenger:担任反方角色的工具(必须与正方工具不同)
- --rounds:来回辩论的轮次(1-5,默认值:2)
- --effort:所有工具调用的思考强度(可选值:low, medium, high, max)
- --model-proposer:正方使用的具体模型(可选)
- --model-challenger:反方使用的具体模型(可选)
Universal Rules
通用规则
ALL participants (proposer AND challenger) MUST support claims with specific evidence (file path, code pattern, benchmark, or documented behavior). Unsupported claims from either side will be flagged by the other participant and noted in the verdict. This applies to every round.
所有参与者(正方与反方)必须用具体证据(文件路径、代码模式、基准测试结果或已记录的行为)支撑论点。任何一方提出的无证据支撑的论点都会被另一方指出,并在最终裁决中记录。此规则适用于每一轮辩论。
Prompt Templates
提示词模板
Round 1: Proposer Opening
第一轮:正方开场
You are participating in a structured debate as the PROPOSER.
Topic: {topic}
Your job: Analyze this topic thoroughly and present your position. Take a clear stance. Do not hedge excessively.
You MUST support each claim with specific evidence (file path, code pattern, benchmark, or documented behavior). Unsupported claims will be challenged. "I think" or "generally speaking" without evidence is not acceptable.
Provide your analysis:You are participating in a structured debate as the PROPOSER.
Topic: {topic}
Your job: Analyze this topic thoroughly and present your position. Take a clear stance. Do not hedge excessively.
You MUST support each claim with specific evidence (file path, code pattern, benchmark, or documented behavior). Unsupported claims will be challenged. "I think" or "generally speaking" without evidence is not acceptable.
Provide your analysis:Round 1: Challenger Response
第一轮:反方回应
You are participating in a structured debate as the CHALLENGER.
Topic: {topic}
The PROPOSER ({proposer_tool}) argued:
---
{proposer_round1_response}
---
Your job: Find weaknesses, blind spots, and flaws in the proposer's argument. You MUST identify at least one genuine flaw or overlooked consideration before agreeing on anything. Propose concrete alternatives where you disagree.
Rules:
- Do NOT say "great point" or validate the proposer's reasoning before critiquing it
- Lead with what's WRONG or MISSING, then acknowledge what's right
- If you genuinely agree on a point, explain what RISK remains despite the agreement
- Propose at least one concrete alternative approach
- You MUST address at least these categories: correctness, security implications, and developer experience
- Do NOT agree with ANY claim unless you can cite specific evidence (file path, code pattern, or documented behavior) that supports the agreement. Unsupported agreement is not allowed.
- If the proposer makes a claim without evidence, call it out: "This claim is unsupported."
Provide your challenge:You are participating in a structured debate as the CHALLENGER.
Topic: {topic}
The PROPOSER ({proposer_tool}) argued:
---
{proposer_round1_response}
---
Your job: Find weaknesses, blind spots, and flaws in the proposer's argument. You MUST identify at least one genuine flaw or overlooked consideration before agreeing on anything. Propose concrete alternatives where you disagree.
Rules:
- Do NOT say "great point" or validate the proposer's reasoning before critiquing it
- Lead with what's WRONG or MISSING, then acknowledge what's right
- If you genuinely agree on a point, explain what RISK remains despite the agreement
- Propose at least one concrete alternative approach
- You MUST address at least these categories: correctness, security implications, and developer experience
- Do NOT agree with ANY claim unless you can cite specific evidence (file path, code pattern, or documented behavior) that supports the agreement. Unsupported agreement is not allowed.
- If the proposer makes a claim without evidence, call it out: "This claim is unsupported."
Provide your challenge:Round 2+: Proposer Defense
第二轮及以后:正方辩护
You are the PROPOSER in round {round} of a structured debate.
Topic: {topic}
{context_summary}
The CHALLENGER ({challenger_tool}) raised these points in round {previous_round}:
---
{challenger_previous_response}
---
Your job: Address each challenge directly. For each point:
- If they're right, concede explicitly and explain how your position evolves
- If they're wrong, explain why with specific evidence (file path, code pattern, benchmark, or documented behavior)
- If it's a tradeoff, acknowledge the tradeoff and explain why you still favor your approach with evidence
Every claim you make -- whether concession, rebuttal, or new argument -- MUST cite specific evidence. The challenger will reject unsupported claims.
Do NOT simply restate your original position. Your response must show you engaged with the specific challenges raised.
Provide your defense:You are the PROPOSER in round {round} of a structured debate.
Topic: {topic}
{context_summary}
The CHALLENGER ({challenger_tool}) raised these points in round {previous_round}:
---
{challenger_previous_response}
---
Your job: Address each challenge directly. For each point:
- If they're right, concede explicitly and explain how your position evolves
- If they're wrong, explain why with specific evidence (file path, code pattern, benchmark, or documented behavior)
- If it's a tradeoff, acknowledge the tradeoff and explain why you still favor your approach with evidence
Every claim you make -- whether concession, rebuttal, or new argument -- MUST cite specific evidence. The challenger will reject unsupported claims.
Do NOT simply restate your original position. Your response must show you engaged with the specific challenges raised.
Provide your defense:Round 2+: Challenger Follow-up
第二轮及以后:反方跟进
You are the CHALLENGER in round {round} of a structured debate.
Topic: {topic}
{context_summary}
The PROPOSER ({proposer_tool}) responded to your challenges:
---
{proposer_previous_response}
---
IMPORTANT: Do NOT let the proposer reframe your challenges as agreements. If they say "we actually agree" but haven't addressed the substance, reject it. Default to suspicion, not acceptance.
Your job: Evaluate the proposer's defense. For each point they addressed:
- Did they dodge, superficially address, or respond without evidence? Call it out: "This defense is unsupported" or "This dodges the original concern"
- Did they concede any point? Hold them to it -- they cannot walk it back later without new evidence
- Are there NEW weaknesses in their revised position?
- Did they adequately address your concern with specific evidence? Only then acknowledge it, and cite what convinced you
You MUST either identify at least one new weakness or unresolved concern, OR explicitly certify a previous concern as genuinely resolved with specific evidence for why you're now satisfied. "I'm convinced because [evidence]" is acceptable. "I agree now" without evidence is not.
If you see new problems, raise them.
Provide your follow-up:You are the CHALLENGER in round {round} of a structured debate.
Topic: {topic}
{context_summary}
The PROPOSER ({proposer_tool}) responded to your challenges:
---
{proposer_previous_response}
---
IMPORTANT: Do NOT let the proposer reframe your challenges as agreements. If they say "we actually agree" but haven't addressed the substance, reject it. Default to suspicion, not acceptance.
Your job: Evaluate the proposer's defense. For each point they addressed:
- Did they dodge, superficially address, or respond without evidence? Call it out: "This defense is unsupported" or "This dodges the original concern"
- Did they concede any point? Hold them to it -- they cannot walk it back later without new evidence
- Are there NEW weaknesses in their revised position?
- Did they adequately address your concern with specific evidence? Only then acknowledge it, and cite what convinced you
You MUST either identify at least one new weakness or unresolved concern, OR explicitly certify a previous concern as genuinely resolved with specific evidence for why you're now satisfied. "I'm convinced because [evidence]" is acceptable. "I agree now" without evidence is not.
If you see new problems, raise them.
Provide your follow-up:Context Assembly
上下文组装
Rounds 1-2: Full context
第1-2轮:完整上下文
Include the full text of all prior exchanges in the prompt. Context is small enough (typically under 5000 tokens total).
Format for context block:
Previous exchanges:
Round 1 - Proposer ({proposer_tool}):
{full response}
Round 1 - Challenger ({challenger_tool}):
{full response}在提示词中包含所有之前对话的完整文本。上下文内容通常足够简短(总token数一般低于5000)。
上下文块格式:
Previous exchanges:
Round 1 - Proposer ({proposer_tool}):
{full response}
Round 1 - Challenger ({challenger_tool}):
{full response}Round 3+: Summarized context
第3轮及以后:摘要式上下文
For rounds 3 and beyond, replace full exchange text from rounds 1 through N-2 with a summary. Only include the most recent round's responses in full.
Format:
Summary of rounds 1-{N-2}:
{summary of key positions, agreements, and open disagreements}
Round {N-1} - Proposer ({proposer_tool}):
{full response}
Round {N-1} - Challenger ({challenger_tool}):
{full response}The orchestrator agent (opus) generates the summary. Target: 500-800 tokens. MUST preserve:
- Each side's core position
- All concessions (verbatim quotes, not paraphrased)
- All evidence citations that support agreements
- Points of disagreement (unresolved)
- Any contradictions between rounds (e.g., proposer concedes in round 1 but walks it back in round 2 -- note both explicitly)
对于第3轮及以后的辩论,将第1到N-2轮的完整对话替换为摘要。仅保留最近一轮的完整对话内容。
格式:
Summary of rounds 1-{N-2}:
{summary of key positions, agreements, and open disagreements}
Round {N-1} - Proposer ({proposer_tool}):
{full response}
Round {N-1} - Challenger ({challenger_tool}):
{full response}由编排Agent(opus)生成摘要,目标长度为500-800 token。摘要必须保留以下内容:
- 双方的核心立场
- 所有让步内容(直接引用,而非改写)
- 支撑共识的所有证据引用
- 未解决的分歧点
- 各轮之间的矛盾内容(例如:正方在第一轮做出让步,但在第二轮反悔——需明确记录这两点)
Synthesis Format
合成格式
After all rounds complete, the orchestrator produces this structured output:
undefined所有辩论轮次结束后,编排器将生成以下结构化输出:
undefinedDebate Summary
Debate Summary
Topic: {topic}
Proposer: {proposer_tool} ({proposer_model})
Challenger: {challenger_tool} ({challenger_model})
Rounds: {rounds_completed}
Rigor: Structured perspective comparison (prompt-enforced adversarial rules, no deterministic verification)
Topic: {topic}
Proposer: {proposer_tool} ({proposer_model})
Challenger: {challenger_tool} ({challenger_model})
Rounds: {rounds_completed}
Rigor: Structured perspective comparison (prompt-enforced adversarial rules, no deterministic verification)
Verdict
Verdict
{winner_tool} had the stronger argument because: {specific reasoning citing debate evidence}
{winner_tool} had the stronger argument because: {specific reasoning citing debate evidence}
Debate Quality
Debate Quality
Rate the debate on these dimensions:
- Genuine disagreement: Did the challenger maintain independent positions, or converge toward the proposer? (high/medium/low)
- Evidence quality: Did both sides cite specific examples, or argue from generalities? (high/medium/low)
- Challenge depth: Were the challenges substantive, or surface-level? (high/medium/low)
Rate the debate on these dimensions:
- Genuine disagreement: Did the challenger maintain independent positions, or converge toward the proposer? (high/medium/low)
- Evidence quality: Did both sides cite specific examples, or argue from generalities? (high/medium/low)
- Challenge depth: Were the challenges substantive, or surface-level? (high/medium/low)
Key Agreements
Key Agreements
- {agreed point 1} (evidence: {what supports this agreement})
- {agreed point 2} (evidence: {what supports this agreement})
- {agreed point 1} (evidence: {what supports this agreement})
- {agreed point 2} (evidence: {what supports this agreement})
Key Disagreements
Key Disagreements
- {point}: {proposer_tool} argues {X}, {challenger_tool} argues {Y}
- {point}: {proposer_tool} argues {X}, {challenger_tool} argues {Y}
Unresolved Questions
Unresolved Questions
- {question that neither side adequately addressed}
- {question that neither side adequately addressed}
Recommendation
Recommendation
{Orchestrator's recommendation - must pick a direction, not "both have merit"}
**Synthesis rules:**
- The verdict MUST pick a side. "Both approaches have merit" is NOT acceptable.
- Cite specific arguments from the debate as evidence for the verdict.
- The recommendation must be actionable - what should the user DO based on this debate.
- Unresolved questions highlight where the debate fell short, not where both sides are "equally valid."{Orchestrator's recommendation - must pick a direction, not "both have merit"}
**合成规则**:
- 裁决必须明确支持某一方。“两种方法都有可取之处”是不被允许的。
- 需引用辩论中的具体论点作为裁决的证据。
- 建议必须具备可操作性——用户基于此次辩论应该采取什么行动。
- 未解决的问题需突出辩论的不足之处,而非“双方观点同样合理”。State File Schema
状态文件Schema
Save to :
{AI_STATE_DIR}/debate/last-debate.jsonjson
{
"id": "debate-{ISO timestamp}-{4 char random hex}",
"topic": "original topic text",
"proposer": {"tool": "claude", "model": "opus"},
"challenger": {"tool": "gemini", "model": "gemini-3-pro"},
"effort": "high",
"rounds_completed": 2,
"max_rounds": 2,
"status": "completed",
"exchanges": [
{"round": 1, "role": "proposer", "tool": "claude", "response": "...", "duration_ms": 8500},
{"round": 1, "role": "challenger", "tool": "gemini", "response": "...", "duration_ms": 12000},
{"round": 2, "role": "proposer", "tool": "claude", "response": "...", "duration_ms": 9200},
{"round": 2, "role": "challenger", "tool": "gemini", "response": "...", "duration_ms": 11000}
],
"verdict": {
"winner": "claude",
"reasoning": "...",
"agreements": ["..."],
"disagreements": ["..."],
"recommendation": "..."
},
"timestamp": "{ISO 8601 timestamp}"
}Platform state directory:
- Claude Code:
.claude/ - OpenCode:
.opencode/ - Codex CLI:
.codex/
保存至:
{AI_STATE_DIR}/debate/last-debate.jsonjson
{
"id": "debate-{ISO timestamp}-{4 char random hex}",
"topic": "original topic text",
"proposer": {"tool": "claude", "model": "opus"},
"challenger": {"tool": "gemini", "model": "gemini-3-pro"},
"effort": "high",
"rounds_completed": 2,
"max_rounds": 2,
"status": "completed",
"exchanges": [
{"round": 1, "role": "proposer", "tool": "claude", "response": "...", "duration_ms": 8500},
{"round": 1, "role": "challenger", "tool": "gemini", "response": "...", "duration_ms": 12000},
{"round": 2, "role": "proposer", "tool": "claude", "response": "...", "duration_ms": 9200},
{"round": 2, "role": "challenger", "tool": "gemini", "response": "...", "duration_ms": 11000}
],
"verdict": {
"winner": "claude",
"reasoning": "...",
"agreements": ["..."],
"disagreements": ["..."],
"recommendation": "..."
},
"timestamp": "{ISO 8601 timestamp}"
}平台状态目录:
- Claude Code:
.claude/ - OpenCode:
.opencode/ - Codex CLI:
.codex/
Error Handling
错误处理
| Error | Action |
|---|---|
| Proposer fails round 1 | Abort debate. Cannot proceed without opening position. |
| Challenger fails round 1 | Show proposer's position with note: "[WARN] Challenger failed. Showing proposer's uncontested position." |
| Any tool fails mid-debate | Synthesize from completed rounds. Note incomplete round in output. |
| All rounds timeout | "[ERROR] Debate failed: all tool invocations timed out." |
| 错误场景 | 处理动作 |
|---|---|
| 正方第一轮辩论失败 | 终止辩论。没有开场立场无法继续。 |
| 反方第一轮辩论失败 | 展示正方立场,并附带提示:"[WARN] 反方辩论失败。展示正方无争议立场。" |
| 辩论中途任意工具失败 | 基于已完成的轮次生成合成结果。在输出中注明未完成的轮次。 |
| 所有轮次超时 | "[ERROR] 辩论失败:所有工具调用均超时。" |
Consult Skill Integration
Consult技能集成
Each tool invocation uses the existing skill from the consult plugin. The orchestrator invokes it as:
consultSkill: consult
Args: "{debate prompt with context}" --tool={tool} --effort={effort} --model={model}The consult skill handles: provider command building, safe question passing (temp file), output parsing, and secret redaction. The debate skill does NOT duplicate this logic.
每次工具调用都会使用consult插件中已有的技能。编排器调用方式如下:
consultSkill: consult
Args: "{debate prompt with context}" --tool={tool} --effort={effort} --model={model}Consult技能负责:生成供应商命令、安全传递问题(临时文件)、输出解析和敏感信息脱敏。辩论技能不会重复实现这些逻辑。