この記事は何
以前Claude CodeでIssueの着手→PRの作成を行うまでのコマンドの作成方法について紹介しました。
以前の記事でも十分便利だったものの、基本的にPRの作成を行なってもらうまでは手放しで実行してもらうことが多かったため、その間に並列で複数タスクを実行したいシーンがよくありました。
タスクを並列で実行する際、Claude公式も紹介している通り、Git Worktree(Gitワークツリー)を使う方法が多くの記事でも紹介されています。
しかし、Git Worktreeで環境を分けること自体、.envの準備やライブラリのインストール、dockerのセットアップなどいろいろあり手間がかかるので、ここも含めてコマンド一発で行えるようにできないかと思いました。
この記事では、Claude CodeでGit Worktreeの移動→Issueの着手→PRの作成までをコマンド一発で行う方法について紹介します。
TL;DR
手順
GitHub CLIのセットアップ
と同じように、Issueの情報の取得、PRの作成にはGitHub CLIを用いるため、はじめにGitHub CLIのセットアップを行います。
詳しくは公式ドキュメントを参照ください。
(オプション)Serenaのセットアップ
Serenaとは、LSPを用いたコードの探索、操作を行えるMCPです。
このMCPを使用しなくても今回のコマンドも動作はしますが、リポジトリのルートディレクトリからClaude Codeで内部のディレクトリとして作成したWorktreeを操作するため、Serenaを導入して作業元を正しく認識できる挙動にしておいた方が誤操作の頻度は減ると思います。
僕は以下のようにCLAUDE.md
で必ずserenaを用いるよう指示しています。
(オプション).git-worktrees
を.config/git/ignore
に追加
今回作成するコマンドでは、作業を行うリポジトリ配下にGit Worktreeの作業ディレクトリを作成します。
この作業ディレクトリをgitで常にignoreできるようにしています。
.config/git/ignore
に.git-worktrees
と記述することで、gitではこのディレクトリを常にignoreしてくれるようになります。
スラッシュコマンドの定義
Claude Codeでは、独自にコマンドを作成できる仕組みがあります。
この機能を使うことで、独自に定義したワークフローを/hoge
のような形で簡単に呼び出せるようになります。
また、$ARGUMENTSというキーワードで引数を定義することも可能です。
今回は/exec-issue PR番号
というコマンドで処理を実行できるように、以下のようにコマンドを定義します。
このコマンドをリポジトリのルートで/exec-issue ISSUE番号
というように実行することで
- worktreeの作成
- 環境のセットアップ
- タスクの実行
- PRの作成
を行なってもらうことが可能です。