メインコンテンツへスキップ
Claude Code は agentic coding 環境です。質問に答えて待つチャットボットとは異なり、Claude Code はファイルを読み取り、コマンドを実行し、変更を加え、あなたが見守ったり、方向を変えたり、完全に任せたりしながら、自律的に問題を解決できます。 これはあなたの作業方法を変えます。自分でコードを書いて Claude にレビューしてもらう代わりに、やりたいことを説明すると Claude がそれをどのように構築するかを考え出します。Claude は探索し、計画し、実装します。 しかし、この自律性にも学習曲線があります。Claude は理解する必要がある特定の制約の中で動作します。 このガイドでは、Anthropic の内部チームと、様々なコードベース、言語、環境で Claude Code を使用しているエンジニアの間で効果的であることが証明されたパターンについて説明します。agentic ループがどのように機能するかについては、Claude Code の仕組みを参照してください。
ほとんどのベストプラクティスは 1 つの制約に基づいています。Claude のコンテキストウィンドウはすぐにいっぱいになり、満杯になるにつれてパフォーマンスが低下します。 Claude のコンテキストウィンドウは、すべてのメッセージ、Claude が読み取ったすべてのファイル、およびすべてのコマンド出力を含む、会話全体を保持します。ただし、これはすぐにいっぱいになる可能性があります。単一のデバッグセッションまたはコードベース探索でも、数万のトークンを生成および消費する可能性があります。 LLM のパフォーマンスはコンテキストが満杯になるにつれて低下するため、これは重要です。コンテキストウィンドウがいっぱいになると、Claude は以前の指示を「忘れる」か、より多くの間違いを犯す可能性があります。コンテキストウィンドウは管理する最も重要なリソースです。カスタムステータスラインでコンテキスト使用量を継続的に追跡し、トークン使用量を削減するための戦略についてはトークン使用量を削減を参照してください。

Claude に自分の作業を検証する方法を与える

テスト、スクリーンショット、または期待される出力を含めて、Claude が自分自身をチェックできるようにします。これはあなたができる最も高いレバレッジのことです。
Claude は、テストを実行したり、スクリーンショットを比較したり、出力を検証したりするなど、自分の作業を検証できるときに劇的に良くなります。 明確な成功基準がないと、正しく見えるが実際には機能しないものを生成する可能性があります。あなたが唯一のフィードバックループになり、すべての間違いがあなたの注意を必要とします。
戦略
検証基準を提供する「メールアドレスを検証する関数を実装する」「validateEmail 関数を書く。テストケースの例:[email protected] は true、invalid は false、[email protected] は false。実装後にテストを実行する」
UI の変更を視覚的に検証する「ダッシュボードをより良く見えるようにする」「[スクリーンショットを貼り付け] このデザインを実装する。結果のスクリーンショットを撮り、元のものと比較する。違いをリストアップして修正する」
症状ではなく根本原因に対処する「ビルドが失敗している」「ビルドがこのエラーで失敗している:[エラーを貼り付け]。修正して、ビルドが成功することを確認する。根本原因に対処し、エラーを抑制しない」
UI の変更は Chrome 拡張機能の Claude を使用して検証できます。これはブラウザで新しいタブを開き、UI をテストし、コードが機能するまで反復します。 検証はテストスイート、リンター、または出力をチェックする Bash コマンドにすることもできます。検証を堅牢にすることに投資してください。

最初に探索し、次に計画し、その後コーディングする

研究と計画を実装から分離して、間違った問題を解決することを避けます。
Claude が直接コーディングにジャンプさせると、間違った問題を解決するコードが生成される可能性があります。Plan Mode を使用して、探索を実行から分離します。 推奨されるワークフローには 4 つのフェーズがあります。
1

探索

Plan Mode に入ります。Claude はファイルを読み取り、変更を加えずに質問に答えます。
claude (Plan Mode)
read /src/auth and understand how we handle sessions and login.
also look at how we manage environment variables for secrets.
2

計画

