既存の GitHub Issue から Git Worktree を使った作業ブランチを作成する。ユーザーが「Issue #123 から作業を開始したい」「既存のIssueで作業する」と言ったときに使用します。
Install
npx skillscat add autofor/claude-code-config/gh-worktree-from-issue Install via the SkillsCat registry.
SKILL.md
Git Worktree from Issue スキル
このスキルは、既存の GitHub Issue から Git Worktree を使って作業ブランチを作成する標準手順を提供します。
⚠️ 重要な禁止事項
- master(またはmain)ブランチで直接コード修正を行わない
- master ブランチで
git commitやgit pushを提案しない - 既存Issueから作業を開始する際は、必ずこのスキルを使用する
実行手順
0. 古い Worktree の自動掃除
前回のセッションで削除が遅延された Worktree がある場合、自動的に削除する:
bash ~/.claude/skills/gh-pr-approve/cleanup-stale-worktrees.sh出力がない場合は掃除不要。
1. 引数の確認とIssue取得
引数がある場合(例: /gh-worktree-from-issue 123):
- 指定されたIssue番号の詳細を取得
gh issue view <Issue番号> --json number,title,labels,state引数がない場合:
- リポジトリのOpen状態のIssue一覧を取得してユーザーに選択肢を提示
gh issue list --state open --json number,title,labels --limit 50Issue一覧の表示例:
以下のOpen Issueが見つかりました:
1. #123 - プレビュー機能の追加 (feature)
2. #124 - パースエラーの修正 (bug)
3. #125 - ドキュメント更新 (documentation)
どのIssueで作業を開始しますか?番号を入力してください:2. Issueタイトルからブランチ名を自動生成
Issue情報から適切なブランチ名を生成する。
生成ルール:
- Issueのラベルまたはタイトルから
featureorfixを判定- ラベルに
bug,fix,hotfixが含まれる →fix/ - それ以外 →
feature/
- ラベルに
- Issue番号を必ず含める:
issue-<番号> - タイトルから主要なキーワードを抽出(英数字、ハイフン区切り)
生成例:
Issue #123: "プレビュー機能の追加" (ラベル: enhancement)
→ feature/issue-123-preview-feature
Issue #456: "Fix: パースエラーの修正" (ラベル: bug)
→ fix/issue-456-parse-error
Issue #789: "ドキュメント更新" (ラベル: documentation)
→ feature/issue-789-document-update日本語タイトルの英語変換例(簡易的):
- "追加" → "add"
- "修正" → "fix"
- "更新" → "update"
- "改善" → "improve"
- "削除" → "remove"
3. Git リポジトリ情報の取得
現在のリポジトリ名を取得する:
git remote -vプロジェクト名を抽出(例: claude-code-config)
4. Git Worktree コマンドの実行
まず init モード(.bare 構造)かどうかを検出する:
GIT_COMMON=$(git rev-parse --git-common-dir)
if [ "$(basename "$GIT_COMMON")" = ".bare" ]; then
# init モード: コンテナ内にサブディレクトリとして作成
CONTAINER_DIR="$(dirname "$GIT_COMMON")"
WORKTREE_DIR="${CONTAINER_DIR}/<ブランチ種別>"
else
# 従来モード: 隣接ディレクトリに作成
PROJ=$(basename "$(git rev-parse --show-toplevel)")
WORKTREE_DIR="../${PROJ}-<ブランチ種別>"
fi
git worktree add "$WORKTREE_DIR" -b <ブランチ名>具体例(従来モード):
git worktree add ../claude-config-feature -b feature/issue-123-preview-feature具体例(init モード):
# コンテナが ~/projects/my-project/ の場合
git worktree add ~/projects/my-project/feature -b feature/issue-123-preview-feature5. 作業ディレクトリへの移動
ステップ 4 で決定した WORKTREE_DIR に移動する:
cd "$WORKTREE_DIR"5a. 空コミットを作成して push
Worktree 作成直後は差分がないため、空コミットでブランチをリモートに push する:
git commit --allow-empty -m "chore: start work on #<Issue番号>"
git push -u origin <ブランチ名>5b. Draft PR を作成
gh pr create --draft --title "WIP: <Issueタイトル>" --body "Closes #<Issue番号>
作業中..."5c. クリップボードにコピー
Worktree の絶対パスを取得し、クリップボードにコピーする:
WORKTREE_ABSPATH="$(cd "$WORKTREE_DIR" && pwd)"
bash ~/.claude/skills/_shared/copy-to-clipboard.sh "cd ${WORKTREE_ABSPATH} && claude"- コマンドが 成功 した場合 → 完了メッセージに「📋 クリップボードにコピー済み」と表示
- コマンドが 失敗 した場合 → 完了メッセージに「⚠ 手動でコピーしてください」と表示し、コピー用テキストをそのまま表示
6. 作業開始の確認メッセージ
ユーザーに以下のメッセージを表示:
Issue #<番号> から作業を開始しました。
Issue: <タイトル>
ブランチ: <ブランチ名>
作業ディレクトリ: ../<プロジェクト名>-<ブランチ種別>
Draft PR: #<PR番号>
📋 クリップボードにコピー済み: cd <Worktreeの絶対パス> && claude
新しいターミナルで貼り付けて作業を開始してください。
作業完了後は `/gh-pr-create` で Draft PR を Ready for Review に変更してください。実行例
# ユーザー入力: /gh-worktree-from-issue 123
# 1. Issue #123 の情報を取得
# タイトル: "プレビュー機能の追加"
# ラベル: enhancement
# 2. ブランチ名を生成
# → feature/issue-123-preview-feature
# 3. Worktree を作成
git worktree add ../claude-config-feature feature/issue-123-preview-feature
# 4. ディレクトリに移動
cd ../claude-config-feature
# 5a. 空コミット + push
git commit --allow-empty -m "chore: start work on #123"
git push -u origin feature/issue-123-preview-feature
# 5b. Draft PR を作成
gh pr create --draft --title "WIP: プレビュー機能の追加" --body "Closes #123
作業中..."
# → Draft PR #124 作成
# 6. 確認メッセージを表示
# "Issue #123 から作業を開始しました..."Worktree のメリット
- ✅ ブランチ切り替え時のファイル変更が不要
- ✅ ビルドや node_modules 再構築が不要
- ✅ 緊急対応が入っても作業中のコードを退避する必要がない
- ✅ 複数の作業を並行して進められる
注意事項
- Issue番号は必ずブランチ名に含める(後でPR作成時に紐付けるため)
- Worktreeを削除する前にコミット・プッシュを忘れずに行う
.gitフォルダは元のリポジトリで共有される- PRマージ後は忘れずにWorktreeを削除する
次のステップ
作業完了後は、以下のスキルを使用して Draft PR を Ready for Review に変更:
/gh-pr-create- 既存 Draft PR を検出して Ready for Review に変更(Draft PR がない場合は新規作成)
Worktree 一覧の確認
必要に応じて、以下のコマンドで現在のWorktree一覧を確認できる:
git worktree list