Insights·2026-07-24

数時間に及ぶ Claude Code のセッションをどう操縦するか——Plan・Compact・Rewind・Goal・Loop・Worktree

短いタスクは指示して終わるのを見ていればよいが、十数ファイルにまたがるリファクタや数時間かかる新機能のような長いタスクは、放っておくのではなく「操縦」するものだ。支える習慣は二つ。Claude が始める前に範囲を絞り、走っている間に方向を取る。六つの道具がそれを可能にする。Plan Mode は読み取り専用で調査して計画を渡す。読んで練り直せば、実行時のつまずきが減る。Compact は会話を要約して新しい文脈にし、古いものを消して文脈ウィンドウを空ける——コマンドに指示を添えれば何を残すかを Claude に伝えられ、大事なものを落とさず逸れない。Rewind は(空のプロンプトで escape を二度押して)チェックポイントに戻し、コード・会話・その両方を復元したり、その地点の前後を要約したりする。Goal は完了条件を設定する。完了の姿を描けば、Claude は自分で終わったと思う最初の瞬間に止まらず、速い評価器がそれを確認するまでターンをまたいで働き続ける(評価器は会話記録だけを読むので、条件は Claude の出力から確認できるものでなければならない)。Loop はプロンプトを一定間隔で走らせ、CI 実行やデプロイのような外部の状態を見張り、変化したら反応する。Worktree は複数のエージェントにそれぞれ独立したファイルツリーを与え、同じリポジトリを奪い合わないようにする。まず範囲を絞り、それから操縦すれば、長い実行に張り付かずとも信頼できる。

게 캐릭터 세 마리와 코드 파일 아이콘 세 개가 각각 짝지어 떠 있는 그림 — 워크트리로 나뉜 세 개의 독립적인 파일 트리.
출처: Anthropic Claude Code 공식 영상 — 워크트리는 세션마다 독립된 파일 트리를 준다

なぜ長いセッションには「操縦」が要るのか

短いタスクは、指示して結果を見た瞬間に終わる。しかし十数ファイルにまたがるリファクタや新機能のような数時間かかるタスクは違うし、正しい方向へ導くほどかえって長くかかることもある。だから長いセッションには、放っておくことではなく操縦が要る。

操縦の核心は二つの習慣だ。第一に、Claude が始める前に作業範囲を絞る。第二に、走っている間に方向を取る。以下の六つの道具が、この二つの習慣を実際に可能にする——Plan Mode、Compact、Rewind、Goal、Loop、そして Worktree だ。

始める前に範囲を絞る——Plan Mode

ターミナルに 'Claude has written up a plan and is ready to execute' と、1. Yes, and use auto mode / 2. Yes, manually approve edits / 3. No, refine / 4. To make this という計画承認の選択肢が表示された画面。
Plan Mode は読み取り専用で調査し、計画を渡して承認を求める(Anthropic 公式動画)

Plan Mode では、Claude はファイルを編集せず読み取り専用でコードを調査し、「何をどうするか」の計画を渡してくれる。計画が出たら、必ず最後まで読む。計画が緻密なほど、実行時につまずく余地は減る。

計画を直したいなら、望む場所に望む内容を足してと Claude に言えばよい。計画を数回練り直す方が、うまくいくことを願って実行にいきなり飛び込むより、はるかに速く安全だ。

文脈を空けつつ方向を保つ——Compact

ユーザーが '/compact Focus on the --version flag implementation and README change. Drop file exploration output.' と入力し、要約が何を残し何を捨てるかを指示するターミナル画面。
Compact に指示を添えて、要約が何を残し何を捨てるかを決める(Anthropic 公式動画)

Compact はこれまでの会話を要約して新しい文脈とし、古いものを消して文脈ウィンドウを空ける。長いセッションで会話が重くなったときに役立つ。ただし一つリスクがある——要約で大事な何かが落ちると、Claude が誤った方向へ逸れることがある。

だから compact コマンドを使うときは、何を残し何を捨てるかを一緒に指示する。コマンドの後ろに指示を添えれば、どう要約するかを Claude に伝えられる。デバッグはとうに終わり、今は API の変更だけに集中したいなら、まさにそう指示して、デバッグ出力は捨て API の変更だけ残せる。

間違えたら引き戻す——Rewind

