[{"data":1,"prerenderedAt":198},["ShallowReactive",2],{"tag-articles-sqlite":3},[4,10,15,19,24,29,34,39,45,49,54,58,64,69,74,80,85,89,94,99,103,108,113,118,123,128,132,137,141,146,150,155,159,164,168,173,178,183,188,193],{"title":5,"description":6,"path":7,"publishedAt":8,"updatedAt":9},"Nuxt Content の SQLite アーキテクチャ解説","Nuxt Content v3 がどのように SQLite を使ってコンテンツを管理し、Markdown ファイルの変更を検知してデータベースを更新するかの詳細解説","/nuxt-content-sqlite-architecture","2025-10-02T00:00:00.000Z",null,{"title":11,"description":12,"path":13,"publishedAt":14,"updatedAt":9},"Nuxt Content: ファイル監視と自動更新の仕組み","Nuxt Content v3のファイル監視とSQLite自動更新の仕組みを詳しく解説","/nuxt-content-file-watch-and-auto-update","2025-10-04T00:00:00.000Z",{"title":16,"description":17,"path":18,"publishedAt":14,"updatedAt":9},"Nuxt Content: SQLite フィールドマッピング仕様","Nuxt Content v3 のマークダウンファイルから SQLite データベースへのフィールドマッピング詳細仕様","/nuxt-content-sqlite-field-mapping",{"title":20,"description":21,"path":22,"publishedAt":23,"updatedAt":9},"Nuxt Pages と Nuxt Content の統合仕組み","pagesディレクトリとcontentディレクトリの違い、SQLiteの役割、記事一覧への統合方法を包括的に解説","/nuxt-pages-and-content-integration","2025-10-05T00:00:00.000Z",{"title":25,"description":26,"path":27,"publishedAt":28,"updatedAt":9},"Nuxt Content「database is locked」エラーの原因と対処法","ファイル変更時に発生するSQLite database lockedエラーの原因と解決策","/nuxt-content-database-locked-issue","2025-11-19T00:00:00.000Z",{"title":30,"description":31,"path":32,"publishedAt":33,"updatedAt":33},"Nuxt Content + Pages ハイブリッドアーキテクチャ：プロジェクト要件定義書","Nuxt Content（Markdown + SQLite）とNuxt Pages（Vue）を組み合わせたハイブリッドCMSアーキテクチャの完全ガイド。新規プロジェクトとしてゼロから構築するための要件定義を含む","/nuxt-hybrid-content-architecture","2025-11-29T00:00:00.000Z",{"title":35,"description":36,"path":37,"publishedAt":38,"updatedAt":38},"Nuxt Content v3：D1データベースは本当に必要なのか？","wrangler.tomlにD1を設定しているのに、実際には使われていなかった事実。Nuxt Content v3のSQLiteデータフローを正確に理解する","/nuxt-content-d1-not-used","2025-12-05T00:00:00.000Z",{"title":40,"description":41,"path":42,"publishedAt":43,"updatedAt":44},"Composable自動生成リファクタリング - 引き継ぎドキュメント","SQLiteからcomposableを自動生成するにあたり、データ構造の整理と集約ロジックの設計。貸借バランス調整ロジックも含む。","/composable-refactoring-handoff","2025-12-12T00:00:00.000Z","2026-01-02T00:00:00.000Z",{"title":46,"description":47,"path":48,"publishedAt":43,"updatedAt":43},"SQLiteから財務データを読み込む実装方針","koyfin.dbに格納された財務データをVueページで表示するための実装アプローチ比較","/sqlite-financial-data-implementation",{"title":50,"description":51,"path":52,"publishedAt":53,"updatedAt":53},"財務データパイプライン - 全体像","KoyfinからChrome拡張機能でデータを取得し、SQLite経由でVueアプリに表示するまでの完全なデータフロー","/financial-data-pipeline-overview","2025-12-14T00:00:00.000Z",{"title":55,"description":56,"path":57,"publishedAt":43,"updatedAt":53},"Koyfin Chrome拡張機能とSQLiteインポート - 実装サマリー","KoyfinからTSVデータをダウンロードし、SQLiteにインポートするまでのChrome拡張機能の実装詳細","/koyfin-chrome-extension-sqlite-import",{"title":59,"description":60,"path":61,"publishedAt":62,"updatedAt":63},"財務データ生成スクリプトの企業数差異分析","3つのデータ生成スクリプト間の企業数差異の原因調査と対処方法","/financial-data-company-diff-analysis","2025-12-19T00:00:00.000Z","2025-12-20T00:00:00.000Z",{"title":65,"description":66,"path":67,"publishedAt":68,"updatedAt":68},"ハイライト抽出ツール - 実装TODO","Kindleハイライトビューアのようなウェブアプリの実装計画とTODOリスト","/highlight-extraction-tool-todo","2026-01-05T00:00:00.000Z",{"title":70,"description":71,"path":72,"publishedAt":73,"updatedAt":9},"@nuxt/content「UNIQUE constraint failed: _content_pages.__hash__」エラーの原因と解決策","Nuxt devサーバー起動時に発生するSQLiteのUNIQUE制約エラーの原因調査と解決方法。コンテンツファイル削除後にキャッシュが残ることで発生する問題を解説。","/nuxt-content-sqlite-unique-constraint","2026-01-06T00:00:00.000Z",{"title":75,"description":76,"path":77,"publishedAt":78,"updatedAt":79},"税務アシスタント: 手書き売上伝票OCR対応の設計と実装","Claude CodeとGemini APIを組み合わせた手書き売上伝票のOCR対応を実装。ドキュメントタイプのDB管理、クライアント別スキーマ、インポートコマンドの粒度分離、テーブル分離設計、UI実装までを1日で完了した記録","/tax-assistant-sales-slip-ocr","2026-01-14T00:00:00.000Z","2026-01-17T00:00:00.000Z",{"title":81,"description":82,"path":83,"publishedAt":84,"updatedAt":9},"手動売上伝票登録機能の実装 - OCRでスキャンできない伝票への対応","Square明細との突合で不一致が発生した際、OCRでスキャンできなかった売上伝票を手動で登録する機能の設計と実装。manualバッチの概念、ReceiptFormの手動モード対応、DBヘルパー関数の詳細を解説。","/manual-sales-slip-registration","2026-01-20T00:00:00.000Z",{"title":86,"description":87,"path":88,"publishedAt":84,"updatedAt":9},"Square明細インポートと売上伝票突き合わせ機能の実装","Square決済のCSV明細をインポートし、売上伝票との突き合わせチェックを行う機能を実装。日付フォーマット不一致の修正、売上伝票がある月のみのチェック対象化、建設的なエラーメッセージの追加など、実用的な機能を段階的に改善した開発ログ。","/square-matching-implementation",{"title":90,"description":91,"path":92,"publishedAt":93,"updatedAt":9},"2026年1月25日の開発日記 - 計画ページMiller Columns化とGMO CSV仕訳インポート設計","月次推移表リンク機能、計画ページのMiller Columns風レイアウトへの大幅リデザイン、仕様書表示機能、GMO CSV仕訳インポート計画、日付形式統一マイグレーション完了など","/2026-01-25-diary","2026-01-25T00:00:00.000Z",{"title":95,"description":96,"path":97,"publishedAt":98,"updatedAt":9},"2026年1月27日の開発日記 - tax-assistantの帳票設定UIとスキーマ改善","tax-assistantプロジェクトで帳票設定UIの大幅改善、document_typesスキーマリファクタリング、PRレビュー、Miller Columns統一計画を進めた1日の記録","/2026-01-27-diary","2026-01-27T00:00:00.000Z",{"title":100,"description":101,"path":102,"publishedAt":98,"updatedAt":9},"document_typesテーブルのスキーマリファクタリング - カラム名改善と後方互換性の実装","codeからdoc_category、nameからdisplay_nameへのカラム名変更、display_order削除によるソート方式変更、Codexレビューの活用、仕訳ルールタブとの連携改善、後方互換性の実装、e2eテストの追加までの詳細な実装記録","/document-types-schema-refactor",{"title":104,"description":105,"path":106,"publishedAt":107,"updatedAt":9},"仕訳ルールUIの大幅改善 - 帳票タイプ別表示とカラム構成変更","shiwake_rulesテーブルへのdocument_type_id追加、書類タイプ別の帳票タイプ表示、RuleListViewのカラム構成変更、収支区分の自動選択・disabled表示、件数表示の追加など、仕訳ルール管理画面のUI/UXを大幅に改善した開発ログ","/shiwake-rules-ui-improvement","2026-01-28T00:00:00.000Z",{"title":109,"description":110,"path":111,"publishedAt":112,"updatedAt":9},"蔵書ナレッジベースの構築 - Gemini OCRとNuxt 4で書籍PDFをWebリーダーにする","book-knowledge-baseプロジェクトで創業手帳PDFをGemini APIでOCR処理し、SQLiteに格納。Nuxt 4でMiller Columnsレイアウトの書籍ビューアを構築した開発記録。","/book-knowledge-base-nuxt4-frontend-2026-02-07","2026-02-07T00:00:00.000Z",{"title":114,"description":115,"path":116,"publishedAt":117,"updatedAt":9},"tax-assistant: マネーフォワードCSV取込と自動仕訳ルールのインポート","マネーフォワードからエクスポートしたカード明細CSVの取込、新規クライアント登録、DBパスのハードコード修正、Googleスプレッドシートからの仕訳ルール85件インポートまでの作業ログ。","/tax-assistant-csv-import-shiwake-rules-2026-02-12","2026-02-12T00:00:00.000Z",{"title":119,"description":120,"path":121,"publishedAt":122,"updatedAt":9},"YouTube動画分析ダッシュボード構築 -- yt-dlpメタデータ取得からコメント分析・Miller Column UIまで","散歩系YouTubeチャンネル Rambalac の全動画メタデータ約1,500件をyt-dlpでSQLiteに取得し、Vite + Vue 3 SPAで分析ダッシュボードを構築。Chart.jsによる可視化、Miller Columnレイアウトでのロケーション分類、YouTube Data APIによるコメント分析まで一気通貫で実装した記録。","/youtube-analytics-dashboard-2026-02-14","2026-02-14T00:00:00.000Z",{"title":124,"description":125,"path":126,"publishedAt":127,"updatedAt":9},"書籍OCRパイプライン整備 - yomitoku + SQLite + 並列クリーンアップで蔵書DB構築を加速した一日","yomitoku（日本語特化AI OCR）で書籍PDFをMarkdown変換しSQLiteに格納。cleanup-bookコマンドの並列処理化、前処理パイプライン追加、ビューアUI改善など、書籍ナレッジベースの基盤を一日で大幅に底上げした記録。","/book-ocr-pipeline-2026-02-19","2026-02-19T00:00:00.000Z",{"title":129,"description":130,"path":131,"publishedAt":127,"updatedAt":9},"2026年2月19日の開発日記 - 書籍OCRパイプラインを丸一日磨き上げた日","yomitoku OCRで複数冊の書籍をDB化し、クリーンアップの並列処理・前処理パイプライン・進捗UI表示まで一気に整備。vivid-writingスキルも作成して日記生成の文章品質を底上げした。","/2026-02-19-diary",{"title":133,"description":134,"path":135,"publishedAt":136,"updatedAt":9},"書籍OCRバッチクリーンアップとtokyo-onkeiデプロイ修正 - 2026年2月20日","yomitokuで75ページのPDFを113秒でOCR変換し、複数冊のDBクリーンアップを並列バッチ処理。tokyo-onkeiのCSS崩れ・リダイレクト問題も解消した開発ログ。","/book-ocr-and-misc-2026-02-20","2026-02-20T00:00:00.000Z",{"title":138,"description":139,"path":140,"publishedAt":136,"updatedAt":9},"税務アシスタント開発ログ - 新規クライアント対応・レシートOCR100件超・税区分トグル実装","tax-assistantプロジェクトの開発記録。読み取り一覧のインデックス不一致バグ修正、4人目のクライアント登録、レシートOCR100件超のバッチ処理、補助元帳CSVインポート、税区分トグルUI実装、MF仕訳CSVエクスポートまでの一日。","/tax-assistant-tax-category-2026-02-20",{"title":142,"description":143,"path":144,"publishedAt":145,"updatedAt":9},"クレカ明細の返品仕訳バグ修正 - is_refundフラグ実装と借方貸方反転ロジック","クレジットカード明細でプラス値（返品）が発生した際に仕訳の借方・貸方が反転しないバグを修正。is_refundフラグの実装からUI制御まで一連の対応を記録。","/creditcard-refund-journal-fix-2026-02-27","2026-02-27T00:00:00.000Z",{"title":147,"description":148,"path":149,"publishedAt":145,"updatedAt":9},"税務アシスタント外貨建てレシート対応 - アルゼンチンペソの$問題からis_foreign_currencyフラグのフルスタック実装まで","アルゼンチンペソがドル記号$を使う問題をきっかけに、外貨建てレシート判定フラグをGemini OCR・DB・API・フロントエンドの全レイヤーで実装した開発ログ","/foreign-currency-receipt-2026-02-27",{"title":151,"description":152,"path":153,"publishedAt":154,"updatedAt":9},"2026年4月6日の開発日記 - CF精算表SUMIFS化とXブックマーク分析基盤","CF精算表パイプラインのSUMIFS全面置換・共通モジュール化・5論点横展開、Xブックマーク8,251件のSheets連携とSQLite分析基盤構築、agent-browserの評価とセットアップを進めた一日","/2026-04-06-diary","2026-04-06T00:00:00.000Z",{"title":156,"description":157,"path":158,"publishedAt":154,"updatedAt":9},"Chrome拡張機能: Xブックマーク分析基盤の構築 — OAuth2認証・Sheets API連携・SQLite変換","X Bookmark ExporterのOAuth2 client ID問題の解決、screen_name取得パス修正、Sheets APIバッチ書き込み実装、ブックマーク8,251件のSQLite化と年度別分析レポート生成までの一日の記録","/x-bookmark-exporter-oauth-sheets",{"title":160,"description":161,"path":162,"publishedAt":163,"updatedAt":9},"CF教材テキスト制作とプロジェクト構造整備 - 書籍データ抽出からディレクトリ再編まで","参考書のSQLiteデータベースから421ページ分のCF計算書データを抽出し、4ファイル1,469行のチャプター解説ドラフトを生成。Codexレビュー2回で致命的指摘4件を修正し、ディレクトリ構造を連番方式に再編した一日の記録","/cf-teaching-content-restructure","2026-04-07T00:00:00.000Z",{"title":165,"description":166,"path":167,"publishedAt":163,"updatedAt":9},"Chrome拡張のsessionStorage脱却とTwitterアーカイブ11,669件のSQLite化","sessionStorageが他の拡張からも読める問題を発見し、chrome.storage.localへ全面移行。あわせて約1.6GBのTwitterアーカイブをSQLiteに取り込み、年度別サマリーを生成した作業ログ","/chrome-extension-storage-security",{"title":169,"description":170,"path":171,"publishedAt":172,"updatedAt":9},"Turso DB移行計画とマルチテナントDBアーキテクチャ設計 - FTS5検証からRLSまで","書籍OCRデータ16冊分のSQLiteをTurso（libSQL）に移行する計画を策定し、Codexレビューで3点の致命的指摘を受けて修正。さらにクラウド会計データのDB設計でマルチテナントアーキテクチャを掘り下げた記録","/turso-migration-multi-tenant-db-design","2026-04-10T00:00:00.000Z",{"title":174,"description":175,"path":176,"publishedAt":177,"updatedAt":9},"Turso Embedded Replicaで書籍DBを移行 - OCRデータ格納からdev確認まで","book-knowledge-baseのSQLite書籍DBをTurso Embedded Replicaに移行した作業ログ。レプリカ配置の見直し、税法入門107ページのOCR→DB格納、Chrome DevToolsでのポート試行錯誤を経て表示確認まで完了","/turso-book-db-migration","2026-04-11T00:00:00.000Z",{"title":179,"description":180,"path":181,"publishedAt":182,"updatedAt":9},"裁断スキャンした参考書をOCRしてTursoに取り込む：WALロックでハングしたスクリプトをHTTP直接接続で救出するまで","214ページの裁断スキャンPDFをyomitokuでOCRし、Turso（libSQL/SQLite互換）に格納。セクション統合スクリプトがEmbedded ReplicaのWALロックでハングした原因を突き止め、HTTP直接接続版に書き換えて救出するまでの試行錯誤を記録する。","/book-ocr-turso-wal-lock-recovery","2026-05-25T00:00:00.000Z",{"title":184,"description":185,"path":186,"publishedAt":187,"updatedAt":9},"ある国家資格試験の過去問データを Turso DB に丸ごと移して全文検索できるようにした","別アプリに散らばっていた過去問JSONを Turso へ一括移行した記録。スカラー値は列、解説や法令参照のネスト構造はJSON列で保持した。配列ラップ構造の混在やstdoutバッファリング、会話履歴肥大によるパースエラーまで、つまずいた過程を残す。","/exam-past-questions-turso-migration","2026-05-27T00:00:00.000Z",{"title":189,"description":190,"path":191,"publishedAt":192,"updatedAt":9},"Nuxt Content の database lock と auto-import 衝突によるビルドエラー - dev起動失敗から measure-deploy で再発するまでの2連続","dev server 起動時に @nuxt/content が SQLite を握れず落ちた。裏で pnpm generate が走っていたのが真因。さらに同じ日の午後、auto-import 衝突を避けるため export const を内部 const に降格させたら、明示 import していたページ側を直し忘れて measure-deploy.ps1 がビルドエラーで止まった。","/nuxt-content-db-lock-and-auto-import-conflict","2026-06-13T00:00:00.000Z",{"title":194,"description":195,"path":196,"publishedAt":197,"updatedAt":9},"dev サーバーを止めずにデプロイできるよう、Nuxt のビルド出力先と Content DB を分けた","所要時間計測スクリプトがガードで止まったのをきっかけに、pnpm dev と pnpm generate が共有していた .nuxt と Content の SQLite を分離した。ついでに走りっぱなしのプロセスを一覧する /procs も作った。","/deploy-while-dev-running","2026-07-31T00:00:00.000Z",1785654921139]