Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 70/100

debate

2つのAIエージェント間で、異なるソリューションを提案し、複数ラウンドで防戦しながら自己収束させるリアルな対抗的討論を実行します。両エージェントが独立して討論が尽くされたと判断した場合のみ停止します。ユーザーが連続的なチャット継続性を備えた本質的な順序討論を望む場合に使用してください。/council(並列統合)やsanta-method(合否レビュー)とは異なります。

description の原文を見る

Run a real back-and-forth adversarial debate between two AI agents who propose different solutions, defend them across rounds, and self-converge — stopping only when BOTH agents independently signal the debate is exhausted. Use when the user wants genuine sequential debate with chat continuity. Not /council (parallel synthesis), not santa-method (pass/fail review).

SKILL.md 本文

ディベート

自己決定型収束を伴う2つのエージェント間の対立ディベート。両エージェントが同じラウンドで独立して DONE を示してからディベートが終了します。安全性のため最大6ラウンドに制限されます。

使用すべき場合

  • ユーザーが /debate <タスク> を呼び出した
  • ユーザーが真の相互作用を伴い2つの異なるソリューションが背中合わせで議論されることを望んでいる
  • ユーザーが一貫した立場を維持したままディベートを続けるフォローアップ質問をしたい

使用すべきでない場合

ディベートの代わり代わりに使用
4声のトレードオフ分析/council
パス/フェイル検証santa-method
単純な実装そのまま実行
アーキテクチャ設計planner または architect

コア原則

  1. ステートレスエージェント、オーケストレータ主導のメモリ。 各ラウンドで新しい Agent 呼び出しを生成します。エージェント自体はラウンド間でメモリを持たず、オーケストレータ(あなた)が各ラウンドのプロンプトに関連する事前の履歴を埋め込みます。これは現在の Claude Code での動作メカニズムです。SendMessage スタイルの永続的なエージェント継続は利用できません。
  2. 自己決定型収束。 エージェントは明示的なステータスシグナルを発行することでディベートが完了したかを判断します。オーケストレータはラウンド数を事前に決定しません。
  3. 相互停止。 ディベートは両エージェントが同じラウンドで ## Status: DONE で終了した場合のみ停止します。非対称な停止は収束ではありません。

収束プロトコル

ラウンド2から開始して、すべてのエージェント応答は以下のいずれかで終了する必要があります:

## Status: DONE
<1文:追加すべき本質的な内容がない理由>

または

## Status: CONTINUE — <1行の理由>

停止ルール: 両エージェントが同じラウンドで DONE を発行した → ディベートを終了し、判定を記述します。

フリップルール: ラウンドNで DONE と言ったエージェントは、並列配信された相手方の応答(ラウンドN+1)に、エージェントがまだ関与していない本質的な新しいコンテンツが含まれている場合、ラウンドN+1で CONTINUE に切り替えられます。(オーケストレータ)この非対称性を検出した場合、次のラウンドのプロンプトで明示的にそのエージェントにフリップルールを呼び出します。

上限: ディベートがラウンド6までに自然に収束していない場合、強制終了して統合します。判定でキャップが達成されたこと、および残っていた不一致を記載します。

オーケストレータの状態

(オーケストレータ)あなたはディベート全体にわたってこれを作業コンテキストに保つ必要があります:

  • タスク — ユーザーの質問、そのまま
  • 背景コンテキスト — ユーザーが提供した関連するプロジェクトコンテキスト
  • 立場の割り当て — 質問がバイナリ選択(例: 「FPGA vs Tiny Tapeout」)の場合、事前に立場を割り当てます。それ以外の場合、エージェントに異なる立場を自由に選ばせます。
  • ラウンドごとのトランスクリプト — すべてのエージェントの応答の完全なテキスト、後のプロンプトに埋め込めるようにそのまま保持します。

全体のディベートが完了するのを待たず、各ラウンドが完了するたびにトランスクリプトをユーザーに段階的に表示します。

ラウンドのメカニクス

各ラウンド内では、両エージェントが並列で実行されます(単一メッセージ、2つの Agent ツール呼び出し)。ラウンドは直列です(ラウンドN+1はラウンドNの出力が必要)。

