Add complete ai.card Rust implementation
- Implement complete Rust API server with axum framework - Add database abstraction supporting PostgreSQL and SQLite - Implement comprehensive gacha system with probability calculations - Add JWT authentication with atproto DID integration - Create card master data system with rarities (Normal, Rare, SuperRare, Kira, Unique) - Implement draw history tracking and collection management - Add API endpoints for authentication, card drawing, and collection viewing - Include database migrations for both PostgreSQL and SQLite - Maintain full compatibility with Python API implementation - Add comprehensive documentation and development guide 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
253
claude.md
253
claude.md
@ -1,168 +1,143 @@
|
||||
# ai.card 開発ガイド (Claude Code用)
|
||||
# ai.card プロジェクト固有情報
|
||||
|
||||
## プロジェクト概要
|
||||
**ai.card** - atproto基盤のカードゲームシステム。iOS/Web/APIで構成され、ユーザーデータ主権を実現。
|
||||
- **名前**: ai.card
|
||||
- **パッケージ**: aicard
|
||||
- **タイプ**: atproto基盤カードゲーム
|
||||
- **役割**: ユーザーデータ主権カードゲームシステム
|
||||
|
||||
## 現在の状態 (2025/01/06)
|
||||
- ✅ MCP Server実装完了
|
||||
- ✅ SQLiteデータベース稼働中
|
||||
- ✅ 基本的なガチャ・カード管理機能
|
||||
- 🔧 atproto連携は一時無効化
|
||||
- 📱 iOS/Web実装待ち
|
||||
## 実装状況
|
||||
|
||||
## 開発環境セットアップ
|
||||
### 現在の状況
|
||||
- **ai.bot統合**: ai.botの機能として実装済み
|
||||
- **カード取得**: atproto accountでmentionすると1日1回カード取得可能
|
||||
- **データ管理**: ai.api (MCP server) でユーザー管理
|
||||
|
||||
### 必要なもの
|
||||
- Python 3.13
|
||||
- Node.js (Web開発用)
|
||||
- Docker (PostgreSQL用、オプション)
|
||||
- Xcode (iOS開発用)
|
||||
### 独立MCPサーバー(ai.gpt連携)
|
||||
- **場所**: `/Users/syui/ai/gpt/card/`
|
||||
- **サーバー**: FastAPI + fastapi_mcp (port 8000)
|
||||
- **統合**: ai.gptサーバーからHTTP連携
|
||||
|
||||
### 初回セットアップ
|
||||
```bash
|
||||
# 1. プロジェクトディレクトリ
|
||||
cd /Users/syui/ai/gpt/card
|
||||
## アーキテクチャ構成
|
||||
|
||||
# 2. 仮想環境構築
|
||||
./setup_venv.sh
|
||||
### 技術スタック
|
||||
- **Backend**: FastAPI + MCP
|
||||
- **Frontend**: React Web UI + SwiftUI iOS app
|
||||
- **Data**: atproto collection record(ユーザー所有)
|
||||
- **Auth**: OAuth 2.1 scope(実装待ち)
|
||||
|
||||
# 3. データベース初期化
|
||||
cd api
|
||||
~/.config/syui/ai/card/venv/bin/python init_db.py
|
||||
|
||||
# 4. サーバー起動
|
||||
cd ..
|
||||
./start_server.sh
|
||||
### データフロー
|
||||
```
|
||||
ユーザー → ai.bot mention → カード生成 → atproto collection → ユーザー所有
|
||||
↑ ↓
|
||||
← iOS app表示 ← ai.card API ←
|
||||
```
|
||||
|
||||
## 開発時の作業分担提案
|
||||
## 移行計画
|
||||
|
||||
### ai.gptプロジェクトで起動 (MCP/バックエンド作業)
|
||||
**適している作業:**
|
||||
- MCPサーバー機能の追加・修正
|
||||
- データベーススキーマ変更
|
||||
- API エンドポイント追加
|
||||
- バックエンドロジック実装
|
||||
### Phase 1: 独立化
|
||||
- **iOS移植**: Claude担当予定
|
||||
- **Web UI**: React実装
|
||||
- **API独立**: ai.botからの分離
|
||||
|
||||
**起動方法:**
|
||||
```bash
|
||||
cd /Users/syui/ai/gpt
|
||||
# Claude Codeをここで起動
|
||||
# ai.card/api/ を編集対象にする
|
||||
### Phase 2: データ主権実装
|
||||
- **atproto collection**: カードデータをユーザー所有に
|
||||
- **OAuth 2.1**: 不正防止機能実装
|
||||
- **画像ファイル**: Cloudflare Pages最適化
|
||||
|
||||
### Phase 3: ゲーム機能拡張
|
||||
- **ガチャシステム**: 確率・レアリティ管理
|
||||
- **トレード機能**: ユーザー間カード交換
|
||||
- **デッキ構築**: カードゲーム戦略要素
|
||||
|
||||
## yui system適用
|
||||
|
||||
### 唯一性担保
|
||||
- **カード効果**: アカウント固有の効果設定
|
||||
- **改ざん防止**: ハッシュ・署名による保証
|
||||
- **ゲームバランス**: 唯一性による公平性維持
|
||||
|
||||
### ai.verse連携
|
||||
- **ゲーム内アイテム**: ai.verseでのカード利用
|
||||
- **固有スキル**: カードとキャラクターの連動
|
||||
- **現実反映**: カード取得がゲーム内能力に影響
|
||||
|
||||
## ディレクトリ構成
|
||||
|
||||
```
|
||||
/Users/syui/ai/gpt/card/
|
||||
├── api/ # FastAPI + MCP server
|
||||
├── web/ # React Web UI
|
||||
├── ios/ # SwiftUI iOS app
|
||||
└── docs/ # 開発ドキュメント
|
||||
```
|
||||
|
||||
### ai.cardプロジェクトで起動 (フロントエンド作業)
|
||||
**適している作業:**
|
||||
- iOS アプリ開発 (Swift/SwiftUI)
|
||||
- Web フロントエンド開発 (React/TypeScript)
|
||||
- UI/UX デザイン実装
|
||||
- クライアント側ロジック
|
||||
## MCPツール(ai.gpt連携)
|
||||
|
||||
**起動方法:**
|
||||
```bash
|
||||
cd /Users/syui/ai/gpt/card
|
||||
# Claude Codeをここで起動
|
||||
# ios/ または web/ を編集対象にする
|
||||
```
|
||||
### カード管理
|
||||
- **card_get_user_cards**: ユーザーカード取得
|
||||
- **card_draw_card**: ガチャ実行
|
||||
- **card_analyze_collection**: コレクション分析
|
||||
- **card_check_daily_limit**: 日次制限確認
|
||||
- **card_get_card_stats**: カード統計情報
|
||||
- **card_manage_deck**: デッキ管理
|
||||
|
||||
## ディレクトリ構造
|
||||
```
|
||||
ai.card/
|
||||
├── api/ # バックエンド (Python/FastAPI)
|
||||
│ ├── app/
|
||||
│ │ ├── main.py # エントリポイント
|
||||
│ │ ├── mcp_server.py # MCPサーバー実装
|
||||
│ │ ├── models/ # データモデル
|
||||
│ │ ├── routes/ # APIルート
|
||||
│ │ └── services/ # ビジネスロジック
|
||||
│ └── requirements.txt
|
||||
├── ios/ # iOSアプリ (Swift)
|
||||
│ └── AiCard/
|
||||
├── web/ # Webフロントエンド (React)
|
||||
│ └── src/
|
||||
├── docs/ # ドキュメント
|
||||
├── setup_venv.sh # 環境構築スクリプト
|
||||
└── start_server.sh # サーバー起動スクリプト
|
||||
```
|
||||
## 開発状況
|
||||
|
||||
## 主要な技術スタック
|
||||
### 完成済み機能
|
||||
- ✅ **基本カード生成**: ai.bot統合での1日1回取得
|
||||
- ✅ **atproto連携**: mention機能
|
||||
- ✅ **MCP統合**: ai.gptからの操作
|
||||
|
||||
### バックエンド
|
||||
- **言語**: Python 3.13
|
||||
- **フレームワーク**: FastAPI + fastapi-mcp
|
||||
- **データベース**: SQLite (開発) / PostgreSQL (本番予定)
|
||||
- **ORM**: SQLAlchemy 2.0
|
||||
### 開発中機能
|
||||
- 🔧 **iOS app**: SwiftUI実装
|
||||
- 🔧 **Web UI**: React実装
|
||||
- 🔧 **独立API**: FastAPI server
|
||||
|
||||
### フロントエンド
|
||||
- **iOS**: Swift 5.9 + SwiftUI
|
||||
- **Web**: React + TypeScript + Vite
|
||||
- **スタイリング**: CSS Modules
|
||||
### 将来機能
|
||||
- 📋 **OAuth 2.1**: 不正防止強化
|
||||
- 📋 **画像最適化**: Cloudflare Pages
|
||||
- 📋 **ゲーム拡張**: トレード・デッキ戦略
|
||||
|
||||
## 現在の課題と制約
|
||||
## ai.botからの移行詳細
|
||||
|
||||
### 依存関係の問題
|
||||
1. **atproto**: `SessionString` APIが変更されたため一部機能無効化
|
||||
2. **supabase**: httpxバージョン競合で無効化
|
||||
3. **PostgreSQL**: ネイティブ拡張のコンパイル問題でSQLite使用中
|
||||
### 現在のai.bot実装
|
||||
- **Rust製**: seahorse CLI framework
|
||||
- **atproto連携**: mention機能でカード配布
|
||||
- **日次制限**: 1アカウント1日1回取得
|
||||
- **自動生成**: AI絵画(Leonardo.AI + Stable Diffusion)
|
||||
|
||||
### 回避策
|
||||
- atproto機能はモック実装で代替
|
||||
- データベースはSQLiteで開発継続
|
||||
- 本番環境ではDockerでPostgreSQL使用予定
|
||||
### 独立化の理由
|
||||
- **iOS展開**: モバイルアプリでの独立した体験
|
||||
- **ゲーム拡張**: デッキ構築・バトル機能の追加
|
||||
- **データ主権**: ユーザーによる完全なデータ所有
|
||||
- **スケーラビリティ**: サーバー負荷分散
|
||||
|
||||
## API仕様
|
||||
## 技術的課題と解決策
|
||||
|
||||
### MCP Tools (9個)
|
||||
1. **get_user_cards(did: str)** - ユーザーのカード一覧取得
|
||||
2. **draw_card(did: str, is_paid: bool)** - ガチャでカード取得
|
||||
3. **get_card_details(card_id: int)** - カード詳細情報
|
||||
4. **analyze_card_collection(did: str)** - コレクション分析
|
||||
5. **get_unique_registry()** - ユニークカード登録状況
|
||||
6. **sync_cards_atproto(did: str)** - atproto同期(無効化中)
|
||||
7. **get_gacha_stats()** - ガチャ統計情報
|
||||
### データ改ざん防止
|
||||
- **短期**: MCP serverによる検証
|
||||
- **中期**: OAuth 2.1 scope実装待ち
|
||||
- **長期**: ブロックチェーン的整合性チェック
|
||||
|
||||
### REST API
|
||||
- `/api/v1/cards/*` - カード管理
|
||||
- `/api/v1/auth/*` - 認証(モック実装)
|
||||
- `/api/v1/sync/*` - 同期機能
|
||||
### スケーラビリティ
|
||||
- **画像配信**: Cloudflare Pages活用
|
||||
- **API負荷**: FastAPIによる高速処理
|
||||
- **データ保存**: atproto分散ストレージ
|
||||
|
||||
## 今後の開発予定
|
||||
### ユーザー体験
|
||||
- **直感的UI**: iOS/Webでの統一UX
|
||||
- **リアルタイム更新**: WebSocketでの即座反映
|
||||
- **オフライン対応**: ローカルキャッシュ機能
|
||||
|
||||
### Phase 1: 基盤強化
|
||||
- [ ] PostgreSQL移行(Docker利用)
|
||||
- [ ] atproto最新版対応
|
||||
- [ ] テストコード追加
|
||||
## ai.game連携構想
|
||||
|
||||
### Phase 2: クライアント実装
|
||||
- [ ] iOS アプリ基本機能
|
||||
- [ ] Web フロントエンド
|
||||
- [ ] リアルタイムガチャ演出
|
||||
### Play-to-Work統合
|
||||
- **カードゲームプレイ → 業務成果変換**: ai.gameデバイスでの労働ゲーム化
|
||||
- **デッキ構築戦略 → 企業戦略思考**: カード組み合わせが戦略思考を鍛練
|
||||
- **トレード交渉 → ビジネススキル**: 他プレイヤーとの交渉が実務能力向上
|
||||
|
||||
### Phase 3: 本格運用
|
||||
- [ ] Cloudflare デプロイ
|
||||
- [ ] ユーザーデータ主権実装
|
||||
- [ ] ai.verse連携
|
||||
|
||||
## 注意事項
|
||||
- サーバーは`--reload`モードで起動中(ファイル変更で自動再起動)
|
||||
- データベースは `~/.config/syui/ai/card/aicard.db`
|
||||
- 仮想環境は `~/.config/syui/ai/card/venv/`
|
||||
- エラーログはターミナルに出力される
|
||||
|
||||
## デバッグ用コマンド
|
||||
```bash
|
||||
# データベース確認
|
||||
sqlite3 ~/.config/syui/ai/card/aicard.db ".tables"
|
||||
|
||||
# API動作確認
|
||||
curl http://localhost:8000/health
|
||||
curl "http://localhost:8000/get_gacha_stats"
|
||||
|
||||
# ログ確認
|
||||
tail -f /var/log/aicard.log # 未実装
|
||||
```
|
||||
|
||||
## 参考リンク
|
||||
- [AI エコシステム統合設計書](/Users/syui/ai/gpt/CLAUDE.md)
|
||||
- [MCP統合作業報告](./docs/MCP_INTEGRATION_SUMMARY.md)
|
||||
- [API仕様書](http://localhost:8000/docs) ※サーバー起動時のみ
|
||||
### メタバース展開
|
||||
- **ai.verse統合**: 3D世界でのカードバトル
|
||||
- **アバター連動**: 所有カードがキャラクター能力に影響
|
||||
- **配信コンテンツ**: カードゲームが配信可能なエンターテイメント
|
Reference in New Issue
Block a user