user icon

Claude Codeのスキルを自作してPRレビュー確認を楽にした話

発端

開発メンバーがClaude CodeでPRのCodeRabbitレビューを確認しようとした時の話です。コメント数が多いPRだと、ghコマンドで取得したJSONが大きすぎてツール出力がファイルに退避され、そのファイルを読もうとするとまた大きすぎてさらに別ファイルに退避され……と連鎖して、動作が不安定になるという問題が起きていました。

結局Claudeから「ブラウザでGitHubのPRページを開き、具体的な指摘内容をコピペしてもらうのが一番確実です」と返されたそうです。

そこでClaude Codeのスキルで何とかできないかと思い、作ってみました。

Claude Codeのスキルとは

/review-pr 123のようにスラッシュコマンドで呼び出せるカスタムワークフローです。Markdownで手順を書いておくと、Claudeがその通りに動いてくれます。

作ったもの

PRレビューコメントの取得→正規化→表示を3つのシェルスクリプトに分けました。

scripts/
├── fetch_pr_comments.sh      # GitHub APIから3系統のコメントを取得
├── normalize_pr_comments.sh  # 重複排除・重要度分類 → triaged.json
└── render_pr_summary.sh      # サマリ/全文/重要度別の表示

ポイントはClaudeに巨大なJSONを直接扱わせないことです。シェルスクリプト側でjqを使ってデータを整理し、Claudeには整理済みの結果だけを渡します。

重要度の自動分類

CodeRabbitのコメントには絵文字で重要度が付いています(🔴Critical、🟠Major、🟡Minor)。これをjqで読み取って自動分類し、まずサマリで全体像を見てから、Criticalだけ詳細表示……と段階的に確認できるようにしました。

コメントが多くても「まずCriticalの3件だけ見る」ということができます。

使ってみて

/review-pr 5と打つと、こんな感じでサマリが出ます。

サマリ表示後にClaudeが「Minorの詳細も確認しますか?」と聞いてくれるので、そこからCritical+Majorだけ詳細表示したり、全件の内容を確認したりと、段階的に掘り下げることもできます。

まだ十数件程度のコメントがあるPRでしか試せていないので、もっとコメント数が多いPRでも問題なく使えるかはこれから検証していくところです。

ただ、元々の問題は「APIレスポンスの巨大JSONがそのままClaudeのツール出力に流れてしまう」ことでした。シェルスクリプト側でファイルに保存・整理してからClaude側に渡すこのアプローチなら、コメント数が増えても耐えられるのではと期待しています。

Claude Codeのスキルは割と簡単に作れるので、今後も開発フローの中で自動化できそうなものを見つけたら、スキル化を試していきたいと思います。

Facebooktwitterlinkedintumblrmail