一般的なワークフロー
Claude Codeを使った一般的なワークフローについて学びます。
このドキュメントの各タスクには、Claude Codeを最大限に活用するための明確な指示、コマンド例、ベストプラクティスが含まれています。
新しいコードベースを理解する
コードベースの概要を素早く把握する
新しいプロジェクトに参加したばかりで、その構造を素早く理解する必要があるとします。
プロジェクトのルートディレクトリに移動する
Claude Codeを開始する
高レベルな概要を求める
特定のコンポーネントについて詳しく調べる
ヒント:
- 広範囲な質問から始めて、特定の領域に絞り込む
- プロジェクトで使用されているコーディング規約とパターンについて尋ねる
- プロジェクト固有の用語の用語集を要求する
関連するコードを見つける
特定の機能や機能性に関連するコードを見つける必要があるとします。
Claudeに関連ファイルを見つけてもらう
コンポーネントがどのように相互作用するかのコンテキストを得る
実行フローを理解する
ヒント:
- 探しているものについて具体的に述べる
- プロジェクトのドメイン言語を使用する
バグを効率的に修正する
エラーメッセージに遭遇し、その原因を見つけて修正する必要があるとします。
Claudeにエラーを共有する
修正の推奨事項を求める
修正を適用する
ヒント:
- 問題を再現するコマンドをClaudeに伝え、スタックトレースを取得する
- エラーを再現する手順があれば言及する
- エラーが断続的なものか一貫したものかをClaudeに知らせる
コードをリファクタリングする
古いコードを更新して、現代的なパターンと実践を使用する必要があるとします。
リファクタリング対象のレガシーコードを特定する
リファクタリングの推奨事項を得る
変更を安全に適用する
リファクタリングを検証する
ヒント:
- 現代的なアプローチの利点をClaudeに説明してもらう
- 必要に応じて後方互換性を維持するよう変更を要求する
- 小さくテスト可能な増分でリファクタリングを行う
専門的なサブエージェントを使用する
特定のタスクをより効果的に処理するために、専門的なAIサブエージェントを使用したいとします。
利用可能なサブエージェントを表示する
これにより、利用可能なすべてのサブエージェントが表示され、新しいものを作成できます。
サブエージェントを自動的に使用する
Claude Codeは適切なタスクを専門的なサブエージェントに自動的に委任します:
特定のサブエージェントを明示的に要求する
ワークフロー用のカスタムサブエージェントを作成する
次に「新しいサブエージェントを作成」を選択し、プロンプトに従って以下を定義します:
- サブエージェントタイプ(例:
api-designer
、performance-optimizer
) - いつ使用するか
- アクセスできるツール
- 専門的なシステムプロンプト
ヒント:
- チーム共有のために
.claude/agents/
にプロジェクト固有のサブエージェントを作成する - 自動委任を可能にするために説明的な
description
フィールドを使用する - 各サブエージェントが実際に必要とするもののみにツールアクセスを制限する
- 詳細な例についてはサブエージェントドキュメントを確認してください
テストを扱う
カバーされていないコードにテストを追加する必要があるとします。
テストされていないコードを特定する
テストの骨組みを生成する
意味のあるテストケースを追加する
テストを実行して検証する
ヒント:
- エッジケースとエラー条件をカバーするテストを求める
- 適切な場合は単体テストと統合テストの両方を要求する
- 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リソースを参照する
これにより、@server:resource形式を使用して接続されたMCPサーバーからデータを取得します。詳細についてはMCPリソースを参照してください。
ヒント:
- ファイルパスは相対パスまたは絶対パスが可能
- @ファイル参照により、ファイルのディレクトリと親ディレクトリのCLAUDE.mdがコンテキストに追加される
- ディレクトリ参照はファイルリストを表示し、内容は表示しない
- 単一メッセージで複数のファイルを参照できる(例:「@file1.jsと@file2.js」)
拡張思考を使用する
複雑なアーキテクチャの決定、困難なバグ、または深い推論を必要とする多段階実装の計画に取り組んでいるとします。
コンテキストを提供してClaudeに考えてもらう
Claudeはコードベースから関連情報を収集し、 インターフェースで表示される拡張思考を使用します。
フォローアッププロンプトで思考を洗練する
拡張思考から最大の価値を得るためのヒント:
拡張思考は以下のような複雑なタスクに最も価値があります:
- 複雑なアーキテクチャ変更の計画
- 複雑な問題のデバッグ
- 新機能の実装計画の作成
- 複雑なコードベースの理解
- 異なるアプローチ間のトレードオフの評価
思考をプロンプトする方法により、思考の深さのレベルが変わります:
- 「think」は基本的な拡張思考をトリガーする
- 「think more」、「think a lot」、「think harder」、「think longer」などの強化フレーズはより深い思考をトリガーする
拡張思考のプロンプトのヒントについては、拡張思考のヒントを参照してください。
Claudeは応答の上に斜体のグレーテキストとして思考プロセスを表示します。
以前の会話を再開する
Claude Codeでタスクに取り組んでいて、後のセッションで中断したところから続ける必要があるとします。
Claude Codeは以前の会話を再開するための2つのオプションを提供します:
--continue
で最新の会話を自動的に続ける--resume
で会話ピッカーを表示する
最新の会話を続ける
これにより、プロンプトなしで最新の会話を即座に再開します。
非対話モードで続ける
--continue
と--print
を使用して、最新の会話を非対話モードで再開します。スクリプトや自動化に最適です。
会話ピッカーを表示する
これにより、以下を表示する対話的な会話セレクターが表示されます:
- 会話開始時刻
- 初期プロンプトまたは会話要約
- メッセージ数
矢印キーでナビゲートし、Enterを押して会話を選択します。
ヒント:
- 会話履歴はマシンにローカルに保存される
- 最新の会話への素早いアクセスには
--continue
を使用する - 特定の過去の会話を選択する必要がある場合は
--resume
を使用する - 再開時、続行前に会話履歴全体が表示される
- 再開された会話は元の会話と同じモデルと設定で開始される
仕組み:
- 会話ストレージ:すべての会話は完全なメッセージ履歴とともに自動的にローカルに保存される
- メッセージデシリアライゼーション:再開時、コンテキストを維持するためにメッセージ履歴全体が復元される
- ツール状態:以前の会話からのツール使用と結果が保持される
- コンテキスト復元:会話は以前のコンテキストをすべて保持して再開される
例:
Gitワークツリーで並列Claude Codeセッションを実行する
Claude Codeインスタンス間で完全なコード分離を行いながら、複数のタスクを同時に作業する必要があるとします。
Gitワークツリーを理解する
Gitワークツリーを使用すると、同じリポジトリから複数のブランチを 別々のディレクトリにチェックアウトできます。各ワークツリーには 分離されたファイルを持つ独自の作業ディレクトリがありますが、 同じGit履歴を共有します。詳細については公式Git worktree ドキュメントを参照してください。
新しいワークツリーを作成する
これにより、リポジトリの別の作業コピーを持つ新しいディレクトリが作成されます。
各ワークツリーでClaude Codeを実行する
別のワークツリーでClaudeを実行する
ワークツリーを管理する
ヒント:
- 各ワークツリーには独自の独立したファイル状態があり、並列Claude Codeセッションに最適
- 1つのワークツリーで行われた変更は他に影響せず、Claudeインスタンスが互いに干渉することを防ぐ
- すべてのワークツリーは同じGit履歴とリモート接続を共有する
- 長時間実行されるタスクの場合、1つのワークツリーで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の出力を特定の形式で必要とするとします。
テキスト形式を使用する(デフォルト)
これはClaudeのプレーンテキスト応答のみを出力します(デフォルト動作)。
JSON形式を使用する
これはコストと期間を含むメタデータを持つメッセージのJSON配列を出力します。
ストリーミングJSON形式を使用する
これはClaudeがリクエストを処理する際にリアルタイムで一連のJSONオブジェクトを出力します。各メッセージは有効な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プレースホルダーを含むコマンドファイルを作成する
問題番号でコマンドを使用する
Claude セッションで、引数付きでコマンドを使用します。
これによりプロンプト内の$ARGUMENTSが「123」に置き換えられます。
ヒント:
- $ARGUMENTSプレースホルダーはコマンドに続くテキストに置き換えられる
- コマンドテンプレート内の任意の場所に$ARGUMENTSを配置できる
- その他の有用な応用:特定の関数のテストケース生成、コンポーネントのドキュメント作成、特定ファイルのコードレビュー、指定された言語へのコンテンツ翻訳
個人的なスラッシュコマンドを作成する
すべてのプロジェクトで機能する個人的なスラッシュコマンドを作成したいとします。
ホームフォルダにコマンドディレクトリを作成する
各コマンド用にMarkdownファイルを作成する
個人的なカスタムコマンドを使用する
ヒント:
- 個人的なコマンドは
/help
でリストされる際に説明に「(user)」が表示される - 個人的なコマンドはあなただけが利用でき、チームと共有されない
- 個人的なコマンドはすべてのプロジェクトで機能する
- 異なるコードベース間で一貫したワークフローに使用できる
Claudeの機能について尋ねる
Claudeは自身のドキュメントへの組み込みアクセスを持ち、自身の機能と制限について質問に答えることができます。
質問例
Claudeはこれらの質問にドキュメントベースの回答を提供します。実行可能な例と実践的なデモンストレーションについては、上記の特定のワークフローセクションを参照してください。
ヒント:
- Claudeは使用しているバージョンに関係なく、常に最新のClaude Codeドキュメントにアクセスできる
- 詳細な回答を得るために具体的な質問をする
- ClaudeはMCP統合、エンタープライズ設定、高度なワークフローなどの複雑な機能を説明できる
次のステップ
Claude Code参照実装
開発コンテナ参照実装をクローンしてください。