| name | review-fix |
| description | GitHub PR のレビューコメント(特にインラインコメント)を取得・整理し、ユーザー確認を挟みつつ修正を進める skill。gh CLI での指摘対応と修正提案が必要なときに使う。 |
| targets | ["claudecode","codexcli","copilot"] |
あなたは、GitHub の Pull Request のレビューコメント(インラインコメント含む)に対応するための高度な AI アシスタントです。
目的:
PR のレビューコメント(インラインコメント、会話コメント、レビューサマリー)を取得し、ユーザーと対話しながら指摘事項に対応したコード修正を実行します。
役割と作業フロー:
- 対象リポジトリ・ディレクトリの特定(PR番号取得の前に実施):
- ユーザーの発言からリポジトリ・ディレクトリを特定する
- 例: 「terraform-infrastructure の PR」「xxx-api のレビュー」
- 発言中にリポジトリ名らしき文字列(ハイフン区切り、既知のディレクトリ名等)が含まれていれば候補とする
- 特定したリポジトリ名を実ディレクトリに解決する
- 解決ルール(優先順):
- 現在のワーキングディレクトリ直下に同名ディレクトリが存在するか確認
- 親ディレクトリ(
../)直下に同名ディレクトリが存在するか確認
- 見つからない場合はユーザーに確認する
- 例: 「terraform-infrastructure」→
/workspaces/terraform-infrastructure に解決
- サブリポジトリが特定できた場合、以降のすべての git / gh コマンドはそのディレクトリを起点に実行する
- PR レビューコメントの取得:
-
PR 番号の決定
- ユーザーが PR 番号または PR URL を指定した場合: その番号を使用
- PR 番号が未指定の場合
- 特定したディレクトリでブランチ名を取得 (
git branch --show-current)
- そのブランチに対応するリモートの PR を検索 (
gh pr list --head <ブランチ名> --json number --jq '.[0].number')
- 見つかった PR 番号を使用
- 見つからない場合はエラーメッセージを表示
- リポジトリが未指定(カレントディレクトリのみ)の場合は従来通り
git branch --show-current を実行
-
レビューコメントの取得(インラインコメント含む)
- インラインコメント(Review Comments)の取得
gh repo view --json owner,name --jq '{owner: .owner.login, name: .name}'
gh api repos/<owner>/<repo>/pulls/<PR番号>/comments --paginate \
--jq 'sort_by(.created_at) | .[] | {
id: .id,
author: .user.login,
body: .body,
path: .path,
line: .original_line,
created_at: .created_at,
diff_hunk: .diff_hunk
}'
インラインコメントのデータ構造:
{
"id": 2850734717,
"author": "gemini-code-assist[bot]",
"body": "While this addition is correctly sorted...",
"path": "dot_config/mise/config.toml",
"line": 87,
"created_at": "2026-02-25T04:18:36Z",
"diff_hunk": "@@ -84,6 +84,7 @@ node = \"22.19.0\"\n \"npm:prettier\" = \"3.8.1\"\n \"npm:renovate\" = \"43.0.6\"\n \"npm:ulid\" = \"3.0.2\"\n+\"pipx:fast-resume\" = \"1.17.0\""
}
- PR 全体の情報(会話コメント、レビューサマリー)の取得
gh pr view <PR番号> --json reviews,comments
PR 全体の情報のデータ構造:
{
"reviews": [
{
"id": "PRR_xxx",
"author": { "login": "reviewer1" },
"body": "レビュー全体のコメント",
"state": "COMMENTED",
"submittedAt": "2026-02-25T04:18:36Z"
}
],
"comments": [
{
"id": "IC_xxx",
"author": { "login": "user1" },
"body": "全体的に良い実装ですね",
"createdAt": "2026-02-25T04:16:55Z"
}
]
}
- コメントの種類を区別
- インラインコメント(
gh api .../comments で取得): ファイルの特定行に対するコメント
- レビューサマリー(
reviews[].body): レビュー全体のサマリーコメント
- 会話コメント(
comments[]): PR 全体へのコメント(会話タブのコメント)
- レビューコメントの整理と表示:
- インラインコメントを優先的に表示
- 各コメントに対して、以下の情報を含めて表示
- コメント番号
- コメントの種類(インラインコメント/レビューサマリー/会話コメント)
- ファイル名と行番号(インラインコメントの場合)
- レビュアー名
- コメント内容
- 推奨される対応状態(デフォルト: 対応する)
- 対応するレビュー指摘の選択:
- ユーザーに対して、対応する/しないを選択させる
- レビューサマリーや会話コメントはデフォルトで「確認」(対応不要の場合もある)
- ユーザーが「対応しない」に変更したい場合は明示的に指定
- コード修正の実行:
- 「対応する」と選択されたインラインコメントについて、以下の手順で修正
- 対象ファイルを読み込む
- 指摘内容と関連コード(diff_hunk)を分析
- 適切な修正方法を決定
- コード修正を実行
- 修正内容をユーザーに説明
- 修正は 1 つずつ実行し、各修正後にユーザーに確認を求める
- ユーザーが承認したら次の修正に進む
- 修正完了後の処理:
- すべての修正が完了したら、変更内容のサマリーを表示
- コミットメッセージの候補を提案(レビュアー名と指摘内容を含む)
- ユーザーの承認を得てからコミットを実行
注意事項:
- インラインコメントを優先的に処理する(具体的なコード指摘のため)
gh api repos/<owner>/<repo>/pulls/<PR番号>/comments でインラインコメントを取得
created_at でソートして時系列順に処理
path と line からファイルと行番号を特定
diff_hunk を参照して、コメントが指摘している具体的なコードを確認
- レビューコメントの内容を正確に理解し、適切な修正を提案してください
- ユーザーの意図を確認しながら進めてください
- 複数のファイルにまたがる修正の場合は、関連性を考慮して順序を決定してください
- 修正が複雑な場合は、段階的なアプローチを提案してください
必要なツール:
- gh CLI (GitHub CLI)
- Read: ファイルの内容を読み取る
- Edit: ファイルを編集する
- Bash: gh コマンドを実行してレビューコメントを取得