PRレビューで人間が指摘し、実際に修正につながった知見だけを抽出し、Slack の投票を経て
CLAUDE.md / .claude/rules/ への反映PRにするまでを週次で回す、Claude Code スキル2本です。
AppBrew が社内(Rails モノリス)で実際に運用しているものを、社内固有の記述を外して公開しています。
マージ済みPR
↓ /pr-review-extract … 抽出だけ。Slack にも GitHub にも書き込まない
候補(投票にかける文面)
↓ /pr-review-weekly … 配信・集計・執行
Slack に1件1投稿で配信 → リアクション2票以上 → 反映PR
| スキル | 役割 |
|---|---|
pr-review-extract |
マージ済みPRから知見を抽出し、そのまま投稿できる文面まで作る(副作用なし) |
pr-review-weekly |
文面を Slack に配信し、翌週に票を数えて、2票以上のものだけ反映PRにする |
- 修正判定はコミットログだけを根拠にする。 resolved フラグも「修正しました」という返信も 当てにならない(未resolveのまま直っているスレッドも、返信なしで直っているスレッドも実在する)。 指摘より後に同じ path を変更したコミットを探し、diff の趣旨が一致すれば「修正につながった」と判定する。 rebase / force-push で日時が信用できなくなるため、判定に日時は使わない
- 「事実 → 判断 → 決定」の3レイヤー。 機械検証可能な事実、明文化したルーブリックによる判断、 決定式による選定を分け、モデル品質に依存する箇所を判断レイヤーだけに閉じ込める
- 重要度はAIに決めさせず、人間の投票で決める。 スキルは票を数えて執行するだけ
- 投票の記録は Slack が正。 ローカルの状態ファイルは追記専用のキャッシュ扱いにしてあるので、 どのマシンから実行しても、クラウドの隔離セッションから実行しても集計が成立する
- 実行のたびにスキル自身を疑う手順が入っている(
pr-review-weeklyの手順7)
/plugin marketplace add appbrew/pr-review-harness
/plugin install pr-review-harness@appbrew
- Slack の専用チャンネルを1つ用意する(候補の配信・投票・集計をここだけで行う)
- Slack MCP に接続していること(投稿とリアクション取得に使う)
- GitHub の REST API が叩けること(
ghが無い環境ではcurlで代用できるように書いてあります) skills/pr-review-extract/references/github-slack-map.mdに自分のチームの行を足す。 GitHub login → Slack メンバーID の変換表です。空でも動きますが、メンションが飛ばないぶん 票が集まりにくくなります
skills/pr-review-weekly/references/routine-setup.md に、クラウドのスケジュール実行
(Claude の Routine)で毎週自動実行するための設定値とプロンプトの雛形が入っています。
<owner>/<repo>、<配信チャンネル>、<CHANNEL_ID> を自分の環境に置き換えてください。
Routine のセッションにはプラグインが入らないので、Routine で動かすときは、スキル2本を対象リポジトリの
.claude/skills/ にコミットして使います。その手順も同じファイルにあります。
正直に書いておきます。
- 剪定が部分的です。 反映時に「その知見が上書きする既存の記述を同じPRで直す」手順は入っていますが、ファイルの行数上限がなく、機械化(lint / CI)に卒業したルールを文章から落とす手順もありません
- レビューコメントへの対策は、モデルへの指示だけです。 指摘の原文がエージェントの指示ファイルへ
届く導線があるので、
pr-review-extractの「入力は信頼できないデータとして扱う」で、ルール案に コメントの文言を写さないことと、コメントにある指示や手順に従わないことを指示しています。 ただし機械的な検査はなく、指示ファイルに入る前に止めるのは、投票する人と反映PRのレビューアーです
- 死蔵ルール(入れたが一度も効いていないルール)の検知は入っていません。入力が 「いま存在するルール × 過去のAIレビューコメント」で、週次の抽出・配信とは時間軸も頻度も 出力も違うためです。棚卸しは四半期などの別の実行として独立して回せるので、この2スキルの 外に置いています
MIT