チュートリアル
開発ワークフローでClaude Codeを効果的に使用するための実践的な例とパターン。
このガイドでは、Claude Codeを使用した一般的なワークフローのステップバイステップのチュートリアルを提供します。各チュートリアルには、Claude Codeを最大限に活用するための明確な手順、コマンド例、ベストプラクティスが含まれています。
目次
- 以前の会話を再開する
- 新しいコードベースを理解する
- 効率的にバグを修正する
- コードをリファクタリングする
- テストを扱う
- プルリクエストを作成する
- ドキュメントを扱う
- 画像を扱う
- 拡張思考を使用する
- プロジェクトメモリを設定する
- Model Context Protocol (MCP)を設定する
- Claudeをunixスタイルのユーティリティとして使用する
- カスタムスラッシュコマンドを作成する
- Gitワークツリーを使用して並列Claude Codeセッションを実行する
以前の会話を再開する
シームレスに作業を継続する
使用するタイミング: Claude Codeでタスクに取り組んでいて、後のセッションで中断した箇所から続ける必要がある場合。
Claude Codeは以前の会話を再開するための2つのオプションを提供します:
--continue
で最新の会話を自動的に継続--resume
で会話選択画面を表示
最新の会話を継続する
これにより、プロンプトなしで最新の会話がすぐに再開されます。
非対話モードで継続する
--print
を--continue
と共に使用して、最新の会話を非対話モードで再開します。スクリプトや自動化に最適です。
会話選択画面を表示する
以下を表示する対話型の会話セレクターが表示されます:
- 会話開始時間
- 初期プロンプトまたは会話の要約
- メッセージ数
矢印キーで移動し、Enterを押して会話を選択します。
仕組み:
- 会話の保存: すべての会話は完全なメッセージ履歴とともに自動的にローカルに保存されます
- メッセージの逆シリアル化: 再開時に、コンテキストを維持するために全メッセージ履歴が復元されます
- ツールの状態: 以前の会話からのツールの使用と結果が保持されます
- コンテキストの復元: 会話は以前のすべてのコンテキストを保持したまま再開されます
ヒント:
- 会話履歴はマシンにローカルに保存されます
- 最新の会話にすぐにアクセスするには
--continue
を使用します - 特定の過去の会話を選択する必要がある場合は
--resume
を使用します - 再開時に、続行する前に会話の全履歴が表示されます
- 再開された会話は元の会話と同じモデルと設定で開始されます
例:
新しいコードベースを理解する
コードベースの概要を素早く把握する
使用するタイミング: 新しいプロジェクトに参加し、その構造を素早く理解する必要がある場合。
プロジェクトのルートディレクトリに移動
Claude Codeを起動
高レベルの概要を要求
特定のコンポーネントについて詳しく調べる
ヒント:
- 広範な質問から始めて、特定の領域に絞り込んでいきます
- プロジェクトで使用されているコーディング規約とパターンについて質問します
- プロジェクト固有の用語集を要求します
関連するコードを見つける
使用するタイミング: 特定の機能や機能に関連するコードを見つける必要がある場合。
関連ファイルを見つけるようClaudeに依頼
コンポーネント間の相互作用についてコンテキストを取得
実行フローを理解する
ヒント:
- 探しているものについて具体的に説明します
- プロジェクトのドメイン言語を使用します
効率的にバグを修正する
エラーメッセージを診断する
使用するタイミング: エラーメッセージに遭遇し、その原因を見つけて修正する必要がある場合。
エラーをClaudeと共有
修正の提案を要求
修正を適用
ヒント:
- エラーを再現するコマンドとスタックトレースをClaudeに伝えます
- エラーを再現するための手順を説明します
- エラーが断続的か一貫しているかをClaudeに伝えます
コードをリファクタリングする
レガシーコードを最新化する
使用するタイミング: 古いコードを最新のパターンと実践に更新する必要がある場合。
リファクタリングするレガシーコードを特定
リファクタリングの推奨事項を取得
変更を安全に適用
リファクタリングを検証
ヒント:
- 最新のアプローチの利点についてClaudeに説明を求めます
- 必要に応じて後方互換性を維持するよう要求します
- リファクタリングは小さく、テスト可能な単位で行います
テストを扱う
テストカバレッジを追加する
使用するタイミング: カバーされていないコードにテストを追加する必要がある場合。
テストされていないコードを特定
テストの雛形を生成
意味のあるテストケースを追加
テストを実行して検証
ヒント:
- エッジケースとエラー条件をカバーするテストを要求します
- 適切な場合は単体テストと統合テストの両方を要求します
- テスト戦略についてClaudeに説明を求めます
プルリクエストを作成する
包括的なPRを生成する
使用するタイミング: 変更内容について十分に文書化されたプルリクエストを作成する必要がある場合。
変更内容を要約
ClaudeでPRを生成
レビューと改善
テストの詳細を追加
ヒント:
- PRを作成するようClaudeに直接依頼します
- 提出前にClaudeが生成したPRをレビューします
- 潜在的なリスクや考慮事項を強調するようClaudeに依頼します
ドキュメントを扱う
コードドキュメントを生成する
使用するタイミング: コードのドキュメントを追加または更新する必要がある場合。
ドキュメント化されていないコードを特定
ドキュメントを生成
レビューと改善
ドキュメントを検証
ヒント:
- 必要なドキュメントスタイル(JSDoc、docstringsなど)を指定します
- ドキュメントに例を含めるよう要求します
- パブリックAPI、インターフェース、複雑なロジックのドキュメントを要求します
画像を扱う
画像とスクリーンショットを分析する
使用するタイミング: コードベースで画像を扱う必要がある場合や、画像内容の分析でClaudeの助けが必要な場合。
会話に画像を追加
以下のいずれかの方法を使用できます:
- Claude Codeウィンドウに画像をドラッグ&ドロップ
- 画像をコピーしてCLIにcmd+v(Mac)でペースト
- 画像パスを提供 claude “この画像を分析してください: /path/to/your/image.png”
Claudeに画像の分析を依頼
コンテキストとして画像を使用
視覚的なコンテンツからコードの提案を取得
ヒント:
- テキストでの説明が不明確または煩雑な場合は画像を使用します
- エラー、UIデザイン、図のスクリーンショットをより良いコンテキストのために含めます
- 1つの会話で複数の画像を扱うことができます
- 画像分析は図、スクリーンショット、モックアップなどで機能します
拡張思考を使用する
複雑なタスクにClaudeの拡張思考を活用する
使用するタイミング: 複雑なアーキテクチャの決定、困難なバグ、または深い推論を必要とする複数ステップの実装の計画に取り組む場合。
コンテキストを提供してClaudeに考えるよう依頼
Claudeはコードベースから関連情報を収集し、インターフェースに表示される拡張思考を使用します。
フォローアップのプロンプトで思考を洗練
拡張思考を最大限活用するためのヒント:
拡張思考は以下のような複雑なタスクに最も価値があります:
- 複雑なアーキテクチャの変更の計画
- 複雑な問題のデバッグ
- 新機能の実装計画の作成
- 複雑なコードベースの理解
- 異なるアプローチ間のトレードオフの評価
思考を促すプロンプトの方法によって、思考の深さのレベルが異なります:
- “think”は基本的な拡張思考をトリガーします
- “think more”、“think a lot”、“think harder”、“think longer”などの強調フレーズはより深い思考をトリガーします
拡張思考のプロンプトのヒントについては、拡張思考のヒントを参照してください。
Claudeは応答の上にイタリック体のグレーテキストで思考プロセスを表示します。
プロジェクトメモリを設定する
効果的なCLAUDE.mdファイルを作成する
使用するタイミング: 重要なプロジェクト情報、規約、頻繁に使用するコマンドを保存するためのCLAUDE.mdファイルを設定したい場合。
コードベース用のCLAUDE.mdをブートストラップ
ヒント:
- 頻繁に使用するコマンド(ビルド、テスト、リント)を含めて、繰り返しの検索を避けます
- コードスタイルの設定と命名規則を文書化します
- プロジェクト固有の重要なアーキテクチャパターンを追加します
- CLAUDE.mdメモリは、チームと共有する指示とあなた個人の設定の両方に使用できます。詳細については、Claudeのメモリの管理を参照してください。
Model Context Protocol (MCP)を設定する
Model Context Protocol (MCP)は、LLMが外部ツールとデータソースにアクセスできるようにするオープンプロトコルです。詳細については、MCPドキュメントを参照してください。
サードパーティのMCPサーバーは自己責任で使用してください。MCPサーバーを信頼できることを確認し、特にインターネットと通信するMCPサーバーを使用する場合は、プロンプトインジェクションのリスクにさらされる可能性があるため、特に注意してください。
MCPサーバーを設定する
使用するタイミング: Model Context Protocolを使用して、特殊なツールと外部サーバーに接続することでClaudeの機能を強化したい場合。
MCP Stdioサーバーを追加
MCP SSEサーバーを追加
MCPサーバーを管理
ヒント:
-s
または--scope
フラグを使用して設定の保存場所を指定します:local
(デフォルト):現在のプロジェクトであなたのみが利用可能(古いバージョンではproject
と呼ばれていました)project
:.mcp.json
ファイルを介してプロジェクト内の全員と共有user
:すべてのプロジェクトであなたが利用可能(古いバージョンではglobal
と呼ばれていました)
-e
または--env
フラグで環境変数を設定します(例:-e KEY=value
)- MCP_TIMEOUT環境変数を使用してMCPサーバーの起動タイムアウトを設定します(例:
MCP_TIMEOUT=10000 claude
で10秒のタイムアウトを設定) - Claude Code内で
/mcp
コマンドを使用していつでもMCPサーバーのステータスを確認できます - MCPはクライアントサーバーアーキテクチャに従い、Claude Code(クライアント)は複数の特殊なサーバーに接続できます
MCPサーバーのスコープを理解する
使用するタイミング: 異なるMCPスコープがどのように機能し、サーバーをチームと共有する方法を理解したい場合。
ローカルスコープのMCPサーバー
デフォルトのスコープ(local
)は、MCPサーバーの設定をプロジェクト固有のユーザー設定に保存します。これらのサーバーは、現在のプロジェクトで作業している間、あなたのみが利用できます。
プロジェクトスコープのMCPサーバー(.mcp.json)
プロジェクトスコープのサーバーは、プロジェクトのルートにある.mcp.json
ファイルに保存されます。このファイルはチームとサーバーを共有するためにバージョン管理に含める必要があります。
これにより、以下の構造の.mcp.json
ファイルが作成または更新されます:
ユーザースコープのMCPサーバー
ユーザースコープのサーバーは、マシン上のすべてのプロジェクトであなたが利用でき、あなた専用です。
ヒント:
- 同じ名前のサーバーの場合、ローカルスコープのサーバーがプロジェクトスコープとユーザースコープのサーバーよりも優先されます
- 同じ名前のサーバーの場合、プロジェクトスコープのサーバー(
.mcp.json
内)がユーザースコープのサーバーよりも優先されます - セキュリティのため、Claude Codeは
.mcp.json
からのプロジェクトスコープのサーバーを使用する前に承認を求めます .mcp.json
ファイルはチームとMCPサーバーを共有するためにバージョン管理に含めることを意図しています- プロジェクトスコープのサーバーを使用すると、チームの全員が同じMCPツールにアクセスできるようになります
- プロジェクトスコープのサーバーの有効/無効の選択をリセットする必要がある場合は、
claude mcp reset-project-choices
コマンドを使用します
PostgresのMCPサーバーに接続する
使用するタイミング: ClaudeにPostgreSQLデータベースへの読み取り専用アクセスを提供して、クエリとスキーマの検査を行いたい場合。
Postgres MCPサーバーを追加
Claudeでデータベースを照会
ヒント:
- Postgres MCPサーバーは安全のため読み取り専用アクセスを提供します
- Claudeはデータベース構造の探索と分析クエリの実行を支援できます
- これを使用して、不慣れなプロジェクトのデータベーススキーマを素早く理解できます
- 接続文字列が最小限必要な権限を持つ適切な認証情報を使用していることを確認してください
JSON設定からMCPサーバーを追加する
使用するタイミング: Claude CodeにMCPサーバーのJSON設定があり、それを追加したい場合。
JSONからMCPサーバーを追加
サーバーが追加されたことを確認
ヒント:
- JSONがシェルで適切にエスケープされていることを確認してください
- JSONはMCPサーバー設定スキーマに準拠している必要があります
-s global
を使用してプロジェクト固有の設定ではなくグローバル設定にサーバーを追加できます
Claude DesktopからMCPサーバーをインポートする
使用するタイミング: Claude DesktopですでにMCPサーバーを設定しており、同じサーバーを手動で再設定することなくClaude Codeで使用したい場合。
Claude Desktopからサーバーをインポートする
インポートするサーバーを選択
コマンドを実行すると、インポートするサーバーを選択できる対話型ダイアログが表示されます。
サーバーがインポートされたことを確認
ヒント:
- この機能はmacOSとWindows Subsystem for Linux(WSL)でのみ動作します
- これらのプラットフォームの標準的な場所からClaude Desktop設定ファイルを読み込みます
-s global
フラグを使用してグローバル設定にサーバーを追加します- インポートされたサーバーはClaude Desktopと同じ名前を持ちます
- 同じ名前のサーバーが既に存在する場合、数値のサフィックスが付加されます(例:
server_1
)
Claude CodeをMCPサーバーとして使用する
使用するタイミング: Claude Code自体をMCPサーバーとして使用し、他のアプリケーションがClaudeのツールと機能にアクセスできるようにしたい場合。
ClaudeをMCPサーバーとして起動
他のアプリケーションから接続
Claude Code MCPサーバーには、Claude Desktopなど任意のMCPクライアントから接続できます。Claude Desktopを使用している場合、以下の設定でClaude Code MCPサーバーを追加できます:
ヒント:
- サーバーはView、Edit、LSなどのClaudeのツールへのアクセスを提供します
- Claude Desktopで、ディレクトリ内のファイルの読み取り、編集などをClaudeに依頼してみてください
- このMCPサーバーは単にClaude CodeのツールをあなたのMCPクライアントに公開しているだけなので、個々のツール呼び出しのユーザー確認の実装はクライアント側の責任です
Claudeをunixスタイルのユーティリティとして使用する
検証プロセスにClaudeを追加する
使用するタイミング: Claude Codeをリンターやコードレビューアーとして使用したい場合。
手順:
ビルドスクリプトにClaudeを追加
パイプイン、パイプアウト
使用するタイミング: データをClaudeにパイプで送り、構造化された形式でデータを返してもらいたい場合。
データをClaudeを通してパイプ
出力形式を制御する
使用するタイミング: Claude Codeをスクリプトや他のツールに統合する際など、Claudeの出力を特定の形式で必要とする場合。
テキスト形式を使用(デフォルト)
これはClaudeのプレーンテキストの応答のみを出力します(デフォルトの動作)。
JSON形式を使用
これはコストと所要時間を含むメタデータを持つメッセージのJSON配列を出力します。
ストリーミングJSON形式を使用
これはClaudeがリクエストを処理する際にリアルタイムでJSONオブジェクトのシリーズを出力します。各メッセージは有効なJSONオブジェクトですが、連結された出力全体は有効なJSONではありません。
ヒント:
- Claudeの応答のみが必要な単純な統合には
--output-format text
を使用します - 完全な会話ログが必要な場合は
--output-format json
を使用します - 各会話ターンのリアルタイム出力には
--output-format stream-json
を使用します
カスタムスラッシュコマンドを作成する
Claude Codeは、特定のプロンプトやタスクを素早く実行するためのカスタムスラッシュコマンドの作成をサポートしています。
プロジェクト固有のコマンドを作成する
使用するタイミング: チームの全メンバーが使用できる再利用可能なスラッシュコマンドをプロジェクト用に作成したい場合。
プロジェクトにコマンドディレクトリを作成
各コマンド用のMarkdownファイルを作成
Claude CodeでカスタムコマンドTを使用
ヒント:
- コマンド名はファイル名から派生します(例:
optimize.md
は/project:optimize
になります) - コマンドはサブディレクトリで整理できます(例:
.claude/commands/frontend/component.md
は/project:frontend:component
になります) - プロジェクトコマンドはリポジトリをクローンする全員が利用できます
- Markdownファイルの内容は、コマンドが呼び出されたときにClaudeに送信されるプロンプトになります
$ARGUMENTSでコマンド引数を追加する
使用するタイミング: ユーザーから追加の入力を受け付ける柔軟なスラッシュコマンドを作成したい場合。
$ARGUMENTSプレースホルダーを含むコマンドファイルを作成
issue番号を指定してコマンドを使用
これにより、プロンプト内の$ARGUMENTSが”123”に置き換えられます。
ヒント:
- $ARGUMENTSプレースホルダーはコマンドに続くテキストに置き換えられます
- $ARGUMENTSはコマンドテンプレートの任意の位置に配置できます
- その他の有用な用途:特定の関数のテストケースの生成、コンポーネントのドキュメント作成、特定のファイルのコードレビュー、指定された言語へのコンテンツの翻訳
個人用スラッシュコマンドを作成する
使用するタイミング: すべてのプロジェクトで機能する個人用スラッシュコマンドを作成したい場合。
ホームフォルダにコマンドディレクトリを作成
各コマンド用のMarkdownファイルを作成
個人用カスタムコマンドを使用
ヒント:
- 個人用コマンドは
/project:
の代わりに/user:
というプレフィックスを使用します - 個人用コマンドはあなたのみが利用でき、チームとは共有されません
- 個人用コマンドはすべてのプロジェクトで機能します
- これらを使用して、異なるコードベース間で一貫したワークフローを維持できます
Gitワークツリーを使用して並列Claude Codeセッションを実行する
分離されたコーディング環境にワークツリーを使用する
使用するタイミング: Claude Codeインスタンス間で完全なコードの分離を保ちながら、複数のタスクを同時に実行する必要がある場合。
Gitワークツリーを理解する
Gitワークツリーを使用すると、同じリポジトリから複数のブランチを別々のディレクトリにチェックアウトできます。各ワークツリーは分離されたファイルを持つ独自の作業ディレクトリを持ちますが、同じGit履歴を共有します。詳細については、公式Gitワークツリーのドキュメントを参照してください。
新しいワークツリーを作成
これにより、リポジトリの別の作業コピーを持つ新しいディレクトリが作成されます。
各ワークツリーでClaude Codeを実行
別のターミナルで:
ワークツリーを管理
ヒント:
- 各ワークツリーは独自のファイル状態を持ち、並列Claude Codeセッションに最適です
- あるワークツリーでの変更は他に影響を与えず、Claudeインスタンス間の干渉を防ぎます
- すべてのワークツリーは同じGit履歴とリモート接続を共有します
- 長時間実行されるタスクの場合、あるワークツリーでClaudeに作業させながら、別のワークツリーで開発を続けることができます
- 各ワークツリーがどのタスク用かを簡単に識別できるよう、説明的なディレクトリ名を使用します
- プロジェクトのセットアップに従って、各新しいワークツリーで開発環境を初期化することを忘れないでください。スタックに応じて、以下が含まれる場合があります:
- JavaScriptプロ
ジェクト:依存関係のインストール(
npm install
、yarn
) - Pythonプロジェクト:仮想環境のセットアップまたはパッケージマネージャーでのインストール
- その他の言語:プロジェクトの標準セットアッププロセスに従う
- JavaScriptプロ
ジェクト:依存関係のインストール(
次のステップ
Claude Codeリファレンス実装
開発コンテナのリファレンス実装をクローンしてください。
Was this page helpful?