Excel講座のデューデリジェンス52件を git worktree で仕分け、サブエージェントで並行して直した記録

開発eurekapu-nuxt4

Excel講座のデューデリジェンス52件を git worktree で仕分け、サブエージェントで並行して直した記録

朝、Excel講座のデューデリジェンス報告書と、いまの教材を突き合わせる作業に入った。 教材のファイルは、別のセッションも同時に触っている。 同じファイルに当たる可能性があったので、git worktree を切って、その中で作業してもらうよう頼んだ。

分けておけば、作業中に他のセッションと書き換え合うことはない。 ただ、分けたブランチはいずれ main に戻し、ワークツリーは畳むことになる。

52件を自分の言葉で4つに分ける

報告書の指摘は52件あった。 Claude Code に調査役を3体並行で走らせてもらい、指摘ごとに「いまの教材で直っているか」を調べさせた。 最初に戻ってきた調査役の担当分は、15件のうち対応済み0、一部対応5、未対応10。 指摘に挙がっていた台本の一文が今も残っていることは、実物でも確かめてもらった。

調査を待つあいだに、自分の認識を伝えた。 おそらく、大きく次の4つに分かれる。

  1. 講座のストーリーラインの組み立て方
  2. 教えている内容の正しさ
  3. 演習の不足
  4. 配布物と動画の食い違い

報告書の「最初の成功体験までが長い」は、ストーリーをどう置くかと同じ話だと見ている。 全編の音声、MP4、初見の受講者による検証も挙がっていたが、これは最後にやる。 自分で吹き替えて、MP4 に書き出し、最初の受講者に見てもらう。 この順番も先に伝えておいた。

52件それぞれに「対応する/しない」の判断欄を足し、理由を1行ずつ書いてもらった。 計画書はワークツリー側に置いた。 Codex のレビューで指摘が3件出たので、ソースで確かめてから計画書に入れてもらった。 再レビューは「進めてよい」だった。 判断が要る6件は決裁フォームで答え、6件とも推奨の A、コメントは無し。 決定は、ワークツリーのブランチにコミットしてもらった。

切り出せる論点は別プロンプトへ

計画書は8段階に分かれていた。 1は公開中の誤り2件、2は読みやすさとハードウェアの区間、3は演習の設計、4は正しさの修正をまとめて行うバッチ。

2と3は切り出せそうに見えた。 それならサブエージェントでもワークフローでも、どちらに任せてもいい。 ただ、計画の実行に入るならセッションを切り替えたほうがいい気もする。 少し迷ってから、/compact をはさむ前提で、渡せるプロンプトを Downloads のテキストファイルに書き出す形でもいいと伝え、そこは任せた。

