このドキュメントの各タスクには、Claude Codeを最大限に活用するための明確な指示、コマンド例、ベストプラクティスが含まれています。

新しいコードベースを理解する

コードベースの概要を素早く把握する

新しいプロジェクトに参加したばかりで、その構造を素早く理解する必要があるとします。

1

プロジェクトのルートディレクトリに移動する

cd /path/to/project 
2

Claude Codeを開始する

claude 
3

高レベルな概要を求める

> このコードベースの概要を教えて 
4

特定のコンポーネントをより深く掘り下げる

> ここで使用されている主要なアーキテクチャパターンを説明して 
> 主要なデータモデルは何ですか?
> 認証はどのように処理されていますか?

ヒント:

  • 広範な質問から始めて、特定の領域に絞り込む
  • プロジェクトで使用されているコーディング規約とパターンについて尋ねる
  • プロジェクト固有の用語の用語集を要求する

関連するコードを見つける

特定の機能や機能性に関連するコードを見つける必要があるとします。

1

Claudeに関連ファイルを見つけてもらう

> ユーザー認証を処理するファイルを見つけて 
2

コンポーネントがどのように相互作用するかのコンテキストを取得する

> これらの認証ファイルはどのように連携していますか? 
3

実行フローを理解する

> フロントエンドからデータベースまでのログインプロセスをトレースして 

ヒント:

  • 探しているものについて具体的に説明する
  • プロジェクトのドメイン言語を使用する

バグを効率的に修正する

エラーメッセージに遭遇し、その原因を見つけて修正する必要があるとします。

1

Claudeにエラーを共有する

> npm testを実行するとエラーが表示されます 
2

修正の推奨事項を求める

> user.tsの@ts-ignoreを修正するいくつかの方法を提案して 
3

修正を適用する

> 提案されたnullチェックを追加するためにuser.tsを更新して 

ヒント:

  • 問題を再現するコマンドをClaudeに伝え、スタックトレースを取得する
  • エラーを再現する手順があれば言及する
  • エラーが断続的か一貫しているかをClaudeに知らせる

コードをリファクタリングする

古いコードを現代的なパターンと実践に更新する必要があるとします。

1

リファクタリング対象のレガシーコードを特定する

> コードベース内の非推奨API使用を見つけて 
2

リファクタリングの推奨事項を取得する

> utils.jsを現代的なJavaScript機能を使用するようにリファクタリングする方法を提案して 
3

変更を安全に適用する

> 同じ動作を維持しながらutils.jsをES2024機能を使用するようにリファクタリングして 
4

リファクタリングを検証する

> リファクタリングされたコードのテストを実行して 

ヒント:

  • Claudeに現代的なアプローチの利点を説明してもらう
  • 必要に応じて後方互換性を維持するよう変更を要求する
  • 小さくテスト可能な増分でリファクタリングを行う

専門的なサブエージェントを使用する

特定のタスクをより効果的に処理するために専門的なAIサブエージェントを使用したいとします。

1

利用可能なサブエージェントを表示する

> /agents

これにより、利用可能なすべてのサブエージェントが表示され、新しいものを作成できます。

2

サブエージェントを自動的に使用する

Claude Codeは適切なタスクを専門的なサブエージェントに自動的に委任します:

> 最近のコード変更をセキュリティ問題についてレビューして
> すべてのテストを実行して、失敗があれば修正して
3

特定のサブエージェントを明示的に要求する

> code-reviewerサブエージェントを使用してauthモジュールをチェックして
> debuggerサブエージェントにユーザーがログインできない理由を調査してもらって
4

ワークフロー用のカスタムサブエージェントを作成する

> /agents

