| name | review-fix |
| description | 現在のブランチに紐づくMerge Requestのレビューコメントを取得し、ひとつずつコードを修正する。 |
| disable-model-invocation | true |
| allowed-tools | Bash(git:*), Bash(glab:*), Read, Grep, Glob |
Merge Request レビューコメント対応
現在のブランチに紐づくMerge Requestのレビューコメントを取得し、ひとつずつ対応する。
手順
1. MRの特定
現在のブランチ名を取得し、そのブランチに紐づくオープンなMRを特定する:
glab mr list --source-branch $(git rev-parse --abbrev-ref HEAD)
- MRが見つからない場合は、ユーザーにその旨を通知して終了する
- 複数のMRが見つかった場合は、一覧を表示してユーザーに選択してもらう
2. レビューコメントの取得
glab api でMRのノート(コメント)を取得する:
glab api projects/<project-path>/merge_requests/<mr-iid>/notes
<project-path> はリモートURLから判別する(/ は %2F にエンコードする)
- 取得したノートのうち、
"system": true のものはシステムコメントなので除外する
"type": "DiffNote" のものがレビューコメントである
- レビューコメントが0件の場合は、ユーザーにその旨を通知して終了する
3. レビューコメントへの対応
レビューコメントをひとつずつ、以下のサイクルで対応する:
3-1. コメント内容の理解
対象のコメントについて以下を把握する:
body — コメント本文
position.new_path / position.old_path — コメントが付けられたファイル
position.new_line / position.old_line — コメントが付けられた行
該当ファイルを読み込み、コメントの意図を理解する。
3-2. 疑問がある場合 → 返信
コメントの意図が不明瞭で修正方針が定まらない場合は、glab api でコメントに返信する:
glab api projects/<project-path>/merge_requests/<mr-iid>/discussions/<discussion-id>/notes --method POST -f "body=<返信内容>"
返信内容はユーザーに確認してから送信する。
3-3. 疑問がない場合 → 修正
コメントに沿ってコードを修正する。修正の際は:
- 対象ファイルを必ず先に読んで既存のコードを理解してから変更する
- コメントの要求を正確に反映する
- 過度な変更を避け、コメントで求められた範囲に留める
3-4. コミット
修正が済んだらコミットする:
- 変更したファイルのみをステージングする(
git add で個別指定)
- コミットメッセージは日本語で書く
- フォーマット:
git commit -m "$(cat <<'EOF'
<修正内容を簡潔に日本語で記述>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
EOF
)"
4. 完了報告
すべてのレビューコメントへの対応が終わったら、以下を表形式でユーザーに報告する:
| コメント | ファイル | 内容 | 対応 |
|---|
| コメントID | 対象ファイル | コメント本文の要約 | 修正 or 返信 |
次のアクションをサジェストする:
/review-reply — 修正をpushしてレビューコメントに返信
注意事項
- レビューコメントの対応順序は、コメントIDの昇順(古い順)とする
- 1つのコメントにつき1コミットを原則とする(関連性が高い場合はまとめてもよい)
- 修正内容に自信がない場合は、コミット前にユーザーに確認する
- リモートへのプッシュは自動では行わない。すべての対応完了後にユーザーに確認する