mcpField
S
setup-branch

setup-branch

github.com/morphet81開発081 回インストール25 週間前に更新
リポジトリ

setup-branch について

setup-branch は、JIRA 課題から Git ブランチとワークツリーを作成し、開発環境を整えるスキルです。課題の種類に応じてブランチ名を決め、依存関係の導入や設定ファイルの準備も行えます。

主な機能

  1. 01JIRA ID と URL の解析
  2. 02課題種別に応じたブランチ命名
  3. 03ブランチと Git ワークツリーの作成
  4. 04ロックファイルに基づく依存関係の導入
  5. 05mise 設定の信頼と設定ファイルのコピー

活用シーン

  1. 01JIRA のバグや機能に分離して着手
  2. 02依存関係を含むワークツリーの準備
  3. 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 からブランチを作成します

手順:

  1. 前提条件を確認します:

    • 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 を実行して、gh CLI がインストールされていることを確認します。コマンドが失敗した場合(コマンドが見つからない場合)は、以下のメッセージを表示して停止します:
      ## 前提条件が不足しています:GitHub CLI
      
      `gh` コマンドがインストールされていません。このスキルでは、リポジトリ操作に GitHub CLI が必要です。
      
      次の場所からインストールします:https://cli.github.com/
      
    • GitHub CLI の認証: gh auth status を実行して、gh が認証済みであることを確認します。ユーザーがログインしていないと表示された場合は、以下のメッセージを表示して停止します:
      ## 前提条件が不足しています:GitHub CLI の認証
      
      GitHub CLI が認証されていません。このスキルを使用する前に、`gh auth login` を実行して認証してください。
      
  2. $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 として解析できない場合は、ユーザーに伝えて停止します
  3. 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」の選択肢を提示して、開発者に課題の種類を手動で指定するよう依頼します
  4. ブランチ名を決定します:

    • ブランチ名に使用する JIRA ID を小文字にします(例:PROJ-123 → proj-123)
    • 課題の種類がBugの場合:ブランチ名は fix/<jira-id> です(例:fix/proj-123)
    • それ以外のすべての種類(Story、Task、Epic、Sub-task など)の場合:ブランチ名は feat/<jira-id> です(例:feat/proj-123)
  5. ブランチのベースにするブランチを確認します:

    • git branch --show-current を実行して、現在の作業ディレクトリのブランチ名を取得します
    • AskUserQuestion を使用して、ベースにするブランチを開発者に尋ねます
    • 最初の(デフォルトの)選択肢には現在のブランチ名を指定します(例:develop にいる場合は develop を提案します)
    • 現在のブランチが main でない場合は、2 つ目の選択肢として main を含めます
    • 「Other」オプションを使って、開発者が別のブランチ名を入力できるようにします
  6. リモートからベースブランチを取得します:

    • git fetch origin <base-branch> を実行します
    • フェッチに失敗した場合(例:ベースブランチがリモートに存在しない場合)は、エラーを表示して直ちに停止します。ブランチやワークツリーの作成を続行しないでください。
    • ベースブランチをチェックアウトまたはプルしないでください。これにより、現在のワークツリーにある未コミットの作業が妨げられるのを防ぎます。
  7. 新しいブランチとワークツリーを同時に作成します:

    • ブランチ名がすでにローカルに存在する場合(git rev-parse --verify <branch-name> が成功する場合)は、ユーザーに通知して停止します(強制作成はしないでください)。
    • ワークツリーのパスを決定します。現在の作業ディレクトリの親ディレクトリを取得し、ブランチ名の / を - に置き換えて追加します。
      • 例:CWD が /Users/dev/my-project で、ブランチが fix/proj-123 の場合、ワークツリーのパスは /Users/dev/fix-proj-123 です。
    • ワークツリーのディレクトリがすでに存在する場合は、ユーザーに通知して停止します。
    • git worktree add <worktree-path> -b <branch-name> origin/<base-branch> を実行します。
      • このコマンドは、現在のワークツリーに触れることなく、リモートのベースブランチを基点とする新しいブランチとワークツリーを同時に作成します。
    • コマンドが失敗した場合は、エラーを表示して停止します。
  8. 新しいワークツリーに依存関係をインストールします:

    • この手順のすべてのコマンドは、新しいワークツリーのディレクトリから実行する必要があります(実行前に 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 がない場合 → 依存関係のインストールを完全にスキップします
    • インストールコマンドが失敗した場合は、エラーを表示しますが、ワークツリーは削除しないでください。開発者が手動で問題を修正する場合があります。
  9. mise の設定を信頼します:

    • 新しいワークツリーのディレクトリから mise trust を実行し、存在する .mise.toml または .tool-versions ファイルを信頼します。
    • mise がインストールされていない(コマンドが見つからない)場合は、何も表示せずこの手順をスキップします。
    • それ以外の理由でコマンドが失敗した場合は、警告を表示して続行します。
  10. .env ファイルを新しいワークツリーにコピーします:

  • 現在の作業ディレクトリに .env ファイルがあるか確認します。
  • ファイルがある場合は、新しいワークツリーのルートディレクトリにコピーします(cp .env <worktree-path>/.env)。
  • ファイルがない場合は、何も表示せずこの手順をスキップします。
  1. 新しいワークツリーに .agent ファイルを作成します:
  • ベースブランチ名を含むシンプルな設定ファイルを <worktree-path>/.agent に書き込みます。
    baseBranch=<base-branch>
    
  • 例:ベースブランチが main の場合、ファイルの内容は baseBranch=main です。
  1. 成功メッセージを表示します:

関連情報をすべて含む概要を表示します。

## 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

コメント