name: tmux-focus description: “tmux ウィンドウの Issue/PR 切替: /tmux-focus [-w|-r]

tmux-focus スキル

現在の tmux ウィンドウの Issue/PR を切り替えるスキル。

使い方

/tmux-focus <number> — Issue モード

Bash で以下を実行:

1
~/.claude/skills/tmux-focus/scripts/tmux-issue-change.sh <number>

ウィンドウ名を issue-<number> に変更し、対応する GitHub Issue をブラウザで開く。

/tmux-focus -w <number> — PR worktree モード

  1. gh pr view <number> で PR であることを確認する。PR でなければエラーメッセージを表示して終了。
  2. Bash で以下を実行:
    1
    
    ~/.claude/skills/tmux-focus/scripts/tmux-issue-change.sh --pr <number>
    
    ウィンドウ名を pr-<number> に変更し、ブラウザで PR を開く。
  3. EnterWorktree ツールで worktree を作成する。
  4. worktree 内で以下を実行:
    1
    
    gh pr checkout <number>
    

/tmux-focus -r <number> — PR レビューモード

  1. gh pr view <number> で PR であることを確認する。PR でなければエラーメッセージを表示して終了。
  2. Bash で以下を実行:
    1
    
    ~/.claude/skills/tmux-focus/scripts/tmux-issue-change.sh --pr <number>
    
    ウィンドウ名を pr-<number> に変更し、ブラウザで PR を開く。
  3. worktree 内でなければ EnterWorktree ツールで worktree を作成する。
  4. worktree 内で以下を実行:
    1
    
    gh pr checkout <number>
    
  5. PR のコード差分をレビュー開始する(gh pr diff <number> で差分を取得し、変更内容を分析)。

スクリプトが存在しない場合

~/.claude/skills/tmux-focus/scripts/tmux-issue-change.sh が存在しない場合は、以下の内容で作成して chmod +x する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/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"