Claude に詳細な実装計画を作成するよう依頼します。
claude (Plan Mode)
I want to add Google OAuth. What files need to change?
What's the session flow? Create a plan.
Ctrl+G を押して、Claude が進む前に、テキストエディタで計画を開いて直接編集します。
3

実装

Normal Mode に戻り、Claude にコーディングさせ、計画に対して検証します。
claude (Normal Mode)
implement the OAuth flow from your plan. write tests for the
callback handler, run the test suite and fix any failures.
4

コミット

Claude に説明的なメッセージでコミットし、PR を作成するよう依頼します。
claude (Normal Mode)
commit with a descriptive message and open a PR
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 を書く

/init を実行して、現在のプロジェクト構造に基づいてスターター CLAUDE.md ファイルを生成し、時間をかけて改善します。
CLAUDE.md は Claude がすべての会話の開始時に読む特別なファイルです。Bash コマンド、コードスタイル、ワークフロールールを含めます。これにより、Claude はコードだけからは推測できない永続的なコンテキストを取得します。 /init コマンドはコードベースを分析してビルドシステム、テストフレームワーク、コードパターンを検出し、改善するための堅牢な基盤を提供します。 CLAUDE.md ファイルに必須の形式はありませんが、短く人間が読める状態に保ちます。例えば:
CLAUDE.md
# Code style
- Use ES modules (import/export) syntax, not CommonJS (require)
- Destructure imports when possible (eg. import { foo } from 'bar')

# Workflow
- Be sure to typecheck when you're done making a series of code changes
- Prefer running single tests, and not the whole test suite, for performance
CLAUDE.md はすべてのセッションで読み込まれるため、広く適用されるもののみを含めます。ドメイン知識またはときどきのみ関連するワークフローについては、代わりに skills を使用します。Claude はそれらをオンデマンドで読み込み、すべての会話を膨らませることなく使用します。 簡潔に保ちます。各行について、次のように尋ねます。「これを削除すると Claude が間違いを犯しますか?」 そうでない場合は、削除します。膨らんだ CLAUDE.md ファイルは Claude があなたの実際の指示を無視するようにします。
✅ 含める❌ 除外する
Claude が推測できない Bash コマンドClaude がコードを読むことで理解できるもの
デフォルトと異なるコードスタイルルールClaude が既に知っている標準言語規約
テスト指示と推奨テストランナー詳細な API ドキュメント(代わりにドキュメントにリンク)
リポジトリのエチケット(ブランチ命名、PR 規約)頻繁に変わる情報
プロジェクト固有のアーキテクチャ決定長い説明またはチュートリアル
開発者環境の癖(必須環境変数)ファイルごとのコードベースの説明
一般的な落とし穴または明白でない動作「きれいなコードを書く」のような自明なプラクティス
Claude が CLAUDE.md にルールがあるにもかかわらず、あなたが望まないことをし続ける場合、ファイルはおそらく長すぎて、ルールが失われています。Claude が CLAUDE.md で答えられている質問をあなたに尋ねる場合、フレーズが曖昧かもしれません。CLAUDE.md をコードのように扱う:物事がうまくいかないときにレビューし、定期的に削除し、Claude の動作が実際に変わるかどうかを観察することで変更をテストします。 @path/to/import 構文を使用して追加ファイルをインポートすることで、指示を調整できます。
CLAUDE.md
See @README.md for project overview and @package.json for available npm commands.

