2026年7月16日の開発日記 - Notion内部APIクロール3,000ページ超と語源アプリ本番公開、R2移行計画

daily-log

2026年7月16日の開発日記

Fable 5のrate limitエラーが9件、連続で並んだ。コンテンツ生成8バッチは全滅に見えた。DBを確認すると、全部書き込み済みだった。エラーの数は、失敗の数ではなかったわけだ。朝イチの積み残し確認とGoogleタスクの断捨離で足場を作り、日中はNotionアーカイブの内部API再帰クロールをChromeタブで回し続けた。その裏で語源英単語アプリのミニテスト4択化と本番公開、書籍図版62,331件のR2移行のCodex委任と完走。夕方には今度はマークダウンの数式化バグを見つけて、115ファイルぶんの宿題を明日に残した。並列度の高い一日だった。

今日のタイムライン

タイムライン

今日やったこと

1. Notion自動アーカイブを内部API再帰クロールに切り替え

初期方針は「公式ZIP+内部API補完」の二本立てだった。これを捨てた。ZIPエクスポートではデータベースの中身が全部は取れないことを、過去に自分で経験していたからだ。内部API単体で完結させる路線に切り替えて入れ子DBの再帰取得と画像回収を実装させ、Chromeタブに常駐させたJavaScriptの自己監督ループで429を自動回避しながら、当日中に3,000ページ超・10万ブロック超を取得。クローラーは明日へ引き継ぐ形で安全停止した。

主な成果:

  • 861ページの初回完走+常駐ループで+2,316ページ(残キュー4,757)
  • 画像222/224枚を署名付きURLから回収
  • path-traversal / SSRF のセキュリティレビューも実施

詳細: NotionアーカイブをZIP依存から内部API再帰クロールに切り替えた話


2. 語源英単語アプリ Phase 4 — D1本番適用とミニテスト4択化、本番公開

D1マイグレーション0007を本番適用し、Phase 4A(アトラス3859号)の英語コンテンツを359語まで進めた。rate limitの9連発はこの途中で起きた。並んだエラーと、書き込み済みのDB。信じるべきは後者だった。章末コーナーのレイアウト崩れを直し、ミニテストは自己申告の○×から4択即時判定(18章×5問=90問)に置き換えて、本番環境へのオープン化まで済ませた。

主な成果:

  • D1マイグレーション0007の本番適用
  • ミニテスト90問の4択化と履歴保持
  • gogen-eitango の本番公開(デプロイ6.4分)

詳細: gogen-eitango Phase 4: D1本番適用と章末ミニテストの4択化


3. 書籍図版62,331件のCloudflare R2移行計画とCodex実装委任

book-knowledge-base の図版PNG 62,331件・2.96GBは、ローカルディスクが飛べばそれきりの単一障害点だった。R2移行の計画書で答えを出した。設計の分かれ目は、93,505件のDBレコードに焼き込まれたURLをどう扱うか。採ったのはサーバープロキシ方式である。Codexレビューで致命的指摘3件(検証フェーズ新設・rclone check強化・削除前の二次バックアップ)を反映し、実装本体はCodexに委任して同日中に完走させた。

主な成果:

  • 計画書 figures-r2-migration-plan.md の完成(レビュー済み)
  • 全62,331件のR2アップロード・rclone check全件照合(差分0)・Dropbox二次バックアップ・ローカル図版削除まで同日中に完了
  • 残処理は Dropbox オンライン専用化の確認と移行用トークンの失効のみ

詳細: 62,331件の書籍図版をCloudflare R2へ移行する計画づくりとCodexへの実装委任


4. 積み残し確認とGoogleタスク7件の断捨離

朝イチで昨日分の積み残しを洗い出し、5分割コミットで完済。続けて開いたGoogleタスクは、7件中5件が3ヶ月前の起票だった。もうタスクリストではない。罪悪感の陳列棚である。復帰用の情報だけmemoに退避してから削除する方針で整理した。Notionの自動アカデミー計画にはGitHubプライベートリポジトリを作成。

主な成果:

  • 昨日分の5コミット(学習ゲート合格込み)で積み残しゼロ
  • Googleタスク: 完了扱い2件・削除5件で「アクティブなリスト」を回復

詳細: 積み残し確認とGoogleタスク7件の断捨離


5. AIユーザー数記事の追記とデプロイスクリプトの改善

昨日のAIユーザー数記事に追加調査を載せた。コーディングエージェントの利用者は、チャット型AIの約100分の1(2桁小さい)。この差は1枚のチャートに収まるだろうか。9億の隣に置いた700万の棒は、もう読めない。比較チャートは見送り、Codex単体の成長だけをSVG折れ線にして埋め込んだ。デプロイは1回目が失敗。原因切り分けから measure-deploy.ps1 にpre-deploy validationを組み込んで、最終的に本番反映まで完了した。