次に「Create New subagent」を選択し、プロンプトに従って以下を定義します:

  • サブエージェントタイプ(例:api-designerperformance-optimizer
  • いつ使用するか
  • アクセスできるツール
  • 専門的なシステムプロンプト

ヒント:

  • チーム共有のために.claude/agents/にプロジェクト固有のサブエージェントを作成する
  • 自動委任を可能にするために説明的なdescriptionフィールドを使用する
  • 各サブエージェントが実際に必要とするツールアクセスに制限する
  • 詳細な例についてはサブエージェントドキュメントを確認する

安全なコード分析にPlan Modeを使用する

Plan ModeはClaudeに読み取り専用操作でコードベースを分析して計画を作成するよう指示し、コードベースの探索、複雑な変更の計画、または安全なコードレビューに最適です。

Plan Modeを使用するタイミング

  • マルチステップ実装:機能が多くのファイルの編集を必要とする場合
  • コード探索:何かを変更する前にコードベースを徹底的に調査したい場合
  • インタラクティブ開発:Claudeと方向性について反復したい場合

Plan Modeの使用方法

セッション中にPlan Modeをオンにする

Shift+Tabを使用して権限モードを循環させることで、セッション中にPlan Modeに切り替えることができます。

Normal Modeの場合、Shift+Tabは最初にAuto-Accept Modeに切り替わり、ターミナルの下部に⏵⏵ accept edits onと表示されます。続けてShift+Tabを押すとPlan Modeに切り替わり、⏸ plan mode onと表示されます。

Plan Modeで新しいセッションを開始する

Plan Modeで新しいセッションを開始するには、--permission-mode planフラグを使用します:

claude --permission-mode plan

Plan Modeで「ヘッドレス」クエリを実行する

-pを使用してPlan Modeで直接クエリを実行することもできます(つまり、「ヘッドレスモード」で):

claude --permission-mode plan -p "認証システムを分析して改善を提案して"

例:複雑なリファクタリングの計画

claude --permission-mode plan
> 認証システムをOAuth2を使用するようにリファクタリングする必要があります。詳細な移行計画を作成してください。

Claudeは現在の実装を分析し、包括的な計画を作成します。フォローアップで詳細化します:

> 後方互換性についてはどうですか?
> データベース移行をどのように処理すべきですか?

Plan Modeをデフォルトとして設定する

// .claude/settings.json
{
  "permissions": {
    "defaultMode": "plan"
  }
}

その他の設定オプションについては設定ドキュメントを参照してください。


テストを扱う

カバーされていないコードにテストを追加する必要があるとします。

1

テストされていないコードを特定する

> NotificationsService.swiftでテストでカバーされていない関数を見つけて 
2

テストの骨組みを生成する

> 通知サービスのテストを追加して 
3

意味のあるテストケースを追加する

> 通知サービスのエッジ条件のテストケースを追加して 
4

テストを実行して検証する

> 新しいテストを実行して、失敗があれば修正して 

ヒント:

  • エッジケースとエラー条件をカバーするテストを求める
  • 適切な場合は単体テストと統合テストの両方を要求する
  • Claudeにテスト戦略を説明してもらう

プルリクエストを作成する

変更について十分に文書化されたプルリクエストを作成する必要があるとします。

1

変更を要約する

> 認証モジュールに加えた変更を要約して 
2

ClaudeでPRを生成する

> prを作成して 
3

レビューして改良する

> セキュリティ改善についてより多くのコンテキストでPR説明を強化して 
4

テストの詳細を追加する

> これらの変更がどのようにテストされたかについての情報を追加して 

ヒント:

  • ClaudeにPRを直接作成してもらう
  • 提出前にClaudeが生成したPRをレビューする
  • Claudeに潜在的なリスクや考慮事項を強調してもらう

ドキュメントを処理する

コードのドキュメントを追加または更新する必要があるとします。

1

文書化されていないコードを特定する

> authモジュールで適切なJSDocコメントがない関数を見つけて 
2

ドキュメントを生成する

> auth.jsの文書化されていない関数にJSDocコメントを追加して 
3

レビューして強化する

> より多くのコンテキストと例で生成されたドキュメントを改善して 
4

ドキュメントを検証する

> ドキュメントがプロジェクト標準に従っているかチェックして 

ヒント:

  • 希望するドキュメントスタイル(JSDoc、docstringsなど)を指定する
  • ドキュメントに例を求める
  • パブリックAPI、インターフェース、複雑なロジックのドキュメントを要求する

画像を扱う

コードベース内の画像を扱う必要があり、Claudeに画像コンテンツの分析を手伝ってもらいたいとします。

1

会話に画像を追加する

以下のいずれかの方法を使用できます:

  1. Claude Codeウィンドウに画像をドラッグアンドドロップする
  2. 画像をコピーしてctrl+vでCLIに貼り付ける(cmd+vは使用しない)
  3. Claudeに画像パスを提供する。例:「この画像を分析して:/path/to/your/image.png」
2

Claudeに画像を分析してもらう

> この画像は何を示していますか?
> このスクリーンショットのUI要素を説明して
> この図に問題のある要素はありますか?
3

コンテキストに画像を使用する

> これはエラーのスクリーンショットです。何が原因ですか?
> これは現在のデータベーススキーマです。新機能のためにどのように変更すべきですか?
4

視覚的コンテンツからコードの提案を得る

> このデザインモックアップに合うCSSを生成して
> このコンポーネントを再現するHTMLの構造は何ですか?

ヒント:

  • テキストでの説明が不明確または煩雑になる場合は画像を使用する
  • より良いコンテキストのためにエラー、UIデザイン、図のスクリーンショットを含める
  • 会話で複数の画像を扱うことができる
  • 画像分析は図、スクリーンショット、モックアップなどで機能する

ファイルとディレクトリを参照する

@を使用して、Claudeが読み込むのを待つことなく、ファイルやディレクトリを素早く含めます。

1

単一ファイルを参照する

> @src/utils/auth.jsのロジックを説明して

これにより、ファイルの完全な内容が会話に含まれます。

2

ディレクトリを参照する

> @src/componentsの構造は何ですか?

これにより、ファイル情報を含むディレクトリリストが提供されます。

3

MCPリソースを参照する

> @github:repos/owner/repo/issuesからのデータを表示して

これにより、@server:resource形式を使用して接続されたMCPサーバーからデータを取得します。詳細についてはMCPリソースを参照してください。

ヒント:

  • ファイルパスは相対パスまたは絶対パスが可能
  • @ファイル参照により、ファイルのディレクトリと親ディレクトリのCLAUDE.mdがコンテキストに追加される
  • ディレクトリ参照はファイルリストを表示し、内容は表示しない
  • 単一のメッセージで複数のファイルを参照できる(例:「@file1.jsと@file2.js」)

拡張思考を使用する

複雑なアーキテクチャの決定、困難なバグ、または深い推論を必要とするマルチステップ実装の計画に取り組んでいるとします。

1

コンテキストを提供してClaudeに考えてもらう

> APIにOAuth2を使用した新しい認証システムを実装する必要があります。コードベースでこれを実装するための最良のアプローチについて深く考えてください。 

Claudeはコードベースから関連情報を収集し、 拡張思考を使用します。これはインターフェースで表示されます。

2

フォローアッププロンプトで思考を洗練する

> このアプローチの潜在的なセキュリティ脆弱性について考えて 
> 処理すべきエッジケースについて考え続けて 

拡張思考から最大の価値を得るためのヒント:

拡張思考は以下のような複雑なタスクに最も価値があります:

  • 複雑なアーキテクチャ変更の計画
  • 複雑な問題のデバッグ
  • 新機能の実装計画の作成
  • 複雑なコードベースの理解
  • 異なるアプローチ間のトレードオフの評価

思考をプロンプトする方法により、思考の深さのレベルが変わります:

  • 「think」は基本的な拡張思考をトリガーする
  • 「keep thinking」、「think more」、「think a lot」、「think longer」などの強化フレーズはより深い思考をトリガーする

拡張思考プロンプトのより多くのヒントについては、拡張思考のヒントを参照してください。

Claudeは思考プロセスを応答の上に斜体の灰色テキストとして表示します。


以前の会話を再開する

Claude Codeでタスクに取り組んでいて、後のセッションで中断したところから続ける必要があるとします。

Claude Codeは以前の会話を再開するための2つのオプションを提供します:

  • --continueで最新の会話を自動的に続ける
  • --resumeで会話ピッカーを表示する
1

最新の会話を続ける

claude --continue

これにより、プロンプトなしで最新の会話を即座に再開します。

2

非インタラクティブモードで続ける

claude --continue --print "タスクを続けて"

--continue--printを使用して、非インタラクティブモードで最新の会話を再開します。スクリプトや自動化に最適です。

3

会話ピッカーを表示する

claude --resume

これにより、以下を表示するインタラクティブな会話セレクターが表示されます:

  • 会話開始時刻
  • 初期プロンプトまたは会話要約
  • メッセージ数

矢印キーでナビゲートし、Enterを押して会話を選択します。

ヒント:

  • 会話履歴はマシンにローカルに保存される
  • 最新の会話への素早いアクセスには--continueを使用する
  • 特定の過去の会話を選択する必要がある場合は--resumeを使用する
  • 再開時、続行前に会話履歴全体が表示される
  • 再開された会話は元の会話と同じモデルと設定で開始される

仕組み:

  1. 会話ストレージ:すべての会話は完全なメッセージ履歴とともに自動的にローカルに保存される
  2. メッセージデシリアライゼーション:再開時、コンテキストを維持するために完全なメッセージ履歴が復元される
  3. ツール状態:以前の会話からのツール使用と結果が保持される
  4. コンテキスト復元:会話は以前のすべてのコンテキストを保持して再開される

例:

# 最新の会話を続ける
claude --continue

# 特定のプロンプトで最新の会話を続ける
claude --continue --print "進捗を表示して"

# 会話ピッカーを表示する
claude --resume

# 非インタラクティブモードで最新の会話を続ける
claude --continue --print "テストを再度実行して"

Git worktreeで並列Claude Codeセッションを実行する

Claude Codeインスタンス間で完全なコード分離を行いながら、複数のタスクを同時に作業する必要があるとします。

1

Git worktreeを理解する

Git worktreeを使用すると、同じリポジトリから複数のブランチを 別々のディレクトリにチェックアウトできます。各worktreeには 分離されたファイルを持つ独自の作業ディレクトリがありますが、 同じGit履歴を共有します。詳細については公式Git worktree ドキュメントを参照してください。

2

新しいworktreeを作成する

# 新しいブランチで新しいworktreeを作成する 
git worktree add ../project-feature-a -b feature-a

# または既存のブランチでworktreeを作成する
git worktree add ../project-bugfix bugfix-123

これにより、リポジトリの別の作業コピーを持つ新しいディレクトリが作成されます。

3

各worktreeでClaude Codeを実行する

# worktreeに移動する 
cd ../project-feature-a

# この分離された環境でClaude Codeを実行する
claude
4

別のworktreeでClaudeを実行する

cd ../project-bugfix
claude
5

worktreeを管理する

# すべてのworktreeをリストする
git worktree list

# 完了時にworktreeを削除する
git worktree remove ../project-feature-a

ヒント:

  • 各worktreeには独自の独立したファイル状態があり、並列Claude Codeセッションに最適
  • 一つのworktreeで行われた変更は他に影響せず、Claudeインスタンスが互いに干渉することを防ぐ
  • すべてのworktreeは同じGit履歴とリモート接続を共有する
  • 長時間実行されるタスクの場合、一つのworktreeでClaudeを作業させながら、別のworktreeで開発を続けることができる
  • どのタスクが各worktree用かを簡単に識別するために説明的なディレクトリ名を使用する
  • 各新しいworktreeでプロジェクトのセットアップに従って開発環境を初期化することを忘れないでください。スタックによって、これには以下が含まれる場合があります:
    • JavaScriptプロジェクト:依存関係のインストールの実行(npm installyarn
    • Pythonプロジェクト:仮想環境の設定またはパッケージマネージャーでのインストール
    • その他の言語:プロジェクトの標準セットアッププロセスに従う

Claudeをunixスタイルのユーティリティとして使用する

検証プロセスにClaudeを追加する

Claude Codeをリンターまたはコードレビューアーとして使用したいとします。

ビルドスクリプトにClaudeを追加する:

// package.json
{
    ...
    "scripts": {
        ...
        "lint:claude": "claude -p 'あなたはリンターです。mainとの変更を見て、タイポに関連する問題を報告してください。ファイル名と行番号を1行で報告し、問題の説明を2行目で報告してください。他のテキストは返さないでください。'"
    }
}

ヒント:

  • CI/CDパイプラインで自動コードレビューにClaudeを使用する
  • プロジェクトに関連する特定の問題をチェックするようにプロンプトをカスタマイズする
  • 異なるタイプの検証用に複数のスクリプトを作成することを検討する

パイプイン、パイプアウト

Claudeにデータをパイプし、構造化された形式でデータを取得したいとします。

Claudeを通してデータをパイプする:

cat build-error.txt | claude -p 'このビルドエラーの根本原因を簡潔に説明して' > output.txt

ヒント:

  • パイプを使用してClaudeを既存のシェルスクリプトに統合する
  • 強力なワークフローのために他のUnixツールと組み合わせる
  • 構造化された出力には—output-formatの使用を検討する

出力形式を制御する

特にClaude Codeをスクリプトや他のツールに統合する際に、Claudeの出力を特定の形式で必要とするとします。

1

テキスト形式を使用する(デフォルト)

cat data.txt | claude -p 'このデータを要約して' --output-format text > summary.txt

これはClaudeのプレーンテキスト応答のみを出力します(デフォルトの動作)。

2

JSON形式を使用する

cat code.py | claude -p 'このコードをバグについて分析して' --output-format json > analysis.json

これはコストと期間を含むメタデータ付きのメッセージのJSON配列を出力します。

3

ストリーミングJSON形式を使用する

cat log.txt | claude -p 'このログファイルをエラーについて解析して' --output-format stream-json

これはClaudeがリクエストを処理する際にリアルタイムで一連のJSONオブジェクトを出力します。各メッセージは有効なJSONオブジェクトですが、連結された場合、出力全体は有効なJSONではありません。

ヒント:

  • Claudeの応答だけが必要な簡単な統合には--output-format textを使用する
  • 完全な会話ログが必要な場合は--output-format jsonを使用する
  • 各会話ターンのリアルタイム出力には--output-format stream-jsonを使用する

カスタムスラッシュコマンドを作成する

Claude Codeは、特定のプロンプトやタスクを素早く実行するために作成できるカスタムスラッシュコマンドをサポートしています。

詳細については、スラッシュコマンドリファレンスページを参照してください。

プロジェクト固有のコマンドを作成する

すべてのチームメンバーが使用できるプロジェクト用の再利用可能なスラッシュコマンドを作成したいとします。

1

プロジェクトにコマンドディレクトリを作成する

mkdir -p .claude/commands
2

各コマンド用のMarkdownファイルを作成する

echo "このコードのパフォーマンスを分析し、3つの具体的な最適化を提案してください:" > .claude/commands/optimize.md 
3

Claude Codeでカスタムコマンドを使用する

> /optimize 

ヒント:

  • コマンド名はファイル名から派生する(例:optimize.md/optimizeになる)
  • サブディレクトリでコマンドを整理できる(例:.claude/commands/frontend/component.mdは説明に「(project:frontend)」が表示される/componentを作成する)
  • プロジェクトコマンドはリポジトリをクローンするすべての人が利用できる
  • Markdownファイルの内容がコマンド呼び出し時にClaudeに送信されるプロンプトになる

$ARGUMENTSでコマンド引数を追加する

ユーザーからの追加入力を受け入れることができる柔軟なスラッシュコマンドを作成したいとします。

1

$ARGUMENTSプレースホルダーを含むコマンドファイルを作成する

echo '問題#$ARGUMENTSを見つけて修正してください。以下の手順に従ってください:1.
チケットに記載されている問題を理解する 2. コードベース内の関連コードを見つける 3. 根本原因に対処するソリューションを実装する 4. 適切なテストを追加する 5. 簡潔なPR説明を準備する' >
.claude/commands/fix-issue.md 
2

問題番号でコマンドを使用する

Claudeセッションで、引数付きでコマンドを使用します。

> /fix-issue 123 

これによりプロンプト内の$ARGUMENTSが「123」に置き換えられます。

ヒント:

  • $ARGUMENTSプレースホルダーはコマンドに続くテキストに置き換えられる
  • コマンドテンプレート内の任意の場所に$ARGUMENTSを配置できる
  • その他の有用な応用:特定の関数のテストケース生成、コンポーネントのドキュメント作成、特定ファイルのコードレビュー、指定された言語へのコンテンツ翻訳

個人的なスラッシュコマンドを作成する

すべてのプロジェクトで機能する個人的なスラッシュコマンドを作成したいとします。

1

ホームフォルダにコマンドディレクトリを作成する

mkdir -p ~/.claude/commands 
2

各コマンド用のMarkdownファイルを作成する

echo "このコードをセキュリティ脆弱性についてレビューし、以下に焦点を当ててください:" >
~/.claude/commands/security-review.md 
3

個人的なカスタムコマンドを使用する

> /security-review 

ヒント:

  • 個人的なコマンドは/helpでリストされる際に説明に「(user)」が表示される
  • 個人的なコマンドはあなただけが利用でき、チームと共有されない
  • 個人的なコマンドはすべてのプロジェクトで機能する
  • 異なるコードベース間で一貫したワークフローに使用できる

Claudeの機能について質問する

Claudeは自身のドキュメントへの組み込みアクセスを持ち、自身の機能と制限について質問に答えることができます。

質問例

> Claude Codeはプルリクエストを作成できますか?
> Claude Codeは権限をどのように処理しますか?
> 利用可能なスラッシュコマンドは何ですか?
> Claude CodeでMCPを使用するにはどうすればよいですか?
> Amazon BedrockでClaude Codeを設定するにはどうすればよいですか?
> Claude Codeの制限は何ですか?

Claudeはこれらの質問にドキュメントベースの回答を提供します。実行可能な例と実践的なデモンストレーションについては、上記の特定のワークフローセクションを参照してください。

ヒント:

  • Claudeは使用しているバージョンに関係なく、常に最新のClaude Codeドキュメントにアクセスできる
  • 詳細な回答を得るために具体的な質問をする
  • ClaudeはMCP統合、エンタープライズ設定、高度なワークフローなどの複雑な機能を説明できる

次のステップ

Claude Codeリファレンス実装

開発コンテナリファレンス実装をクローンしてください。