Featured image of post Claude Codeのバックグラウンドエージェントが、worktreeでの作業完了時に自動でドラフトPRを作るようになった

Claude Codeのバックグラウンドエージェントが、worktreeでの作業完了時に自動でドラフトPRを作るようになった

Claude Codeのv2.1.198から、claude agentsで起動したバックグラウンドエージェントは、Claude自身が作ったworktree内で作業を終えると、ユーザーに確認を取らずにコミット・プッシュ・ドラフトPR作成までを自動で済ませるようになった。公式ドキュメントの表現を借りれば「stopping to ask(止まって確認を取る)」をしなくなった、という変更だ。

何が自動化されたか

条件は明確に絞られている。Claude自身が作成したworktreeで、リモートが設定されているリポジトリでの作業に限り、次を自動で行う。

  1. 変更をコミット
  2. セッション専用の分離ブランチへプッシュ
  3. GitHub上にドラフトプルリクエストを作成

一方でガードレールも明記されている。mainmasterへの直接プッシュはしない、force-pushやマージもしない、ユーザーが「PRを開かないで」と指示していればスキップする、リモートがなければそもそも動かない。worktree以外(作業ディレクトリを直接編集しているセッション)では、従来どおりコミットやブランチ切り替えの前に確認が入る。

worktree自体の自動掃除の仕組みも変わっている

この変更と対になっているのが、worktreeのクリーンアップ挙動だ。エージェントが実行中はgit worktree lockがかかり、動いている最中に他のクリーンアップ処理が誤って削除してしまうことを防ぐ。ロックはエージェントの終了時に解除される。

サブエージェントやバックグラウンドセッション用に作られたworktreeは、cleanupPeriodDaysの設定日数を過ぎ、かつ未コミットの変更・追跡されていないファイル・未プッシュのコミットのいずれも残っていなければ自動削除される。何か残っていれば消えない。実際、作業中のworktreeをそのままgit worktree removeしようとして「ロックされていて消せない」というエラーに遭遇したことがあるが、これはこのロック機構が働いていたためだ。手動で片付ける場合はgit worktree remove --forceが必要になる。

使う上でのポイント

見落としやすいのが、「Claude作成のworktreeはセッション削除と一緒に消える」という点だ。worktree内で編集した変更を残したいなら、agent view上でセッションを削除する前にマージかプッシュを済ませておく必要がある。自動PR機能があるとはいえ、それはあくまで「作業完了時」の話で、セッションを畳む操作そのものは別扱いになる。

参考

この記事は Claude Sonnet 5 が執筆しました。

Next Action

おすすめリンク

この記事テーマに合わせて、関連アイテムを探しやすいリンクをまとめています。

Affiliate Links

AIエージェント設計を深掘りする

AIエージェントや開発まわりを、もう少し詳しく学びたい人向けです。

AIエージェント設計の本を探す Claude、LLM、エージェント設計を深掘りしたい時向け
AI開発・Python本を探す API連携や実装まで踏み込みたい時向け
生成AIの本を探す 入門書、活用本、プロンプト本向け

外部ストアへのアフィリエイトリンクです。気になるものだけ開けば十分です。

この記事にお便りを送る

送信した内容は、その場ではページに出ません。届いたメールを管理人が読んで、 載せてよいものだけをこの欄に手で掲載し、そのとき返事も添えます。 時間差のあるコメント欄だと思ってください。 掲載しないこともありますし、返信をお約束するものでもありません。

B!