name: tmux-focus
description: “tmux ウィンドウの Issue/PR 切替: /tmux-focus [-w|-r] ”
tmux-focus スキル
現在の tmux ウィンドウの Issue/PR を切り替えるスキル。
使い方
/tmux-focus <number> — Issue モード
Bash で以下を実行:
~/.claude/skills/tmux-focus/scripts/tmux-issue-change.sh <number>
ウィンドウ名を issue-<number> に変更し、対応する GitHub Issue をブラウザで開く。
/tmux-focus -w <number> — PR worktree モード
gh pr view <number>で PR であることを確認する。PR でなければエラーメッセージを表示して終了。- Bash で以下を実行:
ウィンドウ名を~/.claude/skills/tmux-focus/scripts/tmux-issue-change.sh --pr <number>pr-<number>に変更し、ブラウザで PR を開く。 EnterWorktreeツールで worktree を作成する。- worktree 内で以下を実行:
gh pr checkout <number>
/tmux-focus -r <number> — PR レビューモード
gh pr view <number>で PR であることを確認する。PR でなければエラーメッセージを表示して終了。- Bash で以下を実行:
ウィンドウ名を~/.claude/skills/tmux-focus/scripts/tmux-issue-change.sh --pr <number>pr-<number>に変更し、ブラウザで PR を開く。 - worktree 内でなければ
EnterWorktreeツールで worktree を作成する。 - worktree 内で以下を実行:
gh pr checkout <number> - PR のコード差分をレビュー開始する(
gh pr diff <number>で差分を取得し、変更内容を分析)。
スクリプトが存在しない場合
~/.claude/skills/tmux-focus/scripts/tmux-issue-change.sh が存在しない場合は、以下の内容で作成して chmod +x する。
#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PR_MODE=false
if [ "${1:-}" = "--pr" ]; then
PR_MODE=true
shift
fi
if [ $# -lt 1 ]; then
echo "Usage: $0 [--pr] <number>"
exit 1
fi
NUM="$1"
if [ "$PR_MODE" = true ]; then
WINDOW_NAME="pr-${NUM}"
URL_PATH="pull/${NUM}"
else
WINDOW_NAME="issue-${NUM}"
URL_PATH="issues/${NUM}"
fi
if [ -z "${TMUX:-}" ]; then
echo "Error: Not inside a tmux session."
exit 1
fi
tmux rename-window "$WINDOW_NAME"
echo "Renamed window to: ${WINDOW_NAME}"
REMOTE_URL=$(git remote get-url origin 2>/dev/null || echo "")
if [ -z "$REMOTE_URL" ]; then
echo "Warning: No git remote found. Window renamed but browser not updated."
exit 0
fi
REPO_SLUG=$(echo "$REMOTE_URL" | sed -E 's#^(https?://[^/]+/|git@[^:]+:)##; s#\.git$##')
GITHUB_URL="https://github.com/${REPO_SLUG}/${URL_PATH}"
echo "Opening: ${GITHUB_URL}"
"${SCRIPT_DIR}/open-issue-bg.sh" "$GITHUB_URL"