rewind メニュー——復元ポイントのタイムラインと、1. Restore code and conversation / 2. Restore conversation / 3. Restore code / 4. Summarize from here / 5. Summarize up to here の選択肢。
Rewind: 空のプロンプトで escape を二度押してチェックポイントに戻り、コード・会話を復元、または前後を要約する(Anthropic 公式動画)

Claude が誤った道に入ったとき、プロンプトで無理に抜け出そうとする必要はない。Rewind が直前のチェックポイントに戻してくれる。開き方は、空のプロンプトで escape を二度叩くこと——すると rewind メニューが出る。あなたが送ったすべてのプロンプトが、戻れるチェックポイントになっている。

選択肢はいくつかある。コードだけ、会話だけ、あるいは両方を復元できる。'Summarize from here' はチェックポイント以降のすべてを要約する——脇道にそれた会話を片づけて空きを作りたいときによい。'Summarize up to here' はチェックポイント以前のすべてを要約する——長い準備段階を畳みつつ、実装部分は残したいときに便利だ。

完了条件を委ねる——Goal

完了条件のコマンド '/goal Complete when every exported function in src/timeline/time.ts has a JSDoc comment directly above it' と 'Goal set:' の確認メッセージが表示されたターミナル。
Goal: 完了条件を描けば、速い評価器が充足を確認するまで Claude は働き続ける(Anthropic 公式動画)

ここまでが「自分の手で操縦する」やり方なら、もう少し自律的に任せたいときに使うのが Goal だ。Goal は完了条件を設定する。完了の姿を描いておけば、Claude は自分で終わったと思う最初の瞬間に止まらず、速い評価器がその条件の充足を確認するまで、ターンをまたいで働き続ける。

たとえば「src/billing のすべてのテストが通り、型チェッカーがエラー 0 を報告したとき」のような条件を設定できる。取り消すには goal を空にする。一つ制約がある——評価器は会話記録(transcript)だけを読む。だから条件は、Claude が生み出す出力、たとえば実際に走らせたテスト結果から確認できるものでなければならない。

外部の状態を見張って反応する——Loop

ユーザーが '/loop 1h poll for new items in the sentry backlog. If it ends up coming up with a high critical error, create a worktree and submit a fix.' と入力したターミナル画面。
Loop: 一定間隔で外部の状態(CI 実行・デプロイ)を確認し、変化したときに反応する(Anthropic 公式動画)

Loop はプロンプトをターンとターンの間に一定間隔で繰り返し走らせる——間隔は固定にも、自分で調整させることもできる。用途は、CI 実行やデプロイのような外で起きる状態を引き込んで見張り、その状態が変わったら反応することだ。

たとえば、バックログの新しい項目を定期的にポーリングし、重大なエラーが出たら worktree を作って修正を提出させられる。止めたいときは escape を押せばよい。

複数エージェントの衝突を防ぐ——Worktree

エディタのファイルツリーで .worktreeinclude ファイルが選択され、.env.local や CLAUDE.md などと並んで表示され、右側にコードが開かれている画面。
Worktree: リポジトリのルートの .worktreeinclude が、各 worktree にコピーする git 無視されたファイルを指定する(Anthropic 公式動画)

ここまでの操縦は「一台の車にハンドル一つ」を前提にしている。しかし複数のエージェントが同じコードベースで同時に働くとき、一台の車にハンドルが二つあるのは危険だ。そこで worktree の出番だ。worktree は、二つ以上の Claude セッションが一つのリポジトリのファイルを奪い合うのを、各セッションに独立したファイルツリーを与えることで防ぐ。

セッションを終えると、変更のないきれいな worktree は自動的に片づけられる。そしてリポジトリのルートにある `.worktreeinclude` ファイルには、各 worktree にコピーして入れる git 無視されたファイルを列挙する——バージョン管理にコミットはしたくないが作業には必要な、環境変数ファイルやローカル設定のようなものを、ここで指定する。

結論——まず範囲を絞り、それから操縦する

長い Claude Code のセッションを扱うときは、まず作業範囲を絞り、それから操縦する。圧縮(compact)は要約が大事なものを残すように方向づけ、rewind メニューで軌道を正す。手順を説明するより「完了の姿」をうまく描けるときは Goal を設定し、並行作業は worktree で走らせる。

そうすれば、長い実行に張り付かずとも信頼できる。結局、数時間のセッションを信頼に足るものにするのは、放っておくことではなく操縦することだ。