daily-log

2026年5月16日の開発日記

土曜日。午前中は昨日の積み残しに着手して、Part 2 投資判断クイズ75問のVOICEVOX音声化パイプラインを本番デプロイまで一気に通した。午後はマイクロン(MU)の決算「期待との差」を可視化するSVGチャートを新規実装して、ユーザー視点での違和感を拾いながら11回ほどClaude Codeに作り直してもらった。

人間が手を動かしたのは「音声化やっていきましょう」「マージンっておかしい」「数字大きく」程度の判断だけで、SVG座標計算もWAV合成スクリプトもgrep+置換もClaude Codeに丸投げした。判断する係と実行する係の分担が今日もうまく回った。

今日のタイムライン

タイムライン

今日やったこと

1. Part 2 投資判断クイズ75問のVOICEVOX音声化パイプライン

朝、昨日の積み残しに着手。既存のA/B/C用JSONベース音声化スクリプトをTSファイル対応に拡張し、誤答パターンDも合成対象に追加。investment-1/2/3の全75問(25+18+32)を順次合成→MP3変換→Cloudflare R2へ並列アップロード→Nuxtページの18箇所にnarrationConfigを一括追加→localhost:3200と本番サイトで音声再生フル確認→デプロイ(5.4分)まで一気通貫で完走。

主な成果:

  • WAV 150問合成、151ファイルMP3変換、R2アップロード完了
  • 18ページ分の narrationConfig をPython一括置換で挿入
  • ローカル・本番の両方で音声再生フロー検証
  • PowerShellのhere-string失敗からPython代替への切り替え経験
  • INV-NEST prefix typo(正しくは NESTEGG)を404から発見・修正

詳細: 投資判断クイズ75問をVOICEVOXで音声化:WAV合成→MP3→Cloudflare R2まで一気通貫の自動化ログ


2. マイクロン決算「期待との差」をSVGチャートで可視化

午後、投資の教科書 ch08(投資原則)ページに、マイクロン(ティッカー: MU)の決算「期待との差」を可視化する Part2Ch8MuExpectations.vue を新規実装。4指標(売上・EPS・ガイダンス売上・ガイダンスEPS)× 3四半期の実績vs予想を並列棒で並べ、株価バンドを5つ目のチャートとして横長で統合。レスポンシブの目次もフローティングFAB+スライドパネルに改修。

主な成果:

  • 11回のイテレーションで完成(値ラベル衝突→FY表記修正→株価終値表示→未発表四半期追加→縦積み→バッジ位置→整数化→数字拡大)
  • 「マージン」誤用の修正(予実の差は「上回り幅」「乖離」「サプライズ%」に置換)
  • レスポンシブ時のフローティング目次(FAB+スライドパネル)の実装
  • 営業CFマージン・安全マージンは会計用語として正規なので残す判断

詳細: マイクロン決算の「期待との差」をSVGチャートで可視化する


3. マイクロン売上・EPS四半期推移チャート(3本ペア表示)

「期待との差」図とは独立した新規図 Part2Ch8MuFutureProjection.vue を作成。売上とEPSの四半期推移を、事前アナリスト予想・実績・会社ガイダンスの3本ペアで縦に積んだ。表示モードを pair / reported-only / future-only の3パターンで分岐させ、過去・現在・将来をひとつのコンポーネントで切り替え可能に。

途中、半年前のコンセンサス予想の所在をClaude Codeに聞いたら曖昧な回答が返ってきて、WebFetchで実画面確認後に訂正させる一幕もあった。AIの曖昧な記憶を鵜呑みにしないこと、を再確認した。

主な成果:

  • 実績のみ → ペア化 → ガイダンス追加 → FY2028削除と4段階で構造を組み替え
  • 凡例とスタイルを3バー対応に拡張
  • AIに誤情報を答えられて訂正させた経緯を記録

詳細: マイクロン四半期推移チャート:事前予想・実績・会社ガイダンスの3本ペア表示


今日の試行錯誤

#テーマ試したこと結果気づき
1VOICEVOX一括合成A/B/C用JSONスクリプトをTS対応+Dパターン追加に拡張成功既存スクリプトの拡張は新規作成より速い
218ページの一括置換PowerShellのhere-stringで narrationConfig 挿入失敗(引用符エスケープで詰まる)Windowsの長文置換はPython一択
318ページの一括置換Pythonに切り替えて再実行成功最初からPythonでよかった
4R2アップロード_common先行→investment-1/2/3を3並列でアップロード成功並列実行で数分で完了
5音声再生確認localhost:3200 でautoモード→開始ボタン一部失敗(404)INV-NEST prefix typoを耳と目で発見
6prefix修正INV-NESTNESTEGG に修正成功人間は違和感を拾う係、AIが原因特定
7チャート値ラベル並列棒の真上にラベル配置失敗(隣バーと重なる)予想は左外側、実績は右外側へ
8四半期表記「2025 Q4」と書く失敗(カレンダーとズレ)マイクロンは8月決算、FY表記が必要
9株価バッジ下落/上昇を色分け+矢印失敗(雑なメッセージライン)終値を直接表示に置換
105チャート配置横並びで配置失敗(1つあたり狭く潰れる)全部縦に積む、横長1160pxで
11サプライズ%バッジチャート外(四半期ラベル下)に配置失敗(視線が散る)チャート内・バー上に移動
12バッジと値ラベル衝突同じ高さに重ねる失敗(被る)20pxマージンを取って積層
13「マージン」誤用「15〜20%の大幅マージンで上回る」と表現NG(予実差をマージンとは言わない)「上回り幅」「乖離」「サプライズ%」に置換
14半年前のコンセンサス予想の所在AIに口頭で質問曖昧な回答が返るWebFetchで実画面確認後に訂正させた
15将来予想チャート実績のみの2チャート不十分ペア化→ガイダンス追加→FY2028削除と段階的に整理

今日の学び

  • VOICEVOXパイプラインの汎用性: テキスト→音声→クラウドストレージ→再生エンドポイントの構造は、投資判断クイズでも税務通達でも同じ。コンテンツを差し替えるだけで再利用可能
  • PowerShellのhere-stringは長文置換と相性が悪い: 最初からPythonで書く
  • 音声品質チェックは耳が頼り: 75問全てを聞いたわけではないが、サンプリングで違和感を拾える
  • チャートのレイアウトは一発で決まらない: 11回の作り直しを前提に、SVG生成を関数化しておくと差し替えが早い
  • 「マージン」は予実差には使わない: 営業CFマージン、安全マージンは会計用語として正規。期待値との差は「上回り幅」「乖離」「サプライズ%」を使う
  • AIの曖昧な記憶は信じすぎない: 特に有料サービスの機能詳細は、WebFetchやagent-browserで実画面を確認する
  • 未発表四半期もチャートに入れる: 「これから当てるべき数字」を視野に入れると、過去のトレンドが意味を持つ
  • データがあるから載せるな: 読み手が読める範囲だけ残す。FY2028を切った判断と同じ

明日やること

  • narrationConfigのデフォルト値を親コンポーネント側に寄せ、ページ側で書かなくても動くようにする
  • R2に存在しないキーを叩いた瞬間にコンソール警告を出すフォールバック実装
  • WAV→MP3変換のビットレート再検討
  • その他の積み残し(業種別実例クイズの状況確認は完了済みなので除外)

関連記事