# Additional Instructions
- Git workflow: @docs/git-instructions.md
- Personal overrides: @~/.claude/my-project-instructions.md
CLAUDE.md ファイルはいくつかの場所に配置できます。
  • ホームフォルダ(~/.claude/CLAUDE.md:すべての Claude セッションに適用されます
  • プロジェクトルート(./CLAUDE.md:git にチェックインしてチームと共有します
  • 親ディレクトリroot/CLAUDE.mdroot/foo/CLAUDE.md の両方が自動的にプルされるモノレポに役立ちます
  • 子ディレクトリ:Claude はそれらのディレクトリ内のファイルを操作するときに、子 CLAUDE.md ファイルをオンデマンドでプルします

パーミッションを設定する

/permissions を使用して安全なコマンドをホワイトリストに登録するか、/sandbox を使用して OS レベルの分離を行います。これにより、制御を保ちながら中断を減らします。
デフォルトでは、Claude Code はシステムを変更する可能性のあるアクション(ファイル書き込み、Bash コマンド、MCP ツールなど)の許可をリクエストします。これは安全ですが、面倒です。10 回目の承認後、あなたは本当にレビューしていません。クリックしているだけです。これらの中断を減らすには 2 つの方法があります。
  • パーミッションホワイトリスト:安全であることがわかっているツール(npm run lintgit commit など)を許可します
  • サンドボックス:OS レベルの分離を有効にして、ファイルシステムとネットワークアクセスを制限し、Claude が定義された境界内でより自由に動作できるようにします
または、--dangerously-skip-permissions を使用して、lint エラーの修正やボイラープレートの生成などの含まれたワークフローのすべてのパーミッションチェックをバイパスします。
Claude に任意のコマンドを実行させると、プロンプトインジェクションを介したデータ損失、システム破損、またはデータ流出が発生する可能性があります。--dangerously-skip-permissions はインターネットアクセスのないサンドボックスでのみ使用します。
パーミッションの設定サンドボックスの有効化の詳細をお読みください。

CLI ツールを使用する

Claude Code に ghawsgcloudsentry-cli などの 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 サーバーを接続する

claude mcp add を実行して、Notion、Figma、またはデータベースなどの外部ツールを接続します。
MCP サーバーを使用すると、Claude に問題トラッカーから機能を実装したり、データベースをクエリしたり、監視データを分析したり、Figma からデザインを統合したり、ワークフローを自動化したりするよう依頼できます。

フックを設定する

例外なしで毎回発生する必要があるアクションにはフックを使用します。
フックは Claude のワークフロー内の特定のポイントで自動的にスクリプトを実行します。CLAUDE.md の指示とは異なり、フックは決定論的であり、アクションが発生することを保証します。 Claude はあなたのためにフックを書くことができます。「すべてのファイル編集後に eslint を実行するフックを書く」 または 「migrations フォルダへの書き込みをブロックするフックを書く」 のようなプロンプトを試してください。対話的な設定については /hooks を実行するか、.claude/settings.json を直接編集します。

スキルを作成する

.claude/skills/SKILL.md ファイルを作成して、Claude にドメイン知識と再利用可能なワークフローを提供します。
スキルは、プロジェクト、チーム、またはドメイン固有の情報で Claude の知識を拡張します。Claude は関連するときに自動的にそれらを適用するか、/skill-name で直接呼び出すことができます。 .claude/skills/ にディレクトリと SKILL.md を追加してスキルを作成します。
.claude/skills/api-conventions/SKILL.md
---
name: api-conventions
description: REST API design conventions for our services
---
# API Conventions
- Use kebab-case for URL paths
- Use camelCase for JSON properties
- Always include pagination for list endpoints
- Version APIs in the URL path (/v1/, /v2/)
スキルは、直接呼び出す再利用可能なワークフローを定義することもできます。
.claude/skills/fix-issue/SKILL.md
---
name: fix-issue
description: Fix a GitHub issue
disable-model-invocation: true
---
Analyze and fix the GitHub issue: $ARGUMENTS.

1. Use `gh issue view` to get the issue details
2. Understand the problem described in the issue
3. Search the codebase for relevant files
4. Implement the necessary changes to fix the issue
5. Write and run tests to verify the fix
6. Ensure code passes linting and type checking
7. Create a descriptive commit message
8. Push and create a PR
/fix-issue 1234 を実行して呼び出します。副作用のあるワークフローで、手動でトリガーしたい場合は disable-model-invocation: true を使用します。

カスタムサブエージェントを作成する

.claude/agents/ に特化したアシスタントを定義して、Claude が分離されたタスクに委譲できるようにします。
サブエージェントは独自のコンテキストと独自の許可されたツールセットで実行されます。メインの会話を乱さずに、多くのファイルを読み取ったり、特化した焦点が必要なタスクに役立ちます。
.claude/agents/security-reviewer.md
---
name: security-reviewer
description: Reviews code for security vulnerabilities
tools: Read, Grep, Glob, Bash
model: opus
---
You are a senior security engineer. Review code for:
- Injection vulnerabilities (SQL, XSS, command injection)
- Authentication and authorization flaws
- Secrets or credentials in code
- Insecure data handling

Provide specific line references and suggested fixes.
Claude に明示的にサブエージェントを使用するよう指示します。「サブエージェントを使用してこのコードをセキュリティの問題についてレビューする。」

プラグインをインストールする

/plugin を実行してマーケットプレイスを参照します。プラグインは設定なしでスキル、ツール、統合を追加します。
プラグインは、コミュニティと Anthropic からの単一のインストール可能なユニットにスキル、フック、サブエージェント、MCP サーバーをバンドルします。型付き言語を使用する場合は、コード インテリジェンス プラグインをインストールして、Claude に正確なシンボルナビゲーションと編集後の自動エラー検出を提供します。 スキル、サブエージェント、フック、MCP の選択に関するガイダンスについては、Claude Code を拡張を参照してください。

効果的にコミュニケーションする

Claude Code との通信方法は、結果の品質に大きく影響します。

コードベースの質問をする

シニアエンジニアに尋ねるような質問を Claude にしてください。
新しいコードベースにオンボーディングするときは、Claude Code を学習と探索に使用します。別のエンジニアに尋ねるのと同じ種類の質問を Claude に尋ねることができます。
  • ロギングはどのように機能しますか?
  • 新しい API エンドポイントを作成するにはどうすればよいですか?
  • foo.rs の 134 行目の async move { ... } は何をしていますか?
  • CustomerOnboardingFlowImpl はどのエッジケースを処理しますか?
  • このコードが 333 行目で bar() の代わりに foo() を呼び出すのはなぜですか?
Claude Code をこのように使用することは、効果的なオンボーディングワークフローであり、ラップアップ時間を改善し、他のエンジニアの負荷を軽減します。特別なプロンプトは必要ありません。直接質問してください。

Claude にあなたにインタビューさせる

より大きな機能については、Claude に最初にあなたにインタビューさせます。最小限のプロンプトで開始し、Claude に AskUserQuestion ツールを使用してあなたにインタビューするよう依頼します。
Claude は、技術的な実装、UI/UX、エッジケース、トレードオフなど、あなたがまだ考えていないことについて質問します。
I want to build [brief description]. Interview me in detail using the AskUserQuestion tool.

Ask about technical implementation, UI/UX, edge cases, concerns, and tradeoffs. Don't ask obvious questions, dig into the hard parts I might not have considered.

Keep interviewing until we've covered everything, then write a complete spec to SPEC.md.
仕様が完成したら、新しいセッションを開始して実行します。新しいセッションはクリーンなコンテキストを持ち、実装に完全に焦点を当てており、参照する書かれた仕様があります。

セッションを管理する

会話は永続的で可逆的です。これを有利に使用してください。

早期かつ頻繁に方向転換する

Claude が軌道を外れていることに気付いたらすぐに修正します。
最良の結果は、タイトなフィードバックループから来ます。Claude は時々最初の試みで問題を完全に解決しますが、それを迅速に修正することは一般的により良い解決策をより速く生成します。
  • EscEsc キーで Claude の中途半端なアクションを停止します。コンテキストは保持されるため、リダイレクトできます。
  • Esc + Esc または /rewindEsc を 2 回押すか /rewind を実行して、巻き戻しメニューを開き、以前の会話とコード状態を復元するか、選択したメッセージから要約します。
  • "Undo that":Claude に変更を元に戻すよう依頼します。
  • /clear:関連のないタスク間でコンテキストをリセットします。関連のないコンテキストを持つ長いセッションはパフォーマンスを低下させる可能性があります。
1 つのセッションで同じ問題について Claude を 2 回以上修正した場合、コンテキストは失敗したアプローチで乱雑です。/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 を使用します。答えは却下可能なオーバーレイに表示され、会話履歴に入らないため、コンテキストを増やさずに詳細をチェックできます。

調査にサブエージェントを使用する

"use subagents to investigate X" で研究を委譲します。彼らは別のコンテキストで探索し、実装のためにメインの会話をクリーンに保ちます。
コンテキストが基本的な制約であるため、サブエージェントは利用可能な最も強力なツールの 1 つです。Claude がコードベースを研究するとき、多くのファイルを読み取り、すべてがコンテキストを消費します。サブエージェントは別のコンテキストウィンドウで実行され、要約を報告します。
Use subagents to investigate how our authentication system handles token
refresh, and whether we have any existing OAuth utilities I should reuse.
サブエージェントはコードベースを探索し、関連するファイルを読み取り、メインの会話を乱さずにすべての調査結果を報告します。 Claude が何かを実装した後、検証にサブエージェントを使用することもできます。
use a subagent to review this code for edge cases

チェックポイントで巻き戻す

Claude が行うすべてのアクションはチェックポイントを作成します。以前のチェックポイントに会話、コード、またはその両方を復元できます。
Claude は変更前に自動的にチェックポイントを作成します。Escape をダブルタップするか /rewind を実行して、巻き戻しメニューを開きます。会話のみを復元したり、コードのみを復元したり、両方を復元したり、選択したメッセージから要約したりできます。詳細については、チェックポイントを参照してください。 すべての動きを慎重に計画する代わりに、Claude に何か危険なことを試すよう指示できます。うまくいかない場合は、巻き戻して別のアプローチを試してください。チェックポイントはセッション全体で保持されるため、ターミナルを閉じても後で巻き戻すことができます。
チェックポイントは Claude が行った変更のみを追跡します。外部プロセスではありません。これは git の代替ではありません。

会話を再開する

claude --continue を実行して中断したところから再開するか、--resume を使用して最近のセッションから選択します。
Claude Code は会話をローカルに保存します。タスクが複数のセッションにまたがる場合、コンテキストを再度説明する必要はありません。
claude --continue    # Resume the most recent conversation
claude --resume      # Select from recent conversations
/rename を使用してセッションに "oauth-migration""debugging-memory-leak" などの説明的な名前を付けて、後で見つけやすくします。セッションをブランチのように扱う:異なるワークストリームは別々の永続的なコンテキストを持つことができます。

自動化とスケール

1 つの Claude で効果的になったら、並列セッション、非対話型モード、ファンアウトパターンで出力を乗算します。 これまでのすべては、1 人の人間、1 つの Claude、1 つの会話を想定しています。しかし、Claude Code は水平にスケールします。このセクションのテクニックは、より多くのことを成し遂げる方法を示しています。

非対話型モードを実行する

CI、プリコミットフック、またはスクリプトで claude -p "prompt" を使用します。ストリーミング JSON 出力の場合は --output-format stream-json を追加します。
claude -p "your prompt" を使用すると、セッションなしで Claude を非対話的に実行できます。非対話型モードは、Claude を CI パイプライン、プリコミットフック、または自動化されたワークフローに統合する方法です。出力形式を使用すると、結果をプログラムで解析できます。プレーンテキスト、JSON、またはストリーミング JSON。
# One-off queries
claude -p "Explain what this project does"

# Structured output for scripts
claude -p "List all API endpoints" --output-format json

# Streaming for real-time processing
claude -p "Analyze this log file" --output-format stream-json

複数の Claude セッションを実行する

複数の Claude セッションを並列で実行して、開発を高速化し、分離された実験を実行するか、複雑なワークフローを開始します。
並列セッションを実行するには 3 つの主な方法があります。
  • Claude Code デスクトップアプリ:複数のローカルセッションを視覚的に管理します。各セッションは独自の分離されたワークツリーを取得します。
  • Web 上の Claude Code:Anthropic のセキュアなクラウドインフラストラクチャで分離された VM で実行します。
  • エージェントチーム:共有タスク、メッセージング、チームリーダーを備えた複数のセッションの自動調整。
作業を並列化することを超えて、複数のセッションは品質に焦点を当てたワークフローを有効にします。新しいコンテキストは、Claude がちょうど書いたコードに偏らないため、コードレビューを改善します。 例えば、Writer/Reviewer パターンを使用します。
セッション 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.
テストで同様のことを行うことができます。1 つの Claude にテストを書かせ、別の Claude にそれらを渡すコードを書かせます。

ファイル全体にファンアウトする

各タスクに対して claude -p を呼び出すループを実行します。バッチ操作のスコープパーミッションに --allowedTools を使用します。
大規模な移行または分析の場合、多くの並列 Claude 呼び出し全体で作業を配布できます。
1

タスクリストを生成する

Claude に移行が必要なすべてのファイルをリストさせます(例えば、list all 2,000 Python files that need migrating
2

リストをループするスクリプトを書く

for file in $(cat files.txt); do
  claude -p "Migrate $file from React to Vue. Return OK or FAIL." \
    --allowedTools "Edit,Bash(git commit *)"
done
3

いくつかのファイルでテストしてから、スケールで実行する

最初の 2~3 ファイルで何が悪いかに基づいてプロンプトを改善し、完全なセットで実行します。--allowedTools フラグは Claude が何ができるかを制限します。これは無人で実行しているときに重要です。
Claude を既存のデータ/処理パイプラインに統合することもできます。
claude -p "<your prompt>" --output-format json | your_command
開発中は --verbose を使用し、本番環境ではオフにします。

一般的な失敗パターンを避ける

これらは一般的な間違いです。早期に認識することで時間を節約できます。
  • キッチンシンクセッション。 1 つのタスクで開始し、関連のないことを Claude に尋ねてから、最初のタスクに戻ります。コンテキストは関連のない情報でいっぱいです。
    修正:関連のないタスク間で /clear を実行します。
  • 何度も修正する。 Claude が何か間違ったことをし、修正し、まだ間違っています。修正します。コンテキストは失敗したアプローチで乱雑です。
    修正:2 回の失敗した修正の後、/clear を実行し、学んだことを組み込んだより良い初期プロンプトを書きます。
  • 過度に指定された CLAUDE.md。 CLAUDE.md が長すぎる場合、Claude は重要なルールがノイズに失われるため、半分を無視します。
    修正:容赦なく削除します。Claude が指示なしで既に何かを正しく行う場合、削除するか、フックに変換します。
  • 信頼してから検証するギャップ。 Claude はもっともらしく見える実装を生成しますが、エッジケースを処理しません。
    修正:常に検証を提供します(テスト、スクリプト、スクリーンショット)。検証できない場合は、出荷しないでください。
  • 無限探索。 スコープなしで何かを「調査」するよう Claude に依頼します。Claude は数百のファイルを読み取り、コンテキストを満たします。
    修正:調査を狭くスコープするか、サブエージェントを使用して、探索がメインコンテキストを消費しないようにします。

直感を開発する

このガイドのパターンは固定されていません。それらはすべての状況で一般的にうまく機能する出発点ですが、すべての状況に最適ではない可能性があります。 時々、あなたは 1 つの複雑な問題に深く入り込んでいて、履歴が価値があるため、コンテキストを蓄積させるべきです。時々、タスクが探索的であるため、計画をスキップして Claude にそれを理解させるべきです。時々、曖昧なプロンプトは、Claude が問題をどのように解釈するかを制約する前に見たいため、正確です。 何が機能するかに注意を払います。Claude が素晴らしい出力を生成するとき、あなたが何をしたかに注意してください。プロンプト構造、提供したコンテキスト、あなたがいたモード。Claude が苦労するとき、なぜ尋ねてください。コンテキストがノイズが多すぎましたか?プロンプトが曖昧すぎましたか?タスクが 1 回のパスには大きすぎましたか? 時間をかけて、ガイドが捉えることができない直感を開発します。具体的にするべき時と開放的にするべき時、計画すべき時と探索すべき時、コンテキストをクリアすべき時と蓄積させるべき時を知ります。

関連リソース