Claude Code(Anthropicの開発支援AI)を使い込むほど、~/.claude というフォルダに「AIとの共同作業の資産」が育っていきます。毎回自動で読み込まれる指示書(CLAUDE.md)、作業手順をパッケージ化したスキル、プロジェクトごとの申し送りメモ。ところがこのフォルダ、標準ではバックアップも変更履歴も残りません。
結論から言うと、gitの「全部除外してから、資産だけ登録する」方式(deny-allホワイトリスト)で丸ごとPrivateリポジトリにするのが安全です。実際にやってみたところ、設定は30分ほどで済み、その日のうちに効果が出ました。
この記事で分かること——①~/.claude に何が育つのか ②なぜ「フォルダごとバックアップ」が危ないのか ③実際に使っている設定ファイル(コピペ可) ④公開前の安全チェック ⑤三日坊主にしない仕組み。
01Claude Code を使い込むと「資産」が育つ
Claude Code は、使うほどユーザー側に知識が溜まっていく道具です。溜まる場所が ~/.claude(ホームフォルダ直下の隠しフォルダ)で、中身はおおむね4種類あります。
| 資産 | 何か | 筆者環境の実例 |
|---|---|---|
| CLAUDE.md | 毎回の作業開始時にAIが自動で読む「指示書」。守ってほしいルールや過去の失敗から作った規範を書く | 捏造禁止原則・コーディング規約など約400行 |
| rules / knowledge | ハマった不具合と解決策の「罠データベース」。同じ穴に二度落ちないための記録 | 107ファイル |
| skills | 定型作業の手順をパッケージ化した「スキル」。呼び出すだけで決まった段取りで動く | 画像生成・記事公開など |
| projects/*/memory | プロジェクトごとにAI自身が書き溜める「申し送りメモ」。次のセッションが文脈を引き継ぐ | 19プロジェクト分 |
どれも一朝一夕にはできません。指示書は失敗のたびに言葉を足してきたものですし、罠データベースは実際に時間を溶かした記録そのものです。コードは git で守られているのに、コードを書かせるための資産は git の外にある——これが出発点の問題です。
02その資産、消えたら戻せない ──しかも隣に「秘密」が住んでいる
「ならフォルダごとバックアップすればいい」と思うところですが、~/.claude はそう素直な場所ではありません。筆者環境の実測では、フォルダ全体は約1.2GB。ところが手書きの資産は合計およそ1MBしかありません[1]。残りは会話ログ(554MB)、プラグイン(350MB)、キャッシュ類——つまり消えても再生成できる一時データです。
さらに問題なのが、同じフォルダにログイン情報のファイル(.credentials.json)が同居していることです。
gitに慣れた人がやりがちな「フォルダごと全部登録(git add -A)」をここでやると、二重の事故になります。
ひとつは、秘密が履歴に焼き込まれること。gitは変更履歴を保存する仕組みなので、後からファイルを消しても過去の履歴には残り続けます。もうひとつは、巨大な一時データでリポジトリが膨張すること。1.2GBの大半は守る価値のないデータです。
つまり「丸ごと」でも「選んで手作業」でもなく、資産だけが自動で残り、秘密とゴミは自動で除外される仕組みが要ります。
03解法:「全部禁止 → 資産だけ許可」のホワイトリスト
その仕組みが、.gitignore(gitに「これは追跡しない」と伝える設定ファイル)をdeny-all(全部除外)方式で書くことです。実際に使っているものを短くしたのがこちらです。
# まず全部除外する
/*
# 履歴を残したい資産だけ「!」で復帰させる
!/.gitignore
!/CLAUDE.md
!/rules/
!/knowledge/
!/skills/
!/settings.json
# projects はログの海。メモだけ多段で拾う
!/projects/
/projects/**
!/projects/*/
!/projects/*/memory/
!/projects/*/memory/**
先頭の /* が「全部禁止」、続く ! の行が「これだけ許可」です。逆方式(ゴミを列挙して除外)と比べたとき、この方式には決定的な利点があります。Claude Code が将来新しいフォルダを勝手に作っても、リポジトリに混入しないことです。除外リスト方式は「新種のゴミ」が出るたびに漏れますが、許可リスト方式は知らないものをデフォルトで拒否します。追加するときだけ人間の判断(=秘密が入っていないかの確認)が挟まる設計です。
なお projects の部分だけ書き方が回りくどいのは、gitの仕様で「除外したフォルダの中身は、後から個別に復帰できない」ためです。/projects/**(中身だけ除外)→ !/projects/*/(サブフォルダを復帰)→ !/projects/*/memory/**(メモを復帰)と段階を踏むと、ログの海からメモだけを拾えます。
04公開前の安全チェックは「3回」
設定ができたら、登録・公開の前に秘密の混入を確認します。筆者は3段階で確認しました。
| タイミング | 何を確認するか |
|---|---|
| ① 登録前 | 資産ファイル全部に、APIキーらしき文字列(sk- などで始まるパターン)が無いか機械検索 |
| ② コミット直前 | 実際に登録される内容の全文に、もう一度同じ検索 |
| ③ 公開後 | リポジトリが本当に Private(非公開)になっているか、設定値を読み戻して確認 |
言うまでもなく、リポジトリは必ず Privateにします。資産に秘密が無くても、指示書やメモには仕事の内情が含まれます。
05作って終わりにしない ──「置き場」と「きっかけ」で自走させる
ここまでで資産は守られました。ただし、このままだと次の変更は誰もコミットしません。リポジトリを作った日だけ整理して、あとは古びていく——バックアップの一番よくある失敗です。
対策はシンプルで、CLAUDE.md(毎回自動で読み込まれる指示書)に運用ルールを書くことです。
# CLAUDE.md に追記した運用ルール(要旨)
資産(罠・スキル・メモリ・設定)を更新したら、
どのプロジェクトの作業からでも、締めに ~/.claude の
コミットとプッシュまで実行する
AIは毎セッションこの指示書を読むので、以後はどのプロジェクトで作業していても、資産の変更が自動で履歴に載ります。仕組みを続かせるには「置き場(リポジトリ)」と「きっかけ(毎回読まれる場所に書いたルール)」の両方が要る、というのが今回いちばんの学びでした。
実際、効果は初日に出ました。リポジトリを公開した数分後、並行で動いていた別プロジェクトのセッションが罠データベースに追記した差分が検出され、そのまま履歴に回収されたのです。複数のAIセッションを並行で走らせる使い方が広がるほど、この「どこで生まれた知見も1箇所に集まる」性質は効いてきます。
06まとめ:使う前チェックリスト
同じことをやってみる場合の確認項目です。
- リポジトリは Private にしたか
.gitignoreは deny-all(全部除外→資産だけ許可)方式か- credentials・セッションログ・キャッシュが除外されているか確認したか
- 秘密のスキャンを登録前・コミット直前・公開後の3回やったか
- CLAUDE.md に運用ルール(更新したらコミットまで)を書いたか
- 別マシンへは
git cloneで展開できる(ログイン情報はマシンごとに再生成される)
この仕組みは、私たちがブログ用の画像生成スキルを全プロジェクト共通に整備していた作業の途中で生まれました。スキルを育てるほど、育てた場所ごと守りたくなる——その素直な帰結です。
コードは git で守っているのに、AIへの指示書は守っていない。多くの現場の盲点は、そこにあります。
電脳技巧集団(AI職人ギルド)
AI駆動開発の実践から得た知見を、実体験ベースで発信しています。開発のご相談はこちらから。
脚注
- フォルダサイズ・ファイル数(1.2GB/資産約1MB/罠107ファイル/19プロジェクト/203ファイル)はいずれも筆者環境の実測値(2026-07-17時点)。構成は Claude Code のバージョンや利用状況で変わります。
~/.claudeの構成(CLAUDE.md・skills・projects 等)は Anthropic の Claude Code 公式ドキュメントに基づく一般的なレイアウトです。









