• #日記
  • #書籍デジタル化
  • #TursoDB
  • #Vue
  • #SVG
  • #Codex
  • #Windows
daily-log

2026年4月29日の開発日記

朝、Cドライブの空き容量が10%を切っていた画面を眺めるところから始まり、夜には蔵書841冊が二軸+第3軸(コンテンツ)で分類され、Excel講座の全章が共通の縦記事レイアウトに揃い、GIFターンテーブルが7種類のSVGアニメに化けていた。並走したセッションは11本、プロジェクトは3つ(book-knowledge-base / eurekapu-nuxt4 / mdx-playground)。

今日のタイムライン

タイムライン

今日やったこと

1. Cドライブ大規模クリーンアップ:733GB使用 → 188GB空きへ

朝イチで空き容量が10%を切っていた C ドライブを丸1日かけて整理した。uv cache clean で37GB、Tempから11GB、Google Drive残骸を削除、Microsoft 365 Personal の OneDrive を「ファイルオンデマンド」に切り替え、Dropbox の「ハードドライブ容量を管理」で200GBをクラウドのみへ。Docker / WSL / npm cache / Adobe Media Cache まで一通りスキャン。

主な成果:

  • 18.3% → 22.4% まで空き容量が回復し、188GB を解放
  • Google Drive ミラーリング時代の残骸を gogcli スキルで突き合わせて安全に削除
  • OneDrive と Dropbox の「同期はするがローカルに置かない」モードを正しく理解した

詳細: Cドライブ大規模クリーンアップで733GB使用→188GB空き達成


2. 蔵書841冊にセミラティス的タグを付ける

Amazon商品メタの全件取得を完走させたあと、841冊をサブエージェント8並列でタグ付けした。Codexに2回(v1→v3)プランレビューを依頼し、キー設計バグと検証ロジックの欠落を直してから本番投入。shelf UIに★区切り(5.0/4.5以上/4.0以上)の横線とタグフィルタを追加し、ユーザー要望から「コンテンツ軸」(第3軸:連結/簿記/キャッシュフロー計算書/Excel等)を新設して98ペアを補正した。

