講座のストーリー版を電子書籍版の章立てに組み直す。本文の食い違いは電子書籍に合わせ、音声合成はMacだけに

開発eurekapu-nuxt4

講座のストーリー版を電子書籍版の章立てに組み直す

朝、引き継ぎプロンプトの9本目を Claude Code に渡して、昨日の続きを始めた。 前日の作業は 講座の図を電子書籍の素材へ差し替えた記事 に書いた。 今日は9本目から12本目までの4本を順に渡し、夕方に13本目を書き出させて終えた。

手元の画面で問題の図を開くと、電子書籍版の素材で図がつながっていた。 ようやく見やすくなった。

ただ、報告の中に意味の取れない一文が混じっていた。 「文が電子書籍版と食い違う」とは、どういうことなのか。 見比べると、図もどこか連続していない気がした。

本番に出す前に手元で見る

コミット済みの HEAD をワークツリーに切り出させ、本番用のビルドを走らせた。 ビルドには6分前後かかる。 途中で一度、まだ来ていない時刻が付いた「完了」の知らせが届いた。 これは誤報として扱い、本当に終わるまで待った。

ビルドが通ると、本番に出してよいかの確認が来た。 そこでいったん止めて、手元の環境で先に見たいので URL をくれと頼んだ。 止まっていた開発サーバーを起こしてもらい、問題の図を電子書籍版に置き換えたコマ(378コマ)を開いた。

1/4のページ(決算整理後残高試算表の練習問題のコマ)は、ページの背景が勘定の背景と同じ色になっていた。 折り目の装飾を付けてもページだと分かりにくく、いま見ると余計な飾りだった。 背景を白にしてもらい、直した1枚を R2 に上げて CDN のキャッシュを消させた。

1回目の本番デプロイでは、ガードが止めに入った。 10/17 に分割した物語の音声 12 本(MP3)が R2 に無かったためだ。 手元には揃っていたので、R2 に上げてから出した。

本文の食い違いは電子書籍版に合わせる

冒頭の一文は、例題2問の文が電子書籍版と食い違っている箇所のことだった。 電子書籍版に合わせると決めた。 あわせて、試験で使う勘定科目は所得税預り金か、と確かめた。

2問の文を電子書籍版の数字(600)に直し、電子書籍版の図を当てる案を作らせると、増えたのは4コマ分だけだった。 ところが反映の処理を流したら、さっき白にした背景が消えた。 反映の処理が、手元の書き出しから図を置き直していたためだ。 次に流しても消えないよう、白背景の直しを反映の処理の側に組み込ませた。

コミット前の Codex レビューでは、図を作るスクリプトのパスの扱いを指摘された。 同じ書き方をしていた2本をまとめて直させてコミットし、新しい図と音声を R2 に上げた。 新しい図 14 枚には、R2 に上げる前の 404 が CDN に残っていたので、それも消させた。 2回目の本番デプロイは 08:25 に済んだ。

並びそのものが電子書籍版と違っていた

そのあと画面を見ていて、もう一段大きな違和感に気づいた。 ある画面で、現金仕入れの例題の話と、記帳の方法や商品売買の論点を分ける話とが混ざっている。 そもそもストーリー版のコマの並びが、電子書籍版の目次と違う。 論点の話をしている最中に例題が出てくるのはおかしい。

目次の単位で整合性を確かめていたかを Claude Code に聞いた。 答えは「していなかった」だった。 10/15 に直したのは、同じ電子書籍ページから来たコマどうしの並びだけだったという。 全コマを電子書籍のページ番号と機械的に突き合わせさせ、電子書籍版の目次どおりに並び直すよう頼んだ。

並べ替えの計画には Codex のレビューを通し、出てきた条件(固定した音声名を、再生側と台本の書き出し側の両方で優先する、など)を足させた。 決める点が2つあったので、判断フォームで答えた。

電子書籍の原稿に置き換えても、それだけでは流れの弱い箇所が多分ある。 そういう箇所は適宜補ってほしいと付け加えた。 商品売買の章は、電子書籍の原稿を土台に 187 本の文を書き直してもらい、流れの薄いところにはつなぎの説明や仕訳の答えを足させた。

組み直した 01 から 06 を見て、こちらのほうが流れが自然だと感じた。 自分が作った本の構成なのだから、当たり前といえば当たり前である。

このあと新しいナレーションの合成が、この Windows 機で走り出した。 音声は MacBook に頼んでおいてほしいと伝え、Windows 側の合成を止めさせた。 Mac に頼んだ分は、1回目が 213 本、2回目が 104 本だった。

切り抜き292枚の全数検査

