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

555 lines
18 KiB
Markdown
Raw Normal View History

# 🤖 AI引き継ぎドキュメント - Posimai プロジェクト完全版
**作成日**: 2026-01-19
**対象AI**: ChatGPT, Gemini, Claude, Perplexity, その他すべてのAIアシスタント
**目的**: このプロジェクトを5分で完全に理解し、即座に開発支援を開始できるようにする
---
## 🎯 最初に知るべき3つのこと
1. **何を作っている?**
- 日本酒記録アプリ「Ponshu Room Lite」Flutter製
- 将来的にお香・ネイルサロンアプリへ展開Posimai Core基盤
2. **どこで動かす?**
- 自宅Synology NAS16GB RAM上のUbuntu VM
- **VPSは使わない**(コストゼロ戦略)
3. **誰が関わっている?**
- **開発者**(ユーザー): Flutter/AI活用、「ずぼら」哲学
- **Antigravity**: Synology専門家、インフラ担当
- **Claude**: アーキテクチャ設計・批判的思考担当
---
## 📊 プロジェクト現状2026-01-19時点
### ✅ 完了済み
```
Phase 1.0 ✅ MVP完成
├─ カメラOCR日本酒ラベル認識
├─ Gemini AI 解析(銘柄・蔵元・スペック抽出)
├─ Hive ローカルDBオフライン対応
└─ ダークモード・バッジシステム
Phase 1.5 ✅ UI/UX改善
├─ フォント切替(ポップ/明朝/ゴシック)
├─ ガラスモーフィズムUI
├─ 設定画面改善(ダイアログ化)
└─ OCR画像圧縮修正
Phase 2.0-A ✅ ビジネスモード
├─ セット商品作成
├─ お品書きPDF生成
├─ Instagram販促機能
└─ 売上分析(基礎)
アーキテクチャ決定 ✅
├─ Synology VM + Dokploy 採用
├─ Tailscale VPN 採用
├─ VPS案を却下
└─ メモリ配分確定DSM 12GB / VM 4GB
```
### 🚧 進行中
```
Phase 2.0-B (今ここ)
├─ Synology VM セットアップ
├─ Dokploy インストール
├─ Gitea Webhook 連携
└─ 自動デプロイパイプライン構築
```
### 📋 次のステップ
```
Phase 3.0 (将来)
├─ Posimai Core 共通基盤化
├─ お香アプリ開発
├─ Flutter Flavor 設定
└─ マルチテナント化
```
---
## 🏗️ アーキテクチャ(決定版)
### **物理構成**
```
┌─────────────────────────────────────────────────┐
│ 自宅 Synology NAS (16GB RAM) │
│ │
│ ┌───────────────────────────────────────────┐ │
│ │ DSM (Synology OS) - 12GB割当 │ │
│ │ ┌────────────┐ ┌────────────┐ │ │
│ │ │PostgreSQL │ │ Redis │ │ │
│ │ │ 2GB │ │ 512MB │ │ │
│ │ └────────────┘ └────────────┘ │ │
│ │ ┌────────────┐ ┌────────────┐ │ │
│ │ │ Immich │ │ Gitea │ │ │
│ │ │ 3GB │ │ 512MB │ │ │
│ │ └────────────┘ └────────────┘ │ │
│ │ ┌────────────┐ │ │
│ │ │ Ollama │ ← 夜間のみ起動 │ │
│ │ │ 4GB │ │ │
│ │ └────────────┘ │ │
│ └───────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────┐ │
│ │ VM: Ubuntu Server 22.04 - 4GB割当 │ │
│ │ ┌─────────────────────────────────────┐ │ │
│ │ │ Dokploy (512MB) │ │ │
│ │ │ ├─ Traefik (256MB) │ │ │
│ │ │ ├─ sake-app (1GB) │ │ │
│ │ │ └─ incense-app (1GB) ← 将来 │ │ │
│ │ └─────────────────────────────────────┘ │ │
│ └───────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
↑ Tailscale VPN
┌─────────────────────────────────────────────────┐
│ 開発PC (Cursor / Claude Code) │
└─────────────────────────────────────────────────┘
```
### **重要な設計判断**
| 判断 | 理由 | 批判的検証 |
|------|------|-----------|
| **VPS不使用** | ¥0コスト、<1msレイテンシ | 16GB環境では最適 |
| **VM 4GB / DSM 12GB** | データ層vs 制御層(軽) | ✅ 実測要だが理論的に妥当 |
| **Dokploy採用** | GitOps、Vercel的DX | ⚠️ 2024年登場、安定性要検証 |
| **Tailscale VPN** | ゼロトラスト、無料 | ✅ 個人開発に最適 |
| **Ollama夜間起動** | メモリ節約 | ✅ バッチ処理で問題なし |
---
## 💰 コスト構造
### **月額コスト**
```
Synology電気代: ¥800 (24時間稼働)
Gemini API: ¥300-800 (使用量次第)
Tailscale: ¥0 (個人利用無料)
ドメイン: ¥0 (*.ts.net利用)
────────────────────────────────────────
合計: ¥1,100-1,600
```
### **VPS案との比較**
| 項目 | VPS案 | Synology VM案 | 差分 |
|------|-------|--------------|------|
| 月額 | ¥1,782-2,480 | ¥1,100-1,600 | **-¥682** |
| 年額 | ¥21,384-29,760 | ¥13,200-19,200 | **-¥8,184** |
| レイテンシ | 1-5ms | <1ms | **5倍高速** |
**結論**: 年間約¥8,000削減 + パフォーマンス向上
---
## 🔄 開発フロー
### **通常のデプロイ**
```
1. Cursor でコード編集
2. git add . && git commit -m "feat: 新機能"
3. git push origin main
↓ (Gitea Webhook → Dokploy)
4. 自動ビルド & デプロイ30秒-2分
5. https://posimai-vm.ts.net で確認
開発者の作業: コミットするだけ
```
### **AI支援開発将来**
```
1. Claude Code (MCP) がコード生成
2. 自動テスト実行
3. パスしたら自動コミット
4. Dokploy自動デプロイ
5. Slack/Discord通知
開発者の作業: 最終承認のみ
```
---
## 🛠️ 技術スタック
### **Frontend**
```yaml
Framework: Flutter 3.x (iOS/Android/Web対応)
State Management: Riverpod 2.x
Local DB: Hive (NoSQL、オフライン対応)
UI: Material Design 3 + Glassmorphism
Font: Klee One (ポップ) / Noto Serif JP (明朝) / Noto Sans JP (ゴシック)
```
### **Backend将来**
```yaml
Runtime: Dart Frog (Dart製フレームワーク)
Database: PostgreSQL 15
Cache: Redis 7
ORM: Drift (Dart製)
```
### **AI/ML**
```yaml
Vision: Gemini 2.0 Flash (ラベル認識)
Local AI: Ollama + Llama 3.3 (バッチ処理)
Photo Search: Immich CLIP (セマンティック検索)
```
### **Infrastructure**
```yaml
Hosting: Synology NAS (DSM 7.x)
Virtualization: Synology VMM (Ubuntu 22.04 LTS)
CI/CD: Dokploy
Reverse Proxy: Traefik
Network: Tailscale VPN
Git: Gitea (self-hosted)
```
---
## 🚨 批判的に検討すべき点
### **潜在的リスク**
1. **メモリ不足の可能性**
- **現状**: VM 8GB割当 → DSM本体が窒息
- **対策**: 即座にVM 4GBへ削減Week 0タスク
- **検証**: 実測値で継続監視
2. **Dokploy の安定性**
- **リスク**: 2024年登場の新興ツール
- **対策**: Portainerへのフォールバック準備
- **検証**: 3ヶ月の試用期間
3. **Ollama 4GB消費**
- **リスク**: 夜間でもメモリ圧迫
- **対策**: 必要時のみ起動cron制御
- **代替**: Gemini APIのみで運用
### **改善提案**
1. **Immich → Photoprism へ変更検討**
- メモリ: 3GB → 1-2GB1/3削減
- 機能: 写真管理は維持
- AI検索: Ollamaと将来連携
2. **VM 4GB → 6GB への増設計画**
- タイミング: アプリ3つ同時稼働時
- 条件: DSM 12GB → 10GB へ削減
- 判断基準: 実測メモリ使用率 > 85%
3. **UPS無停電電源装置導入**
- コスト: ¥10,000-20,000一時的
- 効果: 停電時のデータ保護
- 優先度: 中(本番稼働後)
---
## 📁 プロジェクト構造
### **現在のディレクトリ**
```
ponshu_room_lite/
├─ lib/
│ ├─ models/ # Hiveデータモデル
│ ├─ providers/ # Riverpod状態管理
│ ├─ screens/ # 画面UI
│ ├─ widgets/ # 再利用コンポーネント
│ ├─ services/ # 外部API連携
│ ├─ theme/ # テーマ・スタイル
│ └─ main.dart
├─ docs/
│ └─ architecture/ # 👈 このドキュメント群
├─ .claude/
│ ├─ commands/ # カスタムスラッシュコマンド
│ └─ settings.local.json
└─ pubspec.yaml
```
### **将来の構造Posimai Core**
```
posimai_core/
├─ lib/
│ ├─ core/ # 共通機能
│ │ ├─ auth/
│ │ ├─ camera/
│ │ ├─ ai/
│ │ └─ gamification/
│ └─ apps/
│ ├─ sake/ # 日本酒アプリ
│ ├─ incense/ # お香アプリ
│ └─ nail_salon/ # ネイルサロンアプリ
```
---
## 🎓 重要な設計哲学
### **1. "ずぼら" 哲学**
開発者の性格:
- 手動作業は嫌い → **徹底的な自動化**
- 複雑な設定は避ける → **シンプルな構成**
- メンテナンスは最小限 → **信頼性の高いツール**
これを理解せずに「手動でXXしてください」と言うと嫌がられる。
### **2. データ主権**
原則:
- クラウドに依存しない
- 個人データは手元に保持
- 外部サービス障害の影響を最小化
例外:
- Gemini APIコスト効率のため
- Tailscaleネットワーク層のみ
### **3. 段階的実装**
```
Phase 1 → 1.5 → 2.0-A → 2.0-B → 3.0
```
一気にやらない。動くものを作ってから拡張。
### **4. 批判的思考の重要性**
開発者の要求:
> 「ただ同意するだけでなく、私の知的な議論の相手になってほしい」
AIアシスタントへの期待:
- ❌ 「いいですね!やりましょう!」
- ✅ 「その案にはXXのリスクがあります。代替案として...」
---
## 🔗 重要ドキュメント
| ドキュメント | 目的 | いつ読む? |
|-------------|------|-----------|
| [CRITICAL_FINAL_ARCHITECTURE.md](./CRITICAL_FINAL_ARCHITECTURE.md) | 最終アーキテクチャ詳細 | アーキテクチャ質問時 |
| [NANO_BANANA_PROMPT_FINAL.md](./NANO_BANANA_PROMPT_FINAL.md) | 図表生成プロンプト | 視覚化が必要な時 |
| [VPS_CRITICAL_COMPARISON.md](./VPS_CRITICAL_COMPARISON.md) | VPS比較分析 | インフラ再検討時 |
| [ARCHITECTURE_DECISION_RECORD.md](./ARCHITECTURE_DECISION_RECORD.md) | 初期ADR参考 | 歴史的経緯を知る時 |
---
## ⚡ クイックスタート新規AIアシスタント向け
### **ケース1: コード実装支援を求められた**
```
1. まず質問: 「どのPhaseの機能ですか
2. 既存コードを確認: lib/配下を検索
3. 既存パターンに従う: Riverpod + Hive の作法
4. テスト方法を提示: flutter run でホットリロード
```
### **ケース2: インフラ設定を求められた**
```
1. まず確認: 「VMは既にありますかメモリは4GBですか
2. Antigravityの文書を参照もしあれば
3. 批判的に検討: 「その設定は本当に必要?」
4. 段階的に提案: Week 1 → Week 2 → ...
```
### **ケース3: アーキテクチャ変更を提案したい**
```
1. 現状の問題点を明確化
2. 代替案のメリット/デメリット比較
3. コスト影響を試算
4. 段階的移行計画を提示
```
---
## 🤝 関係者プロファイル
### **開発者(ユーザー)**
- **役割**: フルスタック開発、プロダクトオーナー
- **スキル**: Flutter, Dart, AI活用Claude Code熟練
- **性格**: ずぼら、自動化志向、データ主権重視
- **コミュニケーション**: 技術的に正確、冗長を嫌う
- **期待**: 批判的思考、代替案提示、最新技術情報
### **Antigravity**
- **役割**: インフラ・Synology専門家
- **スキル**: Synology DSM, Docker, ネットワーク
- **貢献**: VMM活用提案、メモリ配分助言
- **スタンス**: 実用主義、コスト最適化
### **Claude**
- **役割**: アーキテクチャ設計、批判的分析
- **強み**: 論理的思考、文書化、技術比較
- **弱み**: 実機での検証不可、最新情報のラグ
- **スタンス**: 開発者の利益優先、安易な同意を避ける
---
## 📝 よくある質問FAQ
### **Q: なぜFlutter Webではなくネイティブアプリ**
A: オフライン対応(日本酒セラーは地下が多い)、カメラ性能、ネイティブ体験。
### **Q: なぜFirebase/Supabaseを使わない**
A: データ主権、月額コスト(スケール時)、ベンダーロックイン回避。
### **Q: Synology 16GBで本当に足りる**
A:
- **現状**: ギリギリだが可能(実測要)
- **将来**: アプリ3つ稼働時は増設検討32GB化
- **最悪**: Immich/Ollama削除で余裕確保
### **Q: Dokployが失敗したらどうする**
A:
1. Portainerへフォールバック
2. 手動docker-compose最終手段
3. VPS案の再検討ただしコスト増
### **Q: このプロジェクトの最終ゴールは?**
A:
- **短期**: 日本酒アプリの完成・リリース
- **中期**: Posimai Core基盤化、お香アプリ展開
- **長期**: AI駆動開発プラットフォームMCP活用
---
## 🚀 今すぐやるべきことWeek 0
### **🔥 緊急度: 高**
```bash
# 1. VM メモリ削減8GB → 4GB
# Synology VMM管理画面で実行
1. Ubuntu VM をシャットダウン
2. 設定 → メモリ → 4096MB に変更
3. 起動
# 2. メモリ使用量確認
free -h
# 期待値: available 12GB付近
# 3. Ollama夜間起動設定
crontab -e
# 追加: 0 3 * * * systemctl start ollama
# 追加: 0 6 * * * systemctl stop ollama
```
### **⏱️ Week 1-2 タスク**
```bash
# Dokployインストール
curl -sSL https://dokploy.com/install.sh | sh
# Tailscale設定
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up
tailscale funnel 3000
```
---
## ✅ このドキュメントを読んだAIアシスタントがすべきこと
1. **理解確認**
```
「Posimaiプロジェクトの概要を理解しました。
現在Phase 2.0-Bインフラ構築の段階で、
Synology VM + Dokploy構成を採用していますね。
どの部分からお手伝いしましょうか?」
```
2. **批判的姿勢の維持**
- 安易に同意しない
- リスク・代替案を提示
- 最新技術動向を反映
3. **既存資産の尊重**
- 既存コードスタイルに従う
- アーキテクチャ決定を尊重
- 大きな変更は段階的に提案
4. **継続的な文書化**
- 重要な決定はドキュメント化
- このファイルを更新
- 図表を活用
---
## 📊 プロジェクト健全性チェックリスト
新規AIアシスタントは、以下を確認してから作業開始してください
- [ ] VMのメモリ割当は4GBか8GBなら即修正
- [ ] PostgreSQLはDSM直下にあるかVM内ではない
- [ ] Tailscaleはインストール済みか
- [ ] Giteaは稼働しているか
- [ ] Dokployはまだ未導入か導入済みなら設定確認
- [ ] 開発者の「ずぼら」哲学を理解したか?
- [ ] 批判的思考の重要性を認識したか?
---
**最終更新**: 2026-01-19
**バージョン**: 1.0
**次回レビュー**: 2026-04-19
**作成者**: Claude (Sonnet 4.5) + 開発者 + Antigravity
---
## 🎁 ボーナス: コピペ用サマリー
他AIに素早く状況を伝えたい時は、以下をコピペしてください
```
【プロジェクト】Ponshu Room Lite日本酒記録Flutter App
【現在地】Phase 2.0-Bインフラ構築中
【構成】Synology NAS (16GB) → Ubuntu VM (4GB) → Dokploy
【データ層】PostgreSQL/Immich/OllamaDSM直下、12GB
【制御層】Dokploy/Traefik/AppsVM内、4GB
【ネットワーク】Tailscale VPNゼロトラスト
【月額コスト】¥1,100-1,600VPS不使用
【レイテンシ】<1ms同一物理マシン
【開発者性格】ずぼら、自動化志向、批判的思考を求める
【緊急タスク】VM メモリ 8GB→4GB 削減
【詳細】docs/architecture/AI_HANDOFF_DOCUMENT.md 参照
```
このサマリーを貼れば、他AIは30秒でプロジェクトを理解できます。