主な成果:

  • baseline 60冊+781件を8バッチに分割、サブエージェント並列でJSONL生成→DB投入
  • タイトルマッチ自動付与+Claude全件再走査の二段構えで漏れを最小化
  • 著者情報(#bylineInfo)も追加で344件取得(CAPTCHAで中断、明日朝リトライ)

詳細: 蔵書841冊にセミラティス的タグを付ける:サブエージェント8並列+Codex2回レビュー


3. /restructure-book を Turso API に書き換えて専門書2冊を再構造化

旧コマンドはローカル SQLite を better-sqlite3 で直接叩く前提だったので、Embedded Replica + Turso クラウドに合わせて全面書き換えた。書き換え後、専門書2冊(連結CFマニュアル341→31、設例CF Q&A 411→95)に通し、合計752チャンクを126セクションに圧縮。蔵書UIには「整」(黄色:cleanup_status)と「済」(緑:restructure_status)の2バッジを並べ、書籍ページから /shelf への戻り導線も右上に追加した。

主な成果:

  • スラッシュコマンド本体を Turso API 対応に書き換え
  • 752チャンク → 126セクション(うち626チャンク削除、FTS検索でも検証)
  • shelf画面でカバー画像左上に「済」バッジ表示(著者NULLでも消えない実装)

詳細: /restructure-book を Turso API に書き換えて専門書2冊を再構造化


4. Excel講座の統合記事パターンを ScrollArticle に共通化

朝、contents.vue にフック→伏線→回収構造を入れたところから一日が転がった。short-video-strategy スキルにあるホテル再建計画氏の方法論を講座のスクロール体験に移植。途中、hardwarecontents で目次レイアウトが揃わない問題に当たり、原因が scroll-layout の DOM 構造分岐だと判明。ScrollArticle.vue を新規作成して両側を共通化した。Codex 3回レビューを挟み、モバイルでデスクトップTOCとモバイル本文が二重描画されるバグも潰した。stream-deck の各章も「1章=1統合記事」に集約。

主な成果:

  • ScrollArticle.vue を共通コンポーネント化、h2/h3 の id 属性が DOM に正しく載って deep link が機能
  • フック→伏線→回収構造を導入、画像モーダル(.scroll-img / .exercise-img)を白背景で拡張
  • 用語を「統合記事パターン」「スライドパターン」に固定

詳細: Excel講座の統合記事パターンを ScrollArticle に共通化した日


5. CF精算表ページに年次推移表を追加、列幅をピクセル単位で揃える

/cashflow-statement/v2/statement/v2/accounting/annual-table の年次推移表を V2AnnualTableSection に統一し、CF計算書の直下に年次推移表を挿入して財務3表の縦並びを成立させた。借/貸列・期首列を削除、CF計算書ページのみ補助科目を畳む compact プロパティを追加。最後の難所は列幅で、table-layout: fixed と列幅定数化で完全一致(x=307→659→779→899→1019→1139)。/simplify 3エージェント並列レビューで574行→451行(-123行)まで削った。

主な成果:

  • V2AnnualTableSection.vue を新規作成、CF精算表+年次推移表ページを共有
  • table-layout: fixed で列幅をピクセル単位で同期
  • PL 8グループをメタデータ駆動に再構成し、テンプレートDRY化

詳細: CF精算表ページに年次推移表を追加、列幅をピクセル単位で揃えて財務3表を縦並びにした


6. GIFターンテーブル75フレーム → SVGアニメデモ7種

ユーザーから受け取った Adobe Firefly のターンテーブルGIF(74フレーム)を ImageMagick で分解し、コンタクトシートで全体像を確認。yaw+pitchの2軸データであることが判明したので、まずラスター(PNG/GIF)でデモを12種作った。途中で「実は全部ラスター処理でSVGに一切変換していない」と気づいて自己訂正。ユーザーから提供されたSVG74ファイルでデモを書き直し、2軸ビューア/カラーパレット動的変更/パーツ表示/レイヤー分解/線画ドローイング/連続再生/蛇行飛行アニメの7種を完成させた。

主な成果:

  • 75フレームのスプライトシート+CSSアニメHTMLデモ
  • SVGの <style> を innerHTML 書き換えで効かないバグを path.style.fill 直接設定で回避
  • 雲削除+画面外飛行パターンへユーザーフィードバックで改修

詳細: AdobeターンテーブルのGIF75フレームをImageMagickで分解してSVGアニメデモを7種作った


7. Bloom Energy Q1 2026 決算分析記事

朝の隙間時間で、Bloom Energy($BE)の過去5年・21四半期分の業績まとめ記事を作成。チャート1枚と本文。

詳細: Bloom Energy Corporation $BE Q1 2026決算と過去5年21四半期の業績推移


今日の試行錯誤

#テーマ試したこと結果気づき
1Amazonメタ取得バックグラウンド再走→cp932で例外30件ごとログ出力で止まるだけでDB書き込みは成功stdout/stderrのUTF-8切替を入れて再発防止
2著者取得全788件を再取得5件連続CAPTCHA→344件成功で中断「連続5件」判定は成功が間に入るとリセット。累積カウンタが必要
3841冊タグ付けCodex v1レビューキー設計 (file_no, category) でINSERT OR REPLACE破壊リスクsource を含めた3カラム複合キーへ変更
4コンテンツ軸の漏れタイトルマッチで自動付与→Claude全件再走査漏れは大きく見つからず、誤付与5件を除外「速いが取りこぼす」と「遅いが文脈で拾う」の二段構えが効く
5/restructure-book旧コマンドをそのまま実行better-sqlite3前提で1行も動かないスラッシュコマンドをTurso API対応に全面書き換え
6shelf 「済」バッジ著者列の右隣に表示著者NULLだとバッジも消えるカバー画像左上に重ねて配置(白文字+緑背景)
7目次レイアウト差異hardware側のCSSだけ揃える構造が違うので根本解決にならずscroll-layout構造そのものを共通化(ScrollArticle.vue 新規)
8モバイル幅確認iPhone 375px で表示ScrollArticleとtheater-mobileが二重描画article モード時は theater-mobile を v-if で隠す
9CF年次推移表の列幅CSS の min-width / width 調整FY26列だけ1〜2px ズレるtable-layout: fixed + 列幅定数化で完全一致
10SVGカラーパレット<style> の innerHTML 書き換えpath の色が元のまま(再評価されない)path.style.fill で inline style 設定(presentation attribute対抗)
11雲+ターンテーブル飛行画面内で機体が回転雲のサイズが固定で奥行きが嘘っぽい雲削除+画面外フレームアウト/インを挟む
12CドライブクリーンアップOneDrive all folder を一気にクラウド化39,699件で10時間表示→止めて様子見スマートシンク/オンデマンドの仕組み(200GBは論理サイズ、実体13GB)を腹落ち

今日の学び

  • 二段構えが効く: 「自動マッチで速く拾う+全件再走査で文脈拾い」は精度を上げる。タグ付けでもチャンク統合でも同じ構造。
  • 共通化は構造から: CSSだけ揃えても根本解決にならない。DOM 構造そのものを分岐させない設計に踏み込む必要がある(ScrollArticleがその好例)。
  • table-layout: fixed は最後の砦: 列幅をピクセル単位で揃えたいときは、auto レイアウトでの調整に粘らず、fixed+定数化に早めに切り替える。
  • CSSクラスはpresentation attributeを上書きする: SVGの fill="..." 属性が <style> のCSSルールに勝つので、動的に色を変えたいときは inline style で書く。
  • Cドライブの容量食い犯人は予想と違う: pagefile.sys や hiberfil.sys ではなく、開発ツールキャッシュ(uv 37GB / npm / Temp)と OneDrive / Dropbox のローカル同期分が大半。

明日やること

  • 著者情報の残り444件をリトライ(CAPTCHAクールダウン明けを確認してから)
  • ゲシュタルトのGIF動画を講座ページに置き換える作業
  • Excel講座の全ページを統合型 / スライド型でレビュー(統合型に倒せるものを洗い出し)
  • CF Q&A 設例書籍(95セクション化済み)の蔵書UIで「済」バッジ反映を確認
  • book-knowledge-base の bs-pl-impact-100-cases(180チャンク)の OCR マージ修正

関連記事