キャッシュフロー精算表の学習教材づくり:集約シートの差し込みと個別論点の動画18本を複数セッションで並走させた記録
キャッシュフロー精算表の学習教材づくり:集約シートの差し込みと個別論点の動画18本を複数セッションで並走させた記録
CF精算表のステップ学習の動画は、完成した集約シートを「これが集約のシートです」と見せ、あとは参照先として使っているだけだった。 作り方を一度も教えていない。 そう指摘すると、Claude Code は台本を確かめ、そのとおりだと返してきた。
この穴を埋める作業と、個別論点の講義ノートと動画を作る作業を、この日は別々のセッションで同時に進めた。 同じ CF精算表のファイル群を複数のセッションが触る。 ぶつからずに最後まで行けるのかは、この時点では分からなかった。
集約シートの作り方は各ステップ側に入れるべきだった
きっかけは、Step 1 の画面を見ながら新しい演習の案を検討していたことだった。 取引モジュールを「パッケージとして受け取る」前提にすると、Step 7(総合演習)とほぼ同じになる、と Claude Code は指摘した。 別の演習として立てる意味が出るのは、取引モジュールが無い状態から始める場合だけになる。
自分は、本来はそれぞれのステップ側で集約シートの作り方を見せるべきだと考えた。 運転資本の集約や貸付金の集約を作るところが、各論点のステップ学習のどこかに入るはずだ。 たとえば Step 3 の区間 A でそれを説明しておかないと、区間 B で集約シートを取り込む話とつながらない。
この判断をもとに、計画書を2本作らせた。
- 既存のステップ(2a、3a、4a、5a)に集約シートの作り方を差し込む改善計画
- 会計ソフトA の試算表から始める総合演習の計画
講義ノート(step2〜5)も、集約には1〜2回触れるだけだった。 2本とも Codex にレビューさせ、致命的な指摘は出なかった。 判断事項は各3件で、計画書 HTML の3択ボタンで答えた。 6件とも推奨案 A を選んだ。
Codex のレビューは、3つのセッションで起動からつまずいた
この日、計画書の Codex レビューは起動の段階で何度もつまずいた。 症状と回避策は、セッションごとに少しずつ違った。
| セッション | 症状 | 回避策 |
|---|---|---|
| 集約シートの計画(14:00) | 最初の実行が失敗し、公式版のラッパーに切り替えると引数 -(標準入力)を受け付けない | mise 版の codex に本文を標準入力で渡す |
| 個別論点の計画(14:03) | サンドボックスの起動に失敗 | 既知の問題として -c windows.sandbox=unelevated を付けて再実行 |
| ジャンプ画面の計画(15:09) | サンドボックスが setup refresh had errors を返す | 同じ症状の issue が同日に残っていたので、それを読んで本文を標準入力で渡す |
14:00 のセッションは、ラッパーで再実行する前にルールどおり issue を残していた。 個別論点のセッションでは、Codex が網羅表を「講義ノート」と「動画」に分けるよう指摘し、それを反映して再レビューを通した。
参考書の論点との対応表を探し、計画書に並べた
14:03 のセッションでは、参考書の論点と CF精算表のステップ学習の対応を整理したドキュメントを探させた。
見つかったのは memo/2026-09-16/cf-qa-coverage-map.md で、表の本体は同じフォルダの HTML にあった。
自分は、これをステップ学習の計画書にマージせず、並列で入れるよう指示した。
個別の論点だと分かるように、セクション名には「個別」と入れてもらった。
連結の論点は、その次に考える。
既存の講義ノート(lessons/cashflow-statement)と突き合わせると、CF計算書のしくみの論点は本文にほぼ入っていた。 抜けていたのは、開示の3問と当座借越の1問だった。 対応表で「未カバー」と出ていたのは、Excel の取引モジュールに割り当てがあるかどうかで数えていたからだ。 講義ノートの本文に書いてあるかは、数に入っていなかった。
ワークツリーで分け、引き継ぎは /clear で受けた
CF精算表の別の計画を2つのセッションが同時に進めていた。
ほかのセッションもキャッシュフローのファイルに当たる可能性があるので、自分はワークツリーで作業するほうがいいと考え、そうしてもらった。
個別論点は cfws-kobetsu ブランチ、集約シートは cfws-aggregation ブランチに分かれた。
コミットの途中で、別のセッションのコミットとかち合ってレビュー結果が破棄されたり、ロックファイルの解放を待ったりする場面もあった。
引き継ぎプロンプトは、ダウンロードフォルダにテキストファイルで書き出させた。 ここで自分は、/clear より /compact で引き継いだほうがいいに決まっている、と言った。 Claude Code の返事は逆だった。 今回は /clear のほうが向いていて、そもそも /compact ではコンテキストは0にならない、という。 次のセッションは、プロンプトファイルのパスを貼るところから始めた。
集約シートのセッション:台本が計画の見込みより伸びた
15:36 に再開した集約シートのセッションでは、生成スクリプトの集約部分を共通部品に切り出させた。 pycel の計算は Excel と全269セルが一致した。 借入金、貸付金、固定資産と総合演習の12冊を作り直し、Excel の全セル比較で値の差は0だった。 pytest は114件すべて通った。
台本は 2a、3a、3b、4a、4b、5a、5b の7本に手が入った。 問題は長さだった。
| 台本 | 変更前 | 変更後 |
|---|---|---|
| 3a | 294秒 | 414秒 |
| 4a | 338秒 | 446秒 |
| 3b | 352秒 | 454秒 |
3a は、計画の見込み(+40〜60秒)を大きく超えた。 4a と 3b も100秒以上伸びた。 文を削るかどうかは、自分の返事待ちになった。 講義ノートに足した表は9列あり、縦書きのように潰れたので、この表だけ折り返さない指定にして横スクロールで見せた。 モバイル幅のエミュレーションで測ると、ページのはみ出しは0だった。
自分は、進捗をその都度コミットするよう頼んだ。 計画書の進捗を書いたコミット(5fad57cb)のあと、このセッションの dev サーバーはメモリ不足でシステムに止められた。 作業はすべてコミット済みで、失ったものは無かった。
個別論点のセッション:講義ノート22問と動画18本
もう一方の個別論点のセッションでは、対応表を計画の置き場所に合わせて更新したあと、最初のページとして当座借越を作らせた。
<em> が斜体で出ていたので、デザイン規約の太字と薄マゼンタの下線に直させた。
モバイル幅ではヘッダーのパンくずが3行に折り返して本文に重なった。
既存ページでもパンくずは2行になり、ヘッダーの高さ固定は既存の制約だった。
そこで新しいページのラベルを「当座借越」に縮めて収めた。
続いて開示の3ページを書かせ、引当金、為替、投資有価証券、社債、自己株式の5ページに進んだ。 引当金、為替、投資有価証券の数字案は計画書にまとめさせ、判断3件は3択ボタンで推奨の A を選んだ。 途中のレビューで、設立時の手数料は株式交付費ではなく創立費だという指摘が出た。 増資を別に置き、株式交付費はその増資に付ける形に直した。 講義ノートは22問中22問がそろった。 Excel は12冊を生成し、4章とも Excel 再計算の検算が通った。
ここで自分は「動画の制作も進めてください。フィードバックをまとめてあります」と送った。 Claude Code は、memo とダウンロードとデスクトップから17時以降に更新されたファイルを探し回り、見つからないと返してきた。 音声入力の言い間違いだった。 フィードバックは後でまとめるので、講義ノートに続けて動画(G)を作ってほしい、と言い直した。
動画の仕組みは大きい。 Claude Code は、新しい動画を足す手順をサブエージェントに調べさせ、届いた手順をもとに台本と画面を書いていった。 台本の一部は、さらにサブエージェントを並列で起動して書かせた。 S3-3b の Ctrl+[ のジャンプ先は、集約シートが読めない倍率(0.37)だったので、0.84 に直させた。 同じ見落としを探すため、全文ぶんの Excel 画面の倍率を計算するスクリプトを書かせ、下限を割る箇所を一括で洗い出した。 最終的に動画は18本になり、22問すべてが講義ノートと動画の両方に入った。
同じ日、別のセッションは F5 のジャンプ画面を入れていた
15:09 のセッションは、VLOOKUP の Ctrl+[ の場面(excel-scene)から始まった。 F5 → Enter で戻る場面に、ジャンプの画面を出す修正である。 計画書の判断3件のうち、3つめに自分は「語りの後に無音を1秒足す」を選んだ。 Claude Code は、1秒はそのままでは入れられないので2秒(1小節)でよいかと聞いてきた。 2秒でもいい、と返した。
実際の Excel を起動して Ctrl+[ と F5 の挙動を確かめさせ、その結果をそのままエンジンのテストにした。
途中で、検証スクリプトの中の Where という名前が PowerShell の組み込みの別名とぶつかって止まった。
41本の51か所を置き換え、無音を37か所に差し込んだ。
差し込んだ音声は37か所すべて、前半が同一で、差し込み部分は無音(-91dB)、後半はちょうど2秒ずれて同一だった。
「コミットして新着も更新しといてください」と頼んだら、Claude Code は「新着」が何を指すかをリポジトリ内で探し始めた。 言いたかったのは「進捗」だった。 言い直して、計画書の進捗を更新させた。 その過程で、最初のコミット(6e44f4fa)では Codex のレビューが飛ばされていたので、受け直させた。 指摘を直したうえでゲートを通してコミットし(50dfe516)、計画書の進捗も別にコミットした(5d860f4e)。
ほかに、朝は fs-scene の倍速ボタンに 2.5倍と3倍を足させた。 ボタンの並びは 1、1.5、1.75、2、2.5、3倍になった。 昼過ぎには、別の演習(絶対参照)の Excel ファイルがどこにあるかを確かめさせた。
GPU とメモリを、セッション同士のメッセージで分け合った
音声合成は、GPU で動く Irodori-TTS で行っている。 集約シートのセッションは、声を作るのは「マージの直前」だと書いてきた。 それがいつのことなのかを自分は聞き返し、あわせて頼んだ。 ほかのセッションで音声合成を始めているかもしれないので、メモリがカツカツにならないよう、セッション同士で連絡を取りながら進めてほしい。 「今」ではなく、台本の確認などを済ませた後の順番のことだ、という答えだった。
セッション同士のやりとりは、この日いくつも起きた。
- F5 のジャンプ画面のセッション(別セッション)は、Irodori を使う予定は無いと返してきた。あわせて、CF精算表の音声に「F5 の文の後に2秒の無音」を差し込んだので、合成し直すときは同じ間が入る、という注意を送ってきた。集約シートのセッションは、これを計画書に書いてコミットした
- Step 2〜5 の音声を合成し直したい別セッションは、個別論点のセッションに Irodori を使う予定を聞いてきた。個別論点のセッションは「いまは合成していないので先にどうぞ」と返した。向こうは、始める前と終わった後に一言送ると返してきた
- 午後には、ログイン後の戻り先の不具合を見つけた別のセッションに、自分の指示で連絡を送らせた。向こうではすでに直してあった
個別論点のセッションが合成に入ろうとしたとき、関所のスクリプト(irodori-gate.mjs)はメモリ不足(3.3GB < 6GB)で待ちの判定を出した。 Claude Code は、そのセッションが残した dev サーバーのプロセス(2.3GB)を PID 指定で止めて空きを作り、18本を1本ずつ順に合成するループを裏で流した。 合成は始まった。 しかし途中でメモリが足りなくなり、Claude Code はバックグラウンドの合成ジョブを強制終了した。 1本目の S1-1 の途中で音声ファイルが2つできただけで、残りの17本は手つかずのまま止まった。
学びメモ
- 完成した集約シートを参照先として使うだけの動画は、作り方を一度も教えていなかった。新しい演習と Step 7 の違いを詰めていく途中で、その抜けが見えた
- 並走するセッション同士でも、ファイルはワークツリーで分けられる。分けられないのは GPU とメモリだった。連絡は届いたが、合成ジョブはメモリ不足で止まった
明日やること
- 集約シートの台本(3a、4a、3b)が見込みより100秒以上伸びた件について、文を削るかを決める
- 個別論点の動画18本の音声合成を、ほかのセッションの合成と重ならない時間に1本ずつ流し直す
- 講義ノートと動画へのフィードバックをまとめて渡す