ほとんどのベストプラクティスは 1 つの制約に基づいています。Claude のコンテキストウィンドウはすぐにいっぱいになり、満杯になるにつれてパフォーマンスが低下します。 Claude のコンテキストウィンドウは、すべてのメッセージ、Claude が読み取ったすべてのファイル、およびすべてのコマンド出力を含む、会話全体を保持します。ただし、これはすぐにいっぱいになる可能性があります。単一のデバッグセッションまたはコードベース探索でも、数万のトークンを生成および消費する可能性があります。 LLM のパフォーマンスはコンテキストが満杯になるにつれて低下するため、これは重要です。コンテキストウィンドウがいっぱいになると、Claude は以前の指示を「忘れる」か、より多くの間違いを犯す可能性があります。コンテキストウィンドウは管理する最も重要なリソースです。カスタムステータスラインでコンテキスト使用量を継続的に追跡し、トークン使用量を削減するための戦略についてはトークン使用量を削減を参照してください。
Claude に自分の作業を検証する方法を与える
Claude は、テストを実行したり、スクリーンショットを比較したり、出力を検証したりするなど、自分の作業を検証できるときに劇的に良くなります。 明確な成功基準がないと、正しく見えるが実際には機能しないものを生成する可能性があります。あなたが唯一のフィードバックループになり、すべての間違いがあなたの注意を必要とします。| 戦略 | 前 | 後 |
|---|---|---|
| 検証基準を提供する | 「メールアドレスを検証する関数を実装する」 | 「validateEmail 関数を書く。テストケースの例:[email protected] は true、invalid は false、[email protected] は false。実装後にテストを実行する」 |
| UI の変更を視覚的に検証する | 「ダッシュボードをより良く見えるようにする」 | 「[スクリーンショットを貼り付け] このデザインを実装する。結果のスクリーンショットを撮り、元のものと比較する。違いをリストアップして修正する」 |
| 症状ではなく根本原因に対処する | 「ビルドが失敗している」 | 「ビルドがこのエラーで失敗している:[エラーを貼り付け]。修正して、ビルドが成功することを確認する。根本原因に対処し、エラーを抑制しない」 |
最初に探索し、次に計画し、その後コーディングする
Claude が直接コーディングにジャンプさせると、間違った問題を解決するコードが生成される可能性があります。Plan Mode を使用して、探索を実行から分離します。 推奨されるワークフローには 4 つのフェーズがあります。Plan Mode は便利ですが、オーバーヘッドも追加します。スコープが明確で修正が小さいタスク(タイプミスの修正、ログ行の追加、変数の名前変更など)の場合は、Claude に直接実行するよう依頼します。計画は、アプローチについて不確実な場合、変更が複数のファイルを変更する場合、または変更されるコードに不慣れな場合に最も役立ちます。差分を 1 文で説明できる場合は、計画をスキップします。
プロンプトで具体的なコンテキストを提供する
Claude は意図を推測できますが、あなたの心を読むことはできません。特定のファイルを参照し、制約を述べ、例のパターンを指摘します。| 戦略 | 前 | 後 |
|---|---|---|
| タスクをスコープする。 どのファイル、どのシナリオ、テスト設定を指定します。 | 「foo.py のテストを追加する」 | 「ユーザーがログアウトしているエッジケースをカバーする foo.py のテストを書く。モックを避ける。」 |
| ソースを指摘する。 Claude を質問に答えることができるソースに向けます。 | 「ExecutionFactory がこんなに奇妙な API を持っているのはなぜですか?」 | 「ExecutionFactory の git 履歴を調べて、その API がどのようになったかを要約する」 |
| 既存のパターンを参照する。 Claude をコードベースのパターンに向けます。 | 「カレンダーウィジェットを追加する」 | 「ホームページで既存のウィジェットがどのように実装されているかを見て、パターンを理解する。HotDogWidget.php は良い例です。パターンに従って、ユーザーが月を選択し、前後にページネーションして年を選択できる新しいカレンダーウィジェットを実装する。コードベースで既に使用されているもの以外のライブラリを使用せずにゼロから構築する。」 |
| 症状を説明する。 症状、可能性のある場所、「修正」の外観を提供します。 | 「ログインバグを修正する」 | 「ユーザーはセッションタイムアウト後にログインが失敗すると報告しています。src/auth/ の認証フロー、特にトークン更新を確認します。問題を再現する失敗するテストを書き、修正する」 |
リッチコンテンツを提供する
Claude にリッチデータを提供するにはいくつかの方法があります。@でファイルを参照する コードがどこにあるかを説明する代わりに。Claude は応答する前にファイルを読み取ります。- 画像を直接貼り付ける。画像をコピー/貼り付けまたはドラッグアンドドロップしてプロンプトに入れます。
- ドキュメントと API リファレンスの URL を指定する。
/permissionsを使用して、頻繁に使用されるドメインをホワイトリストに登録します。 - データをパイプする
cat error.log | claudeを実行してファイルの内容を直接送信します。 - Claude に必要なものを取得させる。Bash コマンド、MCP ツール、またはファイルを読み取ることを使用して、Claude 自身がコンテキストをプルするよう指示します。
環境を設定する
いくつかのセットアップステップにより、Claude Code はすべてのセッション全体で大幅に効果的になります。拡張機能の完全な概要と各機能をいつ使用するかについては、Claude Code を拡張を参照してください。効果的な CLAUDE.md を書く
CLAUDE.md は Claude がすべての会話の開始時に読む特別なファイルです。Bash コマンド、コードスタイル、ワークフロールールを含めます。これにより、Claude はコードだけからは推測できない永続的なコンテキストを取得します。/init コマンドはコードベースを分析してビルドシステム、テストフレームワーク、コードパターンを検出し、改善するための堅牢な基盤を提供します。
CLAUDE.md ファイルに必須の形式はありませんが、短く人間が読める状態に保ちます。例えば:
CLAUDE.md
| ✅ 含める | ❌ 除外する |
|---|---|
| Claude が推測できない Bash コマンド | Claude がコードを読むことで理解できるもの |
| デフォルトと異なるコードスタイルルール | Claude が既に知っている標準言語規約 |
| テスト指示と推奨テストランナー | 詳細な API ドキュメント(代わりにドキュメントにリンク) |
| リポジトリのエチケット(ブランチ命名、PR 規約) | 頻繁に変わる情報 |
| プロジェクト固有のアーキテクチャ決定 | 長い説明またはチュートリアル |
| 開発者環境の癖(必須環境変数) | ファイルごとのコードベースの説明 |
| 一般的な落とし穴または明白でない動作 | 「きれいなコードを書く」のような自明なプラクティス |
@path/to/import 構文を使用して追加ファイルをインポートすることで、指示を調整できます。
CLAUDE.md
- ホームフォルダ(
~/.claude/CLAUDE.md):すべての Claude セッションに適用されます - プロジェクトルート(
./CLAUDE.md):git にチェックインしてチームと共有します - 親ディレクトリ:
root/CLAUDE.mdとroot/foo/CLAUDE.mdの両方が自動的にプルされるモノレポに役立ちます - 子ディレクトリ:Claude はそれらのディレクトリ内のファイルを操作するときに、子 CLAUDE.md ファイルをオンデマンドでプルします
パーミッションを設定する
デフォルトでは、Claude Code はシステムを変更する可能性のあるアクション(ファイル書き込み、Bash コマンド、MCP ツールなど)の許可をリクエストします。これは安全ですが、面倒です。10 回目の承認後、あなたは本当にレビューしていません。クリックしているだけです。これらの中断を減らすには 2 つの方法があります。- パーミッションホワイトリスト:安全であることがわかっているツール(
npm run lintやgit commitなど)を許可します - サンドボックス:OS レベルの分離を有効にして、ファイルシステムとネットワークアクセスを制限し、Claude が定義された境界内でより自由に動作できるようにします
--dangerously-skip-permissions を使用して、lint エラーの修正やボイラープレートの生成などの含まれたワークフローのすべてのパーミッションチェックをバイパスします。
パーミッションの設定とサンドボックスの有効化の詳細をお読みください。
CLI ツールを使用する
CLI ツールは外部サービスと対話する最もコンテキスト効率的な方法です。GitHub を使用する場合は、gh CLI をインストールします。Claude は問題の作成、プルリクエストのオープン、コメントの読み取りにそれを使用する方法を知っています。gh がなければ、Claude は GitHub API を使用できますが、認証されていないリクエストはしばしばレート制限に達します。
Claude は、それが既に知らない CLI ツールを学ぶのにも効果的です。Use 'foo-cli-tool --help' to learn about foo tool, then use it to solve A, B, C. のようなプロンプトを試してください。
MCP サーバーを接続する
MCP サーバーを使用すると、Claude に問題トラッカーから機能を実装したり、データベースをクエリしたり、監視データを分析したり、Figma からデザインを統合したり、ワークフローを自動化したりするよう依頼できます。フックを設定する
フックは Claude のワークフロー内の特定のポイントで自動的にスクリプトを実行します。CLAUDE.md の指示とは異なり、フックは決定論的であり、アクションが発生することを保証します。 Claude はあなたのためにフックを書くことができます。「すべてのファイル編集後に eslint を実行するフックを書く」 または 「migrations フォルダへの書き込みをブロックするフックを書く」 のようなプロンプトを試してください。対話的な設定については/hooks を実行するか、.claude/settings.json を直接編集します。
スキルを作成する
スキルは、プロジェクト、チーム、またはドメイン固有の情報で Claude の知識を拡張します。Claude は関連するときに自動的にそれらを適用するか、/skill-name で直接呼び出すことができます。
.claude/skills/ にディレクトリと SKILL.md を追加してスキルを作成します。
.claude/skills/api-conventions/SKILL.md
.claude/skills/fix-issue/SKILL.md
/fix-issue 1234 を実行して呼び出します。副作用のあるワークフローで、手動でトリガーしたい場合は disable-model-invocation: true を使用します。
カスタムサブエージェントを作成する
サブエージェントは独自のコンテキストと独自の許可されたツールセットで実行されます。メインの会話を乱さずに、多くのファイルを読み取ったり、特化した焦点が必要なタスクに役立ちます。.claude/agents/security-reviewer.md
プラグインをインストールする
プラグインは、コミュニティと Anthropic からの単一のインストール可能なユニットにスキル、フック、サブエージェント、MCP サーバーをバンドルします。型付き言語を使用する場合は、コード インテリジェンス プラグインをインストールして、Claude に正確なシンボルナビゲーションと編集後の自動エラー検出を提供します。 スキル、サブエージェント、フック、MCP の選択に関するガイダンスについては、Claude Code を拡張を参照してください。効果的にコミュニケーションする
Claude Code との通信方法は、結果の品質に大きく影響します。コードベースの質問をする
新しいコードベースにオンボーディングするときは、Claude Code を学習と探索に使用します。別のエンジニアに尋ねるのと同じ種類の質問を Claude に尋ねることができます。- ロギングはどのように機能しますか?
- 新しい API エンドポイントを作成するにはどうすればよいですか?
foo.rsの 134 行目のasync move { ... }は何をしていますか?CustomerOnboardingFlowImplはどのエッジケースを処理しますか?- このコードが 333 行目で
bar()の代わりにfoo()を呼び出すのはなぜですか?
Claude にあなたにインタビューさせる
Claude は、技術的な実装、UI/UX、エッジケース、トレードオフなど、あなたがまだ考えていないことについて質問します。セッションを管理する
会話は永続的で可逆的です。これを有利に使用してください。早期かつ頻繁に方向転換する
最良の結果は、タイトなフィードバックループから来ます。Claude は時々最初の試みで問題を完全に解決しますが、それを迅速に修正することは一般的により良い解決策をより速く生成します。Esc:Escキーで Claude の中途半端なアクションを停止します。コンテキストは保持されるため、リダイレクトできます。Esc + Escまたは/rewind:Escを 2 回押すか/rewindを実行して、巻き戻しメニューを開き、以前の会話とコード状態を復元するか、選択したメッセージから要約します。"Undo that":Claude に変更を元に戻すよう依頼します。/clear:関連のないタスク間でコンテキストをリセットします。関連のないコンテキストを持つ長いセッションはパフォーマンスを低下させる可能性があります。
/clear を実行し、学んだことを組み込んだより具体的なプロンプトで新しく開始します。より良いプロンプトを持つクリーンなセッションは、ほぼ常に蓄積された修正を持つ長いセッションを上回ります。
コンテキストを積極的に管理する
Claude Code はコンテキスト制限に近づくと会話履歴を自動的にコンパクトにします。これにより、重要なコードと決定を保持しながらスペースを解放します。 長いセッション中に、Claude のコンテキストウィンドウは関連のない会話、ファイルの内容、コマンドで満杯になる可能性があります。これはパフォーマンスを低下させ、時々 Claude を気を散らすことができます。- タスク間で頻繁に
/clearを使用してコンテキストウィンドウを完全にリセットします - 自動コンパクションがトリガーされると、Claude は最も重要なもの(コードパターン、ファイル状態、主要な決定を含む)を要約します
- より多くの制御のために、
/compact <instructions>を実行します。例えば/compact Focus on the API changes - 会話の一部のみをコンパクトするには、
Esc + Escまたは/rewindを使用し、メッセージチェックポイントを選択し、ここから要約を選択します。これにより、そのポイント以降のメッセージが凝縮され、以前のコンテキストは保持されます。 - CLAUDE.md でコンパクション動作をカスタマイズします。
"When compacting, always preserve the full list of modified files and any test commands"のような指示を使用して、重要なコンテキストが要約を生き残ることを確認します - 会話履歴に入らない簡単な質問については、
/btwを使用します。答えは却下可能なオーバーレイに表示され、会話履歴に入らないため、コンテキストを増やさずに詳細をチェックできます。
調査にサブエージェントを使用する
コンテキストが基本的な制約であるため、サブエージェントは利用可能な最も強力なツールの 1 つです。Claude がコードベースを研究するとき、多くのファイルを読み取り、すべてがコンテキストを消費します。サブエージェントは別のコンテキストウィンドウで実行され、要約を報告します。チェックポイントで巻き戻す
Claude は変更前に自動的にチェックポイントを作成します。Escape をダブルタップするか /rewind を実行して、巻き戻しメニューを開きます。会話のみを復元したり、コードのみを復元したり、両方を復元したり、選択したメッセージから要約したりできます。詳細については、チェックポイントを参照してください。
すべての動きを慎重に計画する代わりに、Claude に何か危険なことを試すよう指示できます。うまくいかない場合は、巻き戻して別のアプローチを試してください。チェックポイントはセッション全体で保持されるため、ターミナルを閉じても後で巻き戻すことができます。
会話を再開する
Claude Code は会話をローカルに保存します。タスクが複数のセッションにまたがる場合、コンテキストを再度説明する必要はありません。/rename を使用してセッションに "oauth-migration" や "debugging-memory-leak" などの説明的な名前を付けて、後で見つけやすくします。セッションをブランチのように扱う:異なるワークストリームは別々の永続的なコンテキストを持つことができます。
自動化とスケール
1 つの Claude で効果的になったら、並列セッション、非対話型モード、ファンアウトパターンで出力を乗算します。 これまでのすべては、1 人の人間、1 つの Claude、1 つの会話を想定しています。しかし、Claude Code は水平にスケールします。このセクションのテクニックは、より多くのことを成し遂げる方法を示しています。非対話型モードを実行する
claude -p "your prompt" を使用すると、セッションなしで Claude を非対話的に実行できます。非対話型モードは、Claude を CI パイプライン、プリコミットフック、または自動化されたワークフローに統合する方法です。出力形式を使用すると、結果をプログラムで解析できます。プレーンテキスト、JSON、またはストリーミング JSON。
複数の Claude セッションを実行する
並列セッションを実行するには 3 つの主な方法があります。- Claude Code デスクトップアプリ:複数のローカルセッションを視覚的に管理します。各セッションは独自の分離されたワークツリーを取得します。
- Web 上の Claude Code:Anthropic のセキュアなクラウドインフラストラクチャで分離された VM で実行します。
- エージェントチーム:共有タスク、メッセージング、チームリーダーを備えた複数のセッションの自動調整。
| セッション A(ライター) | セッション B(レビュアー) |
|---|---|
Implement a rate limiter for our API endpoints | |
Review the rate limiter implementation in @src/middleware/rateLimiter.ts. Look for edge cases, race conditions, and consistency with our existing middleware patterns. | |
Here's the review feedback: [Session B output]. Address these issues. |
ファイル全体にファンアウトする
大規模な移行または分析の場合、多くの並列 Claude 呼び出し全体で作業を配布できます。
Claude を既存のデータ/処理パイプラインに統合することもできます。
--verbose を使用し、本番環境ではオフにします。
一般的な失敗パターンを避ける
これらは一般的な間違いです。早期に認識することで時間を節約できます。- キッチンシンクセッション。 1 つのタスクで開始し、関連のないことを Claude に尋ねてから、最初のタスクに戻ります。コンテキストは関連のない情報でいっぱいです。
修正:関連のないタスク間で
/clearを実行します。 - 何度も修正する。 Claude が何か間違ったことをし、修正し、まだ間違っています。修正します。コンテキストは失敗したアプローチで乱雑です。
修正:2 回の失敗した修正の後、
/clearを実行し、学んだことを組み込んだより良い初期プロンプトを書きます。 - 過度に指定された CLAUDE.md。 CLAUDE.md が長すぎる場合、Claude は重要なルールがノイズに失われるため、半分を無視します。
修正:容赦なく削除します。Claude が指示なしで既に何かを正しく行う場合、削除するか、フックに変換します。
- 信頼してから検証するギャップ。 Claude はもっともらしく見える実装を生成しますが、エッジケースを処理しません。
修正:常に検証を提供します(テスト、スクリプト、スクリーンショット)。検証できない場合は、出荷しないでください。
- 無限探索。 スコープなしで何かを「調査」するよう Claude に依頼します。Claude は数百のファイルを読み取り、コンテキストを満たします。
修正:調査を狭くスコープするか、サブエージェントを使用して、探索がメインコンテキストを消費しないようにします。
直感を開発する
このガイドのパターンは固定されていません。それらはすべての状況で一般的にうまく機能する出発点ですが、すべての状況に最適ではない可能性があります。 時々、あなたは 1 つの複雑な問題に深く入り込んでいて、履歴が価値があるため、コンテキストを蓄積させるべきです。時々、タスクが探索的であるため、計画をスキップして Claude にそれを理解させるべきです。時々、曖昧なプロンプトは、Claude が問題をどのように解釈するかを制約する前に見たいため、正確です。 何が機能するかに注意を払います。Claude が素晴らしい出力を生成するとき、あなたが何をしたかに注意してください。プロンプト構造、提供したコンテキスト、あなたがいたモード。Claude が苦労するとき、なぜ尋ねてください。コンテキストがノイズが多すぎましたか?プロンプトが曖昧すぎましたか?タスクが 1 回のパスには大きすぎましたか? 時間をかけて、ガイドが捉えることができない直感を開発します。具体的にするべき時と開放的にするべき時、計画すべき時と探索すべき時、コンテキストをクリアすべき時と蓄積させるべき時を知ります。関連リソース
- Claude Code の仕組み:agentic ループ、ツール、コンテキスト管理
- Claude Code を拡張:スキル、フック、MCP、サブエージェント、プラグイン
- 一般的なワークフロー:デバッグ、テスト、PR などのステップバイステップレシピ
- CLAUDE.md:プロジェクト規約と永続的なコンテキストを保存する