「開発現場で Claude Code を使い倒す」シリーズの2回目です。今回はCLAUDE.md とメモリで”自社の作法”を効かせる話。毎回同じ指示を書き直したり、同じ環境の落とし穴を何度も踏んだりしていませんか。ルールと地雷を1か所に集約しておくと、AIが毎回それを踏まえて動くようになります。
CLAUDE.md ― プロジェクトの「前提」を書いておく場所
CLAUDE.md は、そのプロジェクトで作業するときに毎回読ませたい前提を書いておくファイルです。私たちが実際に入れているのは、たとえばこういう項目です。
- 基本の作法:日本語で答える/破壊的・巻き戻し困難な操作の前は必ず同意を取る/コミットに余計なフッターを付けない、など。
- 環境固有の地雷:「PHP は必ずフルパスの
php8.3で叩く(素のphpは古いバージョンのことがある)」「composer.lockは本番のPHP版で生成する」「外部HTTPは古い libcurl の地雷がある」など、一度踏んだ失敗を明文化しておく。 - 共通リファレンスへのポインタ:サーバ運用・デプロイ手順・ログ設計といった「複数プロジェクトで使い回す知識」は別ファイルにまとめ、「該当作業の前に必ず読む」と書いておく。
ポイントは、属人化していた暗黙知を文章にすることです。「このサーバはこれをやると事故る」という知識が誰かの頭の中にしかないと、AIは同じ失敗を繰り返します。書いておけば、次からは踏みません。副産物として、人間の新メンバーにも効くドキュメントになります。
メモリ ― セッションを越えて覚えておく事実
CLAUDE.md が「常に効かせたいルール」なら、メモリは「セッションを越えて残しておきたい事実」です。環境の構成、進行中の作業の経緯、ハマりどころの結論などを、1ファイル1事実で置いておくと、次に立ち上げたときに前提を共有した状態から始められます。
運用で効いているルールはシンプルです。
- コードや git に書いてあることは書かない。ファイル構造や過去の修正履歴はリポジトリを見れば分かる。メモリに残すのは「コードからは読み取れない、決定の理由や経緯」。
- 相対日付は絶対日付に直す。「先週」ではなく日付で。後から読んで意味が変わらないように。
- 肥大化させない。要点だけ。古くなった・間違っていた事実は消す。
- 時点の記録として扱う。メモリは書いた時点のスナップショットなので、ファイル名や仕様に言及していたら、使う前に現物を確認する。
秘密は絶対に置かない
ここは強調しておきます。APIキー・パスワード・トークンの類は、CLAUDE.md にもメモリにも共通リファレンスにも書きません。これらのファイルはプロンプトに載る前提、場合によってはリポジトリに入る前提で書きます。秘密は環境変数やサーバ上の .env など、プロンプトにもgitにも乗らない場所に置き、CLAUDE.md には「そこにある」という事実だけを書きます。
書くべきでないもの
逆に、その場かぎりの情報はメモリに残しません。「今日のこの作業だけで使う一時的な値」を覚えさせても、次に混乱の元になるだけです。残すのは「次も効く前提」だけ、という線引きが大事です。
まとめ
- 毎回書く指示・毎回踏む地雷は、CLAUDE.md に集約して「前提」にする。
- セッションを越える事実はメモリへ。1ファイル1事実、絶対日付、肥大化させない、使う前に現物確認。
- 秘密は書かない。これらは人にもAIにも見える場所だと考える。
次回は「危険な操作を安全に任せる」――削除・本番反映・外部送信のような、事故ると戻せない操作にどう関所を置くかを書きます。
Analyzegear


