6 6
7> Claude Code を使用してコードベースの探索、バグ修正、リファクタリング、テスト、その他の日常的なタスクを実行するためのステップバイステップガイド。7> Claude Code を使用してコードベースの探索、バグ修正、リファクタリング、テスト、その他の日常的なタスクを実行するためのステップバイステップガイド。
8 8
9このページでは、日常的な開発のための実践的なワークフローについて説明します。未知のコードの探索、デバッグ、リファクタリング、テストの作成、PR の作成、セッションの管理などです。各セクションには、自分のプロジェクトに適応させることができるプロンプトの例が含まれています。より高度なパターンとヒントについては、[ベストプラクティス](/ja/best-practices)を参照してください。9このページでは、日常的な開発のための短いレシピを集めています。プロンプティングとコンテキスト管理に関する高度なガイダンスについては、[ベストプラクティス](/ja/best-practices)を参照してください。
10 10
11## 新しいコードベースを理解する11このページでは以下をカバーしています:
12 12
13### コードベースの概要を素早く把握する13* [プロンプトレシピ](#prompt-recipes):コード探索、バグ修正、リファクタリング、テスト、PR、ドキュメント用
14* [以前の会話を再開する](#resume-previous-conversations):タスクを複数回に分けて実行できるようにする
15* [worktree を使用して並列セッションを実行する](#run-parallel-sessions-with-worktrees):同時編集が衝突しないようにする
16* [編集前に計画する](#plan-before-editing):ディスクに変更を加える前に確認する
17* [研究を subagent に委譲する](#delegate-research-to-subagents):メインコンテキストをクリーンに保つ
18* [Claude をスクリプトにパイプする](#pipe-claude-into-scripts):CI とバッチ処理用
19
20## プロンプトレシピ
21
22これらは、未知のコード探索、デバッグ、リファクタリング、テスト作成、PR 作成などの日常的なタスク用のプロンプトパターンです。各パターンは任意の Claude Code サーフェスで機能します。プロジェクトに合わせて表現を調整してください。
23
24### 新しいコードベースを理解する
25
26#### コードベースの概要を素早く把握する
14 27
15新しいプロジェクトに参加したばかりで、その構造を素早く理解する必要があるとします。28新しいプロジェクトに参加したばかりで、その構造を素早く理解する必要があるとします。
16 29
56 * プロジェクト固有の用語の用語集をリクエストする69 * プロジェクト固有の用語の用語集をリクエストする
57</Tip>70</Tip>
58 71
59### 関連するコードを見つける72#### 関連するコードを見つける
60 73
61特定の機能または機能に関連するコードを見つける必要があるとします。74特定の機能または機能に関連するコードを見つける必要があるとします。
62 75
90 103
91***104***
92 105
93## バグを効率的に修正する106### バグを効率的に修正する
94 107
95エラーメッセージが表示され、そのソースを見つけて修正する必要があるとします。108エラーメッセージが表示され、そのソースを見つけて修正する必要があるとします。
96 109
124 137
125***138***
126 139
127## コードをリファクタリングする140### コードをリファクタリングする
128 141
129古いコードを最新のパターンとプラクティスを使用するように更新する必要があるとします。142古いコードを最新のパターンとプラクティスを使用するように更新する必要があるとします。
130 143
164 177
165***178***
166 179
167## 特化した subagent を使用する180### テストを使用する
168
169特定のタスクをより効果的に処理するために、特化した AI subagent を使用したいとします。
170
171<Steps>
172 <Step title="利用可能な subagent を表示する">
173 ```text theme={null}
174 /agents
175 ```
176
177 これにより、利用可能なすべての subagent が表示され、新しいものを作成できます。
178 </Step>
179
180 <Step title="subagent を自動的に使用する">
181 Claude Code は自動的に適切なタスクを特化した subagent に委譲します:
182
183 ```text theme={null}
184 review my recent code changes for security issues
185 ```
186
187 ```text theme={null}
188 run all tests and fix any failures
189 ```
190 </Step>
191
192 <Step title="特定の subagent を明示的にリクエストする">
193 ```text theme={null}
194 use the code-reviewer subagent to check the auth module
195 ```
196
197 ```text theme={null}
198 have the debugger subagent investigate why users can't log in
199 ```
200 </Step>
201
202 <Step title="ワークフロー用のカスタム subagent を作成する">
203 ```text theme={null}
204 /agents
205 ```
206
207 次に「Create New subagent」を選択し、プロンプトに従って以下を定義します:
208
209 * subagent の目的を説明する一意の識別子(例:`code-reviewer`、`api-designer`)。
210 * Claude がこのエージェントを使用する場合
211 * アクセスできるツール
212 * エージェントの役割と動作を説明するシステムプロンプト
213 </Step>
214</Steps>
215
216<Tip>
217 ヒント:
218
219 * チーム共有用に `.claude/agents/` にプロジェクト固有の subagent を作成する
220 * 自動委譲を有効にするために説明的な `description` フィールドを使用する
221 * ツールアクセスを各 subagent が実際に必要なものに制限する
222 * 詳細な例については、[subagents ドキュメント](/ja/sub-agents)を確認する
223</Tip>
224
225***
226
227## Plan Mode を使用して安全なコード分析を行う
228
229Plan Mode は Claude に読み取り専用操作でコードベースを分析して計画を作成するよう指示します。これはコードベースの探索、複雑な変更の計画、またはコードの安全なレビューに最適です。Plan Mode では、Claude は [`AskUserQuestion`](/ja/tools-reference)を使用して要件を収集し、計画を提案する前に目標を明確にします。
230
231### Plan Mode を使用する場合
232
233* **マルチステップの実装**:機能が多くのファイルへの編集を必要とする場合
234* **コード探索**:何かを変更する前にコードベースを徹底的に調査したい場合
235* **インタラクティブな開発**:Claude との方向性について反復したい場合
236
237### Plan Mode の使用方法
238
239**セッション中に Plan Mode をオンにする**
240
241**Shift+Tab** を使用してセッション中に Plan Mode に切り替えることができます。
242
243Normal Mode にいる場合、**Shift+Tab** は最初に Auto-Accept Mode に切り替わります。これはターミナルの下部に `⏵⏵ accept edits on` で示されます。その後の **Shift+Tab** は Plan Mode に切り替わります。これは `⏸ plan mode on` で示されます。
244
245**Plan Mode で新しいセッションを開始する**
246
247Plan Mode で新しいセッションを開始するには、`--permission-mode plan` フラグを使用します:
248
249```bash theme={null}
250claude --permission-mode plan
251```
252
253**Plan Mode で「ヘッドレス」クエリを実行する**
254
255[「ヘッドレスモード」](/ja/headless)で `-p` を使用して Plan Mode でクエリを直接実行することもできます:
256
257```bash theme={null}
258claude --permission-mode plan -p "Analyze the authentication system and suggest improvements"
259```
260
261### 例:複雑なリファクタリングの計画
262
263```bash theme={null}
264claude --permission-mode plan
265```
266
267```text theme={null}
268I need to refactor our authentication system to use OAuth2. Create a detailed migration plan.
269```
270
271Claude は現在の実装を分析し、包括的な計画を作成します。フォローアップで改善します:
272
273```text theme={null}
274What about backward compatibility?
275```
276
277```text theme={null}
278How should we handle database migration?
279```
280
281<Tip>`Ctrl+G` を押してデフォルトのテキストエディタで計画を開き、Claude が進める前に直接編集できます。</Tip>
282
283計画を受け入れると、Claude は計画コンテンツからセッションに自動的に名前を付けます。名前はプロンプトバーとセッションピッカーに表示されます。既に `--name` または `/rename` で名前を設定している場合、計画を受け入れてもそれは上書きされません。
284
285### Plan Mode をデフォルトとして設定する
286
287```json theme={null}
288// .claude/settings.json
289{
290 "permissions": {
291 "defaultMode": "plan"
292 }
293}
294```
295
296詳細な設定オプションについては、[設定ドキュメント](/ja/settings#available-settings)を参照してください。
297
298***
299
300## テストを使用する
301 181
302カバーされていないコードのテストを追加する必要があるとします。182カバーされていないコードのテストを追加する必要があるとします。
303 183
333 213
334***214***
335 215
336## プルリクエストを作成する216### プルリクエストを作成する
337 217
338Claude に直接プルリクエストを作成するよう依頼するか(「create a pr for my changes」)、ステップバイステップで Claude をガイドできます:218Claude に直接プルリクエストを作成するよう依頼するか(「create a pr for my changes」)、ステップバイステップで Claude をガイドできます:
339 219
357 </Step>237 </Step>
358</Steps>238</Steps>
359 239
360`gh pr create` を使用して PR を作成すると、セッションはその PR に自動的にリンクされます。後で `claude --from-pr <number>` で再開できます。240`gh pr create` を使用して PR を作成すると、セッションはその PR に自動的にリンクされます。後で `claude --from-pr <number>` で再開するか、[`/resume` ピッカー](/ja/sessions#use-the-session-picker)の検索に PR URL を貼り付けることで再開できます。
361 241
362<Tip>242<Tip>
363 Claude が生成した PR を送信する前にレビューし、Claude に潜在的なリスクや考慮事項を強調するよう依頼してください。243 Claude が生成した PR を送信する前にレビューし、Claude に潜在的なリスクや考慮事項を強調するよう依頼してください。
364</Tip>244</Tip>
365 245
366## ドキュメントを処理する246### ドキュメントを処理する
367 247
368コードのドキュメントを追加または更新する必要があるとします。248コードのドキュメントを追加または更新する必要があるとします。
369 249
403 283
404***284***
405 285
406## ノートと非コードフォルダで作業する286### ノートと非コードフォルダで作業する
407 287
408Claude Code はどのディレクトリでも機能します。ノートボルト、ドキュメントフォルダ、またはマークダウンファイルの任意のコレクション内で実行して、コードと同じ方法でコンテンツを検索、編集、再編成します。288Claude Code はどのディレクトリでも機能します。ノートボルト、ドキュメントフォルダ、またはマークダウンファイルの任意のコレクション内で実行して、コードと同じ方法でコンテンツを検索、編集、再編成します。
409 289
411 291
412***292***
413 293
414## 画像を使用する294### 画像を使用する
415 295
416コードベース内の画像を使用する必要があり、Claude の画像コンテンツ分析を支援したいとします。296コードベース内の画像を使用する必要があり、Claude の画像コンテンツ分析を支援したいとします。
417 297
471 351
472***352***
473 353
474## ファイルとディレクトリを参照する354### ファイルとディレクトリを参照する
475 355
476@ を使用して、Claude に読み込まれるのを待たずにファイルまたはディレクトリをすばやく含めます。356@ を使用して、Claude に読み込まれるのを待たずにファイルまたはディレクトリをすばやく含めます。
477 357
512 392
513***393***
514 394
515## 拡張思考(思考モード)を使用する395### スケジュールで Claude を実行する
516
517[拡張思考](https://platform.claude.com/docs/ja/build-with-claude/extended-thinking)はデフォルトで有効になっており、Claude が複雑な問題をステップバイステップで推論するためのスペースを提供します。この推論は詳細モードで表示され、`Ctrl+O` でオンに切り替えることができます。拡張思考中、スピナーは「still thinking」や「almost done thinking」などのインラインの進捗ヒントを表示し、Claude が積極的に作業していることを示します。
518
519さらに、[努力レベルをサポートするモデル](/ja/model-config#adjust-effort-level)は適応的推論を使用します。固定された思考トークン予算の代わりに、モデルは努力レベル設定とタスクに基づいて動的に思考を決定します。適応的推論により、Claude は日常的なプロンプトにより速く応答し、それから恩恵を受けるステップのためにより深い思考を予約できます。
520
521拡張思考は、複雑なアーキテクチャの決定、難しいバグ、マルチステップの実装計画、異なるアプローチ間のトレードオフの評価に特に価値があります。
522
523<Note>
524 「think」、「think hard」、「think more」などのフレーズは通常のプロンプト指示として解釈され、思考トークンを割り当てません。
525</Note>
526
527### 思考モードを設定する
528
529思考はデフォルトで有効になっていますが、調整または無効にできます。
530
531| スコープ | 設定方法 | 詳細 |
532| ---------------------- | -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
533| **努力レベル** | `/effort` を実行するか、`/model` で調整するか、[`CLAUDE_CODE_EFFORT_LEVEL`](/ja/env-vars)を設定する | [サポートされているモデル](/ja/model-config#adjust-effort-level)での思考の深さを制御する |
534| **`ultrathink` キーワード** | プロンプトの任意の場所に「ultrathink」を含める | そのターンでモデルがより多く推論するよう指示するコンテキスト内指示を追加します。努力レベル自体は変更しません。[努力レベルを調整](/ja/model-config#adjust-effort-level)を参照してください |
535| **トグルショートカット** | `Option+T`(macOS)または `Alt+T`(Windows/Linux)を押す | 現在のセッションの思考をオン/オフに切り替えます(すべてのモデル)。[ターミナル設定](/ja/terminal-config)を有効にして Option キーショートカットを有効にする必要がある場合があります |
536| **グローバルデフォルト** | `/config` を使用して思考モードをトグルする | すべてのプロジェクト全体でデフォルトを設定します(すべてのモデル)。<br />`~/.claude/settings.json` に `alwaysThinkingEnabled` として保存されます |
537| **トークン予算を制限する** | [`MAX_THINKING_TOKENS`](/ja/env-vars)環境変数を設定する | 思考予算を特定のトークン数に制限します。適応的推論を備えたモデルでは、適応的推論が無効になっていない限り `0` に設定されている場合のみ適用されます。例:`export MAX_THINKING_TOKENS=10000` |
538
539Claude の思考プロセスを表示するには、`Ctrl+O` を押して詳細モードをトグルし、グレーのイタリック体で表示される内部推論を確認します。
540
541### 拡張思考の仕組み
542
543拡張思考は、Claude が応答する前に実行する内部推論の量を制御します。より多くの思考により、ソリューションを探索し、エッジケースを分析し、間違いを自己修正するためのより多くのスペースが提供されます。
544
545[努力レベルをサポートするモデル](/ja/model-config#adjust-effort-level)では、思考は適応的推論を使用します。モデルは、選択した努力レベルに基づいて思考トークンを動的に割り当てます。これは速度と推論の深さのトレードオフを調整するための推奨される方法です。努力レベル自体を変更せずに、Claude がそのターンでより多くまたはより少なく思考することを望む場合は、プロンプトで直接そう言うか、`CLAUDE.md` で言うこともできます。
546
547古いモデルでは、思考は出力予算から最大 31,999 トークンの固定予算を使用します。[`MAX_THINKING_TOKENS`](/ja/env-vars)環境変数でこれを制限するか、`/config` または `Option+T`/`Alt+T` トグルで思考を完全に無効にできます。
548
549適応的推論を備えたモデルでは、`MAX_THINKING_TOKENS` は `0` に設定されている場合のみ適用されます。または `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` は、これらのモデルを固定予算に戻します。`CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` は Opus 4.6 と Sonnet 4.6 にのみ適用されます。Opus 4.7 は常に適応的推論を使用し、固定思考予算をサポートしていません。[環境変数](/ja/env-vars)を参照してください。
550
551<Warning>
552 思考の要約が編集されている場合でも、使用されたすべての思考トークンに対して課金されます。インタラクティブモードでは、思考はデフォルトで折りたたまれたスタブとして表示されます。`settings.json` で `showThinkingSummaries: true` を設定して、完全な要約を表示します。
553</Warning>
554
555***
556
557## 以前の会話を再開する
558
559Claude Code を開始するときは、以前のセッションを再開できます:
560
561* `claude --continue` は現在のディレクトリで最新の会話を続行します
562* `claude --resume` は会話ピッカーを開くか、名前で再開します
563* `claude --from-pr 123` は特定のプルリクエストにリンクされたセッションを再開します
564
565アクティブなセッション内から、`/resume` を使用して別の会話に切り替えます。
566
567選択したセッションが古く、それを再度読み込むことが使用制限の実質的な部分を消費するほど大きい場合、`--resume`、`--continue`、および `/resume` は完全なトランスクリプトを読み込む代わりに、サマリーから再開することを提案します。このプロンプトは Amazon Bedrock、Google Cloud Vertex AI、または Microsoft Foundry では利用できません。
568
569セッションはプロジェクトディレクトリごとに保存されます。デフォルトでは、`/resume` ピッカーは現在の worktree からのインタラクティブセッションを表示し、リストを他の worktree またはプロジェクトに広げるためのキーボードショートカット、検索、プレビュー、名前変更があります。[以下のセッションピッカーを使用](#use-the-session-picker)を参照してください。
570
571別の worktree の同じリポジトリからセッションを選択すると、Claude Code はディレクトリを切り替える必要なく直接再開します。関連のないプロジェクトからセッションを選択すると、`cd` と再開コマンドをクリップボードにコピーします。
572
573名前で再開すると、現在のリポジトリとその worktree 全体で解決されます。`claude --resume <name>` と `/resume <name>` の両方が完全一致を探し、セッションが別の worktree に存在する場合でも直接再開します。
574
575名前があいまいな場合、`claude --resume <name>` はピッカーを開き、名前を検索用語として事前入力します。`/resume <name>` をセッション内から実行すると、代わりにエラーが報告されるため、`/resume` を引数なしで実行してピッカーを開き、選択します。
576
577`claude -p` または SDK 呼び出しで作成されたセッションはピッカーに表示されませんが、セッション ID をそのまま `claude --resume <session-id>` に渡すことで再開できます。
578
579### セッションに名前を付ける
580
581セッションに説明的な名前を付けて、後で見つけやすくします。これは複数のタスクまたは機能に取り組むときのベストプラクティスです。
582
583<Steps>
584 <Step title="セッションに名前を付ける">
585 起動時に `-n` でセッションに名前を付けます:
586
587 ```bash theme={null}
588 claude -n auth-refactor
589 ```
590
591 またはセッション中に `/rename` を使用します。これはプロンプトバーに名前も表示します:
592
593 ```text theme={null}
594 /rename auth-refactor
595 ```
596
597 ピッカーから任意のセッションの名前を変更することもできます。`/resume` を実行し、セッションに移動して、`Ctrl+R` を押します。
598 </Step>
599
600 <Step title="後で名前で再開する">
601 コマンドラインから:
602
603 ```bash theme={null}
604 claude --resume auth-refactor
605 ```
606
607 またはアクティブなセッション内から:
608
609 ```text theme={null}
610 /resume auth-refactor
611 ```
612 </Step>
613</Steps>
614
615### セッションピッカーを使用する
616
617`/resume` コマンド(または引数なしの `claude --resume`)は、次の機能を備えたインタラクティブセッションピッカーを開きます:
618
619**ピッカーのキーボードショートカット:**
620
621| ショートカット | アクション |
622| :--------------------------- | :------------------------------------------------------------------------------------------ |
623| `↑` / `↓` | セッション間を移動する |
624| `→` / `←` | グループ化されたセッションを展開または折りたたむ |
625| `Enter` | ハイライトされたセッションを選択して再開する |
626| `Space` | セッションコンテンツをプレビューする。`Ctrl+V` も、ターミナルがペーストとしてキャプチャしないターミナルで機能します |
627| `Ctrl+R` | ハイライトされたセッションの名前を変更する |
628| `/` または `Space` 以外の任意の印字可能文字 | 検索モードに入り、セッションをフィルタリングする |
629| `Ctrl+A` | このマシン上のすべてのプロジェクトからセッションを表示します。もう一度押すと現在のリポジトリを復元します |
630| `Ctrl+W` | 現在のリポジトリのすべての worktree からセッションを表示します。もう一度押すと現在の worktree を復元します。マルチ worktree リポジトリでのみ表示されます |
631| `Ctrl+B` | 現在の git ブランチからのセッションにフィルタリングします。もう一度押すとすべてのブランチからのセッションを表示します |
632| `Esc` | ピッカーまたは検索モードを終了する |
633
634**セッション組織:**
635
636ピッカーは有用なメタデータを含むセッションを表示します:
637
638* セッション名(設定されている場合)、そうでない場合は会話の要約または最初のユーザープロンプト
639* 最後のアクティビティからの経過時間
640* メッセージ数
641* Git ブランチ(該当する場合)
642* `Ctrl+A` ですべてのプロジェクトに広げた後に表示されるプロジェクトパス
643
644フォークされたセッション(`/branch`、`/rewind`、または `--fork-session` で作成)はルートセッションの下にグループ化され、関連する会話を見つけやすくなります。
645
646<Tip>
647 ヒント:
648
649 * **セッションを早期に名前付ける**:異なるタスクで作業を開始するときに `/rename` を使用します。後で「payment-integration」を見つける方が「explain this function」よりもはるかに簡単です
650 * 現在のディレクトリで最新の会話にすばやくアクセスするには `--continue` を使用します
651 * 必要なセッションがわかっている場合は `--resume session-name` を使用します
652 * 参照して選択する必要がある場合は `--resume`(名前なし)を使用します
653 * スクリプトの場合は、`claude --continue --print "prompt"` を使用して非対話モードで再開します
654 * ピッカーで `Space` を押して、セッションを再開する前にプレビューします
655 * 再開された会話は、元のセッションと同じモデルと設定で開始されます
656
657 仕組み:
658
659 1. **会話ストレージ**:すべての会話は完全なメッセージ履歴とともにローカルに自動保存されます
660 2. **メッセージ逆シリアル化**:再開時に、コンテキストを維持するために全メッセージ履歴が復元されます
661 3. **ツール状態**:前の会話からのツール使用と結果が保持されます
662 4. **コンテキスト復元**:会話は前のすべてのコンテキストを保持して再開されます
663</Tip>
664
665***
666
667## Git worktree を使用して並列 Claude Code セッションを実行する
668
669複数のタスクに同時に取り組む場合、各 Claude セッションがコードベースの独自のコピーを持つ必要があります。そうしないと変更が衝突します。Git worktree は、同じリポジトリ履歴とリモート接続を共有しながら、独自のファイルとブランチを持つ個別の作業ディレクトリを作成することで、この問題を解決します。つまり、Claude が 1 つの worktree で機能に取り組んでいる間に、別の worktree でバグを修正でき、どちらのセッションも相互に干渉しません。
670
671`--worktree`(`-w`)フラグを使用して、分離された worktree を作成し、Claude をその中で開始します。渡す値は worktree ディレクトリ名とブランチ名になります:
672
673```bash theme={null}
674# "feature-auth" という名前の worktree で Claude を開始する
675# 新しいブランチで .claude/worktrees/feature-auth/ を作成する
676claude --worktree feature-auth
677
678# 別の worktree で別のセッションを開始する
679claude --worktree bugfix-123
680```
681
682名前を省略すると、Claude は自動的にランダムな名前を生成します:
683
684```bash theme={null}
685# "bright-running-fox" のような名前を自動生成する
686claude --worktree
687```
688
689Worktree は `<repo>/.claude/worktrees/<name>` に作成され、デフォルトのリモートブランチから分岐します。これは `origin/HEAD` が指すところです。worktree ブランチは `worktree-<name>` という名前が付けられます。
690
691ベースブランチは Claude Code フラグまたは設定を通じて設定できません。`origin/HEAD` はクローン時に Git が設定したローカル `.git` ディレクトリに保存される参照です。リポジトリのデフォルトブランチが後で GitHub または GitLab で変更された場合、ローカル `origin/HEAD` は古いものを指し続け、worktree はそこから分岐します。ローカル参照をリモートが現在デフォルトと見なしているものと再同期するには:
692
693```bash theme={null}
694git remote set-head origin -a
695```
696
697これは、ローカル `.git` ディレクトリのみを更新する標準 Git コマンドです。リモートサーバーでは何も変わりません。worktree が特定のブランチではなくリモートのデフォルトに基づくようにしたい場合は、`git remote set-head origin your-branch-name` で明示的に設定します。
698
699worktree の作成方法を完全に制御するには、[WorktreeCreate フック](/ja/hooks#worktreecreate)を設定します。フックは Claude Code のデフォルト `git worktree` ロジックを完全に置き換えるため、必要な ref から取得してブランチできます。
700
701セッション中に Claude に「work in a worktree」または「start a worktree」を依頼することもでき、自動的に作成されます。
702
703### Subagent worktree
704
705Subagent は worktree 分離を使用して、競合なしに並列で作業することもできます。Claude に「use worktrees for your agents」を依頼するか、[カスタム subagent](/ja/sub-agents#supported-frontmatter-fields)で `isolation: worktree` をエージェントのフロントマターに追加して設定します。各 subagent は独自の worktree を取得し、変更なしで subagent が終了すると自動的にクリーンアップされます。
706
707### Worktree クリーンアップ
708
709worktree セッションを終了すると、Claude は変更があったかどうかに基づいてクリーンアップを処理します:
710
711* **変更なし**:worktree とそのブランチは自動的に削除されます
712* **変更またはコミットが存在する**:Claude は worktree を保持するか削除するかをプロンプトします。保持するとディレクトリとブランチが保存され、後で戻ることができます。削除すると worktree ディレクトリとそのブランチが削除され、すべてのコミットされていない変更とコミットが破棄されます
713
714Subagent worktree は、subagent が変更なしで終了すると自動的にクリーンアップされます。クラッシュまたは中断された並列実行によって孤立した subagent worktree は、[`cleanupPeriodDays`](/ja/settings#available-settings)設定より古い場合、コミットされていない変更、追跡されていないファイル、プッシュされていないコミットがない場合、起動時に自動的に削除されます。`--worktree` で作成した worktree は、このスイープによって削除されることはありません。
715
716Claude セッション外で worktree をクリーンアップするには、[worktree を手動で管理](#manage-worktrees-manually)を使用します。
717
718<Tip>
719 `.claude/worktrees/` を `.gitignore` に追加して、worktree コンテンツがメインリポジトリに追跡されていないファイルとして表示されるのを防ぎます。
720</Tip>
721
722### Worktree に gitignored ファイルをコピーする
723
724Git worktree は新しいチェックアウトなので、メインリポジトリから `.env` や `.env.local` などの追跡されていないファイルは含まれません。Claude が worktree を作成するときにこれらのファイルを自動的にコピーするには、プロジェクトルートに `.worktreeinclude` ファイルを追加します。
725
726ファイルは `.gitignore` 構文を使用して、コピーするファイルをリストします。パターンに一致し、gitignored されているファイルのみがコピーされるため、追跡されたファイルは決して複製されません。
727
728```text .worktreeinclude theme={null}
729.env
730.env.local
731config/secrets.json
732```
733
734これは `--worktree`、subagent worktree、および[デスクトップアプリ](/ja/desktop#work-in-parallel-with-sessions)の並列セッションで作成された worktree に適用されます。
735
736### Worktree を手動で管理する
737
738worktree の場所とブランチ設定をより細かく制御するには、Git を使用して worktree を直接作成します。これは特定の既存ブランチをチェックアウトするか、worktree をリポジトリの外に配置する必要がある場合に便利です。
739
740```bash theme={null}
741# 新しいブランチで worktree を作成する
742git worktree add ../project-feature-a -b feature-a
743
744# 既存のブランチで worktree を作成する
745git worktree add ../project-bugfix bugfix-123
746
747# worktree で Claude を開始する
748cd ../project-feature-a && claude
749
750# 完了したらクリーンアップする
751git worktree list
752git worktree remove ../project-feature-a
753```
754
755詳細については、[公式 Git worktree ドキュメント](https://git-scm.com/docs/git-worktree)を参照してください。
756
757<Tip>
758 プロジェクトのセットアップに従って、各新しい worktree で開発環境を初期化することを忘れないでください。スタックに応じて、これには依存関係のインストール(`npm install`、`yarn`)、仮想環境のセットアップ、またはプロジェクトの標準セットアップ手順に従うことが含まれる場合があります。
759</Tip>
760
761### Git 以外のバージョン管理
762
763Worktree 分離はデフォルトで git で機能します。SVN、Perforce、Mercurial などの他のバージョン管理システムの場合は、[WorktreeCreate と WorktreeRemove フック](/ja/hooks#worktreecreate)を設定して、カスタム worktree 作成とクリーンアップロジックを提供します。設定されている場合、これらのフックは `--worktree` を使用するときにデフォルトの git 動作を置き換えます。そのため、[`.worktreeinclude`](#copy-gitignored-files-to-worktrees)は処理されません。フックスクリプト内でローカル設定ファイルをコピーしてください。
764
765共有タスクとメッセージングを使用した並列セッションの自動調整については、[エージェントチーム](/ja/agent-teams)を参照してください。
766
767***
768
769## Claude が注意を必要とするときに通知を受け取る
770
771長時間実行されるタスクを開始して別のウィンドウに切り替えるときは、Claude が終了したときまたは入力が必要なときに知ることができるようにデスクトップ通知を設定できます。これは `Notification` [フックイベント](/ja/hooks-guide#get-notified-when-claude-needs-input)を使用します。これは Claude が許可を待っている、アイドル状態で新しいプロンプトの準備ができている、または認証を完了しているときはいつでも発火します。
772
773<Steps>
774 <Step title="設定にフックを追加する">
775 `~/.claude/settings.json` を開き、プラットフォームのネイティブ通知コマンドを呼び出す `Notification` フックを追加します:
776
777 <Tabs>
778 <Tab title="macOS">
779 ```json theme={null}
780 {
781 "hooks": {
782 "Notification": [
783 {
784 "matcher": "",
785 "hooks": [
786 {
787 "type": "command",
788 "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
789 }
790 ]
791 }
792 ]
793 }
794 }
795 ```
796 </Tab>
797
798 <Tab title="Linux">
799 ```json theme={null}
800 {
801 "hooks": {
802 "Notification": [
803 {
804 "matcher": "",
805 "hooks": [
806 {
807 "type": "command",
808 "command": "notify-send 'Claude Code' 'Claude Code needs your attention'"
809 }
810 ]
811 }
812 ]
813 }
814 }
815 ```
816 </Tab>
817
818 <Tab title="Windows">
819 ```json theme={null}
820 {
821 "hooks": {
822 "Notification": [
823 {
824 "matcher": "",
825 "hooks": [
826 {
827 "type": "command",
828 "command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code needs your attention', 'Claude Code')\""
829 }
830 ]
831 }
832 ]
833 }
834 }
835 ```
836 </Tab>
837 </Tabs>
838
839 設定ファイルに既に `hooks` キーがある場合は、上書きするのではなく `Notification` エントリをマージします。CLI で説明したいことを説明することで、Claude にフックを書くよう依頼することもできます。
840 </Step>
841
842 <Step title="オプションでマッチャーを絞り込む">
843 デフォルトでは、フックはすべての通知タイプで発火します。特定のイベントのみで発火させるには、`matcher` フィールドを次のいずれかの値に設定します:
844
845 | マッチャー | 発火する場合 |
846 | :--------------------- | :-------------------------- |
847 | `permission_prompt` | Claude がツール使用を承認する必要がある場合 |
848 | `idle_prompt` | Claude が完了し、次のプロンプトを待っている場合 |
849 | `auth_success` | 認証が完了する場合 |
850 | `elicitation_dialog` | MCP サーバーが誘導フォームを開く場合 |
851 | `elicitation_complete` | MCP 誘導フォームが送信またはキャンセルされる場合 |
852 | `elicitation_response` | MCP 誘導応答がサーバーに送り返される場合 |
853 </Step>
854
855 <Step title="フックを検証する">
856 `/hooks` と入力し、`Notification` を選択して、フックが表示されることを確認します。選択すると、実行されるコマンドが表示されます。エンドツーエンドでテストするには、Claude に許可が必要なコマンドを実行するよう依頼してターミナルから離れるか、Claude に通知を直接トリガーするよう依頼します。
857 </Step>
858</Steps>
859
860完全なイベントスキーマと通知タイプについては、[通知リファレンス](/ja/hooks#notification)を参照してください。
861
862***
863
864## Claude を unix スタイルのユーティリティとして使用する
865
866### 検証プロセスに Claude を追加する
867
868Claude Code をリンターまたはコードレビューアーとして使用したいとします。
869
870**ビルドスクリプトに Claude を追加する:**
871
872```json theme={null}
873// package.json
874{
875 ...
876 "scripts": {
877 ...
878 "lint:claude": "claude -p 'you are a linter. please look at the changes vs. main and report any issues related to typos. report the filename and line number on one line, and a description of the issue on the second line. do not return any other text.'"
879 }
880}
881```
882
883<Tip>
884 ヒント:
885
886 * CI/CD パイプラインで自動コードレビューに Claude を使用する
887 * プロンプトをカスタマイズして、プロジェクトに関連する特定の問題をチェックする
888 * 異なるタイプの検証用に複数のスクリプトを作成することを検討する
889</Tip>
890
891### パイプイン、パイプアウト
892
893Claude にデータをパイプインし、構造化された形式でデータを取得したいとします。
894
895**Claude を通じてデータをパイプする:**
896
897```bash theme={null}
898cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt
899```
900
901<Tip>
902 ヒント:
903
904 * パイプを使用して Claude を既存のシェルスクリプトに統合する
905 * 他の Unix ツールと組み合わせて強力なワークフローを作成する
906 * 構造化出力に `--output-format` を使用することを検討する
907</Tip>
908
909### 出力形式を制御する
910
911特に Claude Code をスクリプトまたは他のツールに統合する場合、Claude の出力が特定の形式である必要があるとします。
912
913<Steps>
914 <Step title="テキスト形式を使用する(デフォルト)">
915 ```bash theme={null}
916 cat data.txt | claude -p 'summarize this data' --output-format text > summary.txt
917 ```
918
919 これは Claude のプレーンテキスト応答のみを出力します(デフォルトの動作)。
920 </Step>
921
922 <Step title="JSON 形式を使用する">
923 ```bash theme={null}
924 cat code.py | claude -p 'analyze this code for bugs' --output-format json > analysis.json
925 ```
926
927 これは、コストと期間を含むメタデータを含むメッセージの JSON 配列を出力します。
928 </Step>
929
930 <Step title="ストリーミング JSON 形式を使用する">
931 ```bash theme={null}
932 cat log.txt | claude -p 'parse this log file for errors' --output-format stream-json
933 ```
934
935 これは、Claude がリクエストを処理するときにリアルタイムで一連の JSON オブジェクトを出力します。各メッセージは有効な JSON オブジェクトですが、連結された場合、全体の出力は有効な JSON ではありません。
936 </Step>
937</Steps>
938
939<Tip>
940 ヒント:
941
942 * Claude の応答だけが必要な単純な統合には `--output-format text` を使用する
943 * 完全な会話ログが必要な場合は `--output-format json` を使用する
944 * 各会話ターンのリアルタイム出力には `--output-format stream-json` を使用する
945</Tip>
946
947***
948
949## Claude をスケジュールで実行する
950 396
951Claude に長時間実行されるタスクを自動的に定期的に処理させたいとします。例えば、毎朝オープン PR をレビューしたり、毎週依存関係を監査したり、夜間に CI の失敗をチェックしたりします。397Claude に長時間実行されるタスクを自動的に定期的に処理させたいとします。例えば、毎朝オープン PR をレビューしたり、毎週依存関係を監査したり、夜間に CI の失敗をチェックしたりします。
952 398
953実行場所に基づいてスケジューリングオプションを選択します:399実行場所に基づいてスケジューリングオプションを選択します:
954 400
955| オプション | 実行場所 | 最適な用途 |401| オプション | 実行場所 | 最適な用途 |
956| :----------------------------------------------- | :--------------------- | :------------------------------------------------------------------------------------------- |402| :----------------------------------------------- | :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------- |
957| [ルーチン](/ja/routines) | Anthropic 管理インフラストラクチャ | コンピュータがオフの場合でも実行する必要があるタスク。[claude.ai/code/routines](https://claude.ai/code/routines)で設定します。 |403| [ルーチン](/ja/routines) | Anthropic 管理インフラストラクチャ | コンピュータがオフの場合でも実行する必要があるタスク。[claude.ai/code/routines](https://claude.ai/code/routines)で設定します。API 呼び出しまたは GitHub イベントに加えてスケジュールでトリガーすることもできます。 |
958| [デスクトップスケジュール済みタスク](/ja/desktop-scheduled-tasks) | デスクトップアプリ経由のマシン | ローカルファイル、ツール、またはコミットされていない変更への直接アクセスが必要なタスク。 |404| [デスクトップスケジュール済みタスク](/ja/desktop-scheduled-tasks) | デスクトップアプリ経由のマシン | ローカルファイル、ツール、またはコミットされていない変更への直接アクセスが必要なタスク。 |
959| [GitHub Actions](/ja/github-actions) | CI パイプライン | オープン PR などのリポジトリイベント、またはワークフロー設定と一緒に存在する必要がある cron スケジュールに関連するタスク。 |405| [GitHub Actions](/ja/github-actions) | CI パイプライン | オープン PR などのリポジトリイベント、またはワークフロー設定と一緒に存在する必要がある cron スケジュールに関連するタスク。 |
960| [`/loop`](/ja/scheduled-tasks) | 現在の CLI セッション | セッションが開いている間のクイックポーリング。タスクは新しい会話を開始すると停止します。`--resume` と `--continue` は期限切れでないものを復元します。 |406| [`/loop`](/ja/scheduled-tasks) | 現在の CLI セッション | セッションが開いている間のクイックポーリング。タスクは新しい会話を開始すると停止します。`--resume` と `--continue` は期限切れでないものを復元します。 |
961 407
962<Tip>408<Tip>
963 スケジュール済みタスク用のプロンプトを作成するときは、成功がどのように見えるか、および結果をどうするかについて明示的に説明してください。タスクは自律的に実行されるため、質問を明確にすることはできません。例えば:'`needs-review` ラベルが付いたオープン PR をレビューし、問題に関するインラインコメントを残し、`#eng-reviews` Slack チャネルに要約を投稿します。'409 スケジュール済みタスク用のプロンプトを作成するときは、成功がどのように見えるか、および結果をどうするかについて明示的に説明してください。タスクは自律的に実行されるため、質問を明確にすることはできません。例えば:「`needs-review` ラベルが付いたオープン PR をレビューし、問題に関するインラインコメントを残し、`#eng-reviews` Slack チャネルに要約を投稿します。」
964</Tip>410</Tip>
965 411
966***412***
967 413
968## Claude にその機能について質問する414### Claude にその機能について質問する
969 415
970Claude は自分のドキュメントへの組み込みアクセスを持っており、自分の機能と制限について質問に答えることができます。416Claude は自分のドキュメントへの組み込みアクセスを持っており、自分の機能と制限について質問に答えることができます。
971 417
972### 質問例418#### 質問例
973 419
974```text theme={null}420```text theme={null}
975can Claude Code create pull requests?421can Claude Code create pull requests?
1009 455
1010***456***
1011 457
458## 以前の会話を再開する
459
460タスクが複数回に分けて実行される場合は、コンテキストを再度説明するのではなく、中断したところから再開してください。Claude Code はすべての会話をローカルに保存します。
461
462```bash theme={null}
463claude --continue
464```
465
466これにより、現在のディレクトリで最新のセッションが再開されます。まだセッションがない場合は、`No conversation found to continue` と出力して終了します。`claude --resume` を使用してリストから選択するか、実行中のセッション内から `/resume` を使用してください。[セッションを管理する](/ja/sessions)を参照して、名前付け、ブランチ、および完全なピッカーリファレンスを確認してください。
467
468## worktree を使用して並列セッションを実行する
469
4701 つのターミナルで機能に取り組みながら、別のターミナルで Claude がバグを修正するようにします。編集が衝突しないようにしてください。各 worktree は独自のブランチ上の個別のチェックアウトです。
471
472```bash theme={null}
473claude --worktree feature-auth
474```
475
476別の名前で 2 番目のターミナルで同じコマンドを実行して、分離された並列セッションを開始します。[Worktrees](/ja/worktrees)を参照して、クリーンアップ、`.worktreeinclude`、および非 git VCS サポートを確認してください。1 つの画面から並列セッションを監視するには、[バックグラウンドエージェント](/ja/agent-view)を参照してください。
477
478## 編集前に計画する
479
480ディスクに変更を加える前に確認したい変更については、計画モードに切り替えてください。Claude はファイルを読み込んで計画を提案しますが、承認されるまで編集は行いません。
481
482```bash theme={null}
483claude --permission-mode plan
484```
485
486セッション中に `Shift+Tab` を押して計画モードに切り替えることもできます。[計画モード](/ja/permission-modes#analyze-before-you-edit-with-plan-mode)を参照して、承認フローとテキストエディタで計画を編集することを確認してください。
487
488## 研究を subagent に委譲する
489
490大規模なコードベースの探索はコンテキストをファイル読み込みで満たします。探索を委譲して、結果のみが戻るようにしてください。
491
492```text theme={null}
493use a subagent to investigate how our auth system handles token refresh
494```
495
496subagent は独自のコンテキストウィンドウでファイルを読み込み、要約を報告します。[Subagents](/ja/sub-agents)を参照して、独自のツールとプロンプトを持つカスタムエージェントを定義することを確認してください。
497
498## Claude をスクリプトにパイプする
499
500CI、プリコミットフック、またはバッチ処理用に Claude を非対話的に実行します。stdin と stdout は任意の Unix ツールのように機能します。
501
502```bash theme={null}
503git log --oneline -20 | claude -p "summarize these recent commits"
504```
505
506[非対話モード](/ja/headless)を参照して、出力形式、許可フラグ、およびファンアウトパターンを確認してください。
507
1012## 次のステップ508## 次のステップ
1013 509
1014<CardGroup cols={2}>510<CardGroup cols={2}>
1016 Claude Code から最大限の価値を得るためのパターン512 Claude Code から最大限の価値を得るためのパターン
1017 </Card>513 </Card>
1018 514
1019 <Card title="Claude Code の仕組み" icon="gear" href="/ja/how-claude-code-works">515 <Card title="セッションを管理する" icon="rotate-left" href="/ja/sessions">
1020 agentic ループとコンテキスト管理を理解する516 会話を再開、名前付け、ブランチする
1021 </Card>517 </Card>
1022 518
1023 <Card title="Claude Code を拡張する" icon="puzzle-piece" href="/ja/features-overview">519 <Card title="Worktrees" icon="code-branch" href="/ja/worktrees">
1024 skill、フック、MCP、subagent、プラグインを追加する520 分離された並列セッションを実行する
1025 </Card>521 </Card>
1026 522
1027 <Card title="リファレンス実装" icon="code" href="https://github.com/anthropics/claude-code/tree/main/.devcontainer">523 <Card title="Claude Code を拡張する" icon="puzzle-piece" href="/ja/features-overview">
1028 開発コンテナリファレンス実装をクローンする524 skill、フック、MCP、subagent、プラグインを追加する
1029 </Card>525 </Card>
1030</CardGroup>526</CardGroup>