新しいコードベースを理解する
コードベースの概要を素早く把握する
新しいプロジェクトに参加したばかりで、その構造を素早く理解する必要があるとします。プロジェクトのルートディレクトリに移動する
Claude Codeを開始する
高レベルな概要を求める
特定のコンポーネントをより深く掘り下げる
- 広範な質問から始めて、特定の領域に絞り込む
- プロジェクトで使用されているコーディング規約とパターンについて尋ねる
- プロジェクト固有の用語の用語集を要求する
関連するコードを見つける
特定の機能や機能性に関連するコードを見つける必要があるとします。Claudeに関連ファイルを見つけてもらう
コンポーネントがどのように相互作用するかのコンテキストを得る
実行フローを理解する
- 探しているものについて具体的に述べる
- プロジェクトのドメイン言語を使用する
バグを効率的に修正する
エラーメッセージに遭遇し、その原因を見つけて修正する必要があるとします。エラーをClaudeと共有する
修正の推奨事項を求める
修正を適用する
- 問題を再現するコマンドをClaudeに伝えて、スタックトレースを取得する
- エラーを再現する手順があれば言及する
- エラーが断続的なものか一貫したものかをClaudeに知らせる
コードをリファクタリングする
古いコードを現代的なパターンと実践に更新する必要があるとします。リファクタリング対象のレガシーコードを特定する
リファクタリングの推奨事項を得る
変更を安全に適用する
リファクタリングを検証する
- Claudeに現代的なアプローチの利点を説明してもらう
- 必要に応じて後方互換性を維持するよう変更を要求する
- リファクタリングを小さくテスト可能な増分で行う
専門的なサブエージェントを使用する
特定のタスクをより効果的に処理するために、専門的なAIサブエージェントを使用したいとします。利用可能なサブエージェントを表示する
サブエージェントを自動的に使用する
特定のサブエージェントを明示的に要求する
ワークフロー用のカスタムサブエージェントを作成する
- サブエージェントタイプ(例:
api-designer、performance-optimizer) - いつ使用するか
- アクセスできるツール
- 専門的なシステムプロンプト
- チーム共有のために
.claude/agents/にプロジェクト固有のサブエージェントを作成する - 自動委任を可能にするために説明的な
descriptionフィールドを使用する - 各サブエージェントが実際に必要とするツールアクセスに制限する
- 詳細な例についてはサブエージェントドキュメントを確認する
安全なコード分析のためのプランモードを使用する
プランモードは、Claudeに読み取り専用操作でコードベースを分析してプランを作成するよう指示します。コードベースの探索、複雑な変更の計画、または安全なコードレビューに最適です。プランモードを使用するタイミング
- マルチステップ実装:機能が多くのファイルの編集を必要とする場合
- コード探索:何かを変更する前にコードベースを徹底的に調査したい場合
- インタラクティブ開発:Claudeと方向性について反復したい場合
プランモードの使用方法
セッション中にプランモードをオンにする Shift+Tabを使用して権限モードを循環させることで、セッション中にプランモードに切り替えることができます。 ノーマルモードの場合、Shift+Tabは最初に自動承認モードに切り替わり、ターミナルの下部に⏵⏵ accept edits onと表示されます。続けてShift+Tabを押すとプランモードに切り替わり、⏸ plan mode onと表示されます。
プランモードで新しいセッションを開始する
プランモードで新しいセッションを開始するには、--permission-mode planフラグを使用します:
-pを使用してプランモードで直接クエリを実行することもできます(つまり、「ヘッドレスモード」で):
例:複雑なリファクタリングの計画
プランモードをデフォルトとして設定する
テストを扱う
カバーされていないコードにテストを追加する必要があるとします。テストされていないコードを特定する
テストの骨組みを生成する
意味のあるテストケースを追加する
テストを実行して検証する
- エッジケースとエラー条件をカバーするテストを求める
- 適切な場合は単体テストと統合テストの両方を要求する
- Claudeにテスト戦略を説明してもらう
プルリクエストを作成する
変更について十分に文書化されたプルリクエストを作成する必要があるとします。変更を要約する
ClaudeでPRを生成する
レビューして改良する
テストの詳細を追加する
- Claudeに直接PRを作成してもらう
- 提出前にClaudeが生成したPRをレビューする
- Claudeに潜在的なリスクや考慮事項を強調してもらう
ドキュメントを処理する
コードのドキュメントを追加または更新する必要があるとします。文書化されていないコードを特定する
ドキュメントを生成する
レビューして強化する
ドキュメントを検証する
- 希望するドキュメントスタイル(JSDoc、docstringsなど)を指定する
- ドキュメントに例を求める
- パブリックAPI、インターフェース、複雑なロジックのドキュメントを要求する
画像を扱う
コードベースで画像を扱う必要があり、Claudeに画像コンテンツの分析を手伝ってもらいたいとします。会話に画像を追加する
- Claude Codeウィンドウに画像をドラッグアンドドロップする
- 画像をコピーしてctrl+vでCLIに貼り付ける(cmd+vは使用しない)
- Claudeに画像パスを提供する。例:「この画像を分析して:/path/to/your/image.png」
Claudeに画像を分析してもらう
コンテキストに画像を使用する
視覚的コンテンツからコード提案を得る
- テキストの説明が不明確または煩雑になる場合は画像を使用する
- より良いコンテキストのためにエラー、UIデザイン、または図のスクリーンショットを含める
- 会話で複数の画像を扱うことができる
- 画像分析は図、スクリーンショット、モックアップなどで機能する
ファイルとディレクトリを参照する
@を使用して、Claudeが読み込むのを待つことなく、ファイルやディレクトリを素早く含めます。単一ファイルを参照する
ディレクトリを参照する
MCPリソースを参照する
- ファイルパスは相対パスまたは絶対パスが可能
- @ファイル参照は、ファイルのディレクトリと親ディレクトリのCLAUDE.mdをコンテキストに追加する
- ディレクトリ参照はファイルリストを表示し、内容は表示しない
- 単一メッセージで複数のファイルを参照できる(例:「@file1.jsと@file2.js」)
拡張思考を使用する
複雑なアーキテクチャの決定、困難なバグ、または深い推論を必要とするマルチステップ実装の計画に取り組んでいるとします。Tabを使用して思考をオンに切り替えるか、「think」や「think hard」などのプロンプトを使用してオンデマンドで有効にできます。設定でMAX_THINKING_TOKENS環境変数を設定することで永続的に有効にすることもできます。コンテキストを提供してClaudeに考えてもらう
フォローアッププロンプトで思考を改良する
- 複雑なアーキテクチャ変更の計画
- 複雑な問題のデバッグ
- 新機能の実装プランの作成
- 複雑なコードベースの理解
- 異なるアプローチ間のトレードオフの評価
Tabを使用して思考のオンオフを切り替えます。思考をプロンプトする方法により、思考の深さのレベルが異なります:- 「think」は基本的な拡張思考をトリガーする
- 「keep hard」、「think more」、「think a lot」、「think longer」などの強化フレーズはより深い思考をトリガーする
以前の会話を再開する
Claude Codeでタスクに取り組んでいて、後のセッションで中断したところから続ける必要があるとします。 Claude Codeは以前の会話を再開するための2つのオプションを提供します:--continueで最新の会話を自動的に続ける--resumeで会話ピッカーを表示する
最新の会話を続ける
非インタラクティブモードで続ける
--continueと--printを使用して、最新の会話を非インタラクティブモードで再開します。スクリプトや自動化に最適です。会話ピッカーを表示する
- セッション要約(または初期プロンプト)
- メタデータ:経過時間、メッセージ数、gitブランチ
- 会話履歴はマシンにローカルに保存される
- 最新の会話への素早いアクセスには
--continueを使用する - 特定の過去の会話を選択する必要がある場合は
--resumeを使用する - 再開時、続行前に会話履歴全体が表示される
- 再開された会話は元の会話と同じモデルと設定で開始される
- 会話ストレージ:すべての会話は完全なメッセージ履歴とともに自動的にローカルに保存される
- メッセージデシリアライゼーション:再開時、コンテキストを維持するためにメッセージ履歴全体が復元される
- ツール状態:以前の会話からのツール使用と結果が保持される
- コンテキスト復元:会話は以前のコンテキストをすべて保持して再開される
Gitワークツリーで並列Claude Codeセッションを実行する
Claude Codeインスタンス間で完全なコード分離を持って、複数のタスクに同時に取り組む必要があるとします。Gitワークツリーを理解する
新しいワークツリーを作成する
各ワークツリーでClaude Codeを実行する
別のワークツリーでClaudeを実行する
ワークツリーを管理する
- 各ワークツリーには独自の独立したファイル状態があり、並列Claude Codeセッションに最適
- 一つのワークツリーで行われた変更は他に影響せず、Claudeインスタンスが互いに干渉することを防ぐ
- すべてのワークツリーは同じGit履歴とリモート接続を共有する
- 長時間実行されるタスクの場合、一つのワークツリーでClaudeが作業している間に、別のワークツリーで開発を続けることができる
- どのワークツリーがどのタスク用かを簡単に識別するために説明的なディレクトリ名を使用する
- プロジェクトのセットアップに従って、各新しいワークツリーで開発環境を初期化することを忘れないでください。スタックによっては、以下が含まれる場合があります:
- JavaScriptプロジェクト:依存関係のインストールの実行(
npm install、yarn) - Pythonプロジェクト:仮想環境の設定またはパッケージマネージャーでのインストール
- その他の言語:プロジェクトの標準セットアッププロセスに従う
- JavaScriptプロジェクト:依存関係のインストールの実行(
Claudeをunixスタイルのユーティリティとして使用する
検証プロセスにClaudeを追加する
Claude Codeをリンターまたはコードレビューアーとして使用したいとします。 ビルドスクリプトにClaudeを追加する:- CI/CDパイプラインで自動コードレビューにClaudeを使用する
- プロジェクトに関連する特定の問題をチェックするようにプロンプトをカスタマイズする
- 異なるタイプの検証用に複数のスクリプトを作成することを検討する
パイプイン、パイプアウト
Claudeにデータをパイプし、構造化された形式でデータを取得したいとします。 Claudeを通してデータをパイプする:- パイプを使用してClaudeを既存のシェルスクリプトに統合する
- 強力なワークフローのために他のUnixツールと組み合わせる
- 構造化された出力には—output-formatの使用を検討する
出力形式を制御する
特にClaude Codeをスクリプトや他のツールに統合する際に、Claudeの出力を特定の形式で必要とするとします。テキスト形式を使用する(デフォルト)
JSON形式を使用する
ストリーミングJSON形式を使用する
- Claudeの応答だけが必要な簡単な統合には
--output-format textを使用する - 完全な会話ログが必要な場合は
--output-format jsonを使用する - 各会話ターンのリアルタイム出力には
--output-format stream-jsonを使用する
カスタムスラッシュコマンドを作成する
Claude Codeは、特定のプロンプトやタスクを素早く実行するために作成できるカスタムスラッシュコマンドをサポートしています。 詳細については、スラッシュコマンドリファレンスページを参照してください。プロジェクト固有のコマンドを作成する
すべてのチームメンバーが使用できるプロジェクト用の再利用可能なスラッシュコマンドを作成したいとします。プロジェクトにコマンドディレクトリを作成する
各コマンド用のMarkdownファイルを作成する
Claude Codeでカスタムコマンドを使用する
- コマンド名はファイル名から派生する(例:
optimize.mdは/optimizeになる) - サブディレクトリでコマンドを整理できる(例:
.claude/commands/frontend/component.mdは説明に「(project:frontend)」が表示される/componentを作成する) - プロジェクトコマンドはリポジトリをクローンするすべての人が利用できる
- Markdownファイルの内容は、コマンドが呼び出されたときにClaudeに送信されるプロンプトになる
$ARGUMENTSでコマンド引数を追加する
ユーザーからの追加入力を受け入れることができる柔軟なスラッシュコマンドを作成したいとします。$ARGUMENTSプレースホルダーを含むコマンドファイルを作成する
問題番号でコマンドを使用する
- $ARGUMENTSプレースホルダーはコマンドに続くテキストで置き換えられる
- コマンドテンプレート内の任意の場所に$ARGUMENTSを配置できる
- その他の有用な応用:特定の関数のテストケース生成、コンポーネントのドキュメント作成、特定ファイルのコードレビュー、または指定された言語へのコンテンツ翻訳
個人的なスラッシュコマンドを作成する
すべてのプロジェクトで機能する個人的なスラッシュコマンドを作成したいとします。ホームフォルダにコマンドディレクトリを作成する
各コマンド用のMarkdownファイルを作成する
個人的なカスタムコマンドを使用する
- 個人的なコマンドは
/helpでリストされる際に説明に「(user)」が表示される - 個人的なコマンドはあなただけが利用でき、チームと共有されない
- 個人的なコマンドはすべてのプロジェクトで機能する
- 異なるコードベース間で一貫したワークフローのためにこれらを使用できる
Claudeの機能について尋ねる
Claudeは自身のドキュメントへの組み込みアクセスを持ち、自身の機能と制限について質問に答えることができます。質問例
- Claudeは使用しているバージョンに関係なく、常に最新のClaude Codeドキュメントにアクセスできる
- 詳細な回答を得るために具体的な質問をする
- ClaudeはMCP統合、エンタープライズ設定、高度なワークフローなどの複雑な機能を説明できる