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