branch-visualizelisted
Install: claude install-skill mjcreativelab/mjcreativelab-agent-prompts
# Branch Visualize
対象ブランチとマージ先ブランチの差分を「変更箇所 + 直接の関連範囲」に絞った構成図として可視化する。人によるレビューの補助と、作業者自身の変更範囲の俯瞰が目的。リポジトリ全体のアーキテクチャ図は作らない。
## 引数の解析
`$ARGUMENTS` を解析する(トークンはすべて位置不問。該当トークンは除去する):
- `--format mermaid|d2|html` → `{フォーマット}`。これ以外の値が指定されたら AskUserQuestion で確認する(使えないエージェントではテキストで確認する。以降の AskUserQuestion も同様)。無ければ `{フォーマット}` = auto
- `--base <branch>` → `{比較先}`
- `--models` → `{モデル詳細}` = true(モジュール依存図の代わりにクラス図/ER 図を生成する)
- `#<数字>`(例: `#100`)→ `{PR番号}`。GitHub MCP の `pull_request_read`(method: get)で PR を取得し、head ブランチを `{対象ブランチ}`、base ブランチを `{比較先}` とする(`--base` 指定があればそちらを優先)。MCP 未接続、または PR が存在しない場合はエラーを表示して終了する
- 残りの最初の位置引数 → `{対象ブランチ}`。`{PR番号}` と両方指定された場合は AskUserQuestion でどちらを対象にするか確認する。どちらも無ければ `git rev-parse --abbrev-ref HEAD` の結果
`{比較先}` が未指定の場合、次の順で解決する:
1. GitHub MCP ツールが使えるなら `list_pull_requests`(`head: <対象ブランチ>`, `state: "open"`)で open PR を検索する。1 件 → その PR の base。複数 → AskUserQuestion で選択。0 件または MCP 未接続 → 次へ(エラーにしない)
2. `git symbolic-ref refs/remotes/origin/HEAD` からデフォルトブランチを解決する。失敗したら `main` → `master` の順で存在するもの(`git rev-parse --verify`)を採用する
## 手順
### 1. 対象確定・ゲート表示
- `git rev-parse --git-dir` が失敗する(git リポジトリでない)→ エラーを表示して終了
- `{対象ブランチ}` がローカルにも `origin/` にも存在しない(`git rev-parse --verify <branch>` / `origin/<branch>` とも失敗)→ エラーを表示して終了
- 確定後、以下のブロックを 1 回表示する:
```
対象: <対象ブランチ>
比較先: <比較先ブランチ>
フォーマット: <auto | mermaid | d2 | html>
```
`{PR番号}` 指定時は「対象」行に `(PR #<番号>)` を併記する。
### 2. 差分取得
- `git diff <比較先>...<対象ブランチ> --stat` で変更ファイル一覧・追加/削除行数を取得する
- 差分が空 → 「差分なし」と表示して終了(ファイ