財務諸表講座の動画プレビューにTTSで仮の声を付ける:PR #34 の取り込み、後追いの Codex レビュー、完了とフィードバック欄
財務諸表講座の動画プレビューにTTSで仮の声を付ける
朝、「GitHub にプッシュされている変更があるはず。34番だったか」と Claude Code に聞いた。
返ってきたのは、PR #34 は開いたままで、まだ main にマージされていないという答えだった。
中身は、Web 版のセッションで作った財務諸表講座の動画プレビュー(No01「出資」のサンプル)と計画書である。
ブランチは claude/fs-video-course-plan で、コミット2本、18ファイル、+2,356行、削除なし、コンフリクトもなかった。
この日はここから、取り込み、レビュー、音声の合成、表示の確認と進んだ。 いちばん手が止まったのは、そのあと書かせた導入動画の下書きで、リンゴの仕入れが「投資活動」に入っていたときである。 自分の教材で、そんな分類をしたはずがない。 そう思って聞き返した。
マージは 504 でも通っていた
「マージしてローカルに取り込んで、中身を確認したい」と頼んだ。
PR はドラフトのままでマージできなかったので、先にドラフトを解除してもらった。
マージを投げると、GitHub は 504 を返した。
それでもマージ自体は通っていて、マージコミット d4679eca ができていた。
ローカルへは rebase で pull させ、まだ push していない手元のコミットが上に残るようにした。 PR に付いていたテスト2本を回し、dev サーバーの様子も確かめてから、プレビューを Chrome の前面タブに開いてもらった。 再生位置は冒頭(0:00)に戻してあった。
後追いの Codex レビューと、台本8クリップの合成
取り込むときに、Codex のレビューを通していなかった。 そこで「TTS で音声を生成して。あと Codex のレビューも受けておいて」と続けて頼んだ。
Codex のレビューは裏で回し、その間に tts-narration スキルで合成を進めさせた。 台本の JSON(8クリップ)はプレビュー画面から取り出し、Irodori-TTS(本人の声)で合成した。 音声がプレビューに載ったかを確かめる段で、音声のマニフェストが台本の文の区切りとずれていた。 マニフェストを文の区切りに合わせる修正とユニットテストを足してもらうと、API はずれのないマニフェストを返すようになった。 プレビューは声に合わせて動いた。
Codex の指摘は1件だった。
Claude Code の見立ては「決算振替の回を作るときに直せば足りる」で、私は y とだけ返した。
修正は b0077b7e としてコミットし、前からあった未 push のコミットと合わせて2本を origin/main へ push させた。
コミット時の Codex レビューは、critical と high の指摘なしで通った。
Excel の画面再現に見た目をそろえる
次に、Excel の画面再現(/dev/excel-scene)を見せて頼んだ。
「セクション、チャプター、区間が要るかどうかは判断してほしい。見た目はこっちの Excel のプレビューと全部そろえてほしい」。
左の一覧は「セクション → 動画」の2列になり、区間の列は付けなかった。 カメラのタイムラインも入れていない。 ヘッダー右端の段階のチップが切れて見えたので確かめさせたが、レイアウトそのものは正しかった。 幅 1280px ではツールバーが 40px ほどはみ出していたので、折り返すようにした。
続けて依頼を貼り付けると、プレイヤーの上に完了のチェック、下にフィードバック欄、左の一覧に完了マークが付いた。
API は fs-no-01 を受け付け、知らない ID は弾く。
コンソールエラーが出ていないことを確かめ、lint とテストを通してから、60b832ea として push させた。
この欄は、あとで私が動画を1本ずつ見て感想を書き込む場所になる。
「表」と「元帳」の読みは直さない
少しあと、別の変更を push したところで、No01 の音声で「表」が正しく読まれているかを確かめてほしいと頼まれた。 実際に「表」と読まれている箇所もあるし、「元帳」がうまく発音できていないのも、もう確認していた。 ただ、この音声は最後に全部、私が自分の声で入れ直す前提である。 台本さえ合っていれば、Irodori-TTS がうまく発音できなくても問題ない、と答えた。
その直後、Codex のレビューで、ある行がこの方針と食い違うという medium の指摘が出た。 Claude Code も妥当と見て、そこを直してもらった。
仮の声の合成で踏んだもの
この日はこのあと、コクピットの取引図22本の移植、はじめにと導入9本の下書き(サブエージェント5体を並列で派遣して書かせた)、期中取引 No01〜No19 の台本へと進んだ。 音声はどれも、尺を本物の語りで確かめるための仮の声である。
地味な失敗もあった。
はじめにの仮の音声が「numpy が見つからない」で落ちていた。
uv の環境が合っておらず、その前に見えていた exit 0 は、パイプの後ろにある tail の終了コードだった。
そのあと、はじめには6クリップ、128秒で合成が済み、グリッド検査も通った。 導入は1本の合成に約5分かかった。 9本とも検査を通り、台本との食い違いもなかった。 机が動く3本(はじめに、導入8、導入9)は、本物の声の時刻で全33コマを撮り直した。
途中では、別のセッションのコミットで git のロックがかかっていた。 ロックは消さずに、空くのを待って入れ直させた。 No06 と No07 は合成し直す場面があり、台本のすべての文が句点で終わっているかを確かめる検査を足してもらった。 最後は No16〜No19 の合成も終わり、期中取引の19本がすべて仮の声付きで再生できるようになった。
リンゴの仕入れは投資活動か
導入2の下書きを確かめたとき、Claude Code は「リンゴの仕入れは投資活動か」を論点として拾っていた。 それでも下書きはそのまま残した。 素材の静止画そのものが、リンゴの仕入れを投資活動の下に置いており、語りだけ直すと絵と声が食い違う、という理由である。 判断は私に回し、ほかの質問とまとめて最後に挙げる扱いになった。
下書き10本ができ、はじめにのページを開いてもらったところで、私は聞いた。
リンゴの仕入れは投資活動にしているはずないと思うんですけど、本当ですか?
答えは「本当です」だった。 元の素材の3か所で、リンゴの仕入れが投資活動に入っていた。 静止画では「② 投資活動」の下に、「商品の仕入れ」(仕入先にお金300を払ってリンゴを受け取る絵)と「配達車両の購入」が並んでいる。
そこで、立て付けを貼り付けて渡した。 図の説明は投資活動のまま残し、語りでは、商品の購入は本来は営業活動であり、ここではお金の動きを一歩ずつ追うために便宜上投資活動に含めている、と明言する。 財務活動には銀行(間接金融)と投資家(直接金融)の両方が出てくることも、はっきり言わせることにした。
直す途中で、図の下に注意書きがあることも分かった。
注:キャッシュ・フロー計算書上では商品の購入は営業活動ですが、ここではモノの購入を投資活動として一括りにしています
素材は間違えていなかった。 仕入れは、注意書きを付けたうえで、わざと投資活動の側にまとめてあった。 台本は、各区切りの末尾に文を足す形で直させ、合図の位置は動かさなかった。 導入6はもともと仕入れを営業活動として扱っていて、説明が食い違わないことも確かめた。
引き継ぎテキストと /compact
長いセッションだったので、区切りで2回、進捗の文書を更新し、引き継ぎをダウンロードディレクトリのテキストに書き出させた。
1回目は fs-video-handoff-2026-10-04.txt、2回目は fs-video-handoff-2026-10-04b.txt で、1回目のファイルは残してある。
どちらも、書き出したあとに /compact をかけ、そのファイルのパスを貼って続きを始めた。
1回目の /compact のあと、Claude Code の報告が英語になった。
「日本語で教えて。何を聞かれてますか?」と聞き返すと、聞かれていたのは、変更をコミットして push してよいかだった。
初回だけ完了とフィードバックが出ない
完了とフィードバックの欄では、読み込みでも少しつまずいた。
別のセッションでは、Excel の画面再現で、最初の読み込みだけ完了とフィードバックが出ない件を調べさせた。
API ごとに wrangler のプロセスを起動しており、そのログイントークンの更新がぶつかっている、というのが Claude Code の見立てだった。
読み込みに失敗したら少し待って取り直すよう直し、c8a8a11a としてコミットした。
トークンが切れた状態での初回読み込みは、その場では確かめられなかった。
あとでトークンが切れた直後に 500 が1回出て、取り直しの経路が動くことを確かめた。
なぜ毎回 wrangler を起動するのかも聞いた。
手元で確認するための画面で、2台で記録を共有できれば足りるという割り切りだと分かり、今のままでいいと伝えた。
push のときに出た依存パッケージの脆弱性の通知(59件)も調べさせ、修正版が出ているものを上げた。
アラートは59件から16件に減り、この経緯は別の非公開記事に残した。
財務諸表のプレビューでも、再読み込みしても表示がうまくいかない場面があった。
自動で読み直す修正が入ったが、それが根本的な対応になっているのかと聞くと、答えは「いいえ」だった。
止まったままになる症状を消すだけで、前の説明には誤りもあったという。
課題があることは認識しておきたいので、原因3つ、調べた経緯、直し方の案を .claude/issues/ に記録させた。
学び
- GitHub が 504 を返しても、操作が失敗したとは限らない。マージコミットができているかを先に見る。
- パイプの後ろの
tailは、元のコマンドの失敗を exit 0 で隠す。成否を判断するときは、元のコマンドの終了コードを見る。 - 素材が自分の記憶と違うときは、まず素材の側を読む。リンゴの仕入れは、注意書き付きで意図して投資活動に入れてあった。
明日に回したこと
最後に、明日(10月5日)の Google タスクを3件入れてもらった。
- はじめに、導入9本、期中取引19本のフィードバックを全部読んで、修正計画を作る
- 決算の台本(No20〜No22)を書く
- 私の判断待ちの5件を決める