daily-log

2026年6月16日の開発日記

今日は別プロジェクトの「壁」に2つ頭をぶつけた日だった。一つは eurekapu-nuxt4 の Cloudflare Pages Worker bundle 1MB 制限。もう一つは mdx-playground の Nuxt Content v3 でビルド20分という重さ。前者は構成図A/B/C/Dを HTML で書き起こしながら設計判断を整理し、後者は並列化を試して「意味なかった」とドキュメントに残して撤退した。並行して beat-monitoring の scatter に FCF 軸を生やし、本棚(Turso)には会計と税務の本を10冊単位で流し込み、LINE 通知には「最高値比較カード」を足した。

今日のタイムライン

タイムライン

今日やったこと

1. Cloudflare Pages の 1MB Worker bundle 制限に当たって構成図A〜Dを書いた

eurekapu-nuxt4 で Cloudflare Pages にデプロイしようとしたら、Worker bundle の index2.mjs[chapter].mjs がそれぞれ 1.0 MB で無料枠の上限を踏んだ。$5 払っても 10 MiB にしか増えないと気づいた瞬間、増額ではなく構成自体を見直す方向に切り替わった。プランA(現状維持)/B(hybrid)/C(フロント・バックエンド分離)/D(HTML/JS 直配信・SSGメイン)の比較を HTML で書き起こし、最終的にプランDの方向へ。Phase 1 を Step 0〜Step 4 まで実装してデプロイしたが 404、ロールバックも失敗して Codex に原因の深掘りをさせた。

主な成果:

  • 構成A〜D比較の HTML 解説を memo/2026-06-16/ に保存
  • Phase 1 の Step 0〜4 を実装、デプロイまで実行
  • 失敗時の原因解析を Codex に投げる指示書を作成

詳細: Cloudflare Pages の 1MB Worker bundle 制限に当たって構成図A〜Dを書きながら設計判断を整理した


2. Nuxt Content v3 でビルド時間20分の壁に並列化で挑んだが意味なかった

mdx-playground の本番ビルドが20分かかる。タグページ(旧 [tag].vue)の削除で 13分40秒まで縮んだあと、concurrency: 8 を入れて並列化を試した。結果、むしろ遅くなって撤退。Codex に診させる前に Web で Nitro Issue #1447 を引き当てて、worker_threads が未対応で並列化が効かないと判明。Aプランに戻し、「効かなかった理由」をドキュメントに残した。

主な成果:

  • 旧タグページと関連リンクを全削除(13分40秒、32%短縮)
  • 並列化試行と撤退の経緯をドキュメント化
  • Nitro Issue #1447 の根拠を確認

詳細: Nuxt Content v3 でビルド時間20分の壁に並列化で挑んだが意味なかった話


3. beat-monitoring scatter に FCF 基準トグルを追加した(前日の積み残し)

memo/2026-06-15/scatter-fcf-extension-plan.md の積み残しを片付けた。朝の点検で BeatValuation 型の FCF 4 フィールドが抜けているねじれを発見、optional + nullable で追補。scatter ページに「指標基準」トグルを足して、Codex のレビューを4ラウンド回しながら最終形へ。Codex の致命的指摘2件(pe フィールド流用の危険性、ADR の式が逆)を取り込んで 5548092d / 47add3b6 の2コミットで決着。

主な成果:

  • BeatValuation 型に FCF 4 フィールドを追補
  • scatter に「指標基準」トグルを実装
  • Codex 4 ラウンドで設計の穴を埋め切った

詳細: beat-monitoring scatter に FCF 基準トグルを追加して 13 銘柄の割安成長ゾーンを別軸で読む


4. 裁断した実務書を Turso の本棚に毎日10冊単位で取り込んだ

book-knowledge-base プロジェクトで、yomitoku で OCR したマークダウンを /restructure-book で章節単位に再構築し、Turso にぶち込む流れを「会計分野10冊」「税務分野10冊」と分野別に流した。1バッチ約1時間45分。進捗マークダウンが実態と乖離していたので、朝イチで差分を整理してから流し始めた。SQL は書かないので、後で本棚を引くときは Claude Code に「○○について関連書籍から検索して要約して」と頼む構図。

