2026年7月29日の開発日記 - 朝いちで ~/.claude が消えた日に、7本の作業が並走した
2026年7月29日の開発日記
朝、ターミナルの下に出ているはずのステータスバーが無かった。/login を打ち直したせいだと思った。違った。~/.claude が丸ごと作り直されていて、スキルもコマンドも設定も消えていた。
そこから半日は復旧に取られる、と覚悟した。実際には1時間ほどで戻った。消失の直前に、バックアップ用リポジトリへの push が残っていたからである。ただし戻らなかったものもあって、その線引きを確かめる作業が、そのまま「次に消えたときどうするか」の設計に流れ込んだ。
残りの時間は7本の作業が並走した。決算データの分類の違和感、個人アカウントで動かない CLI、ロゴがPNGしか無いという発覚、Workerバンドルの上限。どれも別々に始まったのに、詰まる場所は似ていた。
今日のタイムライン

17セッション・239件のやりとり。内訳はこのリポジトリ側が14時間4分(12セッション)、別リポジトリの講座サイトが6時間57分(4セッション)、WordPress移行の残タスク確認が22分。
今日やったこと
1. ~/.claude の消失からの復旧と、バックアップの二重化
ステータスバーが出ないという症状から入って、設定ディレクトリが .git ごと作り直されていることを突き止めた。GitHub 上のバックアップリポジトリに消失の1時間前の push が残っていたので、そこから戻させた。スキルとコマンドは復活した。セッションログは戻らなかった。
犯人は特定できていない。自動チェーンの中の削除ステップを疑って調べさせたが、そこはシロだった。時間帯を数分に絞り込んだところで止まっている。
主な成果:
- バックアップ用の private リポジトリを新設し、タスクスケジューラに登録
- 暗号化のパスフレーズは 1Password に置き、リポジトリ側には秘密を持たせない構成にした
schtasksの登録が引数の変換で失敗する問題を、管理者昇格+簡易形式で回避~/.config配下(各種CLIの認証情報)も一緒に消えていたことが判明
詳細: Claude Code の ~/.claude が朝いちで丸ごと消えた — GitHubバックアップからの復元と、自動バックアップの二重化
2. 個人 Gmail を CLI から検索できるようにした
探したいメールが1通あった。それだけの用事だったのに、CLI が仕事用の独自ドメインアカウントしか通らないことに気づいた。原因は OAuth の同意画面が組織内部に限定されていたことで、組織のプロジェクトのクライアントでは個人 Gmail を認証できない。仕様なので、個人アカウント名義で新しいプロジェクトを作るしかなかった。
Console のクリック作業は任せたかったが、経路が3つとも潰れた。ブラウザ拡張は接続済みが0台、agent-browser はプロファイルがロックされていて別コピーとして起動し、DevTools は登録まではさせたものの再起動を挟まないとツールとして見えない。会話を切る代償のほうが大きいので、結局は自分で画面を進めた。押す場所は3つだけだった。
主な成果:
- 個人アカウント用のプロジェクトと OAuth クライアントを新設して認証を通した
- 認証URLにアカウント固定のパラメータを付けて、取り違えを防いだ
- 日本語の検索クエリが Git Bash 経由で壊れて全件ヒットになる問題を、エスケープして渡し直して解決
- 「ドキュメント類は仕事用、個人アカウントはメールとカレンダー」という使い分けを決めてスキルに追記
日程調整の下書きまで作らせたが、送信はしていない。
詳細: 個人 Gmail を Google Workspace CLI から検索できるようにした — OAuth 同意画面が組織内部だと通らない
3. 決算モニタリングのセクター分類と会計年度末月の訂正
メモリの棚に STX が入っているのが気になった。調べさせたら HDD メーカーで、DRAM/NAND を作っているわけではない。メモリとストレージを別のセクターに割り直し、MU をメモリ側へ移した。
そのついでに、決算ダイナミクスのページで焦点四半期が0件になる銘柄が3つあることに気づいた。原因は3銘柄それぞれ違った。SNDK は会計年度末月が12月として登録されていて、正しくは6月だった。半年ずれた窓を見ていたから何も入らなかったわけである。
主な成果:
- メモリ/HDD のセクター分離と MU の移動(テスト97件 pass)
- SNDK の会計年度末月を訂正してデータを再生成、焦点四半期が復活
- スナップショットが1点しかない四半期を候補から外す修正
- コミット3本(本番DBへの書き込みは承認の壁があり、自分の手でコマンドを実行した)
詳細: 決算ビートモニタリングでメモリとHDDのセクターを分離 — SNDKの会計年度末月の登録ミスが出てきた
4. note戦略の資料を1ページに集約し、ロゴをベクター化した
昨日やった作業がどこにあるか思い出せなくなっていた。散らばった資料をトップページの「コンテンツ」欄にローカル限定カードとして集約させた。分類は純粋関数に切り出してテスト22件。
そこでロゴを貼ろうとして、PNG 6案しか持っていないことに気づいた。使うたびに劣化する。Adobe 連携は繋がらず、ピクセルを数えてトレースする案は自分で捨てた。原本1枚に縛られたまま精度を追う作業に時間を溶かす予感がしたからである。
代わりに Codex へ SVG コードを直接書かせたら4案並んだが、3案のうち2つは鳥に見えず魚だった。座標を想像で打っているので造形が当てにならない。使えるのは現行構図をベクター化した1案だけで、結局ベクター化は自分の手で済ませた。起こした SVG は色が13種類に分かれていたので、3系統(マゼンタ1・白7・紺5)に寄せて正規化した。
主な成果:
- note戦略ドキュメントのハブページ(ローカル限定)
- 未公開記事の全文検索が総当たりでタイムアウトしていた問題を修正
- ロゴのベクター化(色を3系統に正規化、原本との差分は輪郭1px程度)+羽ばたきアニメーション4種(全位相をブラウザで目視確認)
- note の動画対応を調査(容量上限は有料エリアでも同じで、有料/無料はアクセス制御の話だと整理)
詳細: 散らばったnote戦略の資料をローカル限定ページに集約し、PNGしかないロゴをSVG化した
5. ログイン済みChromeにDevToolsを繋ぐまでの切り分け
SNS の投稿を保存できるか試したかった。繋がらなかった。原因を4回入れ替えて追った末に、前のセッションが残した孤児プロセスがパイプを塞いでいることが分かった。専用プロファイルなら繋がるが、それではログイン状態が使えない。
途中、ポートは開いているのに404が返る局面があって、故障だと判定しかけた。実際には繋がっていて、このセッションのツールだけが読み込まれていなかった。
主な成果:
- 孤児プロセスを落として
--autoConnect方式で接続、ログイン済みタブから投稿をDOM経由で構造化 - ブランド用のSNSアカウントのプロフィールとヘッダーを整備
- アカウントの新規作成は途中で中止(パスワード設定と本人確認を含む操作はAIに任せない、と線を引いた)
パスワードが分からないアカウントがあり、そこは自分で更新して解決した。
詳細: ログイン済みChromeにChrome DevTools MCPを繋ぐまでの切り分け記録
6. note第1弾の企画レビューと、シーケンス図への描き直し
決裁フォームで企画書をレビューしていて、最初に赤を入れたのは記事の並び順ではなかった。「分割が必要」という前提そのものが古かった。最近のモデルは1枚の写真に複数のレシートが写っていても、境界がはっきりしていれば分割せずに読み取れる。前提から4か所を書き直させた。
もうひとつ、ゴールが「様式のExcelを作って終わり」になっていた。実務では会計ソフトに取り込んで画面に出るところまでが仕事である。そこまで伸ばした。
主な成果:
- 前提の誤りを含む4か所の書き直し
- 撮影から取り込み・表示までを1本のシーケンス図に(フェーズ入り)
- 実務のディレクトリをネタ元に読ませる前に「実名・金額は一切使わない」を先に立てた
- 引き継ぎを計画書の §12 として残した
詳細: 企画レビューで前提が2つ崩れた — レシートOCRのシリーズ案をシーケンス図に描き直す
7. 講座サイトのWorkerバンドル削減(島マウント機構)
別リポジトリの講座サイトが Cloudflare Workers のバンドル上限に当たっていた。Vue のページはどう書いても Worker のバンドルに載る。だから静的HTMLに変換して、必要な箇所だけ後から Vue を差し込む方式にした。
ClientOnly は SSR に痕跡をほとんど残さないので、後から島の位置を特定できない。島を探す方式を捨てて、変換の時点で目印を置く方式に切り替えた。
主な成果:
- 島マウント機構の実装と、進行中の動的importを無効化する世代トークン
- Codex のレビューで「破棄まわりのテストがない」という指摘が出てテスト9件追加
- 本番へデプロイし、SSRで図が出ていることを本文の文言で確認
- 課金でバンドル上限を上げる選択肢(月$5で3→10MiB)は確認したうえで採らなかった
詳細: Vueページは必ずWorkerバンドルに載る — 静的HTML化と「島マウント」でCloudflare Workersの上限から逃げる
8. 単発の調べもの・記事化
- ゴールドマンのハイベータ・モメンタムのチャート: 流れてきた画像が何を測っているのか調べさせて記事にした。株価の下落率ではなく「同じ側に賭けた人の量」を測る指標だという整理と、Q&A を9問。→ ゴールドマンの「US High Beta Momentum」が月間-37%
- OpenAI の codex-security: 前日 npm に出たばかりのCLIを、READMEと同梱プラグインの中身まで読ませて、このリポジトリに使えるか判断した。→ OpenAIのcodex-securityは何をするツールか
- WSJ のザッカーバーグ論説: 全文翻訳の公開記事にしてほしいと頼んだが、公開でも非公開でも作れないと断られた。要旨と論評の記事に落ち着いた。→ 「AIの未来は全員のものだ」— ザッカーバーグがWSJに寄せた超知能の分配論を読む
- 家族の移住先リサーチ: 外部のディープリサーチと、こちら側の並列ワークフロー15体を同時に走らせて突き合わせた。途中で「雪が積もる場所は外す」という条件を足したので、最深積雪の実数で候補を切り直した。結果は非公開記事にまとめた
- WordPress移行の残タスク: 静的データを書き出してデプロイしている構成なので旧ホスティングは落とせる、という整理まで。ソースのリモートが旧ホスティング側しか無いことが分かったので、保全を先にする
今日の試行錯誤
| # | テーマ | 試したこと | 結果 | 気づき |
|---|---|---|---|---|
| 1 | 設定消失 | /login を疑う | 失敗 | 症状は同じでも原因は別。~/.claude が .git ごと作り直されていた |
| 2 | 復旧 | GitHubのバックアップから戻す | 成功 | 消失の1時間前の push が残っていた。セッションログは戻らない |
| 3 | タスク登録 | Git Bash から schtasks /Create /XML | 失敗 | /Create が引数変換で化けた。XMLを疑ったがXMLは正常 |
| 4 | タスク登録 | PowerShellで管理者昇格+簡易形式 | 成功 | /XML 取り込みだけが昇格を要求していた |
| 5 | 秘密の保管 | op://Private/... で参照 | 失敗 | 内部名は Personal。空白入りの保管庫名はUUID指定に切り替え |
| 6 | 個人Gmail認証 | 組織プロジェクトのOAuthクライアントで認証 | 失敗 | 同意画面が組織内部限定。仕様なので回避不可 |
| 7 | 個人Gmail認証 | 個人アカウント名義で新プロジェクト+クライアント | 成功 | 認証URLにアカウント固定のパラメータを付けた |
| 8 | メール検索 | 日本語クエリをそのまま渡す | 失敗 | 文字化けして全件ヒット。0件/全件は引数の破損を先に疑う |
| 9 | 焦点四半期0件 | 3銘柄まとめて同じ原因と仮定 | 失敗 | 原因は銘柄ごとに別。SNDKは会計年度末月の登録ミス |
| 10 | ロゴのベクター化 | Adobe連携と、ピクセルを数えるトレース | 失敗 | 連携は接続不可。トレースは精度追いに時間を溶かすと判断して自分で捨てた |
| 11 | ロゴのベクター化 | CodexにSVGコードを直接書かせる | 部分的 | 4案中2案が鳥に見えず魚。座標を想像で打つので造形が当てにならない |
| 12 | ロゴのベクター化 | 原本を忠実に変換する作業に閉じる | 成功 | 色が13種類に分裂したので3系統に正規化。原本との差は輪郭1px程度 |
| 13 | Chrome接続 | 専用プロファイルで起動 | 部分的 | 繋がるがログイン状態が使えない |
| 14 | Chrome接続 | 孤児プロセスを落として --autoConnect | 成功 | ポートが開いていて404でも故障ではない |
| 15 | SNSアカウント | 新規作成を試す | 中止 | パスワード設定と本人確認はAIに任せない。既存の未使用アカウントを転用 |
| 16 | 島の位置特定 | SSRの ClientOnly の痕跡から探す | 失敗 | 痕跡が残らない。変換時に目印を置く方式へ |
| 17 | 移住先の絞り込み | 気候を定性で扱う | 失敗 | 「雪」の解像度が足りない。最深積雪の実数で切り直した |
今日の学び
- 消えるのは設定だけではない。
~/.claudeと一緒に~/.config配下のCLI認証情報も落ちていた。バックアップの範囲を「設定ファイル」で切ると、復旧の途中で認証の壁に当たる - 復元は範囲を指定してやる。 作業ツリーごと巻き戻すと、意図していない設定(モデルの選択など)まで過去に戻る。慌てているときほどパス指定で戻す
- 0件と全件は同じ顔をしている。 検索が全件ヒットしたとき、データの問題ではなく引数の文字化けだった。極端な結果が出たら、まず引数を疑う
- 同じ症状の原因が同じとは限らない。 焦点四半期0件の3銘柄は、原因が3つ別々だった。まとめて直そうとした最初の手は空振りだった
- 手打ちの生成は造形が当てにならない。 SVG を直接書かせると座標を想像で打つので、鳥が魚になる。見栄えのいい原本が手元にあるなら、忠実な変換に閉じたほうが早い
- 痕跡が残らないものは、後から探せない。 位置を特定したいなら、消える前に目印を置いておく側に回る
- AIに渡さない操作を先に決めておく。 アカウント作成のようにパスワードと本人確認を含む手続きは、途中で気づくより先に線を引いたほうが手戻りが少ない
- 前提の古さは、成果物の順番より先に効く。 企画レビューで最初に崩れたのは記事の並びではなく、その並びを必要としていた前提だった
明日やること
-
~/.claudeの消失原因の絞り込み(数分の窓まで来ている) - ロゴSVGの採用案を1本に決めて、ヘッダー画像へ展開する
- note第1弾のシーケンス図で未接続だった区間を埋める
- 講座サイトの残りページのデザイン判断(静的化の対象を決める)
- WordPress移行: ソースの保全を先に済ませてから旧ホスティングを落とす
関連記事
- Claude Code の ~/.claude が朝いちで丸ごと消えた — GitHubバックアップからの復元と、自動バックアップの二重化
- 個人 Gmail を Google Workspace CLI から検索できるようにした — OAuth 同意画面が組織内部だと通らない
- 決算ビートモニタリングでメモリとHDDのセクターを分離 — SNDKの会計年度末月の登録ミスが出てきた
- 散らばったnote戦略の資料をローカル限定ページに集約し、PNGしかないロゴをSVG化した
- ログイン済みChromeにChrome DevTools MCPを繋ぐまでの切り分け記録
- 企画レビューで前提が2つ崩れた — レシートOCRのシリーズ案をシーケンス図に描き直す
- Vueページは必ずWorkerバンドルに載る — 静的HTML化と「島マウント」でCloudflare Workersの上限から逃げる
- ゴールドマンの「US High Beta Momentum」が月間-37%
- OpenAIのcodex-securityは何をするツールか
- 「AIの未来は全員のものだ」— ザッカーバーグがWSJに寄せた超知能の分配論を読む