ponshu-room-lite/docs/architecture/AI_COLLABORATION_PROTOCOL.md

572 lines
14 KiB
Markdown
Raw Normal View History

# 🤝 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 WebhookBeta機能を使用
// または、定期的にポーリング1分ごと
// 4. Antigravityがコメントを追加
await notion.comments.create({
parent: { page_id: 'architecture-page-id' },
rich_text: [{
text: { content: 'このアーキテクチャは良いが、メモリ配分を再検討すべき。' }
}]
});
```
---
### **アプローチ3: MCPModel 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 FunctionsNode.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完了までに基礎実装完了