# 🤝 AI同士の直接連携プロトコル（伝書鳩脱却計画）

**作成日**: 2026-01-19
**目標**: 開発者が仲介しなくても、Claude ↔ Gemini ↔ Antigravity が直接情報を共有・更新できる仕組み
**実現期限**: Phase 2.0-B 完了後（4週間以内）

---

## 🎯 現状の問題点

### **現在のフロー（非効率）**

```
Claude（アーキテクチャ決定）
    ↓ 開発者がコピペ
Gemini（図表生成依頼）
    ↓ 開発者が画像をダウンロード
Antigravity（レビュー依頼）
    ↓ 開発者がフィードバックを転記
Claude（修正）
    ↓ 開発者がまたコピペ...

開発者 = 伝書鳩 😩
```

### **問題点**

1. **時間のロス**: コピペに5-10分/回 × 10回/日 = 50-100分/日
2. **情報の劣化**: 要約や誤転記のリスク
3. **開発者の疲弊**: 本来の開発に集中できない
4. **リアルタイム性の欠如**: AIの議論が非同期になる

---

## 🚀 目指すべき理想の姿

### **理想のフロー（自動化）**

```
Claude（アーキテクチャ決定）
    ↓ 自動で docs/ に書き込み
    ↓ Webhook発火
Gemini（変更を検知、図表を自動生成）
    ↓ 生成した画像を docs/images/ に保存
    ↓ Slack通知
Antigravity（通知を受け取り、レビュー）
    ↓ コメントを docs/reviews/ に書き込み
    ↓ Webhook発火
Claude（フィードバックを自動読み込み、修正）

開発者 = 最終承認のみ ✅
```

---

## 🛠️ 実装方法（3つのアプローチ）

### **アプローチ1: Git + Webhook（短期実装・推奨）**

**仕組み**:
1. すべてのAIが同じGitリポジトリにアクセス
2. ファイル変更をコミット → Webhook発火
3. 各AIが通知を受け取り、自動処理

**メリット**:
- ✅ 実装が簡単（既存のGitea活用）
- ✅ バージョン管理が自動
- ✅ 差分が明確

**デメリット**:
- ⚠️ AIが直接Gitにコミットする仕組みが必要

**実装ステップ**:

```bash
# 1. Gitea にAI専用ユーザー作成
# Giteaで: Settings → Users → Create New User
# Username: claude-bot, gemini-bot, antigravity-bot

# 2. 各AIにアクセストークン発行
# Giteaで: User Settings → Applications → Generate New Token

# 3. Claudeがドキュメント更新時に自動コミット
# Claude側（MCP経由で実装）:
git config user.name "Claude Bot"
git config user.email "claude@posimai.local"
git add docs/architecture/
git commit -m "feat(arch): Update architecture decision"
git push origin main

# 4. Webhook設定（Giteaで）
# URL: https://gemini-webhook.example.com/on-commit
# Trigger: Push events
# Target: docs/architecture/**

# 5. Geminiが受け取る
# Gemini側:
# - Webhookを受信
# - 変更ファイルを読み取り
# - 図表生成が必要か判定
# - 必要なら画像生成 → docs/images/ にコミット
```

---

### **アプローチ2: Notion API（中期実装）**

**仕組み**:
1. Notionをマスターデータベースとして使用
2. 各AIがNotion APIで読み書き
3. リアルタイム同期

**メリット**:
- ✅ UI/UXが優れている（人間も見やすい）
- ✅ リアルタイム更新
- ✅ コメント・レビュー機能が標準

**デメリット**:
- ⚠️ Notion APIの習得が必要
- ⚠️ 外部サービス依存（データ主権の観点で懸念）

**実装ステップ**:

```javascript
// 1. Notion Integration作成
// https://www.notion.so/my-integrations

// 2. Claude側の実装例（MCP経由）
const { Client } = require('@notionhq/client');
const notion = new Client({ auth: process.env.NOTION_API_KEY });

// アーキテクチャページを更新
await notion.pages.update({
  page_id: 'architecture-page-id',
  properties: {
    'Status': { status: { name: 'Updated' } },
    'Last Updated': { date: { start: new Date().toISOString() } }
  }
});

// 3. Geminiが変更を検知
// Notion Webhook（Beta機能）を使用
// または、定期的にポーリング（1分ごと）

// 4. Antigravityがコメントを追加
await notion.comments.create({
  parent: { page_id: 'architecture-page-id' },
  rich_text: [{
    text: { content: 'このアーキテクチャは良いが、メモリ配分を再検討すべき。' }
  }]
});
```

---

### **アプローチ3: MCP（Model Context Protocol）（長期実装）**

**仕組み**:
1. Claude Code のMCPサーバーを拡張
2. ファイルシステム監視 + AIエージェント連携
3. 完全自動化

**メリット**:
- ✅ 最も自動化度が高い
- ✅ ローカル完結（データ主権維持）
- ✅ Claude Codeとの深い連携

