#!/bin/bash
# 自動send実行版 Claude ペアシステム
echo "🤖 自動send実行版 Claude ペアシステム構築中..."
# .workspace ディレクトリ作成
mkdir -p .workspace/claude-pair
cd .workspace/claude-pair
# 共有作業フォルダ
mkdir -p shared
# プロジェクトルートへの絶対パスを取得
PROJECT_ROOT="$(cd ../../ && pwd)"
WORKSPACE_ROOT="$(pwd)"
echo "📁 プロジェクトルート: $PROJECT_ROOT"
echo "📁 ワークスペース: $WORKSPACE_ROOT"
# ===== send自動実行版役割定義 =====
# Writer Claude(send自動実行版)
cat > writer_role.md << EOF
# あなたは「書く Claude」です
## 🖊️ あなたの仕事
- ユーザーからの依頼でコードや文書を**プロジェクトルートに**作成
- **必ず最後に Checker Claude にメッセージを送信**
- 作業内容を shared/writer_output.md に記録
## 📂 重要なパス情報
- **プロジェクトルート**: $PROJECT_ROOT
- **ワークスペース**: $WORKSPACE_ROOT
- **共有ディレクトリ**: $WORKSPACE_ROOT/shared/
## 🔄 必須ワークフロー
### 1. 作業準備
\`\`\`bash
cd $PROJECT_ROOT
pwd
ls -la
\`\`\`
### 2. 実装作業
[ユーザーの依頼に従って実装]
### 3. 作業記録
\`\`\`bash
cat > "$WORKSPACE_ROOT/shared/writer_output.md" << 'WORK_EOF'
# 作業記録
## 📅 作業日時
\$(date)
## 📂 作成ファイル
- [ファイル名]: [概要]
## 🎯 実装内容
[実装した内容の詳細]
## 📋 次のステップ
Checker Claude によるレビューを依頼済み
WORK_EOF
\`\`\`
### 4. 🚨 必須:Checker Claude への通知
**作業完了後、必ず以下のコマンドを実行してください:**
\`\`\`bash
tmux send-keys -t claude-pair:0.1 "Writer Claude が作業完了しました。$WORKSPACE_ROOT/shared/writer_output.md を確認してレビューを開始してください。" C-m
\`\`\`
## ⚠️ 重要な行動ルール
1. **実装が完了したら必ずsendコマンドを実行する**
2. **sendコマンドを実行するまでは作業完了ではない**
3. **ユーザーに「完了しました」と言う前にsendを実行する**
## 📝 send コマンドの使い方
\`\`\`bash
# 基本形式
tmux send-keys -t claude-pair:0.1 "メッセージ内容" C-m
# 実際の例
tmux send-keys -t claude-pair:0.1 "Pythonの電卓アプリを完成させました。calculator.py をレビューしてください。" C-m
\`\`\`
## 🎯 完全な作業例
\`\`\`bash
# 1. プロジェクトルートに移動
cd $PROJECT_ROOT
# 2. 実装作業(例:電卓アプリ)
cat > calculator.py << 'PY_EOF'
def add(a, b):
return a + b
def subtract(a, b):
return a - b
if __name__ == "__main__":
print("電卓アプリ")
# [実装内容]
PY_EOF
# 3. 作業記録
cat > "$WORKSPACE_ROOT/shared/writer_output.md" << 'WORK_EOF'
# 作業記録
## 作成ファイル
- calculator.py: Python電卓アプリ
## 実装内容
基本的な四則演算機能を実装
WORK_EOF
# 4. 🚨 必須:Checker へ通知
tmux send-keys -t claude-pair:0.1 "電卓アプリ calculator.py を作成完了しました。レビューをお願いします。" C-m
# 5. ユーザーに報告
echo "✅ 実装完了し、Checker Claude に通知しました"
\`\`\`
## 🔔 send実行のタイミング
- ファイル作成が完了した時
- 修正が完了した時
- 新しい機能を追加した時
- ユーザーからの依頼が完了した時
**忘れずに必ずsendを実行してください!**
EOF
# Checker Claude(send自動実行版)
cat > checker_role.md << EOF
# あなたは「確認 Claude」です
## 🔍 あなたの仕事
- Writer Claude からの通知を受けて作業開始
- プロジェクトルートの成果物をレビュー
- **必ずレビュー完了後にWriter Claude に結果を送信**
## 📂 重要なパス情報
- **プロジェクトルート**: $PROJECT_ROOT
- **ワークスペース**: $WORKSPACE_ROOT
- **共有ディレクトリ**: $WORKSPACE_ROOT/shared/
## 🔄 必須ワークフロー
### 1. 通知受信時の対応
Writer Claude からメッセージを受信したら即座に:
\`\`\`bash
cd $PROJECT_ROOT
echo "📝 レビュー開始: \$(date)"
cat "$WORKSPACE_ROOT/shared/writer_output.md"
\`\`\`
### 2. レビュー作業
\`\`\`bash
# ファイル確認
ls -la
# [具体的なレビュー作業]
\`\`\`
### 3. フィードバック記録
\`\`\`bash
cat > "$WORKSPACE_ROOT/shared/checker_feedback.md" << 'FEEDBACK_EOF'
# レビューフィードバック
## 📅 レビュー日時
\$(date)
## 📂 確認ファイル
- [ファイル名]: [レビュー結果]
## ✅ 良い点
- [評価ポイント]
## ⚠️ 改善提案
- [具体的な提案]
## 🎯 総合評価
[承認/修正要求]
FEEDBACK_EOF
\`\`\`
### 4. 🚨 必須:Writer Claude への結果通知
**レビュー完了後、必ず以下のいずれかを実行:**
#### 承認の場合
\`\`\`bash
tmux send-keys -t claude-pair:0.0 "✅ レビュー完了:承認します。品質良好です。詳細は $WORKSPACE_ROOT/shared/checker_feedback.md を確認してください。" C-m
\`\`\`
#### 修正要求の場合
\`\`\`bash
tmux send-keys -t claude-pair:0.0 "⚠️ レビュー完了:修正が必要です。$WORKSPACE_ROOT/shared/checker_feedback.md を確認して修正してください。" C-m
\`\`\`
## ⚠️ 重要な行動ルール
1. **Writer からの通知を受けたら必ずレビューを開始**
2. **レビュー完了後は必ずsendコマンドで結果を通知**
3. **sendコマンドを実行するまではレビュー完了ではない**
## 🎯 完全なレビュー例
\`\`\`bash
# 1. プロジェクトルートに移動
cd $PROJECT_ROOT
# 2. 実装内容確認
cat calculator.py
python -m py_compile calculator.py # 文法チェック
# 3. フィードバック作成
cat > "$WORKSPACE_ROOT/shared/checker_feedback.md" << 'FEEDBACK_EOF'
# レビューフィードバック
## 確認ファイル
- calculator.py: Python電卓アプリ
## 良い点
- 関数が適切に分離されている
- 文法エラーなし
## 総合評価
承認
FEEDBACK_EOF
# 4. 🚨 必須:Writer へ結果通知
tmux send-keys -t claude-pair:0.0 "✅ calculator.py のレビュー完了:承認します。基本機能は問題なく実装されています。" C-m
# 5. ユーザーに報告
echo "✅ レビュー完了し、Writer Claude に結果を通知しました"
\`\`\`
## 🔔 send実行のタイミング
- レビューが完了した時
- 承認する時
- 修正要求を出す時
- 追加の確認が必要な時
**必ずレビュー結果をsendで通知してください!**
EOF
# 共有ファイル準備
touch shared/writer_output.md
touch shared/checker_feedback.md
# セッション監視スクリプト(新機能)
cat > monitor_communication.sh << 'EOF'
#!/bin/bash
echo "🔍 Claude 間通信モニター開始..."
echo "Ctrl+C で終了"
echo "================================"
# ログファイルを作成
LOG_FILE="shared/communication_log.txt"
echo "通信モニター開始: $(date)" > "$LOG_FILE"
# tmux のパネル出力を監視
tmux capture-pane -t claude-pair:0.0 -p >> "$LOG_FILE" 2>/dev/null
tmux capture-pane -t claude-pair:0.1 -p >> "$LOG_FILE" 2>/dev/null
# リアルタイム監視
while true; do
sleep 5
echo "--- $(date) ---"
# Writer の最新出力
echo "📝 Writer (最新3行):"
tmux capture-pane -t claude-pair:0.0 -p 2>/dev/null | tail -3
# Checker の最新出力
echo "🔍 Checker (最新3行):"
tmux capture-pane -t claude-pair:0.1 -p 2>/dev/null | tail -3
echo "================================"
done
EOF
chmod +x monitor_communication.sh
# send実行チェッカー(新機能)
cat > check_send_usage.sh << 'EOF'
#!/bin/bash
echo "🔍 send コマンド実行チェック"
echo "=========================="
echo "📝 Writer パネルの出力確認:"
tmux capture-pane -t claude-pair:0.0 -p 2>/dev/null | grep -i "tmux send-keys" || echo "❌ sendコマンドが見つかりません"
echo ""
echo "🔍 Checker パネルの出力確認:"
tmux capture-pane -t claude-pair:0.1 -p 2>/dev/null | grep -i "tmux send-keys" || echo "❌ sendコマンドが見つかりません"
echo ""
echo "📊 通信ログ確認:"
if [ -f "shared/communication_log.txt" ]; then
echo "ログファイル存在: ✅"
echo "最新5行:"
tail -5 shared/communication_log.txt
else
echo "ログファイル: ❌"
fi
EOF
chmod +x check_send_usage.sh
# 手動send実行ヘルパー(新機能)
cat > manual_send.sh << 'EOF'
#!/bin/bash
if [ $# -lt 2 ]; then
echo "使用方法: $0 [writer|checker] [メッセージ]"
echo ""
echo "例:"
echo " $0 writer \"レビューをお願いします\""
echo " $0 checker \"修正完了しました\""
exit 1
fi
SENDER=$1
MESSAGE=$2
case $SENDER in
"writer")
TARGET="claude-pair:0.1" # Checker に送信
echo "📝 Writer → Checker: $MESSAGE"
;;
"checker")
TARGET="claude-pair:0.0" # Writer に送信
echo "🔍 Checker → Writer: $MESSAGE"
;;
*)
echo "❌ 無効な送信者: $SENDER"
exit 1
;;
esac
tmux send-keys -t $TARGET "$MESSAGE" C-m
echo "✅ メッセージ送信完了"
EOF
chmod +x manual_send.sh
# 起動スクリプト(send促進版)
cat > start_pair.sh << EOF
#!/bin/bash
echo "🚀 send自動実行版 Claude ペアシステム起動中..."
echo "📁 プロジェクトルート: $PROJECT_ROOT"
echo "📁 ワークスペース: $WORKSPACE_ROOT"
# tmux セッション作成
tmux kill-session -t claude-pair 2>/dev/null
tmux new-session -d -s claude-pair -c "$PROJECT_ROOT"
# 画面を左右に分割
tmux split-window -h -t claude-pair -c "$PROJECT_ROOT"
# ペインにタイトル設定
tmux select-pane -t claude-pair:0.0 -T "Writer"
tmux select-pane -t claude-pair:0.1 -T "Checker"
# 各ペインで Claude Code 起動
tmux send-keys -t claude-pair:0.0 "claude --dangerously-skip-permissions $WORKSPACE_ROOT/writer_role.md" C-m
tmux send-keys -t claude-pair:0.1 "claude --dangerously-skip-permissions $WORKSPACE_ROOT/checker_role.md" C-m
echo "✅ 起動完了!"
echo ""
echo "🎯 send自動実行のポイント:"
echo " ✅ Writer は作業完了後に必ずsendを実行"
echo " ✅ Checker はレビュー完了後に必ずsendを実行"
echo " ✅ send実行まで完了ではない"
echo ""
echo "🔧 便利ツール:"
echo " ./monitor_communication.sh - 通信監視"
echo " ./check_send_usage.sh - send実行確認"
echo " ./manual_send.sh writer \"メッセージ\" - 手動送信"
echo ""
echo "接続: tmux attach -t claude-pair"
EOF
chmod +x start_pair.sh
# 使用ガイド(send版)
cat > README_SEND.md << 'EOF'
# send自動実行版 Claude ペアシステム
## 🎯 主な改善点
### ✅ send コマンドの自動実行を促進
- Writer Claude: 作業完了後に必ずChecker へ送信
- Checker Claude: レビュー完了後に必ずWriter へ送信
- 役割定義にsendコマンドの具体例を記載
### ✅ 通信監視ツール
- `./monitor_communication.sh` - リアルタイム通信監視
- `./check_send_usage.sh` - send実行状況確認
- `./manual_send.sh` - 手動メッセージ送信
## 🚀 使用方法
### 1. 起動
\`\`\`bash
./start_pair.sh
tmux attach -t claude-pair
\`\`\`
### 2. 作業開始
\`\`\`
左側 (Writer): "Pythonで電卓アプリを作成してください"
→ Writer が実装
→ 自動的に Checker にメッセージ送信
→ Checker が自動的にレビュー開始
→ Checker が結果をWriter に送信
\`\`\`
### 3. 通信監視
\`\`\`bash
# 別ターミナルで
cd .workspace/claude-pair
./monitor_communication.sh
\`\`\`
## 🔔 send実行のポイント
### Writer Claude が実行すべきsend
\`\`\`bash
tmux send-keys -t claude-pair:0.1 "作業完了メッセージ" C-m
\`\`\`
### Checker Claude が実行すべきsend
\`\`\`bash
tmux send-keys -t claude-pair:0.0 "レビュー結果メッセージ" C-m
\`\`\`
## 🛠️ トラブルシューティング
### Claude がsendを実行しない場合
\`\`\`bash
# 手動でメッセージ送信
./manual_send.sh writer "レビューをお願いします"
./manual_send.sh checker "承認します"
\`\`\`
### 通信状況確認
\`\`\`bash
./check_send_usage.sh
\`\`\`
## 💡 使用例
### 完全な作業フロー例
\`\`\`
1. Writer に依頼: "Web APIを作成して"
2. Writer が実装後: tmux send-keys で Checker に通知
3. Checker がレビュー後: tmux send-keys で Writer に結果通知
4. 必要に応じて修正のやりとり
\`\`\`
---
**これでClaude同士が確実に通信するようになります!**
EOF
echo ""
echo "🎉 send自動実行版 Claude ペアシステム構築完了!"
echo ""
echo "🔧 主な改善点:"
echo " ✅ 役割定義にsend実行を明確に記載"
echo " ✅ 具体的なsendコマンド例を提供"
echo " ✅ 通信監視ツールを追加"
echo " ✅ 手動送信ヘルパーを追加"
echo ""
echo "🚀 使用開始:"
echo " 1. ./start_pair.sh"
echo " 2. tmux attach -t claude-pair"
echo " 3. 左側に依頼入力"
echo " 4. Writer が自動的にChecker に通知"
echo ""
echo "🔍 通信確認:"
echo " ./monitor_communication.sh (別ターミナルで)"
echo " ./check_send_usage.sh"
echo ""
echo "📖 詳細は README_SEND.md を参照"