2026年9月23日の開発日記 - Excel講座の台本を耳でレビューし、円換算のずれをウォンのレートまでたどる
2026年9月23日の開発日記
朝、ポートフォリオの自動集計を証券会社の画面と見比べたら、数字が合わなかった。 細かい銘柄のずれだろうと思っていた。 検算してもらうと、計算は1円まで合っていて、差の大半は通貨1つの換算レートから来ていた。
この日は、同じ形の食い違いに何度も出くわした。 Excel講座の音声では、私が「スクリプト」と言ったとき、Claude Code は生成スクリプトのコードを思い浮かべていた。 韓国の輸出単価は遅れているように見えたが、元の PDF から行そのものが消えていた。 思い込みを1枚ずつめくる日だった、と書くと大げさだろうか。
今日のタイムライン

Excel講座のリポジトリで約5時間、このサイトのリポジトリで約5時間、Chrome 拡張で約30分作業した。
今日やったこと
1. Excel講座の本人音声を全編再合成し、台本を耳でレビューした
講座の全編を章ごとの本人音声で合成し直すため、計画書どおり Windows と Mac で分けた。 Windows 単体だと合成だけで約8時間半〜9時間かかる見込みで、全体は188ジョブになった。 Claude Code は生成スクリプトのコードレビューを走らせたまま、確認なしに合成を先へ進めていた。 私が見てほしかったのは読み上げ台本の文字列で、基準は「ポッドキャストのように耳だけで分かるか」だった。
主な成果:
- Opus 5.5 の fork エージェント5体に台本を読ませ、出てきた136件の判断に私が全部答え、TTS スキルの references に記録させた
- 制作画面に完了チェックとフィードバック欄を作らせ、D1 に保存するようにした
- 最初のフィードバック(番号の読み上げ)は、101ジョブ中その1ジョブだけを72秒で作り直して差し替えた
- 別セッションで、R2 に上がっていなかった124ファイルを上げ、CI を 07-28 以来初めて全ステップ通した
詳細: Excel講座の本人音声を全編再合成した日(前日の分担設計は Mac と Windows の分担)
2. ポートフォリオの円換算のずれを、ウォンのレートまでたどった
朝の自動集計の評価額が、証券会社Aの画面の円換算額と合わなかった。 スクリーンショットを渡して検算してもらうと、集計はスプレッドシートの10行の合計と1円まで一致した。 保有数量のずれは2か所あったが、差の一部にとどまった。 残りのほぼ全部は、ウォンのレート(100ウォンあたり 11.15円と 11.60円)の違いから来ていた。
主な成果:
- シートの数量と取得単価を画面と一致させた
- 修正版を LINE に流す前に、米国株の価格日付が 9/21 に戻る不具合を、テストを先に足す形で直してもらった(全68件通過)
詳細: ポートフォリオ自動集計と証券会社の円換算額が合わない理由
3. 韓国の月次輸出 PDF から単価の行が消えていた
輸出単価の先行値(DRAM と NAND)が 2026-06 のまま止まり、ほかの輸出統計より2か月遅れていた。 7月号と8月号の PDF を取り直させると、どちらにも単価の行が無かった。 取り込みが遅れていたのではなく、取り込む値が PDF の側に無かった。 手順書の「毎月取れる」という一文を直し、単価の先行値を掲載終了として扱うことにした。
主な成果:
- 手順書と統計チェーンの委譲文を直し、
6f29ab8fと4cd4c9a4の2コミットにしてプッシュした - KDI の検索語は、パーセントエンコードした URL で直接叩く形にした(Git Bash で引数が化けるため)
詳細: 韓国 MOTIE の月次輸出 PDF から単価の行が消えていた
4. ローカルLLM用の GPU 換装を検討した
BTO ショップの構成にメモリ128GBを積む案を相談すると、DGX Spark と比べる選択肢のなかでいちばん中途半端だと返ってきた。 私が「8GB しかない」と言っていたのは、メインメモリではなく VRAM だった。 5060 Ti と 5070 Ti はどちらも VRAM 16GB で、差額は約10万円。 説明を聞いて 5070 Ti に傾いたが、電源の交換が要る。
主な成果:
- 電源ケーブルの形は画像からも仕様からも分からず、ケースを開けて確かめるしかないと分かった
- Mac Studio M5 Ultra も比べた。「512GB なら 4bit で余裕」は誤りで、DeepSeek V4.1 Flash の派生版は 4bit でも 554GB あると訂正された
詳細: ローカルLLM用のGPU換装を検討した(前日の検討は GPU スロットと DGX Spark の再確認)
5. Codex のモデル更新、ステータスライン、動画ダウンロード拡張
Codex のモデル一覧に GPT-6 Sol が出ていた。
コミット前レビューのフックだけが gpt-5.6-sol のまま残っていたので、gpt-6-sol に切り替えてもらった。
Claude Code のステータスラインにはエフォートのレベルを足してもらった。
自作の動画ダウンロード用 Chrome 拡張では、yt-dlp が JS ランタイム無しの警告を出していた。
deno を上げて native host から絶対パスで渡すと決め、同じ動画で mp4 を保存できた。
主な成果:
- フック、ステータスライン、拡張の修正をそれぞれコミットした
- 2台運用では、deno のように手元へ入れたものは Mac 側で別に入れる必要があると確かめた
詳細: Codex を GPT-6 Sol へ上げ、yt-dlp の警告を deno で直した
6. ニュースや長文記事の元ネタを一次情報までたどった
ある長文の解説記事を要約して非公開で保存し、Web の裏取り17件と Codex レビューにかけた。 裏取りは誤り0件で、Codex の指摘で本文を7か所直させた。 それでも、「8層化」を構造的な方向と読み替えた箇所は、私が「供給不足からの妥協では」と指摘するまで残っていた。 ほかに、SNS の数字入りニュースを、転載、Bloomberg の報道、社内プレゼン資料の順にたどらせた。 画像生成モデルの GGUF 版を試せる Space は、app.py まで読ませて中身を確かめた。
7. 独自ドメインのメール送信を Cloudflare に寄せられるか調べた
メール送信サービスAの SMTP キーの画面を見ても、自分で登録したのかを覚えていなかった。 確かめてもらうと、キーは 2026-02-21 に私が作ったもので、一度も使われていなかった。 「全部 Cloudflare で完結できるはず」という記憶は当たっていたが、Workers の有料プランが条件のひとつだった。 今回は現状維持に決め、判断記録を残した。
詳細: 独自ドメインのメール送信は Cloudflare だけで完結できるか
8. X のツイート内でスライドをめくる実験
SlideShare のリンクは、X のツイート内でスライドをページ送りできる。
仕組みは twitter:card=player のメタタグと iframe だった。
同じメタタグを自サイトに出してデプロイし、X に投稿した。
埋め込みにはならず、小さなリンクカードで表示されたので、結果ごと公開記事にまとめた。
詳細: X のツイート内でスライドをめくる Player Card を自サイトで試した
今日の試行錯誤
| # | テーマ | 試したこと | 結果 | 気づき |
|---|---|---|---|---|
| 1 | 台本レビュー(10:49) | 合成と並行して、生成スクリプトのコードレビューを回した | 見てほしいのは台本の文字列だったので止め、fork 型5体でレビューし直した(判断136件) | 「スクリプト」の一語で、指すものが食い違っていた |
| 2 | 音声チェックの保存(10:49) | 制作画面の完了チェックを D1 に保存する実装 | 権限エラー(7403)とテンプレートの閉じタグ不正で止まったが、直してテスト13件が通った | 失敗は2つとも別の原因だった |
| 3 | CI の修正(10:59) | インストール失敗(lockfile の設定不一致)を直した | 後ろに Build、Unit tests、E2E の問題が隠れており、5コミットで全ステップが通った | 最初の失敗が後続の失敗を隠していた |
| 4 | 表の No. 列(16:00) | No. 列を足した表を画面で確認した | No. 列が表の約3分の1を占めた。原因は th:first-child{width:45%} | 列を足すと、先頭列用の CSS が別の列に当たる |
| 5 | 円換算の差(07:51) | 保有数量の修正で差を埋めようとした | 差の一部しか縮まず、大半はウォンのレートの違いだった | 計算、数量、レートの順に切り分ける |
| 6 | 修正版の配信(07:51) | LINE に流す前に dry-run を回した | 価格日付が 9/21 に戻っていたため、テストを先に足して直してから流した(全68件) | 流す前の試し実行で不具合を拾えた |
| 7 | 単価の取り直し(06:47) | 7月号と8月号の PDF から単価の行を探させた | どちらにも行が無く、掲載終了として手順書と委譲文を直した | 古くなっていたのは手順書の前提だった |
| 8 | GPU の選定(09:13) | 写真なしで電源ケーブルを判定できないか聞き直した | 画像からも仕様からも分からず、ケースを開けるしかない | 足りないのがどのメモリかを先に確かめる |
| 9 | 拡張の修正(14:44) | deno を 2.9.7 に上げ、native host から絶対パスで渡した | ボタンが消えたが、原因フォルダを消して手動でリロードし復旧 | 手元に入れたツールは機体ごとに入れ直す |
今日の学び
- 自動集計と証券会社の円換算額がずれたら、計算、入力の数量、換算レートの順に切り分ける。今回は計算が1円まで合い、残りの大半はウォンのレートだった
- 系列が止まって見えたとき、原因は取り込みの遅れとは限らない。元の PDF から行が消えていて、古くなっていたのは手順書の前提のほうだった
- 事実の正誤を照合する裏取りと、原文の解釈を問う読みは別の作業だった。17件の裏取りで誤りが0件でも、読み替えは指摘するまで残っていた
- 実行スクリプトが台本の文で完成済みを判定するので、フィードバック1件の修正は101ジョブ中1ジョブ、72秒の作り直しで済んだ