主な成果:

  • Codex成長の折れ線チャート追加(lint機械検証済み)
  • pre-deploy validation の組み込みと /deploy 側の横展開確認
  • 本番デプロイ成功

詳細: AIユーザー数記事にCodex折れ線グラフを追記し、デプロイスクリプトにpre-deploy検証を組み込んだ話


6. マークダウンの$数式化バグを発見、115ファイルを明日へ

AX記事を確認していて、表示の崩れが目に留まった。$ に挟まれた区間が、数式として飲み込まれている。横展開調査で括弧隣接の太字崩れを114記事直したが、それでも直らない記事が5件残った。真因はそこにいた。remark-math の1ドル記法である。対象115ファイルのリストと修正スクリプトをmemoに退避し、Googleタスクに登録して明日再開する形にした。

詳細: マークダウン記事の$隣接**が数式化されて崩れる問題を発見


7. そのほか

  • Windowsストレージ掃除ラウンド2: Cドライブの空きを45.4GB→129.8GB(+84GB。翌朝の実測では155.3GBまで回復)まで掃除した。OCRデバッグ画像13.76GB・Hugging Faceキャッシュ・Docker・WSL・休止状態オフなどを、アプリのアンインストールは自分の手で、残骸フォルダやデバッグ画像の削除はClaude Codeに任せる分担で進めた(記録は非公開記事に整理)
  • マネーフォワード会計への不満ログ: 自分のXアカウントの過去投稿から会計ソフトへの不満・要望を洗い出し、発生日と解決状況をモニタリングする公開記事にまとめた
  • SVG図解スキルの改善: note記事を題材にデロイト資料の「7つの型」を検証し、スキルに足りない要素を洗い出した。強調は「背景塗り」から「文字色」基本へ方針転換
  • 決算ビートスキャン: ASMLのQ3ガイダンス+13.9%ビート&レイズなどを朝のチェーンで記事化
  • 「誰がAXをできるのか」: 業務をコードに落とし込める人の条件を記事化

今日の試行錯誤

#テーマ試したこと結果気づき
1Notionアーカイブ公式ZIP+内部API補完の二本立てZIP路線を放棄→内部API単体へZIPはDBの中身が完全に取れない。自分の実体験が方針を決めた
2NotionクロールqueryCollection APIの再現リクエスト50件で頭打ち→allBlockIds発見で突破APIレスポンスの別フィールドに全量が入っていることがある
3Notion 429対策素朴な連続リクエスト429を44件浴びた→400msスロットル+3分自動待機で完走常駐ループに「自己監督」を持たせるとタブ任せで回る
4Notion画像直接fetchで画像取得403→ネットワークログの302先から署名付きURLで回収CSP/CORSに阻まれたらネットワークログが正解を持っている
5gogen Phase 4AFable 5で8バッチ生成rate limit 9連発→実は全部書き込み済みだったエラーの連発と書き込み失敗は別物。先にDB状態を見る
6ミニテスト自己申告の○×ボタン4択即時判定に置き換え「正解できた/間違えた」を押させる摩擦は選択式で消せる
7デプロイmeasure-deploy.ps1 の1回目prerender後に失敗→pre-deploy validation組み込み10分ビルドの失敗は事前検証で防ぐのが一番安い
8デプロイ再試行2回目も別エラー一過性と判断して再実行→成功検証スクリプトの失敗は原因の階層を分けて読む
9$数式化括弧隣接の太字崩れを横展開修正114記事修正→残り5記事の真因は$数式化一括修正後の「残り」にこそ真因が隠れている
10Googleタスク7件を保持したまま眺めるmemo退避→完了2件・削除5件3ヶ月放置のタスクリストは「罪悪感の陳列棚」
11R2移行の委任Codexへの実装委任一度分類器にブロック→経路を立て直して同日完走委任プロンプトも分類器に引っかかることがあるが、正規の再試行で通る

今日の学び

  • rate limitエラーが連発しても、書き込み自体は成功していることがある。エラー表示を数える前にDBの実際の状態を確認する
  • ZIPエクスポートの「公式だから完全」という思い込みは危険。過去に自分が経験した欠落が、方針転換の一番の根拠になった
  • 10分かかるビルドの失敗は、失敗してから調べるのではなく、事前検証(pre-deploy validation)で入口で止める
  • タスクリストは放置すると「罪悪感の陳列棚」になる。興味が薄れたタスクは復帰情報だけ退避して消すと、リスト全体の信頼性が戻る
  • 一括修正で直りきらなかった「残り」には別の真因がある。114件直して残った5件が remark-math の仕様に辿り着かせた

明日やること

  • $数式化問題の修正方針を決めて115ファイルに適用(案A: singleDollarTextMath無効化 / 案B: エスケープ横展開)
  • Notionアーカイブの残キュー4,757ページの消化とR2複製
  • book-knowledge-base R2移行の残処理(Dropboxオンライン専用化の確認・移行用トークンの失効)

関連記事