10:15 からの10本目では、商品売買の章の切り抜き 292 枚を全部確かめさせた。 朝のうちに、切り抜けていないコマを見つけていたからだ。 出版ページと切り抜きを並べた比較画像を作らせ、5体のエージェントで目視させた。

結果は 292 枚中 67 枚が NG だった。 「札の金額が空白」という指摘は描画側の問題の可能性もあったので確かめさせたが、実物でも欠けていた。 直した 45 枚を確かめる段階では、SVG の切り抜き(clip の座標系)の誤りで描画が欠けていると分かり、直して撮り直させた。 指摘した「概要」のコマも、パンくずとメッセージが消えて図だけになった。

図の下に残る空白については、こちらが意味を説明する側に回った。 トピックの中でコマの高さと座標をそろえているので、下を切って中央に寄せると、ほかのスライドと位置がずれる。 まとめの論点一覧なら、空白があることで論点がこの2つしかないと分かる。 空白は仕様だと伝え、切り抜きの手順書にも書き残させた。

21セクションを電子書籍版の18章へ

12:00 からの11本目では、ストーリー版の 21 セクションを、電子書籍版の 18 章の番号と分け方と URL にそろえさせた。 付け替えの前に、全章の音声と図と説明の組を控えさせた。 付け替えたあと、2180 組すべてが一致することを確かめた。 各章の1ページ目には電子書籍版の扉を入れ(17 章分)、重複していた扉のコマ6つを外した。

試作として、人件費の章を電子書籍版のページだけで組み直させた。 出版から切り抜いた 25 ページで、音声は 29 本だった。 音声を聞いて、作り方はこれでよいと返した。 他のセッションがまだ動いているので本番デプロイは見送り、コミットと push だけ進めてもらうことにした。

残りの章は、最初の5章から順にサブエージェントへ分けて組み立てさせた。 上がってきた切り抜きは、本体のセッションで全部見させてから反映した。 途中、Codex に satisfies の付け位置がずれて型チェックが通らないと指摘され、直してコミットし直させた。 17 章(伝票)を除く全セクションを作り直し、push まで済んだ。 この時点で、音声が揃っていたのは3章と4章だけだった。

伝票の章は、ほぼ電子書籍版どおりに見えたので手を付けずにいた。 次のセッションでやることにした。

Codex のエラーと、合成を Mac だけにした理由

15:10 からの12本目では、チャプター列に番号の丸と縦線を付け、進み具合で塗り分けるようにした。 線が項目の境目(1px の罫線)で途切れて点線に見えたので、つなげてもらった。

そこで二つのことに気づいた。 一つは、Codex のレビューがエラーで止まっていたこと。 もう一つは、音声の合成が Windows で走っていたことだ。

朝に Mac へ回すよう頼んでいたのに、なぜ Windows なのか。 前のセッションでは、Mac の2つのセッションの入力欄に書きかけの文があった。 そこへ割り込まないよう、Windows でまとめて合成する段取りになり、途中から Mac でも並行して回していた。

改めて、合成は Mac だけでやってほしいと伝えた。 Claude Code のセッションを複数走らせているので、Windows で合成までするとメモリが埋まってしまう。 Codex のエラーも解消して、レビューを付けるよう頼んだ。

Windows の合成は全部止めさせた。 Codex の失敗は「Selected model is at capacity」で、OpenAI 側のモデル混雑だった。 再レビューでは critical / high の指摘は無く、medium / low も無かった。

伝票の章(17 章)は、電子書籍版のページで作り直すべきか自分では決めきれず、良いほうでと任せた。 画像版だけを電子書籍版のページで作り直す形になり、切り抜き 18 ページを確かめて、5テーマ、10トピックで組み上がった。 テストは 120 件通った。 Mac からは、15 章の 285 クリップと 16 章の 232 本を引き取った。

最後に計画書の進捗を更新させ、13本目の引き継ぎを書き出させて終えた。

学び

  • 図の並びを直しただけでは、目次の単位の食い違いに気づけなかった。「同じページから来たコマどうしの並び」と「目次の並び」は別の検査であり、後者は頼むまで確かめていなかった。
  • 空白や背景のように「直すべき見た目」に見えるものにも、座標をそろえる都合で意図的に残したものがある。仕様は手順書に書いておかないと、次の作業でまた詰めにいく。
  • どの機体で重い処理を回すかは、一度伝えただけでは守られなかった。Mac が塞がっていると見たセッションは Windows に戻した。理由(メモリが埋まる)ごと伝え直して、ようやく Mac だけに寄った。
#教材制作#電子書籍#音声合成#Codex#Claude Code