-
引数パース
"<topic>": 必須。引用符内のテキスト、または -- オプション以外の残り引数をトピックとする
--max-rounds: 任意。デフォルト 3(各ラウンドで賛成・反対が並行して主張するため、計6つの主張)
- topic が空 → エラー「ディベートのトピックを指定してください」
-
tmux pane 作成(1つの Bash コマンドで実行)
PRO_PANE=$(tmux split-window -h -P -F "#{pane_id}" -d -t "$TMUX_PANE") && \
CON_PANE=$(tmux split-window -v -P -F "#{pane_id}" -d -t "$PRO_PANE") && \
echo "PRO=$PRO_PANE CON=$CON_PANE"
出力から PRO と CON の pane ID をパースする。レイアウト:
[Moderator] [Pro ]
[Con ]
-
Claude Code 起動(1つの Bash コマンドで実行)
tmux send-keys -t "$PRO_PANE" "cc" Enter && \
tmux send-keys -t "$CON_PANE" "cc" Enter
-
pane-state.json ポーリング(最大60秒、2秒間隔)
for i in $(seq 1 30); do
if jq -e --arg pro "$PRO_PANE" --arg con "$CON_PANE" \
'.[$pro] and .[$con]' ~/.claude/pane-state.json 2>/dev/null; then
echo "READY"; exit 0
fi
sleep 2
done
echo "TIMEOUT"; exit 1
READY → 続行
TIMEOUT → エラー「Claude Code の起動がタイムアウトしました。pane を手動で確認してください」
-
セッション準備
-
セッションファイル作成(3ファイル)
-
賛成派・反対派の両方にプロンプトを同時送信(2つの Bash コマンドを並列実行すること)
賛成派(Bash):
tmux send-keys -t "{pane_pro}" -l -- '~/.claude/dialogues/{session-id}.md を Read で読んでください。あなたは賛成派です。参加ルールに従い、相手のファイル ~/.claude/dialogues/{session-id}-con.md を Read で確認し、自分のファイル ~/.claude/dialogues/{session-id}-pro.md に Round 1 として賛成の立場からの主張を追記してから /cc-debate-reply {session-id} を実行してください。' && sleep 0.3 && tmux send-keys -t "{pane_pro}" Enter
反対派(Bash):
tmux send-keys -t "{pane_con}" -l -- '~/.claude/dialogues/{session-id}.md を Read で読んでください。あなたは反対派です。参加ルールに従い、相手のファイル ~/.claude/dialogues/{session-id}-pro.md を Read で確認し、自分のファイル ~/.claude/dialogues/{session-id}-con.md に Round 1 として反対の立場からの主張を追記してから /cc-debate-reply {session-id} を実行してください。' && sleep 0.3 && tmux send-keys -t "{pane_con}" Enter
- プロンプト内のシングルクォートは
'\'' にエスケープすること
-
結果報告: 以下を報告
- セッション ID
- メインファイル:
~/.claude/dialogues/{session-id}.md
- 賛成派ファイル:
~/.claude/dialogues/{session-id}-pro.md
- 反対派ファイル:
~/.claude/dialogues/{session-id}-con.md
- トピック
- モデレーター pane:
$TMUX_PANE
- 賛成派 pane:
{pane_pro}
- 反対派 pane:
{pane_con}
- 最大ラウンド数
- 「ディベートを開始しました。賛成派・反対派が並行して主張します。終了後、自動的にまとめ依頼が届きます。」