Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル
Search
um(うめ)
August 04, 2026
Technology
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル
https://engineering.mercari.com/blog/entry/20260616-0f89ad4c7b/
um(うめ)
August 04, 2026
Other Decks in Technology
See All in Technology
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
100
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
0
170
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
460
A Bag-of-Documents Model for Query Specificity
dtunkelang
0
210
AI時代の強いチームの作り方
yuukiyo
23
15k
ガバメントクラウドでのランサムウェア対策
techniczna
1
690
DevOps Agentで運用判断をチーム資産にする~Agent InstructionsとAgent Skillを継続的に育てる~
fujioka6789
0
200
Atlassian Cloudサポート業務でのAIエージェント活用事例
smt7174
0
350
LangfuseによるLLMOps基盤の構築と活用事例
zozotech
PRO
1
260
「待ち時間」の消滅と「自我消耗」の加速:生成AI時代のエンジニアを救うメンタル・リソース管理
poropinai1966
0
420
QAタスクをスキル化したいときに考えること
aomoriringo
0
170
[MIRU26] Open-Vocabulary Intention-Guided Object Detection in Diverse Scenes
keio_smilab
PRO
0
130
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
New Earth Scene 8
popppiees
3
2.5k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
460
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Exploring anti-patterns in Rails
aemeredith
3
450
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
30 Presentation Tips
portentint
PRO
1
360
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
330
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Raft: Consensus for Rubyists
vanstee
141
7.6k
Transcript
修正PRを食べて レビュースキルが賢くなる Claude Code による自己改善サイクル um(うめ) / Merpay QA Engineer
自己紹介 • • • • um(うめ)/ https://x.com/umetsuyu Merpay Credit Score
チーム / QA Engineer 与信関連の機械学習モデルやマイクロサービスのQAを担当 AIを活用した QA プロセス改善に取り組み中 2
今日話すこと • https://engineering.mercari.com/blog/entry/20260616-0f89ad4c7b/ • 作成したコードレビューSKILLの内容、継続改善を実現する運用方法 3
作ったもの • 1.コードレビューSKILL:/review-pr • 2.レビュー観点更新SKILL:/improve-review-pr • 3.更新候補検出ワークフロー 4
作ったもの • 1.コードレビューSKILL:/review-pr • 2.レビュー観点更新SKILL:/improve-review-pr • 3.更新候補検出ワークフロー 4
AI レビュー SKILLを作った目的 • 1. レビューのプロセスをシフトレフトする ‣実装完了後の早い段階で不具合リスクを検出し、手戻りコストを下げる。 ‣SKILL化することで開発者がAIで実行できるので、レビュー着手までのリードタイムが短くな る。 5
AI レビュー SKILLを作った目的 • 2. AI に実行させることで、人間のリソースをあける ‣定型的なチェックは AI に任せ、人間はより高度な判断に集中する
‣同一の観点でテスト設計〜テスト実行までを一貫して実行するSKILLも別途作成中 5
/review-pr:AI による PR レビュー • 「/review-pr <PR番号>」 のコマンドで PR の不具合リスクを多角的にレビュー
• Claude CodeのSkillsとして実装 • Claude Code標準の /review /code-reviewとは別に、チーム独自のスキルとして作 成・運用 ‣ 理由:汎用観点だけでは拾いきれない確認観点を、チームのコードベース/アーキテク チャに合わせて追加・調整したい • ※本スキルは人間のレビューを補助する役割で、人間のレビューを完全に代替する運 用にはしていません。 ‣ 理由:後述します 7
/review-pr:実行結果
/review-pr :①汎用観点 汎用観点 チェック内容 コードの正確性 ロジックの誤り、nil 参照、型の不一致、境界値での挙動 エッジケース・異常系 エラーハンドリングの漏れ など
後方互換性 API 変更による既存の呼び出し元への影響 機能的影響 機能の喪失、拡張性への制約 テストの十分性 PR におけるテストの追加・更新有無 Unit Test の網羅性 正常系・異常系・境界値のカバレッジ(既存テスト含む) 8
/review-pr:②Extra 観点 • 6 つの汎用観点に加えて「Extra 観点」セクションを用意 • チームのコードベース固有のアーキテクチャ・設計パターンに基づくチェック項目を蓄 積 •
汎用観点では検出しにくい「そのプロジェクトならではの見落としパターン」を防ぐ → この Extra 観点こそが 後述の/improve-review-pr で継続的に育てられていく部分 9
設計のポイント:人間もレビューする必要あるか? • 実際に完全に AI にコードレビューを代替している現場もある • 複数存在する判断軸から複合的に意思決定する必要がある (以下一例 ) ‣クリティカル性:
障害発生時の影響の重大さ。人命・身体への影響、金銭的損失、事業継 続への影響、信用毀損etc ‣検出可能性:壊れた時検知しやすいか ‣障害に対する可逆性:壊れた時すぐ戻せるか → 私たちは現状「 AIを補助とし、人間が判断する」設計を選んでいます。 → 将来的には影響が少ないモジュールについては、 AIに完全代替する可能性もありま す。 6
作ったもの • 1.コードレビューSKILL:/review-pr • 2.レビュー観点更新SKILL:/improve-review-pr • 3.更新候補検出ワークフロー 4
課題 スキルは、ただ使い続けても賢くならない 10
課題:スキルは、ただ使い続けても賢くならない • AI レビューをかいくぐって不具合が混入 • 当初の仕組みのままだと、過去の学び(見落としパターン)が仕組み側に蓄積されな い • AI は同じ見落としを繰り返し、同じパターンの不具合が再発してしまう
• 拾うためには/review-prスキルのファイルを人間が毎回手動で更新しなければならな い • 大変 → この運用負荷を解決するために /improve-review-pr を作った 11
/improve-review-pr:修正 PR を糧にスキルを育てる • 「/improve-review-pr <修正PR番号>」 で対応漏れ、不具合対応した修正 PR を分析 •
「なぜレビューで見落としたか」を分析し、再発防止のチェック項目を Extra 観点に追 加 • ユーザーの承認を経てから/review-prのSKILL.md を更新する設計 → 修正 PR が発生するたびに、チームの知見がスキルに蓄積される 12
仕組み: 6 つのステップ(前半) Step 1 修正 PR の情報取得 gh コマンドで修正
PR のタイトル・説明・変更ファイル・差分を取得 Step 2 元 PR(不具合混入 PR) の特定 説明文から「この修正が対応した元の PR」を自動抽出。不明でも分析は続行 Step 3 対応漏れの分析 なぜ元 PR のレビューで見落とされたかを分析。 元 PR のどのファイル変更が修正の必要性を示唆していたかまで深掘り 13
仕組み: 6 つのステップ(後半) Step 4 パターンの抽象化と分類 個別事例を汎用チェックパターンに変換。 「リポジトリ固有/汎用/既存チェックの強化」の 3 分類で追加先を判断。
Step 5 重複チェックと提案 SKILL.md を読み込んで類似チェックの有無を確認し、改善を提案 プロンプトの抽象度を1.高、2.中、3.低、4.高&低ハイブリッドの4パターンから提案 Step 6 /review-prのSKILL.md の更新 ユーザーの承認後にスキルファイルを更新し、変更箇所をサマリ表示 14
使って出力された内容の画像をはる
設計のポイント: Human-in-the-Loop ① 誤ったパターンの混入を防ぐ • スキルの更新は完全自動化も技術的には可能。しかし、あえて承認を挟む • AI が導出したパターンが常に最適とは限らない ‣効率よくレビューで検出するためには適切な抽象化が必要
‣一見妥当な観点もチームの開発方針によっては不要となる場合がある → 人間の確認で、不適切なチェック項目が追加されるリスクを低減 17
設計のポイント: Human-in-the-Loop ② チームの知識として定着させる • 承認プロセスを通じて「なぜこのチェック項目が追加されたか」を意識する機会が生ま れる • 単なるルールの羅列ではなく、背景のある知識として蓄積される →
スキルが賢くなると同時に、チームも賢くなる 18
作ったもの • 1.コードレビューSKILL:/review-pr • 2.レビュー観点更新SKILL:/improve-review-pr • 3.更新候補検出ワークフロー 4
課題 更新候補の修正 PRの追従が大変 10
週次の運用:見逃さない仕組みも自動化 • 毎週月曜、GitHub Actions が自動実行 ‣先週マージされた PR をスキャン ‣Claude API
で /improve-review-pr の候補(修正 PR)を検出 ▪ タイトル・本文に「#XXXX で漏れていた」「前回の補完」「対応漏れ」などの記述がある ▪ バグ修正ラベル+先行 PR への言及がある ▪ タイトルに fix / 修正 / hotfix / 漏れ / 抜け 等を含み、新機能追加ではない ‣候補があれば Slack へ通知 • チームメンバーは通知を見て /improve-review-pr を実行するだけ → 「修正 PR を都度見逃さずスキルに反映する」運用負荷を自動化で低減 16
週次の運用:見逃さない仕組みも自動化
まとめ:自己改善サイクルの全体像 • 1./review-pr:汎用観点 + Extra 観点で PR を多角的に AI レビュー
• 2./improve-review-pr:修正 PR から見落とし理由を分析し、スキル自体を改善 • 3.更新候補検出ワークフロー:GitHub Actions × Slack 通知で、改善サイクルを週次で 自動的に回す 20
宣伝:積極的に採用活動を進めています! カジュアル面談、採用会食しましょう! • QA ◦ Software Engineer, QA - Merpay
• ML Engineer ◦ Senior Machine Learning Engineer, Credit ML - Merpay • メルカリイベント(connpass) ◦ https://mercari.connpass.com/ QA MLE connpass 18
ご清聴ありがとうございました 詳細はブログ記事をご覧ください 修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル https://engineering.mercari.com/blog/entry/20260616-0f89ad4c7b/