ラウンド1 — オープニング(並列 Agent 生成)

1つのメッセージで2つの general-purpose エージェントを起動します。

エージェントAプロンプト:

You are Agent A in an adversarial technical debate. You will argue ONE specific solution to the user's task. Agents are stateless between rounds — your output here will be the seed your future self responds to, so be specific and stake out a defensible position.

[If binary choice: Your assigned side is: <SIDE>]

Background context:
<USER_CONTEXT>

Rules:
- Pick ONE concrete approach. Be specific: name tools, libraries, architectures, dollar figures, timelines.
- Bias toward less-obvious paths. If the obvious answer is X, find a credible Y you can defend.
- Defend firmly. Concede only when the counterargument is genuinely strong.
- No hedging. No "it depends."

Output format for this opening round:
## Position
[2 sentences — what you advocate]

## Reasoning
- [3 bullets, concrete and specific]

## Anticipated objection
[The strongest critique you expect, and your answer in 2 sentences]

(No status signal yet — that starts in round 2.)

Task:
<USER_TASK>

Provide your opening. Agent B is answering in parallel — you don't see their answer yet.

エージェントBプロンプト: 同じ構造で、自由選択ディベートの場合はこの追加があります:

You are Agent B. You will argue a DIFFERENT solution than Agent A.

Strategy: if A is likely to go exotic, take the boring/proven path. If A is likely to go conservative, take the cutting-edge path. Don't be contrarian for its own sake — pick the position you can defend most rigorously.

バイナリ選択ディベートの場合、Bに直接反対側を割り当てるだけです。

両方の出力をそのままオーケストレータ状態にキャプチャします。

ラウンド2以降 — エンゲージメント(埋め込み履歴を含む並列 Agent 生成)

各ラウンドは2つの新しいエージェントを生成します。各エージェントのプロンプトには以下を含める必要があります:

  1. ロール + 立場の割り当て(エージェントはステートレスなため再記載)
  2. 背景コンテキスト
  3. エージェント自身の事前ラウンド (そのまま) — 確立された立場との一貫性を保つ
  4. 相手方の最後のラウンド (そのまま) — 応答する対象
  5. ラウンドNの指示(エンゲージメントプロトコル + ステータスシグナル)
  6. 出力形式

プロンプトテンプレート(両方のエージェントを並列で置換):

You are Agent <A|B> in an adversarial technical debate. You argued for <YOUR SIDE> in prior rounds. This is Round <N>.

Background context:
<USER_CONTEXT>

YOUR full prior history (verbatim — defend or refine these positions):
---
Round 1: <your R1 output>
Round 2: <your R2 output if N>=3>
...
---

Opponent's Round <N-1> (you must respond to this):
---
<opponent's last round verbatim>
---

[If applicable — flip-rule trigger:]
NOTE: In Round <N-1> you marked DONE, but the opponent's parallel response raised these substantive points you did not address: <list>. Per the flip rule, you should flip to CONTINUE and engage.

Continue the debate. Engage with their specific points.

1. Attack: WEAKEST point in their argument that hasn't been adequately defended.
2. Defend: any of YOUR points they attacked — rebut or concede cleanly.
3. New ground (optional): one load-bearing new consideration if you haven't raised it yet.

Then decide if the debate is exhausted from your side. You may flip from DONE back to CONTINUE if their response introduced genuinely new material.

Output format:
## Engagement
[3–6 bullets: attack + defense + any new ground]

## Refined position
[Your current position — restated if changed, "unchanged" + one sentence if not]

## Status: DONE
<one sentence: why nothing substantive remains>

OR

## Status: CONTINUE — <one-line reason>

最終ラウンド(ラウンド6または自然な収束に近い場合)では、プロンプトに以下を追加します:

This may be the final round. Beyond engagement, include:
- ## Agreement with <opponent> — specific points where you now agree, or "none + reason"
- ## Refined position — final position

終了チェック(オーケストレータ — あなた)

