2026年10月4日の開発日記 - Excel講座のフィードバック消化と、問い合わせフォームの本番公開

daily-log

2026年10月4日の開発日記

この日は、画面に出た結果と実際の状態が何度も食い違った。 GitHub は 504 を返したのに、マージは通っていた。 音声合成は exit 0 で終わったように見えたのに、実際は失敗していた。 秘密鍵は一覧に名前が並んだのに、値は空だった。 作業の大半はExcel講座と財務諸表講座(eurekapu-nuxt4)で、記録に残ったのは8セッションである。

今日のタイムライン

タイムライン

今日やったこと

1. Excel講座の3セクションでフィードバックを反映した

命名ルール、基本機能、設計の原則の3セクションで、自分が返したフィードバックを Claude Code に直させた。 各セクションとも修正計画書を作らせ、Codex のレビューを通してから判断フォームで方針を選んだ。 基本機能と設計の原則は、ワークツリー(3220番、3221番)で他のセッションと作業を分けてから main へ取り込んだ。 基本機能の c04-s01 では、空の列のチェック欄に差が出ることを2回指摘した。 2回目でようやく、Claude Code のチェックは修正2のシートとの一致を見ていて、自分は仕訳の貸借を見ているつもりだったと分かった。

主な成果:

  • チェックを「check 貸借一致」と「check 修正シートと一致」の2行に分けさせた(自分の提案)
  • 基本機能をデプロイした(10:05、163秒)
  • 設計の原則は10区間、12回分のフィードバックをすべて閉じた

詳細: Excel講座の動画シーンをセクション別フィードバックで直す


2. 財務諸表講座の動画プレビューを取り込み、TTSで仮の声を付けた

