setup-branch について
setup-branch は、JIRA 課題から Git ブランチとワークツリーを作成し、開発環境を整えるスキルです。課題の種類に応じてブランチ名を決め、依存関係の導入や設定ファイルの準備も行えます。
主な機能
- 01JIRA ID と URL の解析
- 02課題種別に応じたブランチ命名
- 03ブランチと Git ワークツリーの作成
- 04ロックファイルに基づく依存関係の導入
- 05mise 設定の信頼と設定ファイルのコピー
活用シーン
- 01JIRA のバグや機能に分離して着手
- 02依存関係を含むワークツリーの準備
- 03現在のワークツリーを変えずにブランチを作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ morphet81/ cheat-sheets --skill setup-branchインストール後、Claude Code で/setup-branchを入力して読み込まれたか確認します。
詳細
JIRA チケットから新しい Git ブランチとワークツリーを作成します。JIRA 項目の種類に基づいてブランチ名を自動的に付け、すぐに作業を始められる状態でワークツリーをセットアップします。
使用方法:
/setup-branch PROJ-123— JIRA ID からブランチを作成します/setup-branch https://mycompany.atlassian.net/browse/PROJ-123— JIRA URL からブランチを作成します
手順:
-
前提条件を確認します:
- Atlassian CLI(
acli):acli auth statusを実行して、CLI がインストールされ、認証済みであることを確認します。- コマンドが見つからない場合は、以下のメッセージを表示して停止します:
## 前提条件が不足しています:Atlassian CLI `acli` コマンドがインストールされていません。このスキルでは、JIRA の課題詳細を取得するために Atlassian CLI が必要です。 次のコマンドでインストールします:brew tap atlassian/acli && brew install acli - コマンドが認証エラーで失敗した場合は、以下のメッセージを表示して停止します:
## 前提条件が不足しています:Atlassian CLI の認証 Atlassian CLI が認証されていません。このスキルを使用する前に、`acli auth login` を実行して認証してください。
- コマンドが見つからない場合は、以下のメッセージを表示して停止します:
- GitHub CLI(
gh):gh --versionを実行して、ghCLI がインストールされていることを確認します。コマンドが失敗した場合(コマンドが見つからない場合)は、以下のメッセージを表示して停止します:## 前提条件が不足しています:GitHub CLI `gh` コマンドがインストールされていません。このスキルでは、リポジトリ操作に GitHub CLI が必要です。 次の場所からインストールします:https://cli.github.com/ - GitHub CLI の認証:
gh auth statusを実行して、ghが認証済みであることを確認します。ユーザーがログインしていないと表示された場合は、以下のメッセージを表示して停止します:## 前提条件が不足しています:GitHub CLI の認証 GitHub CLI が認証されていません。このスキルを使用する前に、`gh auth login` を実行して認証してください。
- Atlassian CLI(
-
$ARGUMENTS から JIRA の参照情報を解析します:
- 引数が指定されていない場合は、想定される使用方法をユーザーに伝えて停止します
- 引数が URL(
atlassian.net/browse/などを含む)の場合は、URL パスから JIRA ID を抽出します(例:https://mycompany.atlassian.net/browse/PROJ-123→PROJ-123)。JIRA ID を抽出できない場合は、受け取った内容を表示して停止します - 引数がすでに JIRA ID(
PROJ-123、ABC-1などのパターンに一致)の場合は、そのまま使用します - 引数を URL または JIRA ID として解析できない場合は、ユーザーに伝えて停止します
-
JIRA 項目の種類を取得します:
- Atlassian CLI を使用して、抽出した JIRA ID の課題詳細を取得します:
acli jira workitem view <JIRA-ID> --fields issuetype --json - 課題の種類(Bug、Story、Task、Epic、Sub-task など)を特定します
- 取得に失敗した場合は、
AskUserQuestionを使用し、「Bug」と「Story/Task/Other」の選択肢を提示して、開発者に課題の種類を手動で指定するよう依頼します
- Atlassian CLI を使用して、抽出した JIRA ID の課題詳細を取得します:
-
ブランチ名を決定します:
- ブランチ名に使用する JIRA ID を小文字にします(例:
PROJ-123→proj-123) - 課題の種類がBugの場合:ブランチ名は
fix/<jira-id>です(例:fix/proj-123) - それ以外のすべての種類(Story、Task、Epic、Sub-task など)の場合:ブランチ名は
feat/<jira-id>です(例:feat/proj-123)
- ブランチ名に使用する JIRA ID を小文字にします(例:
-
ブランチのベースにするブランチを確認します:
git branch --show-currentを実行して、現在の作業ディレクトリのブランチ名を取得しますAskUserQuestionを使用して、ベースにするブランチを開発者に尋ねます- 最初の(デフォルトの)選択肢には現在のブランチ名を指定します(例:
developにいる場合はdevelopを提案します) - 現在のブランチが
mainでない場合は、2 つ目の選択肢としてmainを含めます - 「Other」オプションを使って、開発者が別のブランチ名を入力できるようにします
-
リモートからベースブランチを取得します:
git fetch origin <base-branch>を実行します- フェッチに失敗した場合(例:ベースブランチがリモートに存在しない場合)は、エラーを表示して直ちに停止します。ブランチやワークツリーの作成を続行しないでください。
- ベースブランチをチェックアウトまたはプルしないでください。これにより、現在のワークツリーにある未コミットの作業が妨げられるのを防ぎます。
-
新しいブランチとワークツリーを同時に作成します:
- ブランチ名がすでにローカルに存在する場合(
git rev-parse --verify <branch-name>が成功する場合)は、ユーザーに通知して停止します(強制作成はしないでください)。 - ワークツリーのパスを決定します。現在の作業ディレクトリの親ディレクトリを取得し、ブランチ名の
/を-に置き換えて追加します。- 例:CWD が
/Users/dev/my-projectで、ブランチがfix/proj-123の場合、ワークツリーのパスは/Users/dev/fix-proj-123です。
- 例:CWD が
- ワークツリーのディレクトリがすでに存在する場合は、ユーザーに通知して停止します。
git worktree add <worktree-path> -b <branch-name> origin/<base-branch>を実行します。- このコマンドは、現在のワークツリーに触れることなく、リモートのベースブランチを基点とする新しいブランチとワークツリーを同時に作成します。
- コマンドが失敗した場合は、エラーを表示して停止します。
- ブランチ名がすでにローカルに存在する場合(
-
新しいワークツリーに依存関係をインストールします:
- この手順のすべてのコマンドは、新しいワークツリーのディレクトリから実行する必要があります(実行前に
cd <worktree-path>を実行するか、cwdオプションを指定してください)。 - 新しいワークツリーのディレクトリにあるロックファイルを確認して、パッケージマネージャーを判別します。
bun.lockbまたはbun.lock→bun install --frozen-lockfileを実行しますpnpm-lock.yaml→pnpm install --frozen-lockfileを実行しますyarn.lock→yarn install --frozen-lockfileを実行しますpackage-lock.json→npm ciを実行します- 上記のロックファイルがなく、
package.jsonがある場合 →npm installを実行し、ロックファイルが見つからなかったことを警告します package.jsonがない場合 → 依存関係のインストールを完全にスキップします
- インストールコマンドが失敗した場合は、エラーを表示しますが、ワークツリーは削除しないでください。開発者が手動で問題を修正する場合があります。
- この手順のすべてのコマンドは、新しいワークツリーのディレクトリから実行する必要があります(実行前に
-
mise の設定を信頼します:
- 新しいワークツリーのディレクトリから
mise trustを実行し、存在する.mise.tomlまたは.tool-versionsファイルを信頼します。 miseがインストールされていない(コマンドが見つからない)場合は、何も表示せずこの手順をスキップします。- それ以外の理由でコマンドが失敗した場合は、警告を表示して続行します。
- 新しいワークツリーのディレクトリから
-
.envファイルを新しいワークツリーにコピーします:
- 現在の作業ディレクトリに
.envファイルがあるか確認します。 - ファイルがある場合は、新しいワークツリーのルートディレクトリにコピーします(
cp .env <worktree-path>/.env)。 - ファイルがない場合は、何も表示せずこの手順をスキップします。
- 新しいワークツリーに
.agentファイルを作成します:
- ベースブランチ名を含むシンプルな設定ファイルを
<worktree-path>/.agentに書き込みます。baseBranch=<base-branch> - 例:ベースブランチが
mainの場合、ファイルの内容はbaseBranch=mainです。
- 成功メッセージを表示します:
関連情報をすべて含む概要を表示します。
## Branch Setup Complete
- JIRA: PROJ-123
- Type: Bug → fix/proj-123
- Base: origin/main
- Worktree: /Users/dev/fix-proj-123
- Dependencies: installed (npm ci)
To start working:
cd /Users/dev/fix-proj-123
To push for the first time:
git push -u origin fix/proj-123
コメント
Markdown 対応