Mirobody
The canonical registry of human health — roughly two thousand standardized indicators, clinical and lifestyle, resolved into one language.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
🔍 コードレビュー引き継ぎ (2026-07-09) — 全面監査で 47 Issue 起票済み・修正フェーズ homegohan を Claude Sonnet 5 × Fable 5 の二重監査+独立検証で全面レビューし、GitHub Issue 47件を起票しました。 次の作業者は まず統合トラッカー #1012 を読むこと(修正順・依存関係・検証SQL・目次が全部そこにあります)。 コードを触る前に必ず 前提作業 #1056(未コミット4ファイルの破棄) を消化してください。 現状サマリ • リポジトリ: ~/homegohan(リモート DaisukeHori/homegohan-app) • 監査基準: コミット済み HEAD。作業ツリー版は使わない • 起票: 親トラッカー #1012 / 前提作業 #1056 / 指摘 #1013-#1055 / UX追加 #1057-#1058 • 内訳: critical 20 / high 18 / medium 7 着手順(#1012 のプレイブック要約) 1. 【前提】#1056 = 未コミット4ファイルを破棄(コミット済み監査修正の巻き戻しなので必ず最初に)Read the full README ↗
[!IMPORTANT] 🔍 コードレビュー引き継ぎ (2026-07-09) — 全面監査で 47 Issue 起票済み・修正フェーズ
homegohan を Claude Sonnet 5 × Fable 5 の二重監査+独立検証で全面レビューし、GitHub Issue 47件を起票しました。 次の作業者は まず統合トラッカー #1012 を読むこと(修正順・依存関係・検証SQL・目次が全部そこにあります)。 コードを触る前に必ず 前提作業 #1056(未コミット4ファイルの破棄) を消化してください。
~/homegohan(リモート DaisukeHori/homegohan-app)git checkout -- \
src/app/api/account/delete/route.ts \
src/app/api/admin/organizations/route.ts \
src/schemas/membership/family-invite.ts \
src/schemas/membership/organization-invite.ts
WITH CHECK 欠如)で1 migration にまとめる。続けて #1016-#1020(認証バイパス/IDOR/REVOKE漏れ)、#1022(レート制限)、#1036(モバイル)verified = コード上裏取り済 / needs-verification = 実DB状態次第needs-verification(#1020 #1025 #1026 #1027 #1028 #1040)は着手前に各Issueのコメント欄の読み取り専用SELECTを Supabase で1回流して確定してから直すhomegohan-app/ ・.worktrees/ ・.claude/ は無視(旧ツリー残骸。編集・参照しない)src/lib/db-logger.ts、Edge Functions は _shared/db-logger.ts を必ず使うsrc/lib/build-nutrition-input.ts 経由signOut の前に src/lib/user-storage.ts の clearUserScopedLocalStorage() を呼ぶroles は公式12種('banned' 禁止)、plan_keys 9種、SubscriptionStatus 7値createServerClient<Database> で型付け(#1023 の引数不一致の再発防止)npm run typecheck / npm run lint / npm test / npm run test:e2enpx [email protected] db diffdeploy-supabase-*.yml が main push で無条件適用(テストゲート無し=#1034 で是正対象)GET /api/org/invites が参照する organizations/departments/role/department_id は migration 管理外のレガシースキーマの可能性(誤検知寄りに格下げ済み)ai_consultation_* / nutrition_targets / health_insights / health_challenges / user_badges の DDL・RLS がリポジトリに無い → 本番で RLS 確認し migration として取り込むことai_action_logs は取り込み済み (DDL・RLS は baseline 20251126124224 と 20261107120000_ai_action_logs_select_only.sql。利用者 (authenticated) は自分の相談の行を読むだけで書けない・anon は権限なし。#2283。実行の印の token の列 claim_token は 20261107140000_ai_action_logs_claim_token.sql。#2299)ほめゴハンの monorepo です。Web アプリ、Expo mobile アプリ、Supabase Edge Functions、共有パッケージを同じリポジトリで管理しています。
homegohan/
├── src/ # Next.js 15 Web アプリ (App Router)
├── apps/mobile/ # Expo / React Native モバイルアプリ (iOS / Android)
├── supabase/
│ ├── functions/ # Supabase Edge Functions (Deno)
│ └── migrations/ # DB マイグレーション
├── packages/core/ # Web / Mobile 共有ロジック
└── tests/ # Vitest テスト (e2e 以外)
└── e2e/ # Playwright E2E テスト
Node 18 では @supabase/supabase-js の警告が出るため、ローカル開発・CI・Vercel ともに Node 20.x を前提にしてください。
# 1. 依存関係インストール
npm install
# 2. 環境変数を設定 (.env.local を作成)
# → ENV_SETUP.md を参照
# 3. 開発サーバー起動
npm run dev
# http://localhost:3000 で確認
環境変数の詳細セットアップは ENV_SETUP.md を参照してください。
src/: Next.js Web アプリapps/mobile/: Expo / React Native アプリsupabase/functions/: Supabase Edge Functionspackages/core/: 共有ロジックtests/: Vitest テストdocs/, SPECIFICATION.md: 補足ドキュメントnpm run dev # Web 開発サーバー起動
npm run build # プロダクションビルド
npm run typecheck # 型チェック
npm run lint # ESLint
npm test # Vitest ユニットテスト
npm run test:e2e # Playwright E2E (開発サーバー自動起動)
npm run mobile:start # モバイル Metro bundler 起動
詳細な手順・環境変数設定は CONTRIBUTING.md を参照してください。
# ユニットテスト
npm run test
# インテグレーションテスト (ローカル Supabase + ローカル dev サーバが必要。本番には向けない)
# bash scripts/supabase-local.sh start && bash scripts/supabase-local.sh env .env.local
# npm run dev # 別ターミナル
npm run test:integration -- tests/integration/operator/admin-
tests/e2e/ は vitest の除外対象です (vitest.config.ts の exclude を参照)。
# ローカル (開発サーバー自動起動)
npm run test:e2e
# MVP spec のみ高速実行
npm run test:e2e:mvp
# 本番 / ステージング環境を対象にする場合
PLAYWRIGHT_BASE_URL=https://homegohan-app.vercel.app npm run test:e2e
E2E テスト用ユーザーの認証情報は環境変数 E2E_USER_EMAIL / E2E_USER_PASSWORD で渡します。
CI では GitHub Secrets に同名で登録してください。
# Maestro CLI インストール (初回のみ)
curl -Ls https://get.maestro.mobile.dev | bash
# シミュレーター起動後に実行
cd apps/mobile && maestro test maestro/
cd apps/mobile && npm test
.github/workflows/e2e.yml が PR (および手動トリガー) で Playwright E2E を実行します。
対象パス: src/**, tests/e2e/**, playwright.config.ts, package.json, package-lock.json。
レポートは playwright-report artifact として 14 日間保持されます。
PR マージ前のチェック方針は CONTRIBUTING.md を参照してください。
SPECIFICATION.md と docs/ も更新してください。