主な成果:

  • 会計分野・税務分野で合計20冊強を Turso に取り込み
  • 進捗マークダウンを実態に合わせて整理
  • /import-batch 運用が分野横断で安定

詳細: 裁断した実務書をOCRしてTursoのDBに横串検索できる本棚を毎日10冊単位で増やす


5. LINE のポートフォリオ通知に「最高値比較カード」を足した

personal-notification-bots を見直して、LINE Flex Message の Bubble にバーチャートで7日/30日/90日の総額推移を描こうとした。300px幅では差がほぼ消えるので諦め、代わりに「最高値(過去のピーク)からの差分を%と日付で出す」カードに切替。履歴は Google スプレッドシートで管理しているので、そこから純粋関数 peakByPersonBefore で最大値を引いてカードに流し込む。Windows のタスクスケジューラの定期実行時刻も実値に合わせ直した。

主な成果:

  • Bubble カードに最高値比較カード(4資産分)を追加
  • 純粋関数 peakByPersonBefore で履歴から最大値を抽出
  • タスクスケジューラの定期実行設定を実値に合わせ直し

詳細: LINE Flex Message の Bubble カードに『最高値比較』を足してポートフォリオの天井からの落差を毎日通知する


6. BofA の「2030年メモリー$900B」予測を積み上げ棒チャートで読み解いた

Xで流れてきた BofA の長期半導体予測(2030年に半導体市場1.96T、うちメモリ900B)を積み上げ棒チャートにして、各期間の CAGR を点線で区切って妥当性を眺めた。SVG で描画して、メモリの構成比率を右軸で重ねた。

詳細: BofA「半導体市場は2030年に1.96T、うちメモリだけで900B」予測を積み上げ棒で読む — 妥当性チェック


今日の試行錯誤

#テーマ試したこと結果気づき
1Nuxt ビルド20分タグページ削除成功(20分→13分40秒、32%減)不要ルートの削除は確実に効く
2Nuxt ビルドconcurrency: 8 で並列化失敗(逆に遅くなった)Nitro Issue #1447 で worker_threads 未対応と判明
3LINE Bubble にバーチャートSVG をカードに埋め込む失敗(300px幅で差が消える)最高値比較カードに切替
4Cloudflare Pages のデプロイPhase 1 Step 0〜4 完走404、ロールバックも失敗Codex に原因解析を投げて翌日へ持ち越し
5BeatValuation 型朝の点検で FCF フィールド欠落を発見成功(型補完→テスト pass)データだけ入って型が抜けるパターンは目視で拾うしかない
6Codex の scatter レビュー4 ラウンド回した致命指摘2件、軽微指摘多数pe フィールド流用の罠を未然に防げた

今日の学び

  • 増額ではなく構成変更で逃げる: Cloudflare Pages の Worker bundle は $5 払っても 10 MiB。1MBで詰まったら有料化ではなくアーキテクチャを書き直すほうが筋がいい。
  • 並列化は前提条件を確認してから手をつける: Nitro が worker_threads 未対応なら concurrency を上げても無意味。試す前に Issue を引くべきだった。
  • HTML メモは設計判断に向く: 構成図を SVG で挟みながら長文を書くなら、Markdown より HTML の方が見やすい。
  • データだけ追加して型を放置すると朝に気づく: 前日 Phase 4 で valuation データ4列を入れたのに BeatValuation 型を更新し忘れていた。朝の点検で発見できなければ scatter のプロットが壊れていた。
  • Bubble カードに棒グラフは入らない: LINE Flex の幅制約(300px弱)で、複数本の棒を比較するチャートは差が見えない。1スカラーの値+日付の方が伝わる。

明日やること

  • Cloudflare Pages の 404 原因を Codex の診断結果から特定して Phase 1 を完走
  • beat-monitoring scatter の FCF 軸でユーザー検証の反応をチェック
  • 本棚への取り込みを「資産運用」「ファイナンス」あたりの分野で継続
  • LINE 最高値比較カードのテスト運用結果を翌朝確認

関連記事