Claude Codeを使い始めたころ、毎回こんなことをやっていた。「このプロジェクトはFastAPI + PostgreSQLで、デプロイコマンドはこれで、ログの確認はこうで……」と、同じ説明を繰り返す。Claudeは賢いが、前回の会話は覚えていない。
それがCLAUDE.mdを書いてから一気に変わった。今は「デプロイして」の一言で動く。「ログ確認して」だけで正しいコマンドを実行してくれる。毎回ゼロから説明していた時間が、まるごと消えた。
CLAUDE.mdとは何か
CLAUDE.mdは、プロジェクトのルートディレクトリに置くClaude Code専用の指示書だ。Claude Codeは起動時に自動でこのファイルを読み込み、書かれた内容をコンテキストとして持った状態で作業を始める。
要するに「毎回説明しなきゃいけないこと」を先に書いておくファイルだ。
# ファイルの場所
/プロジェクトルート/CLAUDE.md
# Claude Codeはここも読む
~/.claude/CLAUDE.md # 全プロジェクト共通の設定
プロジェクト固有の内容はプロジェクトルートに、どのプロジェクトでも共通の情報(自分のプロフィールや作業スタイルなど)はホームディレクトリの ~/.claude/CLAUDE.md に書く。両方読まれる。
書いておくと激変する5つの項目
1. 技術スタックとプロジェクト概要
最もコスパが高い項目。これを書くだけで「このプロジェクトはどんな構成か」を毎回説明しなくて済む。
## プロジェクト概要
- **サービス**: 車中泊スポット口コミサービス(α版)
- **Backend**: FastAPI + SQLAlchemy + PostgreSQL/PostGIS
- **Frontend**: Leaflet.js + バニラJS
- **インフラ**: ConoHa VPS(Ubuntu 24.04)、Nginx、Lets Encrypt
これがあると、Claude Codeは「FastAPIのルーティングを追加して」と言えばPythonで書いてくれるし、「地点間の距離を取得する関数を書いて」と言えばPostGISのクエリで書いてくれる。
2. よく使うコマンド
プロジェクト固有のコマンドをそのまま書いておく。「デプロイして」「ログ見て」という自然な言葉でコマンドを実行してくれるようになる。
## よく使うコマンド
# デプロイ
bash deploy/deploy_now.sh
# ログ確認
journalctl -u myapp -f
# アプリ再起動
systemctl restart myapp
# DB接続
sudo -u postgres psql -d myapp_db
これを書く前は「デプロイのコマンドは bash deploy/deploy_now.sh です」と毎回説明していた。今は「デプロイして」の一言で動く。
3. 作業開始時の必須手順
「毎回やること」を手順として書いておくと、Claude Codeが自律的に判断して先にやってくれる。
## 作業開始時の必須手順
1. 関連するNotionページを読み込む
2. git statusで現在のブランチと変更を確認する
3. 作業内容をタスクとして整理してから始める
たとえば「NotionのプロジェクトページのURLを書いておく」と、作業開始時に自動でそのページを読んでコンテキストを持った状態で始めてくれる。毎回「このNotionページを読んで」と言わなくて済む。
4. 外部サービスへのアクセス情報
SSHのホスト名やよく使うURLをまとめておく。「サーバーに繋いで」「DBに接続して」だけで動くようになる。
## サーバー情報
- **本番サーバー**: ssh user@example.com(鍵認証)
- **ステージング**: ssh user@staging.example.com
- **DB管理画面**: http://192.168.0.xx:8080
※ パスワードや秘密鍵の内容は絶対に書かない。アクセス方法(鍵認証か否か)だけ書けば十分。
5. 自分のスタイル・制約
「こういう書き方をしてほしい」「これはやらないで」という自分のスタイルを書いておく。毎回修正指示を出さなくて済む。
## 作業スタイル
- コメントは原則書かない(コードで意図を表現する)
- コンソールの説明文は日本語で
- GitHubはプライベートリポジトリを使う
- 確認なしに本番環境に変更を加えない
書いてはいけないもの
CLAUDE.mdはGitリポジトリに含まれることが多い。以下は書かないこと。
- パスワード、APIキー、シークレット(
.envファイルに分離する) - 秘密鍵の内容
- 個人情報(メールアドレス、電話番号など)
アクセス先のホスト名やユーザー名は書いてもいいが、認証情報は書かない。.gitignore に CLAUDE.md を追加してリポジトリから除外するか、センシティブな情報は ~/.claude/CLAUDE.md(ホームディレクトリ側)に書くのが安全だ。
運用のコツ
最初は短くていい
完璧なCLAUDE.mdを最初から書こうとしなくていい。「毎回説明しているな」と感じた瞬間に追記する、という運用が自然に育つ。気づいたら100行を超えていた、くらいがちょうどいい。
「保存して」トリガーを作る
作業の中で「これはCLAUDE.mdに書いておくべきだな」と思ったことを、そのままClaude Codeに伝えると追記してくれる。
「このコマンドをCLAUDE.mdによく使うコマンドとして追記して」
プロジェクトごとに分ける
複数のプロジェクトを持っている場合、それぞれのルートに別々のCLAUDE.mdを置く。共通の「自分の作業スタイル」は ~/.claude/CLAUDE.md に、プロジェクト固有の情報はプロジェクトルートに。この2段構成が使いやすい。
まとめ:CLAUDE.mdは「AIへの引き継ぎ書」
新しいチームメンバーが入ってきたとき、何を説明するか——技術スタック、よく使うコマンド、作業の進め方、気をつけること。CLAUDE.mdはまさにそれだ。
Claude Codeは会話をまたいで記憶を持たない。でもCLAUDE.mdがあれば、毎回ゼロから説明しなくていい。「毎回説明していること」を一度だけ書く——それだけで、Claude Codeとの作業は別物になる。
あわせて読みたい
🔗 「記事にして」の一言でWordPressに下書き保存——Claude Code × WP-CLIで作業ログを自動で記事の種にする