2026年2月20日の開発日記
5プロジェクトを横断した一日。朝5時台に書籍OCRを回し始め、昼からはEurekpauの問題集ページ移行とインフラ構築に没頭し、合間にtax-assistantの新規クライアント対応と機能追加を進めた。夜にはBetter Authの認証スケルトンまで組み上がった。
今日やったこと
1. Eurekapu簿記問題集のNuxt4移行とUI改善
旧Vue 2プロジェクトから問題集ページを丸ごとNuxt 4に移行した。VPS経由で画像193枚をダウンロードし、2カラムレイアウト・正解/不正解の色分け・レイアウトシフト防止を実装。Vitest 24テスト + Playwright E2E 12テスト全パス。セキュリティ/パフォーマンス/SREレビューも実施し、JSON lazy import化(305KB→300バイト)やGoogle Fonts非同期化で全項目を対処した。
主な成果:
- 問題集ページのフル移行完了(分野選択 + 問題解答 + 解説表示)
- テスト環境一式の構築(ユニット + E2E + ベンチマーク)
- パフォーマンス改善(集計JSON生成で99.9%データ削減)
- サブスクリプション計画とユーザー登録導線の設計
2. Eurekapu Cloudflare Pages SSR化とBetter Auth認証基盤
SSGからSSRへ切り替え、D1データベースをAPACリージョンに作成し、Cloudflare Pages Functionsとしてデプロイ。Better Auth + Google OAuthの認証スケルトンをサーバー/クライアント両面で実装し、認証テスト7件全パスまで確認した。
主な成果:
- Cloudflare Pages SSRデプロイ成功(/api/health動作確認済み)
- D1バインディング設定(production + preview)
- Better Auth認証スケルトン一式(ログインUI、SQLマイグレーション含む)
- vi.mock + vi.hoistedによる認証テスト7件
詳細: Eurekapu Cloudflare Pages SSR化とBetter Auth認証基盤の構築
3. 税務アシスタント - 新規クライアント対応と税区分機能
4人目のクライアントを登録し、レシートOCR 100件超をバッチ処理。補助元帳CSV(クレカ明細)のインポート対応、仕訳ルール自動提案、税区分トグルボタンの実装、MF仕訳CSVエクスポートまで一気に進めた。読み取り一覧のインデックス不一致バグ(日付形式混在が原因)も修正した。
主な成果:
- 新規クライアント登録 + 勘定科目マスターインポート
- レシートOCR 100件超(PDF→JPEG→Gemini OCR→バリデーション)
- 税区分トグルUI実装(DBマイグレーション + フロントエンド)
- 仕訳出力ページのクライアント別フィルタリング
詳細: 税務アシスタント開発ログ
4. 書籍OCRバッチクリーンアップ・tokyo-onkeiデプロイ修正
yomitokuで75ページのPDFを113秒でOCR変換し、複数冊の書籍DBをサブエージェント並列でクリーンアップ。tokyo-onkeiでは本番サイトのCSS崩れを発見し、Cloudflare Pagesの_redirectsでルートリダイレクトを追加して解消した。
主な成果:
- yomitoku OCR: 75ページ → 75 MDファイル + 184図ファイル + DB格納
- 3冊分のDBクリーンアップ(コンテキスト溢れ問題への対処含む)
- tokyo-onkeiデプロイコマンドのデフォルト変更(site → all)
- SSG + i18n prefix strategyのリダイレクト問題解決
詳細: 書籍OCRバッチクリーンアップとtokyo-onkeiデプロイ修正
今日の学び
INSERT OR IGNOREと論理削除(is_activeフラグ)の組み合わせは相性が良い。DELETEすると再挿入されるが、is_active = 0ならIDが存在するのでスキップされる- JSON集計ファイルの事前生成で、305KBのインポートを300バイトに減らせた。ビルドステップに1行追加するだけでLighthouseスコアが跳ね上がる
- Better Authの
createAuthClientはモジュールトップレベルで呼ぶとNuxt外環境(vitest bench等)でクラッシュする。composable内で遅延初期化が正解 - yomitokuのOCR速度(75ページ/113秒)はGPU環境なら十分実用的。ただしDBクリーンアップの並列処理はコンテキスト上限に注意
明日やること
- Eurekapu: Google OAuth のクレデンシャル設定と認証フローの動作確認
- Eurekapu: 問題集ページのローカルストレージ保存 → 登録促進の導線実装
- tax-assistant: 税区分のデフォルト値設定ロジック改善
- book-knowledge-base: コンテキスト溢れで中断したクリーンアップの再実行