ほとんどのベストプラクティスは 1 つの制約に基づいています。Claude のコンテキストウィンドウはすぐにいっぱいになり、満杯になるにつれてパフォーマンスが低下します。 Claude のコンテキストウィンドウは、すべてのメッセージ、Claude が読み取ったすべてのファイル、およびすべてのコマンド出力を含む、会話全体を保持します。ただし、これはすぐにいっぱいになる可能性があります。単一のデバッグセッションまたはコードベース探索でも、数万のトークンを生成および消費する可能性があります。 LLM のパフォーマンスはコンテキストが満杯になるにつれて低下するため、これは重要です。コンテキストウィンドウがいっぱいになると、Claude は以前の指示を「忘れる」か、より多くの間違いを犯す可能性があります。コンテキストウィンドウは管理する最も重要なリソースです。セッションがどのように満杯になるかを実際に確認するには、スタートアップで何が読み込まれるか、各ファイル読み取りのコストについてのインタラクティブなウォークスルーを参照してください。カスタムステータスラインでコンテキスト使用量を継続的に追跡し、トークン使用量を削減するための戦略についてはトークン使用量を削減を参照してください。
Claude に自分の作業を検証する方法を与える
Claude は、作業が完了したように見えるときに停止します。実行できるチェックがないと、「完了したように見える」が唯一の利用可能なシグナルであり、あなたが検証ループになります。すべての間違いはあなたがそれに気付くのを待ちます。Claude が実行できるパスまたはフェイルを生成するものを与えると、ループは自動的に閉じます。Claude は作業を行い、チェックを実行し、結果を読み、チェックが合格するまで反復します。 チェックは、会話で Claude が読むことができるシグナルを返すものです。テストスイート、ビルド終了コード、リンター、出力を固定値と比較するスクリプト、またはデザインと比較されるブラウザスクリーンショットです。/verify を実行してください。Claude のチェックが合格した後、実行中のアプリに対する変更を確認します。
チェックが存在したら、停止をどの程度厳しくゲートするかを決定します。
- 1 つのプロンプトで:Claude にチェックを実行し、同じメッセージ内で反復するよう求めます。上記の表のように。
- セッション全体で:チェックを
/goal条件として設定します。別の評価者がすべてのターンの後に再度チェックし、Claude はそれが保持されるまで作業を続けます。Claude が停止した場合、Claude Code は最終的にゴールがまだ設定されたままでランを停止します。/goal 評価がどのように機能するかを参照してください。 - 決定論的ゲートとして:Stop hook がスクリプトとしてチェックを実行し、合格するまでターンが終了するのをブロックします。Stop input は連続ブロックの上限をカバーします。
- 第二の意見によって:検証サブエージェントまたは動的ワークフローが独自の調査結果をチェックし、新しいモデルが結果を反論しようとするため、作業を行っているエージェントがそれを採点しているわけではありません。
/goal と Stop hook 版は、あなたなしで無人実行が正しく完了できるようにするものです。
Claude に成功を主張するのではなく、証拠を示すよう指示してください。テスト出力、実行したコマンドとその戻り値、または結果のスクリーンショットです。証拠を確認することは、検証を自分で再実行するよりも高速であり、監視していなかったセッションでも機能します。
最初に探索し、次に計画し、その後コーディングする
Claude が直接コーディングにジャンプさせると、間違った問題を解決するコードが生成される可能性があります。Plan Mode を使用して、探索を実行から分離します。 推奨されるワークフローには 4 つのフェーズがあります。1
探索
Shift+Tab を押してステータスバーに ⏸ plan mode on と表示されるまで Plan Mode に入るか、claude --permission-mode plan でセッションを開始します。Claude はファイルを読み取り、変更を加えずに質問に答えます。claude (plan mode)
2
計画
Claude に詳細な実装計画を作成するよう依頼します。
claude (plan mode)
Ctrl+G を押して、Claude が進む前に、テキストエディタで計画を開いて直接編集します。3
実装
計画を承認するか
Shift+Tab を押して Plan Mode を終了し、Claude にコーディングさせ、計画に対して検証します。claude
4
コミット
Claude に説明的なメッセージでコミットし、PR を作成するよう依頼します。
claude
Plan Mode は便利ですが、オーバーヘッドも追加します。スコープが明確で修正が小さいタスク(タイプミスの修正、ログ行の追加、変数の名前変更など)の場合は、Claude に直接実行するよう依頼します。計画は、アプローチについて不確実な場合、変更が複数のファイルを変更する場合、または変更されるコードに不慣れな場合に最も役立ちます。差分を 1 文で説明できる場合は、計画をスキップします。
プロンプトで具体的なコンテキストを提供する
Claude は意図を推測できますが、あなたの心を読むことはできません。特定のファイルを参照し、制約を述べ、例のパターンを指摘します。
曖昧なプロンプトは、探索していて方向転換を余裕を持ってできるときに役立つことがあります。「このファイルで何を改善しますか?」のようなプロンプトは、あなたが尋ねることを考えなかったことを表面化させることができます。
リッチコンテンツを提供する
Claude にリッチデータを提供するにはいくつかの方法があります。@でファイルを参照する コードがどこにあるかを説明する代わりに。Claude は応答する前にファイルを読み取ります。- 画像を直接貼り付ける。画像をコピー/貼り付けまたはドラッグアンドドロップしてプロンプトに入れます。
- ドキュメントと API リファレンスの URL を指定する。
/permissionsを使用して、頻繁に使用されるドメインを許可リストに登録します。 - データをパイプする
cat error.log | claude -p "explain this error"を実行してファイルの内容を直接送信します。 - Claude に必要なものを取得させる。Bash コマンド、MCP ツール、またはファイルを読み取ることを使用して、Claude 自身がコンテキストをプルするよう指示します。
環境を設定する
いくつかのセットアップステップにより、Claude Code はすべてのセッション全体で大幅に効果的になります。拡張機能の完全な概要と各機能をいつ使用するかについては、Claude Code を拡張を参照してください。効果的な CLAUDE.md を書く
CLAUDE.md は Claude がすべての会話の開始時に読む特別なファイルです。Bash コマンド、コードスタイル、ワークフロールールを含めます。これにより、Claude はコードだけからは推測できない永続的なコンテキストを取得します。 CLAUDE.md ファイルに必須の形式はありませんが、短く人間が読める状態に保ちます。例えば:CLAUDE.md
/context を実行して、Claude がファイルを読み込んだことを確認します。CLAUDE.md はすべてのセッションで読み込まれるため、広く適用されるもののみを含めます。ドメイン知識またはときどきのみ関連するワークフローについては、代わりに skills を使用します。Claude はそれらをオンデマンドで読み込み、すべての会話を膨らませることなく使用します。
簡潔に保ちます。各行について、次のように尋ねます。「これを削除すると Claude が間違いを犯しますか?」 そうでない場合は、削除します。膨らんだ CLAUDE.md ファイルは Claude があなたの実際の指示を無視するようにします。
Claude が CLAUDE.md にルールがあるにもかかわらず、あなたが望まないことをし続ける場合、ファイルはおそらく長すぎて、ルールが失われています。Claude が CLAUDE.md で答えられている質問をあなたに尋ねる場合、フレーズが曖昧かもしれません。CLAUDE.md をコードのように扱う:物事がうまくいかないときにレビューし、定期的に削除し、Claude の動作が実際に変わるかどうかを観察することで変更をテストします。チェックインされた CLAUDE.md については、
/doctor を実行すると、Claude はコードベースから導き出せるコンテンツの削除を提案します。
Claude が 1 つの指示をスキップし続ける場合は、その行だけに「IMPORTANT」などの強調を追加します。多くの行を強調する場合、どれも目立ちません。CLAUDE.md を git にチェックインして、チームが貢献できるようにします。ファイルは時間とともに価値が複合します。
CLAUDE.md ファイルは @path/to/import 構文を使用して追加ファイルをインポートできます。インポートルールと CLAUDE.md ファイルが存在できる場所については、CLAUDE.md ファイルを参照してください。
権限を設定する
Claude Code v2.1.283 以降では、auto mode は対話型ターミナルと VS Code セッションの組み込みの開始権限モードです。別の分類器モデルがほとんどのアクションをレビューし、スコープエスカレーション、未知のインフラストラクチャ、敵対的なコンテンツ駆動のアクションなど、リスクがあるように見えるものだけをブロックします。以前のバージョンでは、auto mode は Pro、Max、Team プランでのみ対話型ターミナルと VS Code セッションの組み込みの開始権限モードです。 Manual モードでは、Claude Code はシステムを変更する可能性のあるアクション(ファイル書き込み、Bash コマンド、MCP ツール)の前に尋ねます。これは安全ですが、面倒です。10 回目の承認後、あなたはクリックしているだけで、本当にレビューしていません。Manual モードでこれらの中断を減らす 2 つのツールがあり、auto mode でも同様に適用されます。- 権限ホワイトリスト:
npm run lintやgit commitなど、安全であることがわかっているツールを許可します - サンドボックス:OS レベルの分離を有効にして、ファイルシステムとネットワークアクセスを制限し、Claude が定義された境界内でより自由に動作できるようにします
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 フォルダへの書き込みをブロックするフックを書く」 のようなプロンプトを試してください。.claude/settings.json を直接編集してフックを設定し、/hooks を実行して設定されているものを参照します。
スキルを作成する
スキルは、プロジェクト、チーム、またはドメイン固有の情報で 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 に他のエンジニアに尋ねるような質問をしてください。より大きな機能については、Claude にあなたにインタビューさせて、実装を開始する前に仕様を書いてもらいます。コードベースの質問をする
新しいコードベースにオンボーディングするときは、Claude Code を学習と探索に使用します。別のエンジニアに尋ねるのと同じ種類の質問を Claude に尋ねることができます。- ロギングはどのように機能しますか?
- 新しい API エンドポイントを作成するにはどうすればよいですか?
foo.rsの 134 行目のasync move { ... }は何をしていますか?CustomerOnboardingFlowImplはどのエッジケースを処理しますか?- このコードが 333 行目で
bar()の代わりにfoo()を呼び出すのはなぜですか?
Claude にあなたにインタビューさせる
Claude は、技術的な実装、UI/UX、エッジケース、トレードオフなど、あなたがまだ考えていないことについて質問します。[brief description] をあなたの機能に置き換えてからプロンプトを送信してください。
セッションを管理する
会話は永続的で可逆的です。これを有利に使用してください。早期かつ頻繁に方向転換する
最良の結果は、タイトなフィードバックループから生まれます。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を使用し、メッセージチェックポイントを選択し、ここから要約 または ここまで要約 を選択します。最初のものはそのポイント以降のメッセージを凝縮し、以前のコンテキストは保持されます。2 番目のものは以前のメッセージを凝縮し、最近のものは完全に保持されます。巻き戻しメニューの要約オプションを参照してください。 - CLAUDE.md でコンパクション動作をカスタマイズします。
"When compacting, always preserve the full list of modified files and any test commands"のような指示を使用して、重要なコンテキストが要約を生き残ることを確認します - 会話履歴に入らない簡単な質問については、
/btwを使用します。答えは会話履歴に入らないため、コンテキストを増やさずに詳細をチェックできます。
調査にサブエージェントを使用する
コンテキストが基本的な制約であるため、サブエージェントを使用して研究をコンテキストの外に保ちます。Claude がコードベースを研究するとき、多くのファイルを読み取り、すべてがコンテキストを消費します。サブエージェントは別のコンテキストウィンドウで実行され、要約を報告します。チェックポイントで巻き戻す
Claude は変更前に自動的にファイルをスナップショットするため、チェックポイントはそれらを復元できます。Escape をダブルタップするか /rewind を実行して、巻き戻しメニューを開きます。会話のみを復元したり、コードのみを復元したり、両方を復元したり、選択したメッセージから要約したりできます。詳細については、チェックポイントを参照してください。
すべての動きを慎重に計画する代わりに、Claude に何か危険なことを試すよう指示できます。うまくいかない場合は、巻き戻して別のアプローチを試してください。チェックポイントはセッション全体で保持されるため、ターミナルを閉じても後で巻き戻すことができます。
会話を再開する
Claude Code は会話をローカルに保存するため、タスクが複数のセッションにまたがる場合、コンテキストを再度説明する必要はありません。claude --continueを実行して最新のセッションを選択するか、claude --resume を実行してリストから選択します。oauth-migration などの説明的な名前でセッションに名前を付けて、後で見つけやすくします。セッションを管理を参照して、再開、ブランチ、命名制御の完全なセットを確認してください。
自動化とスケール
1 つの Claude で効果的になったら、並列セッション、非対話モード、ファンアウトパターンで出力を乗算します。非対話モードを実行する
claude -p "your prompt" を使用すると、対話的なプロンプトなしで Claude を非対話的に実行できます。実行は --no-session-persistence を渡さない限り、再開可能なセッションを作成します。非対話モードは、Claude を CI パイプライン、プリコミットフック、または自動化されたワークフローに統合する方法です。出力形式を使用すると、結果をプログラムで解析できます。プレーンテキスト、JSON、またはストリーミング JSON です。
json 形式は result フィールドを持つ単一の JSON オブジェクトを返します。stream-json 形式は 1 行に 1 つの JSON オブジェクトを出力し、初期化イベントで始まります。
複数の Claude セッションを実行する
自分で行いたい調整の量に合わせて、並列アプローチを選択し、セッションが相互に検出結果を渡す必要があるときはメッセージングを追加します。- Worktrees:分離された git チェックアウトで個別の CLI セッションを実行して、編集が衝突しないようにします
- クロスセッションメッセージング:自分で実行するセッションが相互に検出結果を渡すことができます
- デスクトップアプリ:複数のローカルセッションを視覚的に管理します。必要に応じて、各セッションを独自の worktree で実行できます
- クラウドで Claude Code を使用する:デフォルトで Anthropic が管理するインフラストラクチャ上でセッションを実行します
- エージェントビュー:リサーチプレビュー。
claude agentsを実行して、バックグラウンドで実行し続けるセッションをディスパッチし、1 つの画面から監視します - エージェントチーム:実験的で、デフォルトで無効です。共有タスク、メッセージング、チームリーダーを備えた複数のセッションの自動調整
テストで同様のことを行うことができます。1 つの Claude にテストを書かせ、別の Claude にそれらをパスするコードを書かせます。
ファイル全体にファンアウトする
大規模な移行または分析の場合、多くの並列 Claude 呼び出し全体で作業を配布できます。/batch <instruction> を実行して、Claude が変更を 5~30 個のサブエージェント全体に分割させます。各サブエージェントは独自の worktree で作業します。代わりに独自のスクリプトからファンアウトを駆動するには、claude -p をループします。
1
タスクリストを生成する
Claude に移行が必要なファイルのリストをファイルに書き込ませます。次のステップのループがそれを読み取ることができるように、
list all 2,000 Python files that need migrating and save the list to files.txt のようなプロンプトを使用します2
リストをループするスクリプトを書く
3
いくつかのファイルでテストしてから、すべてのファイルで実行する
最初の 2~3 ファイルで何が悪いかに基づいてプロンプトを改善し、完全なセットで実行します。
--allowedTools フラグは移行に必要なツールを事前承認し、--permission-mode dontAsk は承認が必要になるそれ以外のすべてを拒否します。これは無人で実行しているときに重要です。auto モードで自律的に実行する
無中断の実行とバックグラウンドのセーフティチェックについては、auto モードを使用します。分類器モデルはコマンドを実行前にレビューし、スコープエスカレーション、未知のインフラストラクチャ、敵対的なコンテンツ駆動のアクションをブロックしながら、日常的な作業をプロンプトなしで進めさせます。-p フラグを使用した非対話実行で分類器が繰り返しアクションをブロックするとき、Claude Code は実行を停止しません。auto モードがフォールバックするときを参照して、代わりに何が起こるか、およびしきい値を確認してください。
敵対的なレビューステップを追加する
Claude が無人で作業する期間が長いほど、作業が完了したと見なす前に独立したチェックが重要になります。新しいサブエージェントコンテキストで実行されるレビュアーは、差分と提供されたクライテリアのみを見て、変更を生成した推論は見ないため、独自の条件で結果を評価します。 正確性チェックの場合、バンドルされた/code-review スキルを実行します。これは新しいサブエージェントで現在の差分をバグについてレビューし、検出結果をセッションに返します。代わりに差分をプランに対してチェックするには、レビュープロンプトを自分で作成します。チェックする作業、チェック対象のプラン、および検出結果として何がカウントされるかを明示します。
ギャップを見つけるようにプロンプトされたレビュアーは、作業が健全であっても、通常はいくつかを報告します。それはそれが求められたことだからです。すべての検出結果を追求することは、過度なエンジニアリングにつながります。追加の抽象化レイヤー、防御的なコード、および発生し得ないケースのテストです。レビュアーに、正確性または記載された要件に影響するギャップのみを指摘するよう指示し、残りはオプションとして扱います。
一般的な失敗パターンを避ける
これらは一般的な間違いです。早期に認識することで時間を節約できます。- キッチンシンクセッション。 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:プロジェクト規約と永続的なコンテキストを保存する