Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Claude Code GitHub Actionsによる 自動レビューシステムの一元化と最適化
Search
今津快斗
November 28, 2025
85
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Claude Code GitHub Actionsによる 自動レビューシステムの一元化と最適化
2025/11/29 機械学習の社会実装勉強会第53回 今津快斗
今津快斗
November 28, 2025
More Decks by 今津快斗
See All by 今津快斗
Codexで実現する「AIがPCを持つ」開発環境
kaitimadu
0
89
メモを取るだけだったMTGがAIによってプロジェクト知識の共有拠点になった
kaitimadu
0
150
Terraform Apply失敗パターンの自動分類と学習型レビューチェックリスト生成による再発防止システムの構築
kaitimadu
1
220
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
520
Typedesign – Prime Four
hannesfritz
42
3.2k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
520
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Faster Mobile Websites
deanohume
310
32k
The Cult of Friendly URLs
andyhume
79
7k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
Heart Work Chapter 1 - Part 1
lfama
PRO
9
36k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Designing for Performance
lara
611
70k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
240
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
390
Transcript
Claude Code GitHub Actionsによる 自動レビューシステムの一元化と最適化 2025/11/29 機械学習の社会実装勉強会第53回 今津快斗
目次 • Claude Code GitHub Actionsとは • 自動レビュー • メンション呼び出し
• 背景と課題 • ワークフローを一元化 • 社内コーディング規則の組み込み • レビューコメント最適化 • BotによるPRのレビュー無効化 • まとめ 2
目次 • Claude Code GitHub Actionsとは • 自動レビュー • メンション呼び出し
• 背景と課題 • ワークフローを一元化 • 社内コーディング規則の組み込み • レビューコメント最適化 • BotによるPRのレビュー無効化 • まとめ 3
Claude Code GitHub Actionsとは Anthropic社が提供する公式のGitHub Actions統合 公式リポジトリ: anthropics/claude-code-action@v1 モデル一覧 •
claude-haiku-4-5-20251001 ➢ 特徴: 最速のモデル • claude-sonnet-4-5-20250929 ➢ 特徴: 最も賢いモデルで複雑な エージェントとコーディングに対応 • claude-opus-4-1-20250805 ➢ 特徴: 専門的な推論タスクに対応 Sonnet 3.5モデルは 2025年10月28日に廃止 4
Claude Code GitHub Actionsとは 流れイメージ PR作成 イベントを 検知 GitHub Actions実行
Claude実行、 レスポンス • pull_request ➢ opened ➢ ready for review ➢ synchronize • issue_comment ➢ created etc. • Anthropic API Key • モデル指定 • プロンプト チェック CLAUDE.md 5
自動レビュー steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth:
0 - name: Automatic PR Review uses: anthropics/claude-code-action@v1 with: anthropic_api_key: ${{ secrets.anthropic_api_key }} track_progress: true claude_args: | --model claude-sonnet-4-5-20250929 prompt: | REPO: ${{ github.repository }} PR NUMBER: ${{ github.event.pull_request.number }} 以下プロンプト PR内の差分をもとに、渡した プロンプトの内容でレビューを行 う トリガー条件例 v1で必須 6
自動レビュー 出力例 リポジトリ特有 (後述) 7
メンション呼び出し steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth:
1 - name: Run Claude Code id: claude uses: anthropics/claude-code-action@v1 with: anthropic_api_key: ${{ secrets.anthropic_api_key }} track_progress: true claude_args: | --model claude-sonnet-4-5-20250929 prompt: | 以下プロンプト PRコメントで以下のように記述: @claude [メッセージ ] PRの変更内容を理解した上で回答 トリガー条件例 8
メンション呼び出し 出力例 @claude のみで起動 9
目次 • Claude Code GitHub Actionsとは • 自動レビュー • メンション呼び出し
• 背景と課題 • ワークフローを一元化 • 社内コーディング規則の組み込み • レビューコメント最適化 • BotによるPRのレビュー無効化 • まとめ 10
背景と課題 背景 ➢ 社内のほとんどのリポジトリで導入 ➢ リポジトリごとに個別管理 課題 1. 管理コスト ➢
ワークフロー更新が大変 ➢ 設定の不整合が発生 2. レビュー品質の不統一 ➢ 社内コーディング規則が反映されない ➢ リポジトリごとに異なる基準 3. レビューの非効率性 ➢ レビューコメントが長すぎる ➢ Draft中もコミットごとに通知 Claudeワークフローの導入と README.mdの更新に関するPRのレビュー 11
目次 • Claude Code GitHub Actionsとは • 自動レビュー • メンション呼び出し
• 背景と課題 • ワークフローを一元化 • 社内コーディング規則の組み込み • レビューコメント最適化 • BotによるPRのレビュー無効化 • まとめ 12
ワークフローを一元化 9つのリポジトリそれぞれでワークフローを置いていて、管理が大変 →バージョンを変えるだけでも9つのPRが必要 global-workflowsリポジトリにreusableワークフロー を配置し、各リポジトリから参照する形に変更 変更前 変更後 13
ワークフローを一元化 特有のプロンプト プロジェクト特有のプロンプト リポジトリに適したレビューポイントを指定したい! →変数として、Reusableワークフローに渡す 例:Terraformリポジトリ(一部抜粋) jobs: auto-review: uses: claude-review-reusable.ymlのパス@master
secrets: anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} with: project_specific_prompt: | -セキュリティへの影響 - HCL構文と構造の適切性 - terraform plan結果の妥当性 トリガーWF 再利用WF global-workflows terraform 14
ワークフローを一元化 コード例 on: pull_request: types: [opened, synchronize, reopened, ready_for_review] jobs:
auto-review: uses: claude-review-reusable.ymlのパス@master secrets: anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} with: project_specific_prompt: | 以下プロジェクト特有のプロンプト on: workflow_call: inputs: project_specific_prompt: required: false type: string default: '' secrets: anthropic_api_key: required: true jobs: 以下job内容 Reusableワークフロー(global-workflows) トリガーワークフロー(各リポジトリ) 注意 secretsはトリガー用ワークフローから渡さないと行けない! 15
ワークフローを一元化 まとめ メリット • global-workflowsの修正のみで全リポジトリに反映 • 更新作業が1回で完了 • 設定の統一 デメリット
• reusableワークフローが止まると全リポジトリで停止 16
目次 • Claude Code GitHub Actionsとは • 自動レビュー • メンション呼び出し
• 背景と課題 • ワークフローを一元化 • 社内コーディング規則の組み込み • レビューコメント最適化 • BotによるPRのレビュー無効化 • まとめ 17
社内コーディング規則の組み込み Claude Code GitHub Actionsに社内コーディング規則(Confluence)を読み込ませ、 全リポジトリで統一されたコーディング規約を自動適用できるようにする 案1 Atlassian APIを用いて、毎回Confluenceを見に行く 案2
global-workflowsリポジトリにmdファイルとして配置して、 GitHub Appを使って読み取る 18 VS
社内コーディング規則の組み込み 案1 案1 Atlassian APIを用いて、毎回Confluenceを見に行く リポジトリ(トリガー) 各プロジェクト コーディング規則 Confluence Claude
1. PRレビュー依頼 Atlassian API key 2. APIで規則を参照 3. レビュー結果を投稿 global-workflows 19
社内コーディング規則の組み込み 案2 案2 global-workflowsリポジトリにmdファイルとして配置して、 GitHub Appを使って読み取る リポジトリ(トリガー) 各プロジェクト 2. PRレビュー依頼
1. .mdに移行 5. レビュー結果を投稿 coding_rules.md global-workflows 3. GitHub App Token を生成 20 4. ファイル内容 を取得 GitHub AppのIDとSecrets
社内コーディング規則の組み込み 案2実装1 Q. なぜGitHub App Tokenの生成が必要なのか? A. 他のプライベートリポジトリの中身を読み取る必要があるから 21 トリガーリポジトリでReusableワークフローの機能を借りている状態なので、
global-workflowsリポジトリにはアクセス出来ない リポジトリ(トリガー) 各プロジェクト GitHub App global-workflows 権限なし 1. Token生成 2. gh api 3. ファイル内容 4. ファイル内容 仲介役
社内コーディング規則の組み込み 案2実装2 Claudeのプロンプトにそれを参照するように追記 「coding_rules.md」ファイルに記載されているコーディング規則に準拠しているかを確認してください。 **重要**: レビュー概要の冒頭で、coding_rules.mdファイルを読み取れたかを必ず明記してください: - 読み取れた場合: 「 coding_rules.mdを参照してレビューしました」
- 読み取れなかった場合: 「 coding_rules.mdの読み取りに失敗しました」 22
社内コーディング規則の組み込み まとめ メリット • Claudeが社内のコーディング規約に基づいたレビューが可能 ➢ 定型チェック(変数名、DRY原則など)をClaudeが自動でレビュー • coding_rules.mdのバージョン履歴が残る デメリット
• 資料の二重管理 • Claudeのレビュー内容が増加 23
目次 • Claude Code GitHub Actionsとは • 自動レビュー • メンション呼び出し
• 背景と課題 • ワークフローを一元化 • 社内コーディング規則の組み込み • レビューコメント最適化 • BotによるPRのレビュー無効化 • まとめ 24
レビューコメント最適化 課題 自動レビューのワークフローにおいて、 1. PRがdraft状態でもcommitの度にレビューが実行され、通知が多い 2. レビューコメントが長すぎて、重要な指摘が埋もれやすい 3. Commitする度に新しいレビューコメントが追加され、コメント欄が散らかる 25
レビューコメント最適化 課題1 1. PRがdraft状態でもcommitの度にレビューが実行され、通知が多い jobs: auto-review: runs-on: ubuntu-latest if: github.event.pull_request.draft
== false PRがdraftではないときのみ以下を実行する 26
レビューコメント最適化 課題2 2. レビューコメントが長すぎて、重要な指摘が埋もれやすい • CRITICAL/HIGHレベルの指摘はすべて記載 • MEDIUM/LOWレベルの指摘は合わせて最大3件に制限 • インラインコメント化
### インラインコメント(該当コード行に記載) ``` ### CRITICAL / HIGH / MEDIUM / LOW **問題点:** 具体的な説明(簡潔に) **推奨対応:** 修正方法(簡潔に) ``` 27
レビューコメント最適化 課題3 3. Commitする度に新しいレビューコメントが追加され、コメント欄が散らかる 新しいコミット追加時にGitHub GraphQL APIで前回のレビューコメントを 自動的に最小化し、最新のレビューのみを表示する GraphQL minimizeComment
28 展開も出来る
レビューコメント最適化 課題3実装 新しいコミット追加時にGitHub GraphQL APIで前回のレビューコメントを 自動的に最小化し、最新のレビューのみを表示する const isClaude = review.body
&& review.body.includes('Claudeレビュー概要’); if (isClaude) { … 「Claudeレビュー概要」を含むレビューを最小化 const isClaudeComment = comment.body.startsWith('###') && (comment.body.includes('CRITICAL') || comment.body.includes('HIGH') || comment.body.includes('MEDIUM') || comment.body.includes('LOW')); if (isClaudeComment) { … 「###」で始まり、CRITICAL/HIGH/MEDIUM/LOWを含むコメント(Claudeのレビュー形式)を最小化 29
レビューコメント最適化 まとめ メリット • Claudeによるレビューコメントは常に最新である • 改善すべき箇所とその重要度が明確になった デメリット • 軽微なレビューポイントは無視される可能性がある
30
目次 • Claude Code GitHub Actionsとは • 自動レビュー • メンション呼び出し
• 背景と課題 • ワークフローを一元化 • 社内コーディング規則の組み込み • レビューコメント最適化 • BotによるPRのレビュー無効化 • まとめ 31
BotによるPRの無効化 1. Claude Code GitHub Actions(anthropics/claude-code-action@v1)は、 デフォルトで人間のユーザーによる起動のみを許可 ➢ CIが落ちる 2.
そもそもBotによるPRにがっつりレビューは必要ない Error: Workflow initiated by non-human actor: renovate (type: Bot). Add bot to allowed_bots list or use '*' to allow all bots. 32
BotによるPRの無効化 実装 jobs: check-actor: runs-on: ubuntu-latest outputs: is_bot: ${{ steps.check.outputs.is_bot
}} steps: - name: Check if actor is bot id: check run: | if [[ "${{ github.actor }}" == *"[bot]" ]]; then echo "is_bot=true" >> $GITHUB_OUTPUT else echo "is_bot=false" >> $GITHUB_OUTPUT fi review: needs: check-actor if: needs.check-actor.outputs.is_bot == 'false' reviewがほしい場合は、 @claude このPRをreviewして! が使える! 33
目次 • Claude Code GitHub Actionsとは • 自動レビュー • メンション呼び出し
• 背景と課題 • ワークフローを一元化 • 社内コーディング規則の組み込み • レビューコメント最適化 • BotによるPRの無効化 • まとめ 34
まとめ 成果 • ワークフロー設定を一元管理化し、メンテナンスにかかる工数を大幅に圧縮 • 社内独自のコーディング規約をシステムに統合し、全プロジェクトで均質なレビュー 基準の適用を実現 • コメントの最小化、Draft時、Botへの通知抑制により、開発者へのノイズを排除し、 重要な指摘に集中できる環境を提供
今後は… • CIと連携した自律的な修正フローの構築 • パフォーマンスやコスト削減など、高度な視点を導入 • 開発者の声をプロンプトやルールに即座に反映させるツールの開発 • 最新技術のキャッチアップ 35
ご清聴ありがとうございました!