Web 版セッションで作った財務諸表講座の動画プレビューと計画書(PR #34、18ファイル、+2,356行)をマージさせた。 GitHub は 504 を返したが、マージ自体は通っていた(d4679eca)。 取り込み時に受けていなかった Codex レビューを後から受け、指摘は1件だった。 Irodori-TTS で台本8クリップを合成し、音声のマニフェストを台本の文の区切りに合わせる修正を入れさせた(b0077b7e)。 導入2でリンゴの仕入れが投資活動に入っている点を「本当ですか」と問い返したところ、素材自体が注意書き付きで意図的にそうまとめていたと分かった。 そこで立て付けを自分から渡し、語りで明言する形に直させた。

主な成果:

  • プレビューの見た目を Excel の画面再現にそろえ、完了とフィードバック欄を付けた(60b832ea)
  • 画面再現で初回だけ完了とフィードバックが出ない件を、トークン取り直しの修正で直させた(c8a8a11a)

詳細: 財務諸表講座の動画プレビューにTTSで仮の声を付ける


3. AIの活用章を作り直し、音声合成をMacBookに任せた

Excel講座の「AIの活用」4区間について、Claude Code に計画を作らせた。 判断フォームでは4問とも推奨の A を選んだ。 台本を書かせて実物の Excel で確かめると、7/7、24/24、23/23、28/28 で一致した。 音声合成とユニットテストは、Windows 側でメモリ不足になって止まった。 そこで合成は MacBook のセッションに指示書を送って任せ、Irodori-TTS で26本を作らせた。 全コマを照合する回帰テストが CPU を約830秒使っていたので、修正箇所だけに絞るよう指示した。 軽いテスト5ファイル448件は39秒で通った。

主な成果:

  • Mac から届かない報告は、ブリッジのサーバーから Windows 側が取りに行く方法で回収した
  • 流す区間の選び方を細かくする実装計画を、翌日の Google タスクに登録した

詳細: Excel講座の「AIの活用」章を作り直す


4. 会社概要と問い合わせフォームを本番に公開した

朝のセッションでは、有料版で使う決済手段の入れ方を Claude Code に調べさせた。 その場の調べでは、QRコード決済Bは決済代行サービスAの設定変更だけで入れられる。 EC系決済Cは直接契約して別の仕組みを作る必要があり、比較表を足したうえで「決済代行サービスA経由で入れる」と結論をドキュメントに残した。 次のセッションでは、会社概要ページと問い合わせフォームを本番に公開した。 メール送信APIの鍵は ! 付きで実行したため入力を聞かれないまま空で登録されており、自分で気づいて止め、上書きした。

主な成果:

  • 迷惑送信への備えとして Turnstile と1日の受付件数の上限を入れた
  • メールアドレスを会社概要、プライバシーポリシー、問い合わせページから消した
  • 残りの3件を Google タスクに入れた(期日10月5日)

詳細: 会社概要と問い合わせフォームを本番公開した記録


5. 前日分の日記をデプロイし、止められていたコマンドの原因を外した

朝は mdx-playground で10月3日分の /make-diary を回し、push とデプロイまで済ませた。 本番デプロイは13分46秒で終わり、ヘルスチェックも通った。 そのあと、_redirects の差分を見るコマンドが許可されない件の原因を調べさせた。 原因はプロジェクトの .claude/settings.json 11行目にある deny ルールだった。 Claude Code 自身の設定を書き換える編集は auto mode で止められたので、その1行は自分で消した。 消したあとは、同じ種類のコマンドが止められずに通ることを確かめさせ、コミットして push した。


今日の試行錯誤

#テーマ試したこと結果気づき
1PR の取り込み(06:45)PR #34 をマージさせたGitHub が 504 を返したが、マージコミット d4679eca はできていたエラー表示より先に、マージコミットの有無を見る
2仮音声の合成(06:45)はじめにの仮音声を Irodori-TTS で合成させた「numpy が見つからない」で失敗。直前の exit 0 は tail の終了コードだった。その後、6クリップ、128秒分を合成できたパイプの後ろの tail は元のコマンドの失敗を隠す
3画面再現の初回表示(06:57)初回だけ完了とフィードバックが出ない件を、トークン更新の競合と見て直させた失敗時に待ってから取り直す修正(c8a8a11a)で、切れた直後の 500 から回復した初回だけの不具合は、トークンの更新時期を疑う
4コミットの作り方(07:47)最初のコミットを一時インデックスで作らせた直後に別セッションがコミットし、その変更10ファイルを打ち消す形になった。push 前だったので作り直した(4672be4f、15ファイル)並行セッションがある日は、相手のコミットを土台にする
5チェック欄の差(07:52)空の列の差を、E列をコピーまで空にする形で直させたD列の差が残り、再度指摘した。チェックを2行に分けて決着した(a4e65f86)「借方/貸方」だけでは、何との一致を見ているか読めない
6秘密鍵の登録(09:27)wrangler pages secret put を入力欄から ! 付きで実行した空の値が登録された。Claude Code は一覧を見て「登録された」と報告した。自分で止めて上書きし、テスト送信で Gmail に2通届いたことで確かめた名前が一覧に並んでも、値が入った証拠にはならない
7問い合わせフォーム(09:27)Turnstile を組み込ませた本番の CSP が外部スクリプトを制限していたので、許可設定を足して本番で動作を確かめた本番だけの制限は、本番で確かめるまで見えない
8音声合成の置き場所(09:53)音声合成とユニットテストを Windows で裏で回させたメモリ不足で止まり、音声0本、テスト結果なし。MacBook のセッションに合成を任せた重い合成は、別の機体に逃がせる
9Mac との連絡(09:53)Mac から報告を送らせ、SSH でも接続を試させた報告は届かず、ブリッジのサーバーから取りに行って回収した。SSH は「キー未登録」に見えたが、既存の鍵を -i で指定すると入れた鍵を新しく作る前に、既存の鍵を指定して試す
10テストの範囲(09:53)計算エンジンと全コマの回帰テストをまとめて流させたCPU を約830秒使っても終わらなかった。軽いテスト5ファイル448件に絞ると39秒で通った直した範囲だけを流す仕組みが要る
11テストの待ち方(10:19)テストを流して待った22分間出力なしで止まっていた。vitest のプロセス2つを止め、関係ファイルを直接流して486件が通った出力が止まったら、待つ前にプロセスを見る

今日の学び

  • 「失敗した」に見える表示と「成功した」に見える表示は、どちらも実物を見るまで信用できない。504 のマージは通っていて、exit 0 の合成は失敗していて、一覧に並んだ鍵は空だった。
  • チェック欄は、見ているものごとに行を分けて名前を付ける。分けたら、コピー直後の D列も「check 貸借一致」はゼロになった。
  • 直したことと、フィードバックを閉じたことは別々に確かめる。設計の原則では、完了の印が当初2区間にしか付いていなかった。

関連記事

#日記#Excel講座#Claude Code#TTS#問い合わせフォーム