docs: update master-architecture to 2026-04-06 — Supabase撤退・DNS確定・残タスク整理

- Together VPS移行完了・Supabase撤退を反映
- ワイルドカードDNS確認済み・reading_history VPS修正済みを記録
- セキュリティ修正(WebSocket/SSRF/e.message)をdecision logに追加
- STATUS.md を 2026-04-06 版に更新
This commit is contained in:
posimai 2026-04-06 17:05:47 +09:00
parent d65ccba724
commit e4bd0a1901
2 changed files with 212 additions and 189 deletions

View File

@ -4,32 +4,37 @@
## 作業中
- Store デザイン確定待ちEiji さんと A/B/C/D から選定中
- 特になし(前セッションのタスク完了
## 次にやること(優先順)
1. 特商法ページ記入mai 作業 — 事業者名・住所・電話番号)
2. **どのアプリに premium 機能を実装するか決める**(未決定・最重要)
3. Stripe 本番モード切り替え上記2点が完了してから
4. 各アプリへの `purchased` フラグ実装(対象アプリ決定後)
1. **どのアプリに premium 機能を実装するか決める**未決定・最重要。Brain/Feed/Reader/Together が候補)
2. 特商法ページ記入mai 作業 — 事業者名・住所・電話番号)
3. Store デザイン確定Eiji と A/B/C/D から選定)
4. Stripe 本番モード切り替え(上記完了後)
5. 各アプリへの `purchased` フラグ実装対象決定後・1アプリ30分
## ブロック中
| ブロック | 待ち先 |
|---------|--------|
| premium 実装 | mai の判断 |
| Store デザイン確定 | Eiji |
| Stripe 本番切り替え | Store 確定・特商法記入 |
| premium 実装 | mai の判断 |
## 直近でやったこと2026-04-05
## 直近でやったこと2026-04-06
- Google OAuth + GitHub OAuth 実装・動作確認済み
- Stripe Webhook 実装・テスト決済で plan=premium 更新確認済み
- auth/verify: type=oauth の場合 Magic Link API をスキップするバグ修正
- Store Design D 復活
- atlas.json v3・Dashboard timeline・BentoCard beta バッジ更新
- Uptime Kuma ポート 3002 確認・Station 修正
- memory・master-architecture.md・CLAUDE.md を 2026-04-05 時点に更新
- **セキュリティ修正VPS server.js**: e.message 直返し → "Internal server error" に一括置換
- **セキュリティ修正posimai-dev**: WebSocket 認証ゲート追加Tailscale IP のみ許可)
- **セキュリティ修正posimai-dev**: SSRF blocklist 完全版に更新RFC 1918 全帯域 + metadata IP
- **セキュリティ修正posimai-feed**: Feed POST に認証チェック追加
- **Together 移行**: Supabase → VPS PostgreSQL 完全移行61件投稿・9リアクション・1グループ・3メンバー
- **Together フロント**: Supabase SDK 完全削除・VPS エンドポイントのみに統一
- **CLAUDE.md / AGENTS.md**: stale な Supabase Edge Function deploy セクション削除
- **memory**: 矛盾・陳腐化したファイルを一括更新・不要ファイル削除
- **docs/master-architecture.md**: 2026-04-06 時点の全情報を一元化(インフラ図・テーブル一覧・残タスク)
- VPS DB バックアップ動作確認毎日4時・7日分・正常稼働
- Together API URL 設定パネルが別チャットで削除済みであること確認
## コードの「正」はどこか

View File

