このドキュメントの各タスクには、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

次に「新しいサブエージェントを作成」を選択し、プロンプトに従って以下を定義します:

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

ヒント:

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

テストを扱う

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

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」は基本的な拡張思考をトリガーする
  • 「think more」、「think a lot」、「think harder」、「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ワークツリーで並列Claude Codeセッションを実行する

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

1

Gitワークツリーを理解する

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

2

新しいワークツリーを作成する

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

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

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

3

各ワークツリーでClaude Codeを実行する

# ワークツリーに移動する
cd ../project-feature-a

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

別のワークツリーでClaudeを実行する

cd ../project-bugfix
claude
5

ワークツリーを管理する

# すべてのワークツリーをリストする
git worktree list

# 完了時にワークツリーを削除する
git worktree remove ../project-feature-a

ヒント:

  • 各ワークツリーには独自の独立したファイル状態があり、並列Claude Codeセッションに最適
  • 1つのワークツリーで行われた変更は他に影響せず、Claudeインスタンスが互いに干渉することを防ぐ
  • すべてのワークツリーは同じGit履歴とリモート接続を共有する
  • 長時間実行されるタスクの場合、1つのワークツリーでClaudeを作業させながら、別のワークツリーで開発を続けることができる
  • どのワークツリーがどのタスク用かを簡単に識別できるよう、説明的なディレクトリ名を使用する
  • プロジェクトのセットアップに従って、各新しいワークツリーで開発環境を初期化することを忘れないでください。スタックによっては、以下が含まれる場合があります:
    • 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参照実装

開発コンテナ参照実装をクローンしてください。