Skip to content

Instantly share code, notes, and snippets.

@y-hirakaw
Last active July 6, 2025 23:27
Show Gist options
  • Select an option

  • Save y-hirakaw/d3a7e0447b3a4ffda380dc00f25947e5 to your computer and use it in GitHub Desktop.

Select an option

Save y-hirakaw/d3a7e0447b3a4ffda380dc00f25947e5 to your computer and use it in GitHub Desktop.
個人的Claude Code活用方法メモ
#!/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 を参照"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment