2026年9月25日の開発日記 - 並行セッションがメモリを取り合い、関数の章をMacへ送った
2026年9月25日の開発日記
朝、講座動画の合成とテストを流していた裏の作業が、メモリ不足で次々に止められた。 同じ PC で並べて走らせていたセッション同士が、メモリを取り合っていた。 この日は、どのセッションを止め、どの作業を後に回すかを決め直すことに多くの時間を使った。
タイムラインで見ると、講座アプリのリポジトリで11セッションが合計17時間52分、このブログのリポジトリで10セッションが合計7時間54分動いている。 講座アプリ側の数字は、同じ時間帯にセッションを並べて走らせたぶん、壁時計の時間を大きく超えた。
今日のタイムライン

今日やったこと
1. 並行セッションのメモリの取り合いと、Macへの引き継ぎ
メモリ不足で裏の作業が止められたので、3000番台と3200番台の dev サーバーを全部止めてよいと指示した。 08:36 に Step 7 のセッションで全ポートを止めさせ、ほかのセッションにも立てないよう伝えてもらった。 08:42 には 3200 番だけを許可し、MP4 は自分がプレビューで確認して直したあとの最終版だけ書き出すと決めた。 重い回帰テストは「修正したところだけ流せばいい」と範囲を絞らせた。 関数の章の引き継ぎ6は、Windows だとメモリが落ちるので、テキストファイルにして Mac の Claude Code へ送った。
主な成果:
- CF精算表 Step 6 を main に合流させ、6a(3:08)と 6b(3:54)が 3200 番のプレビューに映った
- 関数の章の再現動画は、37本すべてが台本、実物の Excel での一致、本人の声の3段まで済んだ
- 止めたポートは 3000、3001、3200、3204、3206、3207 の6つ
詳細: Claude Codeの並行セッションがメモリを取り合った日:devサーバーの停止、テストの絞り込み、Macへの引き継ぎ
2. レッスン画面のミラーカラム化と、CF精算表 Step 7 のカメラ調整
excel-scene の開発用ページのサイドバーを分けてほしいと頼んだ。 Claude Code が最初に出した3階層の入れ子に「違う違う、ミラーカラムにしてほしいんですよ」と返し、サイドバーは3列を経て、講座と同じ「2列に閉じるボタン」の形に落ち着いた。 チャプターを押すと1本目を開く動き、矢印キーでの移動、「自動で次へ」ボタンも付けてもらった。 午後の Step 7 では「集計対象の列はすべて画面に表示する」というルールを出し、カメラ位置の4つの値を数値で直せるようにしてもらった。
主な成果:
- サイドバーの作り直しは2回(3階層、3列、2列)
- dev 限定の2ページを、トップページの「開発環境のみ」の見出しの下にカード2枚でまとめ、excel-scene にヘッダーを付けてコミットさせた(push なし)
- カメラの手直しの共通点の確認は、翌日の Google タスクに回した
詳細: Excel操作動画のレッスン画面をミラーカラムに直す:自動再生とdev限定カード、CF精算表Step 7のカメラ調整
3. 毎朝の統計取得を Cloudflare Workers の cron へ移す計画
make-diary のうち公開統計の取得を Cloudflare Workers の cron へ移す計画を立て、Codex のレビュー(指摘、修正、再レビュー、承認)を通した。 「CLI 使えるはずなんで」と頼み、wrangler の CLI で Phase 0 を進めてもらった。 1回の実行で取るソースを1つに絞れば無料プランで動くことを、実測で確かめられた(残ったのは KDI の新号検知の調査だけ)。 ただ、前日のログを測らせると、この計画の範囲ではメインのコンテキストは1%も減らないと分かった。
主な成果:
- 無料プランの枠は、cron 1回あたり CPU 10ms、外部リクエスト50本。cron トリガーの上限5本は予定表の数の上限で、この計画で使うのは1本
- 韓国の統計は4系列が新号判定できたが、tradedata.go.kr はウェブファイアウォールに遮断され、値の取得は手元に残る
- 金融データサービスAからの取得は移さないと決めた
詳細: Cloudflare Workers無料プランのcronで毎朝の統計取得は動くか:wranglerでPhase 0を実測した
4. 無料の TTS API で自分の声を合成し、音声透かしを調べた
Google タスクの「TTS を試す」から着手し、Fish Audio の無料モデル s2.1-pro-free(2026年11月30日まで)を、1Password に登録した API キーで Claude Code に叩かせた。
聞き比べると、Irodori-TTS のほうが自分の録音に近いと感じた。
Irodori には SilentCipher の透かし「IRDTS」が入っていたが、AudioSeal と WavMark では Fish からも Irodori からも透かしは出なかった。
シードについては「Fish の API にシード指定はない」「Irodori の差し替えは語単位ではなく文単位」と確認した。
主な成果:
- Drama 3(
drama-3-preview)は HTTP 402 で弾かれた - 1回目の合成は23文
- 透かしの有無を、陽性と陰性の対照つきで確かめた
詳細: Fish Audioの無料APIで自分の声を合成し、音声透かしをAudioSealとWavMarkで調べた記録(Irodori-TTSとの比較)
5. プロンプトの棚卸しと、フックのタイムアウトと PC の空き容量
/claude-api prompt-audit で Claude Code にプロンプト面を監査させると、差分付きの指摘が12件、flag が7件出た。
止めてある学習ゲートの実行を促す文が、5ファイルに残っていた。
学習ゲートを使わない前提と、モデル表記を Opus 5.5 にそろえる方針を決め、18ファイルを直させてコミットと push まで済ませた。
午後は、UserPromptSubmit フックの30秒タイムアウトが Store 版 python3.exe(ダミー)の固まりで起きていることを突き止めてもらい、PC の空き容量も測ってもらった(消せるのは約21GB)。
主な成果:
- make-diary も Opus 5.5 で回すことにした
- 朝の相談からクラウド会計2社の料金改定を追う記事を1本書き、
9df40a09でコミットした(会計ソフトAと会計ソフトBの料金改定の記事) - ディスク分析ツールの片方は、アンインストーラーのエラー(1603)で消えず、削除は自分が引き取った
詳細: Claude CodeのプロンプトをOpus 5.5前提で棚卸しした日。フックの30秒タイムアウトとPCの空き容量も調べた
今日の試行錯誤
| # | テーマ | 試したこと | 結果 | 気づき |
|---|---|---|---|---|
| 1 | CF精算表 Step 6(07:58) | 3200 番で Step 6 を見られないかと提案し、全コマハッシュのテスト(前回23分)を流させた | 3200 番は main 配信でブランチの Step 6 は映らなかった。テストは関数の章のセッションに譲って止め、許可を出して main に合流させると映った | プレビューに映るのは main だけだった |
| 2 | 関数の章 引き継ぎ5(10:38) | 合成と全単体テストがメモリ不足で止められた | 変えたエンジン2ファイルの単体テストと、組3b 4本の全コマの指紋の確認に絞らせてコミットした | 重いテストは担当分だけ流せば足りた |
| 3 | Mac への引き継ぎ(13:31) | 状態をチャット本文に出させたが、「Macに貼るの難しい」と訂正した | 指示書をテキストファイルで Mac の受け取りフォルダに置かせた。入力欄の文字は Claude Code の予測だと指摘し、ブリッジを直させて依頼が届いた | 別の機体へ渡すなら、ファイルのほうが扱いやすい |
| 4 | CF精算表 Step 7(17:46) | MP4 の書き出しが始まっていた | 止めさせた(7a、7b、7c の3本まで書き出し済み) | 「最終版だけ MP4」の指示を、別のセッションにもう一度言うことになった |
| 5 | サイドバー(06:19) | 「セクション → チャプター → 動画」の3階層に組み直させた | 「違う違う、ミラーカラムに」と訂正し、3列を経て2列に閉じるボタンの構成になった | 頭にあったのは講座の「2列に閉じるボタン」だった |
| 6 | カメラの手直し(12:23) | 範囲を丸いつまみのドラッグで直そうとした | 微修正がしづらく、4つの値を入力欄に常に出し、−/+ で1ずつ直せる形にしてもらった | 手直しは数値で指定するほうが速い |
| 7 | Workers の実測(07:19) | メモリ価格の公開ページをパーサーに通させた | パース結果は0件。既存スクリプトの呼び方を確かめさせ、R2 の HTML をそのまま読ませると DRAM の4グループ、19品目が取れた | クラウドで動かす前に、手元の呼び方を写すほうが早い |
| 8 | 透かしの検証(09:59) | AudioSeal と WavMark の検出器を当てさせた | 10分を超えてバックグラウンドに回り、GPU 版 torch で動かし直した。どちらからも透かしは出なかった | 検出器を知らない透かしは確かめようがない |
| 9 | プロンプト監査(06:52) | prompt-audit の patch を当てさせた | CRLF が崩れ、切り出し処理を作り直させた。記事の「103行減った」は「100行削除、3行追加」に直させた | patch は修正前の状態から作るので、直したあとは使えない |
今日の学び
- 同じ重いテストを、セッションの数だけ流す必要はない。変えたファイルの単体テストと、既存動画の全コマの指紋で影響が無いことを示せば足りた
- 作業を別の機械へ移すと、成果物もそちらに残る。Mac で合成した音声は、取り寄せるまで Windows のプレビューで「音声なし」と出ていた
- 「クラウドに移せば make-diary が軽くなる」という見立ては、前日のログを測ると外れた。統計チェーンの伸びはサブエージェントの側で起きていた
- 音声入力で固有名を言うと、別の語に化けることがある。この日は「Wrangler」がディスク分析ツール2本のことだった
明日やること
- CF精算表 Step 7 のカメラの手直しの共通点を確認して答える(判断3件)
- CF精算表 Step 7 総合演習の動画の確認の続き(7b 5:19〜、7a、7c〜7f、講義ノート)
- 関数の章の再現動画をプレビューで確認し、最終版の MP4 と Web への組み込みへ進める
関連記事
- Claude Codeの並行セッションがメモリを取り合った日:devサーバーの停止、テストの絞り込み、Macへの引き継ぎ
- Excel操作動画のレッスン画面をミラーカラムに直す:自動再生とdev限定カード、CF精算表Step 7のカメラ調整
- Cloudflare Workers無料プランのcronで毎朝の統計取得は動くか:wranglerでPhase 0を実測した
- Fish Audioの無料APIで自分の声を合成し、音声透かしをAudioSealとWavMarkで調べた記録(Irodori-TTSとの比較)
- Claude CodeのプロンプトをOpus 5.5前提で棚卸しした日。フックの30秒タイムアウトとPCの空き容量も調べた