メインコンテンツにスキップ

Claudeにコンテキストを与える:CLAUDE.mdとより良いプロンプト

今日アップデートされました

Claude Codeはそのままでもよく機能しますが、プロジェクトの規約を理解し、いくつかのプロンプティング習慣を採用すると、著しく効果的になります。このガイドはその両方をカバーしています。


パート1 — CLAUDE.md:プロジェクトのメモリ

それは何か

CLAUDE.mdは、Claudeがそのディレクトリ内のすべてのセッションの開始時に自動的に読む平文のマークダウンファイルです。これは、有能な新しいチームメイトの初日の朝に与えるブリーフィングのようなものです:チームがどのようにやっているか、何を避けるべきか、重要な部分がどこにあるか。

プロンプトで参照したり、手動で添付したりする必要はありません。ファイルが存在すれば、Claudeはすでにそれを読んでいます。

どこに置くか

Claudeはいくつかの場所を探して、見つけたものを広いものから具体的なものへとマージします:

場所

スコープ

適している用途

~/.claude/CLAUDE.md

マシン上のすべてのプロジェクト

個人的な設定(例えば、「pnpmを使う、npmではない」または「常にテストを提案する」)。

<repo-root>/CLAUDE.md

このプロジェクト

アーキテクチャ、規約、およびコマンド。これが主なものです。

<subdir>/CLAUDE.md

そのサブディレクトリ

モジュール固有のルール(例えば、frontend/api/での異なる規約)。

ほとんどのチームはプロジェクトルートファイルのみが必要です。gitにコミットしてチーム全体が利益を得られるようにしましょう。

どのように読み込まれるか(そしてそれはどのくらいの費用がかかるか)

CLAUDE.mdはセッション開始時に1回読み込まれ、Claudeのシステムプロンプトに逐語的に配置されます。要約や切り詰めはなく、各ターンでディスクから再読み込みされません。同じコンテンツは会話全体のコンテキストに留まります。セッション中にファイルを編集した場合、変更は新しいセッションを開始するまで有効になりません。

Claude for Enterpriseの顧客の場合、コスト図は「すべてのリクエストで読み込まれる」が示唆するよりも良いです。Claude CodeはAnthropicのプロンプトキャッシングをシステムプロンプトに適用します。これにはCLAUDE.mdが含まれます。セッション内の最初のリクエストはファイルの完全な入力トークン価格を支払います。その後のリクエストは約5分以内に互いに続き、キャッシュにヒットして、はるかに低いキャッシュ読み取り率で請求されます。キャッシュはコンテンツアドレス指定されるため、CLAUDE.mdへの変更はそれを無効にし、次のリクエストは再び完全な価格を支払います。

実際には、かなりのCLAUDE.mdはセッションごとに1回の完全なトークンと、キャッシュの有効期限が切れるほど長いアイドルギャップの後に1回かかります。メッセージごとに1回ではなく。ファイルをコンテキストウィンドウスペースとシグナルノイズ比のために瘦せたままにしておく価値はありますが、メッセージごとの支出を制御するためだけに行をセーブする必要はありません。Enterpriseの使用ダッシュボードでは、ファイルのフットプリントはほぼ完全にキャッシュ読み取りトークンとして表示され、標準入力トークンではなく表示されます。

開始:/initを実行

任意のプロジェクトで、/initと入力します。Claudeはコードベースを探索し、CLAUDE.mdをドラフトします。ビルドコマンド、テストコマンド、構造概要、および検出された規約をカバーします。ドラフトを確認し、不正確なものを削除し、コミットします。これは約5分かかり、永続的に報酬を得ます。

実際に何が含まれるべきか

短くシグナル密度の高いファイルを目指してください。最大で数百行です。すべての行はすべてのリクエストのコンテキストに読み込まれるため、それぞれがそのコストの価値があるべきです。

