linear-worktree について
linear-worktree は、Linear issue 用に main から Git worktree を作成するスキルです。issue の URL やテキストから ID とブランチ名を解析し、配置先と移動コマンドを提示します。
主な機能
- 01Linear URL と issue テキストの解析
- 02issue ID とブランチ名の生成
- 03作成前の origin main 取得
- 04隣接ディレクトリへの Git worktree 作成
- 05パス・ブランチ・cd コマンドの提示
活用シーン
- 01Linear issue の分離開発を開始
- 02issue URL から worktree を作成
- 03issue ID を使った worktree の設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mblode/ agent-skills --skill linear-worktreeインストール後、Claude Code で/linear-worktreeを入力して読み込まれたか確認します。
同梱ファイルconfig.json
詳細
linear-worktree
Linear のイシュー用に、現在のリポジトリの兄弟ディレクトリとして、main から Git ワークツリーを作成します。
このチェックリストをコピーして追跡してください。
Worktree creation progress:
- [ ] Step 1: Resolve REPO_ROOT / REPO_NAME / REPOS_BASE
- [ ] Step 2: Parse input into ISSUE_ID and BRANCH
- [ ] Step 3: git fetch origin main
- [ ] Step 4: git worktree add at $REPOS_BASE/$REPO_NAME-$ISSUE_ID
- [ ] Step 5: Report worktree path, branch, and cd command with resolved paths
セットアップ
次の3つの変数を解決します。
- Git リポジトリ内にいる場合(最も一般的):
REPO_ROOT=git rev-parse --show-toplevel、REPO_NAME= そのベース名、REPOS_BASE= その親ディレクトリ。 - Git リポジトリ内ではないが、
config.jsonにrepos_baseがある場合:それをREPOS_BASEとして使用します。ユーザーにリポジトリのフォルダーを尋ねます。 - どちらにも該当しない場合:リポジトリのフルパスを尋ねます。
入力
ユーザーは次のいずれかを指定します。
- Linear URL:
https://linear.app/myteam/issue/ABC-58/add-dark-mode-toggle - プロンプトとしてコピー:
ABC-58 Add dark mode toggle to settings page - イシュー ID のみ:
ABC-58
解析
すべての解析で2つの値を生成します。ISSUE_ID(小文字)と BRANCH(ID + スラッグ)です。
URL から
/issue/の後のパスセグメントからイシュー ID を抽出します →ISSUE_ID=abc-58- 最後のパスセグメントをスラッグとして使用します →
BRANCH=abc-58-add-dark-mode-toggle
プロンプトとしてコピーしたテキストから
- 最初のトークンがイシュー ID です →
ISSUE_ID=abc-58 - 残りのテキストをスラッグ化します。小文字にし、スペースを
-に置き換え、バッククォート/括弧/.../引用符/#/@を削除し、連続するハイフンをまとめ、先頭と末尾のハイフンを削除します。 BRANCH=abc-58-<slug>
例: ABC-58 Add dark mode toggle (don't break "light" default)
→ abc-58-add-dark-mode-toggle-dont-break-light-default
イシュー ID のみの場合
ID を小文字にします → ISSUE_ID = abc-58。ユーザーがブランチ用の説明を指定した場合はそれをスラッグ化し、指定がなければ BRANCH = abc-58 とします。
ワークツリーの作成
git -C $REPO_ROOT fetch origin main
git -C $REPO_ROOT worktree add \
-b $BRANCH \
$REPOS_BASE/$REPO_NAME-$ISSUE_ID \
main
これにより、$REPOS_BASE/$REPO_NAME-$ISSUE_ID(例:/Users/you/Code/myrepo-abc-58)にワークツリーが作成されます。これはメインリポジトリの中ではなく、その兄弟ディレクトリです。
作成後
実際に解決されたパスを使って、ワークツリーのパス、ブランチ名、cd コマンドをユーザーに伝えます。
Worktree: /Users/you/Code/myrepo-abc-58
Branch: abc-58-add-dark-mode-toggle
Run: cd /Users/you/Code/myrepo-abc-58
エッジケースと注意点
- ブランチは存在するが、チェックアウトされていない場合:
-bを外し、git worktree add $REPOS_BASE/$REPO_NAME-$ISSUE_ID $BRANCHを使用します。 - ブランチが別のワークツリーでチェックアウトされている場合:
--forceは使用しないでください。git worktree listを実行し、既存のワークツリーにcdするようユーザーに伝えます。 - ディレクトリがすでに存在する場合:削除する前にユーザーに確認します。忘れられたワークツリーの可能性があります。
- 必ず先にフェッチする:
git worktree addの前にgit fetch origin mainを実行します。そうしないと、古いベースからワークツリーが作成されます。 - 兄弟であり、子ではない:ワークツリーのパスは
$REPO_ROOTの隣に置き、決してその中には作成しません。 - 「ブランチを作成する」とは、ワークツリーを作成することです:
git checkout -bではなく、git worktree addを使用します。 - 必ず最後に
cdする:ユーザーが元のリポジトリにとどまるなら、ワークツリーは役に立ちません。