**デメリット**:
- ⚠️ 実装が複雑
- ⚠️ MCPの理解が必要

**実装ステップ**:

```typescript
// MCP Server 実装例
// mcp-server-posimai/src/index.ts

import { McpServer } from '@anthropic/mcp-server';
import { watch } from 'fs';
import { exec } from 'child_process';

const server = new McpServer({
  name: 'posimai-collaboration',
  version: '1.0.0',
});

// docs/ フォルダを監視
watch('docs/architecture', { recursive: true }, async (event, filename) => {
  console.log(`File changed: ${filename}`);

  // 1. 変更内容を解析
  const content = await fs.readFile(`docs/architecture/${filename}`, 'utf-8');

  // 2. Geminiに通知（HTTP POST）
  if (filename.includes('.md')) {
    await fetch('https://gemini-webhook.example.com/notify', {
      method: 'POST',
      body: JSON.stringify({
        type: 'document_updated',
        file: filename,
        content: content,
      }),
    });
  }

  // 3. Antigravityにメール通知
  exec(`echo "ドキュメント更新: ${filename}" | mail -s "Posimai Update" antigravity@example.com`);
});

server.listen(3001);
```

---

## 📅 実装ロードマップ

### **Phase 1: 手動からセミ自動へ（Week 1-2）**

```
現在: 開発者がすべて転記
    ↓
Week 1: 共有Gitリポジトリ作成
Week 2: Webhook設定
    ↓
結果: AIがファイルを監視できる
```

**実装タスク**:
- [ ] Giteaにドキュメント専用リポジトリ作成
- [ ] Claude用アクセストークン発行
- [ ] Webhook URL設定（テスト用）

---

### **Phase 2: Geminiの自動図表生成（Week 3-4）**

```
現在: 開発者がGeminiにプロンプトをコピペ
    ↓
Week 3: Gemini Webhookエンドポイント作成
Week 4: 自動図表生成スクリプト実装
    ↓
結果: .md更新 → 自動で画像生成
```

**実装タスク**:
- [ ] Gemini API統合（Cloud Functions or VM上）
- [ ] 画像生成トリガー実装
- [ ] docs/images/ への自動保存

---

### **Phase 3: Antigravityの自動レビュー（Month 2）**

```
現在: 開発者がAntigravityに状況説明
    ↓
Month 2: Slack Bot作成
    ↓
結果: ドキュメント更新 → Slackに通知 → レビュー
```

**実装タスク**:
- [ ] Slack Workspace作成
- [ ] Incoming Webhook設定
- [ ] Gitea Webhook → Slack連携

---

### **Phase 4: 完全自動化（Month 3-6）**

```
現在: 開発者が最終承認
    ↓
Month 3-6: MCP実装、AIエージェント化
    ↓
結果: AIが自律的に議論・決定（開発者は拒否権のみ）
```

---

## 🔧 具体的な実装例

### **例1: Claudeが決定 → Geminiが図表生成**

```bash
# Claude側（docs/ に書き込み）
cat > docs/architecture/NEW_DECISION.md <<'EOF'
# 新しいアーキテクチャ決定

## 概要
PostgreSQLをVM内に移動することを検討。

## 理由
...
EOF

git add docs/architecture/NEW_DECISION.md
git commit -m "feat: Consider moving PostgreSQL to VM"
git push

# → Gitea Webhook発火

# Gemini側（Webhookを受信）
# Cloud Functions（Node.js）で実装
export default async function handler(req, res) {
  const { file, content } = req.body;

  // 図表生成が必要か判定
  if (content.includes('アーキテクチャ') || content.includes('構成')) {
    // Gemini APIで図表生成
    const imageUrl = await generateDiagram(content);

    // Gitにコミット（画像）
    await commitToGit('docs/images/new_diagram.png', imageUrl);

    // Slack通知
    await notifySlack('新しい図表を生成しました');
  }

  res.status(200).send('OK');
}
```

---

### **例2: Antigravityのレビュー → Claudeが修正**

```bash
# Antigravity側（Slackでコメント）
# Slack Botが docs/reviews/ に保存

# Slackメッセージ:
# "@claude-bot このアーキテクチャはメモリ不足のリスクがある。
#  VMを6GBに増やすべき。"

# → Slack Bot が自動処理
cat > docs/reviews/2026-01-19_antigravity.md <<'EOF'
# レビュー by Antigravity

**日付**: 2026-01-19
**対象**: NEW_DECISION.md

## コメント
このアーキテクチャはメモリ不足のリスクがある。
VMを6GBに増やすべき。
EOF

git add docs/reviews/
git commit -m "review: Antigravity feedback on NEW_DECISION"
git push

# → Webhook発火

# Claude側（MCP経由で自動読み込み）
# docs/reviews/ を監視
# 新しいレビューがあれば、元のドキュメントを修正
```

---

## 📊 効果測定

### **Before（現状）**

| 指標 | 値 |
|------|-----|
| AI間の情報共有時間 | 5-10分/回 |
| 1日のコピペ回数 | 10-20回 |
| 開発者の時間消費 | 50-100分/日 |
| 情報の鮮度 | 数時間遅延 |

