• #日記
  • #eurekapu
  • #レイアウト
  • #会計基準
  • #OCR
  • #TursoDB
  • #mise
  • #Claude Code
daily-log

2026年4月23日の開発日記

eurekapuの教育コンテンツを朝7時から夕方17時まで丸一日かけて改修した。ミラーカラムレイアウトのスクロール化、会計基準データベースの原文忠実化、書籍OCRバッチ処理の3本立て。6セッション並行で回し、計10時間以上をeurekapu関連に費やした。夜にはVolta側の不具合を機に、Node.js管理をmiseへ移行し、Claude Codeも公式インストーラー版で入れ直した。

今日のタイムライン

タイムライン

今日やったこと

1. ミラーカラムからスクロール形式へのレイアウト変換

CF計算書の基礎知識ページ(boki3/ch0)で、スライドを1枚ずつ切り替えるミラーカラムレイアウトが「説明が断片化する」という問題を抱えていた。スクロール形式に変換し、テキストが一続きに読めるようにした。

主な成果:

  • boki3/ch0をスクロール形式に変換(singleSectionModeを活用)
  • Ch1(借入金ライフサイクル)以降もスクロール変換
  • Excel基礎講座のcontents.vue、top.vueも同様に変換
  • SVGのwidth属性追加で初期レンダリングの小さ表示を修正
  • steps側のコンテンツをboki3/ch0に流し込み、内容の差分を解消

詳細: ミラーカラムからスクロール形式へのレイアウト変換


2. 会計基準データベースの原文忠実化

CF計算書ページに会計基準の引用コンポーネントを追加しようとしたら、そもそもJSONデータが原文と食い違っていた。修正を始めたらASBJのドメイン移行(asb.or.jp → asb-j.jp)が発覚し、リンクページ198件のURL検証まで走ることになった。

主な成果:

  • 全42基準のソースを収集(ASBJ 24件HTML + JICPA/FSA 10件PDF)
  • html_to_json.pyで31件の条文JSON変換に成功
  • cf-jitsumu-shishinの条文を53→61に拡充(Turso DBのOCRテキストと照合)
  • リンクページ198件のURL検証・修正(e-Gov 19件、JICPA 6件、ASBJ 55件を更新)

詳細: 会計基準データベースの原文忠実化


3. 書籍9冊のOCR処理とTurso DB格納

yomitoku(日本語特化AI OCR)で会計基準のPDF 9冊・589ページをMarkdownに変換し、Turso DBに格納した。

主な成果:

  • 連結CF実務指針、外貨建実務指針、金融商品実務指針など9冊を処理
  • process_yomitoku_book関数でTurso Embedded Replicaに直接格納
  • 蔵書DBを19冊→28冊、約3,200チャンクに拡張

詳細: yomitoku OCRで会計基準9冊を一括処理


4. 教育コンテンツの設計方針整理

CF計算書教材を「はじめて系(教材A)」と「ゼロから作る系(教材B)」の2層に分離する設計方針をまとめた。steps側のch0-1/ch0-2が「はじめて系」の内容を抱え込んでいる問題を特定。計画書を作成してCodexレビューも受けたが、仕様が固まりきらず「保留」とした。

主な成果:

  • 2層分離の方針文書をmemoに保存
  • Codexレビューで致命的指摘3点を反映して計画修正
  • ただし実装計画は仕様未確定のため保留

5. レッスンページの整理

lessonsのインデックスページを「初めて系」と「ゼロから作る系」の2セクション・2列グリッドにリデザインした。

主な成果:

  • topicsにcategoryフィールドを追加し、上段/下段に分離
  • CF精算表ステップ学習と別表四と五にドラフトバッジを追加
  • カード配置のリンク先を直接ch0ページに変更

6. Volta から mise への移行と Claude Code 再インストール

Volta 側で不具合が出たため、3月に立てていた移行計画を実行した。Node.js の管理を mise に切り替え、Volta を PATH から外し、Claude Code も公式のネイティブインストーラー版で入れ直した。

主な成果:

  • Node.js 管理を Volta → mise に切り替え(v22.22.2 が mise 経由で動作)
  • ユーザー環境変数から Volta 関連の PATH エントリを削除
  • npm 版 Claude Code が Windows ネイティブバイナリを欠いていたため、公式インストーラーで再セットアップ(2.1.119
  • 3月の 移行計画記事todo: "done" に更新

詳細: Volta から mise への移行完了 - Claude Code を入れ直すまでに詰まった5つの落とし穴


今日の試行錯誤

#テーマ試したこと結果気づき
1スクロール変換レイアウト全体をstepsレイアウトに差し替え失敗ユーザーはセクション列・チャプター列を残したかった
2スクロール変換MillerViewerのslotでColumn 4だけ差し替え失敗トピック列を消してほしいという要望だった
3スクロール変換singleSectionModeでトピック列を自動非表示成功既存コンポーネントの隠し機能が使えた
4ASBJ基準取得curlで旧ドメイン(asb.or.jp)にアクセス失敗ドメインが新サイト(asb-j.jp)に移行していた
5HTML→JSON変換既存JSONファイルを上書き事故citations.jsonの引用マッピングが壊れた。gitから復元
6リンク検証HTTPステータスだけチェック不十分200が返っても内容が違うケースを見落とす
7チャプター切替nextTickでscrollTo(0)失敗ブラウザのスクロール復元と競合。flush:'post' + rAFで解決
8mise状態確認PowerShellで head -5 / which node を実行失敗Linux/macOSコマンドはPowerShellで通らない。Select-Object -First / Get-Command に書き換え
9Volta削除Windowsの環境変数編集画面でPathを保存失敗「2047文字より長い値は設定できません」。[Environment]::SetEnvironmentVariable で直接書き換えて解決
10Claude Code入れ直しnpm install -g @anthropic-ai/claude-code失敗claude.exe が 500バイトのエラー出力スクリプトだった。optional依存のネイティブバイナリが降ってこない
11Claude Code入れ直し公式の irm https://claude.ai/install.ps1 | iex成功C:\Users\numbe\.local\bin\claude.exe に2.1.119が入って正常動作

今日の学び

  • singleSectionModeのような既存機能を先に探すと、大規模な改修を避けられる
  • JSONファーストの原則: HTMLは生成物、ソースデータのJSONを編集する
  • 上書きではなく追加: 既存のマッピングが参照するIDは不変にする
  • flush: 'post' + requestAnimationFrameの二段構えは、Vue + ブラウザのスクロール競合で使い回せるパターン
  • 外部サイトのドメイン移行は連鎖する — 1箇所見つけたら関連URL全部を洗い直す
  • Windowsの環境変数編集画面には2047文字の壁がある。PATHが育ち切ったら [Environment]::SetEnvironmentVariable で直接書き換えるのが速い
  • [Environment]::SetEnvironmentVariable(...) は保存済みレジストリを書き換えるだけで、起動中セッションの $env:Path は書き換わらない。反映にはターミナルを開き直す
  • npm版Claude Codeの claude.exe はネイティブバイナリ本体ではなく、optional依存のダウンロードが失敗したときのエラー出力用スクリプト。Windowsは公式の install.ps1 が結局一番近道

関連記事