🌳

[Claude Code] worktree + ISSUE.mdを使ったブレない並列開発手法

に公開

はじめに

ブランチを切り替えるたびにstashする、という作業を面倒に感じたことはないでしょうか。
Git worktreeを使うとその手間が減ります。
Claude Codeと組み合わせると並列作業がしやすくなります。
この記事では、worktreeとISSUE.mdを使ったワークフローを整理します。

Git worktreeとは

Git worktreeは、同じリポジトリから複数のブランチを同時に開ける機能です。
各worktreeは独立したファイル状態を持ちながら、同じGit履歴を共有します。

Claude Codeとworktreeの組み合わせ

公式ドキュメントでは、Claude Codeとworktreeの組み合わせを以下のように説明しています。

複数のタスクを同時に作業する必要があり、Claude Codeインスタンス間で完全なコード分離が必要な場合に使用します。

各worktreeは独自の独立したファイル状態を持っているため、並列のClaude Codeセッションに最適です。1つのworktreeで行われた変更は他に影響せず、Claudeインスタンスが互いに干渉するのを防ぎます。

つまり、worktree Aで Issue #123、worktree Bで Issue #456 というように、複数のIssueを並列で進められます。

ISSUE.mdとは

ISSUE.mdは、worktree作成時に対象Issueの情報をまとめたファイルです。

ISSUE.mdには、Issueのタイトルと本文、関連コメント、関連Issue/PRへのリンク、設計メモなどを含めます。
Claude Codeを起動したときに「このworktreeで何をすべきか」が明確になります。

なぜこのワークフローが有効か

自動化しやすい

worktree作成とISSUE.md生成をスクリプト化できます。
Issue番号を渡すだけで作業環境が整います。

方向性が明確

ISSUE.mdを読めば「何をすべきか」がわかります。
Claude Codeに「ISSUE.mdを読んで、計画を立てて」と指示するだけで作業を開始できます。

並列作業が可能

複数のworktreeで複数のClaude Codeインスタンスを動かせます。
1つのIssueの作業中に別のIssueも進められます。

干渉がない

各worktreeは独立したファイル状態を持つため、あるworktreeでの変更が別のworktreeに影響しません。

worktreeの基本操作

新しいworktreeを作成

# 新しいブランチでworktreeを作成
git worktree add ../project-feature-a -b feature-a

# 既存のブランチでworktreeを作成
git worktree add ../project-bugfix bugfix-123

worktreeでClaude Codeを実行

# worktreeに移動
cd ../project-feature-a

# Claude Codeを起動
claude

worktreeの管理

# 全worktreeを一覧表示
git worktree list

# 作業完了後にworktreeを削除
git worktree remove ../project-feature-a

ISSUE.mdの生成

ghコマンドを使ってIssue情報を取得し、ISSUE.mdを生成します。

#!/bin/bash
# start-issue.sh

ISSUE_NUMBER=$1
WORKTREE_DIR="../issue-${ISSUE_NUMBER}"

# worktree作成
git worktree add "$WORKTREE_DIR" -b "issue-${ISSUE_NUMBER}"

# ISSUE.md生成
cd "$WORKTREE_DIR"
{
  echo "# Issue #${ISSUE_NUMBER}"
  echo ""
  gh issue view "$ISSUE_NUMBER"
  echo ""
  echo "## Comments"
  gh issue view "$ISSUE_NUMBER" --comments
} > ISSUE.md

# Claude Codeを起動(新しいターミナルで)
echo "worktree created: $WORKTREE_DIR"
echo "Run: cd $WORKTREE_DIR && claude"

使用例です。

./start-issue.sh 123

Claude Codeでの作業開始

worktreeに移動してClaude Codeを起動したら、以下のように指示します。

ISSUE.mdを読んで、このIssueに対応するための計画を立てて。
実装はまだしないで。

計画を確認し、問題なければ実装を許可します。

注意点

worktreeは独立したファイル状態を持つため、node_modulesなどは各worktreeで個別にインストールが必要です。

実践的なワークフロー

  1. Issue選択:取り組むIssueを決める
  2. worktree作成:start-issue.shでworktreeとISSUE.mdを生成
  3. 環境セットアップ:依存関係のインストール
  4. Claude Code起動:worktreeでclaude起動
  5. 計画確認:ISSUE.mdを読ませて計画を立てさせる
  6. 実装:計画に問題なければ実装
  7. PR作成:Claude CodeにPR作成を依頼
  8. クリーンアップ:マージ後にworktreeを削除

まとめ

  • Git worktreeは同じリポジトリから複数の作業ディレクトリを作成できる機能
  • ISSUE.mdはIssue情報をまとめたファイルで、作業の方向性を明確にする
  • worktree + ISSUE.mdで自動化しやすく、並列作業が可能になる
  • ghコマンドでISSUE.md生成をスクリプト化できる
  • 各worktreeで依存関係のインストールが必要なことに注意
GitHubで編集を提案

Discussion