2026年5月4日の開発日記
朝9時半から夜まで、case100プロジェクトを5並列セッションで一気に走らせた日。75論点叩き台の本版化から、76件を52件にライフサイクル統合する計画立案、α-εの並列実装まで通した。並行してExcel講座の関数事例追加、R2動画4本のShift_JIS問題復旧、コンテンツ陳腐化リスクの評価とAI事業戦略プレゼンの作り直しまで詰め込んだ。Claude Codeに実行を任せて、人間は方針判断と画面の違和感拾いに専念する一日だった。
今日のタイムライン

今日やったこと
1. case100 第III部 並列5セッションで76論点を本版化
朝10時に5セッション(A: 人事・給与17件、B: 設備投資10件、C: 有価証券+外貨建8件、D: 資金調達・返済18件、E: 税務+突発10件)を起動して、午後3時には全セッションが完走した。所要約3時間。
主な成果:
- 76論点(CHAPTERS 20〜82)を全件JournalExampleで本版化、貸借バランスと予告数値の整合をchrome-devtools MCPで確認
- セッション間で共通の
index.tsを編集する衝突を、「番号予約 → 編集前に必ず再読込 → 自分の範囲だけ追記」の運用パターンで回避 - 仕訳プッシュアニメの連続クリック衝突で残高試算表が中間値で止まる問題を発見、待機を挟む方式で解消
詳細: case100 第III部 76論点を5並列セッションで本版化
2. case100ノート76件→52件 統合計画とCodex 6回レビュー
derivatives.vue(金利スワップ含む3パターン対比)を基準に、76件をライフサイクル型A/B/C型で52件に統合する計画を立案。Codex(gpt-5.5)に6回レビュー依頼して、致命的指摘6点→2点→0点まで削った。
主な成果:
- 統合計画を
memo/2026-05-04/case100-note-consolidation-plan.mdに固定 - A型対比/B型分岐/C型並置の3類型をClaude Codeが76件から発見
- 5並列セッション(α/β/γ/δ/ε)+ 事前準備セッション(ζ)に分割
- ζは別セッションに切り出さずそのまま実行、α-εで22件→52件への統合をほぼ完走
詳細: case100ノート統合計画とCodex 6回レビューでの方針詰め
3. Excel風HTMLモック スキル化と11関数への事例追加
VLOOKUPの注意点ページで作っていた「商品マスタ+作業シート+数式吹き出し」のExcel風HTMLパターンを excel-html-mock プロジェクトスキルに切り出し、11関数(VLOOKUP/IF/IFERROR/INDEX-MATCH/SUM/SUMIF/SUMIFS/TEXT/ROUND系/INDIRECT + 絶対参照)に展開した。
主な成果:
formulaCalloutヘルパーで10個の数式吹き出し重複を1関数に集約- F2編集モード風に引数と表のセルを色で対応付け(青/緑/ピンク)
- SUMIF→SUMIFS置換のメリット = Ctrl+[で第一引数の集計対象列に飛んで数値検証できる、という気づき
- 絶対参照欠落・型不一致・#N/A放置はVLOOKUP固有ではない、というユーザー指摘で各セクションに注記追加
詳細: Excel風HTMLモック スキル化と11関数への事例追加
4. Excel講座 統合インデックスページとSEOタイトル動的化
旧eurekapu.com(WordPress)の leveraging-functions/index.vue を新Nuxt4側に再現。/lessons/excel/functions を統合インデックス、/lessons/excel/functions/practice をMillerスライド、と責務分割した。
主な成果:
BookkeepingScrollArticleのscrollChaptersダミーでsingleSectionMode + noChapterColを発動するパターン:has(.excel-wide)で動的に幅を切り替えるCSSハック- fxアイコン巨大化バグ(
:deep(svg) { width: 100% }がSyntaxCard内アイコンまで貫通)の原因特定とインラインstyle強制固定 - practiceページのSEOタイトル動的化(ci/siクエリから組み立て)、内部リンク26件を
target="_blank" rel="noopener"に統一
詳細: Excel講座 統合インデックスとSEOタイトル動的化
5. R2動画配信障害(WordPress Shift_JIS問題)4本の修復
ユーザーから「動画見えない」報告。HTTP 200は返るが中身が49KBのHTML 404ページだった。原因は旧WordPressがShift_JISでファイル名を保持していたこと。UTF-8エンコードURLでアクセスして404 HTMLを取得、それを.mp4として保存→R2にアップロードしていた。
主な成果:
- 全100動画ファイルをPythonスクリプトで並列調査、4本の破損確定
- WordPressにUTF-8 URLで叩き直して実体MP4(740KB〜1.89MB)を取得→R2再アップロード
- Cloudflare CDNキャッシュ対策に
?v=2クエリでキャッシュバスター - 並列リクエストが多すぎてCloudflareにレート制限を食らう自爆事故あり
- 同日2回再発したので汎用検証スクリプトとissueドキュメントに固定
詳細: R2動画のShift_JIS問題でHTTP 200だが中身がHTMLという罠
6. MillerViewerサイドバー折りたたみと80ページ自動展開
ユーザーの「縦置きモニター(1080×1920)でメインコンテンツが狭い」リクエストを受けて、MillerViewerにセクション・チャプターのサイドバー折りたたみボタンを追加。MillerViewerは80以上のページで共通利用されているため、1ファイルの修正で5系統(簿記3級/CFS/Excel/Excelショートカット/会計入門)すべてに展開された。
主な成果:
- localStorageキーをルート依存(
millerIdx:${route.path}:collapsedMajor)からグローバル(miller:collapsedMajor)に変更、矢印キー遷移後も状態保持 - CSS Grid の
grid-template-columnsをcomputedで動的に切り替え - TopicPager(前後リンク + ←/→ キー)をcase100の82ページ全件に追加
- パンくずを「講義ノート → ケース集 → 章名」の3段に統一、本文フォントサイズも他ページに揃える
詳細: MillerViewerサイドバー折りたたみとTopicPagerで80ページ一括改善
7. コンテンツ陳腐化リスク評価とAI事業戦略プレゼンv1→v3
311ファイルのコンテンツが5年後に陳腐化しないかをClaude Codeに評価依頼。4つのcode-explorerエージェント(簿記基礎/中級会計/case100/Excel系)を並列起動して40分で点数化レポート完成。
主な成果:
- HTMLスライドプレゼン v1(提案6本)→ v2(Codex指摘で2本に絞る)→ v3(180度転換: コンテンツ事業ではなくAI拡張した自分を売る)
- 集客コンテンツは「ECへの集客」ではなく「AI労働代替の感覚を磨く投資」と再定義
- svg-diagramスキルに沿って白基調・マゼンタ強調1色に整理
- レイアウトを
justify-content: centerからヘッダー固定+メインfillに変更
詳細: コンテンツ陳腐化リスク評価とAI事業戦略プレゼンv3への転換
今日の試行錯誤
| # | テーマ | 試したこと | 結果 | 気づき |
|---|---|---|---|---|
| 1 | 並列5セッションのindex.ts共有編集 | セッション間で番号予約→各自が範囲だけ追記 | 成功 | 編集前に必ず再読込しないと並列セッションの追記分を上書きしてしまう |
| 2 | 仕訳プッシュアニメ連続クリック | クリック後の数値スナップショットを取得 | 失敗(中間値で止まる) | アニメーション完了を待ってから次のクリックを送る必要 |
| 3 | Codexにファイル読み取りさせる | codex exec でファイルパスを渡す | 失敗(サンドボックスエラー) | プロンプトに本文を直接埋め込めば通る、stdin不可 |
| 4 | Codexのstdin運用 | codex exec resume --last にstdin | 失敗 | resumeはstdinを取らない、新規セッションで本文埋め込み |
| 5 | R2動画の生死確認 | HTTP 200だけ見て安心 | 失敗(中身がHTML) | magicバイト(ftypisom)まで確認しないと判定にならない |
| 6 | 100ファイル並列レート確認 | 並列度230でCloudflareに投げる | 失敗(自分のIPがレート制限) | max_workers=3 程度に絞る |
| 7 | localStorageキー設計 | ルートパス依存(millerIdx:${route.path}) | 失敗(次ページで状態リセット) | グローバルキー(miller:collapsedMajor)に変更 |
| 8 | :deep(svg) の波及範囲 | width: 100% を親で書く | 失敗(SyntaxCard内のアイコンまで巨大化) | :deep()は子コンポーネント内の全SVGに効く、インラインstyleで強制固定 |
| 9 | スライドの上下バランス | justify-content: center | 失敗(次のページで上に寄りすぎ) | ヘッダー固定 + メイン領域fill構造で解消 |
| 10 | Codexで戦略プレゼンv1をレビュー | 「事業戦略として書き直し」の痛烈指摘 | 結論180度転換 | コンテンツ事業 → 「AI拡張した自分を売る」へ転換 |
今日の学び
- 並列5セッションは強い: 76論点を3時間で完走。共通ファイルの衝突は「番号予約→再読込→選択ステージング」の3点運用で回避できる
- Codex 6回レビューで結論が変わる: AI事業戦略の方向性が「コンテンツ事業」から「自分を売る事業」に180度転換した。痛烈な指摘を正面から受けると軸が動く
- HTTP 200は中身を保証しない: Cloudflare/CDN経由の200で安心せず、Content-Typeとmagicバイトまで確認する習慣をつける
- 共通コンポーネントの強み: MillerViewer 1ファイルの修正で80ページに自動展開。「マニュアルテンプレートを直す」と同じ構図
:deep()は思わぬ波及を起こす: 子コンポーネント内の全要素に効くので、限定的にしたい場合はクラス名で絞るか、子側でインラインstyle強制- vivid-writingで日記の質が変わる: 形容詞を動詞に変換すると、「焦った」が「画面の数字を3回見返した」になり映像が立ち上がる
明日やること
- 統合計画の残課題(α-εセッションの未了事項ドキュメント)を横断pending-items.mdに集約
- dev serverで新規.vueファイルが認識されない問題の根本対応(再起動運用で凌いだまま)
- R2動画の検証スクリプトをCI化、再発防止の自動チェック
- AI事業戦略v3の最初の30日アクション(財務DD・ビジネスDDの書籍OCR→コンテンツ化)に着手