返ってきたのは、1は小さいのでこのワークツリーで直し、2〜4は引き継ぎプロンプトに書き出す、という段取りだった。 1の誤りは、記事に書いた理由が台本と食い違っていたものだ。 台本の「最初に書くのが検索値なので、Ctrl+[ がそこで止まる」に合わせて直してもらった。

/compact のあと、書き出された3本のプロンプトのパスをそのまま貼った。 2と3はサブエージェントで動き出した。 4は、先に別の判断を片付けてから始めることになった。

main への取り込みは他セッションの都合で止まる

4に入る前に、Excel の FILTER 関数の章を作っていたブランチを main に取り込むか聞かれた。 取り込んでいい、と答えた。

競合は2ファイル。 どちらも、FILTER 側の表示部品と main 側の AI 欄の部品が同じ場所に足されていただけだったので、両方を残して解いてもらった。 台本の回帰テストは89件合格、記録の無い21件は飛ばし。 ところが、マージのコミットは自動モードの許可判定で止められた。

その間に、演習の作り直しの計画書がサブエージェントから上がってきた。 決める項目は7つ。 別のセッションからもメッセージが届き、演習の計画書はユーザーの指示で1本にまとめた、という連絡だった。 向こうが調べた材料のうち、まだ入っていなかったものを計画書に足してもらった。

7項目とマージには「A4でいいですよ。で、マージしていいっすよ。」と返した。 7項目はすべて A として受け取ってもらい、演習の章は別のセッションが作ることになった。

マージは、それでもすぐには通らなかった。 まず別のセッションのコミットがインデックスをロックしていて、その終わりを待った。 続いて、本体の作業ツリーで別表の動画のセッションが変更をステージしたままにしていて、git がマージを断った。 他のセッションの変更には触らず、ステージが空くのを最大10分待ってもらった。

FILTER が入ったあと、続く突き合わせのブランチで1ファイルが競合した。 FILTER 側がすでに同じ文を正しい理由に直していたので、FILTER 側を残した。 取り込みが終わってから、別のセッションの変更が混ざっていないことも確かめてもらった。 そのあとで、4をサブエージェントで始めてもらった。

作り直しの報告と、音声合成のニュアンス

ハードウェアの3区間とバージョン管理の1区間は、いったん完成の報告が届いたあと、自分のフィードバックを渡して同じサブエージェントに作り直してもらった。 4区間とも声を当て直し、静止画も目で確かめた、という報告だった。 モニターの区間は、モニターの絵の中に Excel が映るところまで開いて見てもらった。

4(正しさの修正)も上がってきた。 16件を24区間で直し、それとは別に26区間を演習の型にそろえて、触った区間は合わせて45。 旧→新の全文は記録ファイルにまとめてもらった。

ひとつ引っかかったのは、高性能 PC の区間の台本だった。 音声合成について、この講座の声を作っている、という言い方になっていた。 講座は最終的に自分の声でやる。 だから「音声合成もできる」くらいの言い方でいい、と伝えた。

差し替えたのは2か所。 語りは「文章を読み上げる音声合成も、手元で動かせるようになります。」になった。

動画を3本見て、いったん問題ないと判断した。

配布物はR2へ、デプロイは相乗り

残りを聞くと、確認待ちが4つだった。

演習の発展問題の解答は Cloudflare R2 に上げてもらい、講座の配布物にも足した。 取得して 200 が返ることも確かめてもらった。 デプロイは単独で打たず、他のセッションの次のデプロイに相乗りさせることにした。

基本機能の区間の問題ファイルが、配布物に入っていなかった。 足すことにしたら、ファイル自体は R2 にもう置いてあり、講座データにダウンロードを足すだけで済んだ。

FILTER の3区間の検算は、少し手間がかかった。 検算の道具が FILTER の式を Excel で開けない形で書き出していたので、実物の Excel と突き合わせるよう頼んだ。 道具をスピルの形で書き出すように直してもらう途中、読み出しのスクリプトのパスの渡し方が一度間違っていて、直して読み直してもらった。 Excel 側はスピルして、複数条件の演習は26行、単価の演習は5行。 画面の再現側に同じ行が出ているかを見比べてもらった。

この修正は、コミット時の Codex レビューで2回止められている。 1回目は「別のシートを指すスピル参照が壊れる」、2回目は「小文字のセル番地を認識しない」。 Claude Code の見立てはそれぞれ medium と low だったが、どちらも小さな修正で済むので直してもらった。

ワークツリーを畳んだら、声も一緒に消えた

検算で Excel の順番待ちをしているあいだに、ワークツリーの片付けを確かめてもらった。 そこで問題が見つかった。

FILTER の章の6区間の仮の声を、ワークツリーと一緒に消していた。 他のセッションとぶつからないように分けた場所の中に、そこにしか無いファイルが残っていたことになる。 声は合成し直せば戻る。 issue に記録を残し、6区間を合成し直してもらった。 制作画面で声が流れることを確かめ、基本の区間では字幕の2行目に「す。」だけが残る折り返しも出ていない。

最後に残ったのは、excel-filter のフォルダの削除だけだった。 これは自分で Remove-Item を実行して消した。

Remove-Item -LiteralPath '...\eurekapu-nuxt4-excel-filter' -Recurse -Force

excel-filter と dd-reconcile の2つのワークツリーは、フォルダも git の登録もブランチも消えた。 積み残しを聞くと、無いとのこと。 きっかけの計画書の冒頭には「進捗」の節を足してもらった。 8段階のうち1〜4がこのセッションで終わり、残りの4つはどれもこのセッションの外の作業になる。 公開中の誤り2件の修正と、配布物2つは、まだ本番に出ていない。 他のセッションが次にデプロイするときに一緒に出る。

学び

  • ワークツリーは作業中のぶつかり合いを避ける道具で、合流と片付けには別の注意が要る。main に入れるときは他のセッションのステージが空くのを待ち、畳む前にはワークツリーの中にしか無いファイルを洗い出す。
  • 課題を自分の言葉で4つに分けたことで、切り出せる塊(2と3)が見えた。/compact の前にプロンプトをファイルへ書き出しておけば、次の論点を別プロンプトで並行させられる。
#git worktree#Claude Code#サブエージェント#Excel講座#Codex