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

修正を適用する

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

ヒント:

  • 問題を再現するコマンドを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ワークツリー ドキュメントを参照してください。

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セッションに最適
  • 一つのワークツリーで行われた変更は他に影響せず、Claudeインスタンス間の干渉を防ぐ
  • すべてのワークツリーは同じGit履歴とリモート接続を共有する
  • 長時間実行されるタスクの場合、一つのワークツリーで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リファレンス実装

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