含める価値があるもの:

  • コマンド — ビルド、テスト、リント、ローカル実行の方法。Claudeはこれらを実行するため、正確性が重要です。

  • 規約 — 命名、エラーハンドリング、ファイルレイアウト、および「XではなくYを使う」という決定。

  • 3文でのアーキテクチャ — 主要な部分が何であり、どのように通信するか。

  • ハード制約 — 例えば、「テストから本番データベースに書き込まない」、「すべてのAPIルートに認証ミドルウェアが必要」、または「generated/を編集しない」。

  • 既知の落とし穴 — すべての新しいエンジニアがつまずく問題。

含める価値がないもの:

  • 完全なAPIドキュメンテーション(Claudeはコードを直接読むことができます)。

  • 変更ログまたは履歴。

  • ファイルツリーからすでに明らかなもの。

  • チームが実際に従わない願望的なルール。

どのくらいの頻度で更新するか

仕様ではなく、生きたオンボーディングドキュメントのように扱ってください。

  • /initの後 — 生成されたドラフトをクリーンアップするために1回確認します。

  • Claudeが2回間違えたとき — それはルールが不足しているという信号です。それに対処するために1行追加します。

  • 規約が変わったとき — 例えば、新しいフレームワーク、テストランナー、またはリントルールのセット。

  • 四半期ごとのスキム — 古い指示は何もないより悪いため、古いものを削除します。

セッション中に追加することもできます:#の後に指示を入力します(例:# always use async/await, never .then())。Claudeは正しいCLAUDE.mdに追加することを提案します。


パート2 — Claude Codeで報酬を得るプロンプティング習慣

これらは一般的なプロンプトエンジニアリングのヒントではありません。Claudeが実際のコードベースを読み書きしているときに最も重要な習慣です。

1. ステップではなく結果を述べる

Claudeはコードベース自体を探索できます。が必要でなぜかを伝え、どこかを理解させてください。

❌ 「userService.tsを開き、validate関数を見つけ、42行目にnullチェックを追加します。」

✅ 「メールのないユーザーが検証ステップをクラッシュさせています。それを優雅に処理し、テストを追加してください。」

2. エラーを逐語的に与える

完全なスタックトレースを貼り付けるのではなく、要約してください。正確なファイル名、行番号、メッセージは、Claudeが正しい場所をすばやく見つけることができます。

3. プランモードで最初に大きなタスクをスコープする

複数のファイルに触れるもの場合は、Shift+Tabを押してプランモードに入り、次のように尋ねます:

「公開APIにレート制限を追加する方法を計画してください。まだ何も変更しないでください。」

計画を確認し、会話で調整してから、モードを切り替えて「ステップ1を実行してください」と言います。これは、誤解が12ファイルのdiffに変わる前にそれをキャッチします。

4. すでに知っているときはファイルを指す

Claudeはコードベースを独自に検索できますが、関連するファイルをすでに知っている場合は、そう言ってください。より速く、より少ないトークンを使用します。@を使用してパスを参照します。例えば@src/auth/login.ts

5. 「完了」が何に見えるかを言う

例としては、「テストが合格する」、「他のハンドラーのスタイルと一致する」、または「新しい依存関係がない」が含まれます。受け入れ基準を事前に述べることは、複数のラウンドの修正よりも効率的です。

6. 1つのタスク、会話ごと;/clearそれらの間

長いセッションはノイズを蓄積します。「ログインバグを修正する」から「請求モジュールをリファクタリングする」に切り替えるときは、/clearを実行して新しく開始します。CLAUDE.mdは耐久性のあるコンテキストを前に進めるため、チャット履歴は必要ありません。

7. 検索エンジンではなく、同僚のように修正する

最初の答えがずれている場合、リクエスト全体を言い換える必要はありません。何が間違っているかを単に言ってください。例えば、「それは公開APIを変更します。署名を同じに保ってください。」Claudeは他のすべてを保ち、その点だけを調整します。


クイックリファレンス

したいこと…

これをする

開始CLAUDE.mdを生成

/init

Claudeが使用しているメモリを確認

/memory

セッション中にルールを追加

# <your rule>と入力

プロジェクトメモリを保持しながら新しく開始

/clear

プロンプトで特定のファイルを参照

@path/to/file

こちらの回答で解決しましたか?