12
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

この記事は何

以前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の作成

を行なってもらうことが可能です。

12
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?