各ラウンド2以降、両エージェントの ## Status: 行を解析します。

  • 両方とも DONE → 停止、判定を記述。
  • いずれかが CONTINUE → 別のラウンドを実行。
  • 相互DONEなしでラウンド6に到達 → 強制停止、判定でキャップに達したことを記載します。

1つのエージェントが DONE と言ったが、相手方の並列応答が対処していない本質的なポイントを提起した場合、次のラウンドでフリップルールを呼び出します(プロンプトテンプレートを参照)。

判定(あなた)

## ⚖️ Verdict

**Converged on:** [where both agents agreed by the end]

**Live disagreement (if any):** [residual point — may be empty if full convergence]

**Recommendation:** [what the user should actually do, given their goals]

**What tipped the call:** [one sentence — strongest argument and why]

**Rounds:** [N] — [natural convergence | hit 6-round cap]

表示形式

各ラウンドが完了するたびに順次レンダリングします。全体のディベートの完了を待たないでください。ラベル:

🅰️ Agent A — Round 1 (Opening)
<content>

🅱️ Agent B — Round 1 (Opening)
<content>

🅰️ Agent A — Round 2
<content, ending with status>

🅱️ Agent B — Round 2
<content, ending with status>

...

⚖️ Verdict
<content>

エージェント IDをユーザーに公開しないでください。

フォローアップ質問(同じセッション)

エージェントはステートレスなため、「フォローアップの継続性」はオーケストレータが完全な事前ディベートトランスクリプトを新しいプロンプトに取り込むことで実現されます:

  • 明確化 / ドリルダウン(「Bの帯域幅のポイントを説明」、「コストはどう」): このプロンプトで並列に各側につき1つの新しいエージェントを生成:
    You are Agent <A|B>. You took the <SIDE> position in this debate. Full transcript so far:
    <transcript>
    
    The user asks: <follow-up>
    
    Answer briefly (≤150 words) consistent with the position you defended. No status signal needed.
    
  • 新しい部分決定(「OK FPGAを選んだ、どのボード?」): 新しい副質問をタスクとする完全なディベートプロトコル、および事前のディベートトランスクリプトを背景として埋め込み、立場の一貫性を維持します。

アンチパターン

  • ラウンド全体でプロンプトのトーンやルールをドリフトさせる → 一貫性がディベートを正直に保ちます。各ラウンド同じスキャフォールディングを再利用します。
  • Bが独自のオープニングを作成する前にAのオープニングをBと共有 → Bの立場にバイアスをかけます。
  • 両方のエージェントが DONE を発行する前に統合 → 未解決の不一致を抑制します。
  • 1つのエージェントの DONE がディベートを終了させている間、他方がまだ CONTINUE と言う → 非対称停止は収束ではありません。フリップルールを使用します。
  • ラウンド6のキャップを削除 → 膠着状態での無制限のトークン使用。
  • 判定で残りの不一致を隠す → 両方が不一致を残したまま DONE で終わった場合、それを明示します。それが価値です。
  • 事前ラウンド履歴をトークンを節約するため切り詰める → エージェントは確立された立場から外れます。そのままのトランスクリプトを保持します。

トークンに関する注記

エージェントはステートレスなため、各ラウンドのプロンプトは累積ディベートトランスクリプトを埋め込みます。ラウンド3までに各プロンプトはエージェントあたり約3~4kトークンの履歴を含みます。6ラウンドのディベート ≈ すべてのエージェント呼び出しにわたり60~80kの入力トークン。ディベートの質としては許容できますが、トークン制約がある場合は、古いラウンド(ラウンド1~N-2)を2~3箇条書きに要約し、最後のラウンドのみそのままに保つ。

パフォーマンスに関する注記

レイテンシ = (ラウンド × ラウンドあたり約20秒)。各ラウンドは自身内では並列ですが、ラウンドは直列です。一般的なディベートは3ラウンドで収束します(約60秒)。キャップされたディベートは約2分かかります。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
tarassh
リポジトリ
tarassh/claude-debate
ライセンス
MIT
最終更新
2026/5/11

Source: https://github.com/tarassh/claude-debate / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: tarassh · tarassh/claude-debate · ライセンス: MIT