### **After（理想）**

| 指標 | 目標値 |
|------|--------|
| AI間の情報共有時間 | **<1分/回** |
| 1日のコピペ回数 | **0回** |
| 開発者の時間消費 | **<10分/日** |
| 情報の鮮度 | **リアルタイム** |

**ROI計算**:
```
節約時間: 50-100分/日 → 40-90分/日節約
月間: 800-1800分（13-30時間）
年間: 9600-21600分（160-360時間）

= 年間で約200-360時間を開発に回せる
```

---

## 🛡️ セキュリティ・プライバシー考慮

### **データアクセス制御**

```yaml
# docs/architecture/.access_control.yml

files:
  - pattern: "CRITICAL_*.md"
    read: [claude, antigravity]
    write: [claude]

  - pattern: "AI_HANDOFF_*.md"
    read: [claude, gemini, antigravity]
    write: [claude]

  - pattern: "reviews/*.md"
    read: [claude, gemini, antigravity]
    write: [antigravity]

  - pattern: "images/*.png"
    read: [all]
    write: [gemini]
```

### **機密情報の除外**

```bash
# .gitignore に追加
docs/architecture/SECRETS.md
docs/architecture/*_PRIVATE.md
*.env
credentials.json
```

---

## 🎓 学習コスト

### **各AIが習得すべきスキル**

| AI | 必要スキル | 学習時間 | 優先度 |
|----|-----------|---------|--------|
| **Claude** | Git操作、MCP開発 | 2-4時間 | 🔴 高 |
| **Gemini** | Webhook受信、画像生成API | 1-2時間 | 🟡 中 |
| **Antigravity** | Slack操作、Markdown記法 | 30分-1時間 | 🟢 低 |

---

## 🚀 今すぐできる最小限の実装

### **ステップ1: 共有Notionページ作成（5分）**

```
1. Notionで新規ページ作成
   タイトル: "Posimai AI Collaboration Hub"

2. セクション作成:
   - 📋 Current Status
   - 🏗️ Architecture Decisions
   - 🎨 Generated Diagrams
   - 💬 Reviews & Feedback

3. 各AIに共有
   - Claudeに: ページURL + 編集権限
   - Geminiに: ページURL + コメント権限
   - Antigravityに: ページURL + 編集権限
```

---

### **ステップ2: Slack Workspace作成（10分）**

```
1. Slack Workspace作成
   Name: "Posimai Development"

2. チャンネル作成:
   #architecture - アーキテクチャ議論
   #deployments - デプロイ通知
   #reviews - レビュー依頼

3. Incoming Webhook設定
   https://api.slack.com/messaging/webhooks

4. Gitea Webhook と連携
   Gitea → Slack #deployments に通知
```

---

### **ステップ3: 開発者の役割を「承認者」に限定（即日）**

```
新しいフロー:

1. Claudeがアーキテクチャ決定
   → Notionに書き込み
   → Slackに通知

2. Geminiが図表生成
   → Notionに画像添付
   → Slackに通知

3. Antigravityがレビュー
   → Notionにコメント
   → Slackに通知

4. 開発者が最終承認
   → Slackで 👍 リアクション
   → または「修正が必要」とコメント

開発者の作業: コピペ不要、承認のみ
```

---

## 📝 チェックリスト

### **Week 1-2（基礎構築）**

- [ ] Notion Workspace作成
- [ ] Slack Workspace作成
- [ ] Gitea Webhook → Slack連携
- [ ] 各AIにアクセス権付与
- [ ] テスト運用開始

### **Week 3-4（自動化）**

- [ ] Gemini Webhook実装
- [ ] 自動図表生成テスト
- [ ] Claude MCP統合
- [ ] レビューフロー確立

### **Month 2-3（最適化）**

- [ ] Notion API統合
- [ ] リアルタイム同期実装
- [ ] エラーハンドリング強化
- [ ] パフォーマンス測定

---

## 🎁 ボーナス: 開発者向けダッシュボード

```html
<!-- docs/dashboard.html -->
<!DOCTYPE html>
<html>
<head>
  <title>Posimai AI Collaboration Dashboard</title>
</head>
<body>
  <h1>🤖 AI Activity Monitor</h1>

  <div class="stats">
    <div>Claude Commits: <span id="claude-commits">0</span></div>
    <div>Gemini Images: <span id="gemini-images">0</span></div>
    <div>Antigravity Reviews: <span id="antigravity-reviews">0</span></div>
  </div>

  <div class="timeline">
    <!-- リアルタイムでAIの活動を表示 -->
  </div>

  <script>
    // Gitea API経由でコミット履歴を取得
    // Slackの新着メッセージを取得
    // リアルタイム更新
  </script>
</body>
</html>
```

---

**最終更新**: 2026-01-19
**次回レビュー**: Week 2終了時
**目標**: Phase 2.0-B完了までに基礎実装完了