@ -1,260 +1,278 @@
# Posimai Project — マスターアーキテクチャドキュメント
最終更新: 2026-04-05
対象: Claude Code / Cursor / Antigravity / Gemini / 全 AI エージェント
最終更新: 2026-04-06
対象: Claude Code / Cursor / Gemini / 全 AI エージェント
**このドキュメントはプロジェクトの現状を一元管理します。実装の前に必ず読んでください。**
> メモ: このファイルは変更が発生するたびに更新するCLAUDE.md のルールに明記済み)。
> 「最終更新」日付と内容を常に一致させること。
---
## 0. ビジネス体制(確定)
- **Eiji**: 共同経営者。VPS・DNSsoar-enrich.com・Cloudflare 管理・対外窓口・代表。
- **Eiji**: 共同経営者。VPS・DNSsoar-enrich.com・Cloudflare 管理・対外窓口・代表。VPS は mai も自由に操作可。
- **mai**: プロダクト開発担当。アプリ設計・実装・AI 活用。
- インフラ・ドメイン共用は設計通り。「Eiji 依存リスク」ではない。
- インフラ・ドメイン共用は設計通り。
---
## 1. 全体構成図2026-04-05 確定)
## 1. 全体構成図2026-04-06 確定)
```
╔══════════════════════════════════════════════════════════╗
║ mai の開発環境Windows 11 PC
║ VS Code / Cursor / Claude Code CLI / Termius
║ VS Code / Claude Code CLI
╚══════════════════════════════════════════════════════════╝
│ git pushgitea + github の2リモート同時
│ ※ Gitea 廃止は検討中・現状維持
╔══════════════════════════════════════════════════════════╗
║ コード管理2リモート並行
║ GiteaSynology 内) ←→ GitHubposimai/ org
ローカルバックアップ Vercel 自動デプロイトリガー
║ コード管理
║ GitHub← Vercel 自動デプロイトリガー
GiteaNAS← バックアップのみ・確認先にしない
╚══════════════════════════════════════════════════════════╝
│ GitHub push → Vercel 自動デプロイ
╔══════════════════════════════════════════════════════════╗
║ フロントエンドVercel / CDN
║ ║
║ posimai.soar-enrich.com → posimai-dashboard確定
║ ║
║ 全アプリ URL*.vercel.app で稼働中・全 23 本 PWA: ║
║ brain / habit / pulse / feed / reader / journal ║
║ brief / daily / ambient / veil / together / lens ║
║ diff / clean / timer / digest / think / site ║
║ events / maps / tech-events / analytics / roadmap ║
║ ║
║ 【セルフホスト】posimai-devUbuntu PC / Tailscale
║ https://ubuntu-pc-pc-mkm21cz79ys4.tail72e846.ts.net:3333║
║ ║
║ 【計画中】*.posimai.soar-enrich.com ワイルドカード DNS ║
║ → Passkey の rpID 問題を解決・Eiji に依頼予定 ║
║ posimai.soar-enrich.com → posimai-dashboard ║
║ *.posimai.soar-enrich.com → Vercelワイルドカード設定済
║ 全 27 本アプリ(全て PWA
╚══════════════════════════════════════════════════════════╝
│ https://api.soar-enrich.com/brain/api/...
2026-03-26 移行完了)
╔══════════════════════════════════════════════════════════╗
║ バックエンド本番VPS— 2026-03-25 移行完了 ║
║ Ubuntu 25.04 / AMD EPYC 4コア / 5.8GB / 85.131.245.239 ║
║ 共同開発者 Eiji 提供 ║
║ バックエンド本番VPS85.131.245.239 ║
║ Ubuntu 25.04 / AMD EPYC 4コア / 5.8GB RAM ║
║ ║
║ Nginx: api.soar-enrich.com → :8090 ║
║ ║
║ posimai-apiNode.js / Express / :8090
║ 稼働中のエンドポイント: ║
║ ・記事 /articles /save ・Journal /journal/* ║
║ ・RSS /feeds ・Gemini AI /gemini/* ║
║ ・認証 /auth/* (Magic Link + WebAuthn + Google/GitHub OAuth) ║
║ ・記事 /articles /save ・Journal /journal/* ║
║ ・RSS /feeds ・Gemini AI /gemini/* ║
║ ・TTS /tts/* ← VOICEVOX:50021 稼働済み) ║
║ ・Stripe Webhook /api/stripe/webhook署名検証済み
║ ║
║ PostgreSQL 16 ║
║ articles / journal_posts / usersplan/stripe列あり
║ site_config / reading_history ║
║ magic_link_tokens / passkey_credentials / auth_sessions ║
║ PostgreSQL 16posimai_brain DB
║ VOICEVOX:50021稼働済み ║
╚══════════════════════════════════════════════════════════╝
╔══════════════════════════════════════════════════════════╗
║ Ubuntu PC — 開発 OS常時稼働
║ 100.77.11.43 / ubuntu-pc-pc-mkm21cz79ys4.tail*.ts.net ║
║ ║
║ ・posimai-dev:3333 HTTPS / Tailscale
║ → ブラウザ内ターミナル + Claude Code 統合 PWA ║
║ ・posimai-station/station
║ → HDMI モニター全画面キオスク監視盤 ║
║ ・Syncthing → Windows PC と双方向同期 ║
║ ・GNOME 削除済み / Openbox + Chromium kiosk ║
║ Ubuntu PC100.77.11.43 / Tailscale
║ ・posimai-dev:3333ブラウザターミナル + Station ║
║ ・StationHDMI 全画面監視) ║
║ ・Openbox + Chromium kiosk ║
╚══════════════════════════════════════════════════════════╝
╔══════════════════════════════════════════════════════════╗
║ Synology NAS — バックアップ & 開発支援 ║
║ 100.76.7.3 / posimai-lab.tail72e846.ts.net ║
║ Tailscale VPN 経由のみアクセス可 ║
║ ║
║ ・Giteagit バックアップサーバー) ║
║ ・posimai_api旧 API・待機中・フォールバック候補
║ ・PostgreSQL 15旧 DB・待機中
║ ・Uptime Kuma死活監視 / :3002
║ Synology NAS100.76.7.3 / Tailscale のみ) ║
║ ・Gitea:3000git バックアップ ║
║ ・Uptime Kuma:3002死活監視 ║
║ ・旧 API / PostgreSQL 15停止可能・保留中
║ ・Ubuntu PC → NAS rsync バックアップ毎日3時
╚══════════════════════════════════════════════════════════╝
╔══════════════════════════════════════════════════════════╗
║ 外部サービス ║
║ ║
║ 【認証・稼働中】VPS 自前Magic Link + WebAuthn + ║
║ Google OAuth + GitHub OAuth
║ JWT: { userId, sid, plan }plan=free/premium
║ Resend: Magic Link メール送信noreply@soar-enrich.com
║ ║
║ 【決済・テストモード稼働中】Stripe ║
║ 月額¥500・Webhook で plan=premium に自動更新 ║
║ 本番切り替え: Store デザイン確定・特商法記入後 ║
║ ║
║ 【稼働中】Supabase DB ║
║ together のみ(リアルタイム同期) ║
║ ║
║ Gemini API → VPS 経由journal/pulse 等) ║
║ Gemini API → フロント直接think アプリのみ) ║
║ Google FontsInter/ unpkgLucide @0.344.0 固定) ║
║ ResendMagic Link メール / noreply@soar-enrich.com
║ Stripeテストモード稼働中 / 月額¥500
║ Gemini APIVPS 経由・gemini-2.5-flash 固定) ║
║ Google Places APIMaps アプリ・フロント直接・要改善) ║
╚══════════════════════════════════════════════════════════╝
```
---
## 2. アプリ一覧(全 27 本・2026-04-05 時点)
## 2. VPS PostgreSQL — テーブルとデータの実体
| アプリ | URL | 種別 | バックエンド | 備考 |
|--------|-----|------|-------------|------|
| posimai-dashboard | posimai.soar-enrich.com | Next.js | — | メインダッシュボード |
| posimai-analytics | analytics.vercel.app | Next.js | — | RFM 分析 |
| posimai-brain | brain.vercel.app | 静的 | VPS API | 記事管理 |
| posimai-feed | feed.vercel.app | 静的 | VPS API | RSS フィード |
| posimai-reader | reader.vercel.app | 静的 | VPS API | 記事リーダー |
| posimai-journal | journal.vercel.app | 静的 | VPS API | CMS エディタ |
| posimai-site | site.vercel.app | 静的 | VPS API | 公開ホームページ |
| posimai-together | together.vercel.app | 静的 | Supabase | リアルタイム共有 |
| posimai-daily | daily.vercel.app | 静的 | VPS API | ブリーフィング |
| posimai-brief | brief.vercel.app | 静的 | VPS TTS | 音声ブリーフィング |
| posimai-habit | habit.vercel.app | 静的 | localStorage | 習慣管理Supabase 移行予定) |
| posimai-pulse | pulse.vercel.app | 静的 | localStorage | 気分記録Supabase 移行予定) |
| posimai-think | think.vercel.app | 静的 | Gemini 直接 | AI 思考整理 |
| posimai-digest | digest.vercel.app | 静的 | Gemini 直接 | テキスト要約 |
| posimai-ambient | ambient.vercel.app | 静的 | open-meteo | 常時表示 |
| posimai-veil | veil.vercel.app | 静的 | — | アプリランチャー |
| posimai-roadmap | roadmap.vercel.app | 静的 | — | ロードマップ管理 |
| posimai-timer | timer.vercel.app | 静的 | — | タイマー |
| posimai-lens | lens.vercel.app | 静的 | — | EXIF 表示 |
| posimai-diff | diff.vercel.app | 静的 | — | テキスト差分 |
| posimai-clean | clean.vercel.app | 静的 | — | テキストクリーナー |
| posimai-events | events.vercel.app | 静的 | — | イベント情報 |
| posimai-maps | maps.vercel.app | 静的 | — | マップ |
| posimai-hotels | hotels.vercel.app | 静的 | — | ホテル価格 |
| posimai-tech-events | tech-events.vercel.app | 静的 | RSS | IT イベント |
| posimai-atlas | atlas.vercel.app | 静的 | VPS API | インフラ構成図・監視 |
| posimai-ui | ui.vercel.app | 静的 | — | 共有デザインシステム |
| テーブル | 何が入っているか | AIが関与するか |
|---------|----------------|--------------|
| `users` | ユーザー情報・planfree/premium・Stripe ID | なし |
| `auth_sessions` | JWTセッション | なし |
| `articles` | Brain保存記事・**AI要約summaryカラム**・全文・トピック | Gemini が要約生成・VPS に永続保存 |
| `journal_posts` | Journal投稿・タグ | タグはGeminiが提案その場限り |
| `reading_history` | 読んだURL・タイトル・ドメイン | なし |
| `habit_habits` / `habit_log` | 習慣定義・達成ログ | なし |
| `pulse_log` | 気分・エネルギー・集中度・メモ | なし |
| `lens_history` | 写真EXIFデータ・サムネイル | なし |
| `together_groups/members/shares/reactions/comments` | Together全データ2026-04-06 Supabaseから移行済み | 投稿にAI要約あり |
**Supabase は撤退済み2026-04-06。** Together を VPS PostgreSQL に完全移行。
---
## 3. 認証フロー(確定)
## 3. データ保存先(確定)
| 保存先 | 対象 | 状態 |
|--------|------|------|
| VPS PostgreSQL | brain・journal・together・reading_history・habit・pulse・認証 | 稼働中 |
| localStorage永続・移行しない | veil設定・timer設定 | 確定 |
| localStorage将来VPS移行予定 | habit・pulseVPSにテーブルは存在済み | 商用化フェーズで移行 |
| データなし(都度処理) | diff・clean・think・digest・brief・feed・timer | — |
---
## 4. アプリ間パイプライン(設計)
```
方針(本番としてそのまま進化させる):
フロント → API Key or JWT (Magic Link) → VPS が検証
?init_key= URL → localStorage に保存・JWT 保有
3ユーザーmai / partner / musumeのみ対応
メール送信: Resend API (noreply@soar-enrich.com)
※ Supabase Auth への移行計画は中止(完全自己ホスト化)
課題: WebAuthn (Passkey) には共通の rpID が必要
→ *.posimai.soar-enrich.com ワイルドカード DNS が必須
→ Eiji への依頼待ち
Feed発見
↓ 記事クリック
Reader読む→ reading_history に記録2026-04-06 対応済み)
↓ 保存ボタン
Brain保存・AI要約→ articles に記録
↓ 気づきをメモ
Think / Journal内省→ journal_posts
↓ 週次バッチ(未実装)
Digestまとめ→ user_activity から集計して生成
Brief音声→ Digest の内容を VOICEVOX で読み上げ
↓ 公開したいものだけ
Together共有→ together_shares
```
**自前認証化のため `X-API-Key`・`?init_key=`・localStorage ロジックは維持される。**
**Pulse/Habit は横断的に記録され、Rewind振り返りアプリの材料になる将来。**
### 未実装・改善が必要なもの
| 課題 | 内容 | 優先度 |
|------|------|--------|
| `user_activity` テーブル | アプリ横断の行動ログ基盤。Digestの週次集計に必要 | 中 |
| habit/pulse → VPS移行 | テーブルはVPSに存在。アプリ側をAPI呼び出しに変えるだけ | 中premium機能として |
| Together に Brain/Journal 連携 | `source_type` / `source_id` カラム追加で Brain記事を直接共有可能 | 低 |
| Digest `/api/digest/weekly` 実装 | user_activityから週次サマリー生成 | 低 |
| Google Places API → VPS経由化 | Mapsアプリのキーがフロントに露出している | 低(急がない) |
---
## 4. データ保存先まとめ
## 5. 認証フロー(確定・全て稼働中)
| 保存先 | アプリ | 状態 |
|--------|--------|------|
| VPS PostgreSQL | brain・journal・site・reading_history | 稼働中 |
| Supabase DB | together | 稼働中 |
| localStorage + VPS バックグラウンド同期 | habit・pulse | ローカルファースト(同期のみ) |
| localStorage永続・移行しない | veil 設定・timer 設定 | 確定 |
| データなし(都度処理) | diff・clean・lens・digest・think・timer 本体 | — |
```
Magic LinkResend メール → JWT
Google OAuth → VPS → JWT → /auth/verify?type=oauth
GitHub OAuth → VPS → JWT → /auth/verify?type=oauth
WebAuthn / PasskeyrpID: posimai.soar-enrich.com
JWT: { userId, sid, plan }
plan = "free" or "premium"Stripe決済後にDB更新
/auth/session/verify → { ok, userId, plan, purchased }
```
**Supabase Auth は不採用。完全 VPS 自前認証。**
`X-API-Key`・`?init_key=` の旧認証体系は一部アプリが依存しているため変更禁止。
---
## 5. デプロイパイプライン(確立済み)
## 6. 販売フロー(テストモード稼働中)
```
posimai-storeLP
→ Stripe Payment Link月額¥500・1日無料トライアル
→ Stripe Webhook → VPS → users.plan = "premium"
→ JWT に plan: "premium" が入る
→ 各アプリで purchased フラグで機能出し分け可能
```
**本番切り替え待ち:** Storeデザイン確定 → 特商法記入 → Stripe本番切り替え
---
## 7. アプリ一覧(全 27 本・2026-04-06 時点)
| アプリ | バックエンド | 備考 |
|--------|------------|------|
| posimai-dashboard | — | Next.js / メインダッシュボード |
| posimai-brain | VPS API | 記事保存・AI要約 |
| posimai-feed | Vercel Serverless + RSS | フィード(キー不要) |
| posimai-reader | VPS API | 記事リーダーreading_history連携済み |
| posimai-journal | VPS API | CMS / Geminiタグ提案 |
| posimai-together | VPS API | 共有Supabaseから移行済み |
| posimai-brief | VPS TTS | VOICEVOX音声 |
| posimai-daily | VPS API | ブリーフィング |
| posimai-habit | localStorage → VPS予定 | 習慣管理 |
| posimai-pulse | localStorage → VPS予定 | 気分記録 |
| posimai-think | Gemini直接 | AI思考整理 |
| posimai-digest | Gemini直接 | テキスト要約 |
| posimai-maps | Google Places APIフロント直接 | 要VPS化 |
| posimai-tech-events | VPS経由RSS | ITイベント |
| posimai-atlas | VPS API | インフラ構成図 |
| posimai-site | VPS API | 公開ホームページ |
| posimai-lens | — | EXIF表示処理のみ |
| posimai-diff | — | テキスト差分(処理のみ) |
| posimai-clean | — | テキストクリーナー(処理のみ) |
| posimai-timer | — | タイマーlocalStorage |
| posimai-veil | — | アプリランチャー |
| posimai-ambient | open-meteo | 常時表示 |
| posimai-roadmap | — | ロードマップ |
| posimai-widget-dl | — | ウィジェット |
| posimai-events | VPS API | イベント情報モック・Beta |
| posimai-hotels | — | ホテル価格モック・Beta |
| posimai-analytics | — | Next.js / RFM分析 |
---
## 8. デプロイパイプライン
```bash
git add .
git commit -m "feat/fix/chore: 変更内容"
npm run deploy # = git push gitea main && git push github main
# フロントエンド(全アプリ共通)
git add . && git commit -m "feat/fix/chore: ..." && npm run deploy
# = git push gitea main && git push github main → Vercel 自動デプロイ
# VPS バックエンドserver.js 変更時)
bash deploy-server.sh
# Ubuntu PCposimai-dev/station 変更時)
npm run deploy:dev # git push + scp + systemctl restart
```
- `gitea``http://100.76.7.3:3000/mai/[app-name].git`(ローカルバックアップ)
- `github``https://github.com/posimai/[app-name].git`Vercel 自動デプロイトリガー)
- `vercel --prod` 直接実行: **禁止**
- VPS バックエンド: `bash deploy-server.sh`SSH 鍵認証・完全無人)
- VPS DBバックアップ: 毎日4時自動実行・7日分保持・正常稼働確認済み2026-04-06
---
## 6. AI エージェント役割分担
## 9. 残タスク(優先順)
| 担当 | 内容 |
### 商用化直結maiの決定が必要
| タスク | 状態 |
|--------|------|
| **どのアプリにpremium機能を実装するか決める** | **未決定・最重要** |
| Storeデザイン確定A/B/C/D | Eiji意見待ち |
| 特商法ページ記入(事業者名・住所等) | mai手動作業 |
| Stripe本番モード切り替え | デザイン確定後 |
### AIが対応可能maiの決定後
| タスク | 工数 |
|--------|------|
| 各アプリへのpremiumフラグ実装 | 1アプリ30分 |
| habit/pulse → VPS API移行 | 各2時間 |
| user_activityテーブル追加 | 2時間 |
### 保留・検討中
| 項目 | 状態 |
|------|------|
| インフラ担当チャット | 認証実装・VPS デプロイ・DNS・server.js 変更 |
| UI 担当チャット | UX・デザイン・CLAUDE.md 適合・プライバシー表記・バグ修正 |
**UI 担当が触ってはいけないもの:**
`api.soar-enrich.com` URL / `X-API-Key` ヘッダー / `?init_key=` パラメータ / localStorage 認証ロジック / server.js・VPS・Docker 関連
| Giteaをdeployから外す | 検討中(廃止メリットあり・決定待ち) |
| Uptime Kuma → Ubuntu PC移設 + UptimeRobot追加 | 検討中 |
| Synology 旧コンテナ停止 | 保留 |
---
## 7. 直近の確定事項(設計判断ログ)
## 10. 設計判断ログ
| 日付 | 決定事項 |
|------|---------|
| 2026-03-25 | バックエンドを Synology → VPSEiji 提供)に移行完了 |
| 2026-03-26 | API URL を `posimai.soar-enrich.com``api.soar-enrich.com` に分離完了 |
| 2026-03-27 | 認証方式を Supabase AuthMagic Link + Passkeyに確定 |
| 2026-03-29 | ベンダーロックイン回避のため Supabase 完全移行を中止。VPS 独自認証Magic Link+Passkeyを正規方針として続行 |
| 2026-04-04 | Google OAuth + GitHub OAuth 実装完了・動作確認済み |
| 2026-04-04 | Stripe Webhook 実装完了・テスト決済で plan=premium 更新確認済み |
| 2026-04-05 | VOICEVOX VPS 稼働済み確認(:50021|
| 2026-04-05 | Uptime Kuma ポートが 3001 ではなく 3002 と判明・Station 修正済み |
| 2026-04-05 | atlas.json v3・Dashboard timeline・BentoCard beta バッジ更新済み |
| 保留中 | *.posimai.soar-enrich.com ワイルドカード DNSEiji 依頼待ち) |
| 保留中 | Store デザイン確定A/B/C/D から選定中) |
| 保留中 | 特商法ページ事業者情報記入mai 作業) |
| 保留中 | Stripe 本番モード切り替え |
| 未決定 | どのアプリに premium 機能を実装するか(最重要課題) |
| 2026-03-25 | バックエンドを Synology → VPS に移行完了 |
| 2026-03-26 | API URL を `api.soar-enrich.com` に分離完了 |
| 2026-03-29 | Supabase Auth を不採用。VPS 自前認証を正規方針に確定 |
| 2026-04-04 | Google OAuth + GitHub OAuth 実装完了 |
| 2026-04-04 | Stripe Webhook 実装完了・テスト決済確認済み |
| 2026-04-06 | Together を Supabase → VPS PostgreSQL に完全移行61件 |
| 2026-04-06 | *.posimai.soar-enrich.com ワイルドカード DNS 設定済み確認 |
| 2026-04-06 | Reader reading_history を localStorage → VPS に修正済み |
| 2026-04-06 | WebSocket認証・SSRF blocklist・Feed POST認証・e.message修正済み |
---
## 8. 絶対に守るルール(全 AI 共通)
## 11. 絶対に守るルール(全 AI 共通)
1. **デプロイは `npm run deploy` のみ**`vercel --prod` 禁止)
2. **絵文字禁止**コード・UI・コメントすべて)
3. **アイコンは Lucide のみ**`@0.344.0` 固定)
4. **デザイントークン変更禁止**`--accent` 1行のみ例外
2. **絵文字禁止**コード・UI・コミット全て)
3. **Lucide @0.344.0 固定**`@latest` 禁止
4. **デザイントークン外の色直接使用禁止**`var(--accent)` を使う
5. **`git push origin` 禁止**gitea と github の2リモートのみ
6. **`api.soar-enrich.com` / 認証ロジックは UI 担当チャットが触らない**
7. **このファイルを変更したらすぐ「最終更新」日付を更新する**
---
## 参照ファイル一覧
| ファイル | 内容 |
|---------|------|
| `CLAUDE.md` | AI 向けプロジェクトルール(最優先) |
| `AGENTS.md` | CLAUDE.md の Cursor/Windsurf 向けコピー |
| `docs/master-architecture.md` | **このファイル**(インフラ・確定事項の一元管理) |
| `posimai-dashboard/src/data/projects.json` | 全アプリの一覧・ステータス・技術スタック |
| `_template/` | フル機能テンプレート |
| `_template-minimal/` | 単機能ツール用テンプレート |
6. **Gemini モデルは `gemini-2.5-flash` 固定**
7. **このファイルを変更したら「最終更新」日付を更新する**