🗽

モチベ爆上がり!pushしたくなるPRレビューエージェント

に公開

GIFでPRレビューを楽しく!

PRレビュー例

軽く自己紹介

初めまして!
株式会社Digeonでエンジニアインターンをしているまめです。
趣味はスノボやギターでライブなどをしています。
今回は「開発チームの雰囲気をちょっと良くする」ための小ネタを持ってきました。
初めての技術記事投稿でドキドキしていますが、少しでも楽しんでもらえたら嬉しいです!

AI時代の問題:人間の仕事が面白くない!

今はAIがコードを書く時代。
AI生成コード → AIレビュー → 人間が最終判断、という流れが普通になりつつある。

でも一番の問題は、人間が必ず関わる最終判断の部分が面白くないこと。
機械的な指摘リストを見せられるだけだと、判断する側も疲れるしモチベーションが下がる。

そんな『面白くない』を解決する!

評価を3段階に分け、それぞれに合ったGIFを付ける。
一目で雰囲気が伝わり、良いときはしっかり褒められるので、レビューが楽しくなる

たとえば

  • 良いときは
    良い評価

  • もう少しのときは

普通の評価

  • 悪いときは

悪い評価

結果

  • GIFを追加することによりAIのレビューに感情が乗る
  • いい評価にしようと必然的にモチベが上がる。

カスタマイズが楽しい

最大の魅力はプロンプトを変えるだけでGIFを自由に変えられる点。

  • 会社では「上司が喜ぶGIF」や「社内ネタのミーム」を入れる
  • 友達との個人開発では「猫ミーム」「ちいかわ」など何でもOK

さらに一つの評価に複数個のGIFを設定しておきランダムで出力も可能!

チームに合わせてカスタマイズできるから、レビューを見るたびに笑える。

実装は簡単

最近はいろいろなレビューエージェントがいますが
最近話題のOpenCodeを使用してみました。

OpenCodeはオープンソースのAIコーディングエージェント。

プロンプトさえ工夫すれば他のレビューツールでも使用可能です。

ディレクトリ構成はこちら

プロジェクトルート
├── .github
│   └── workflows
│       └── ai-review.yml    # GitHub Actionsワークフロー
└── .opencode
    └── agent
        └── review.md        # レビュー用プロンプト

※使用するLLMに応じてAPIキーをSecretsに登録し、envで渡してください

CIの追加

.github/workflows/ai-review.yml
name: AI-Review
on:
  workflow_dispatch:
  pull_request:
permissions:
  contents: write
  pull-requests: write
jobs:
  my-job:
    name: opencode
    runs-on: ubuntu-latest
    env:
      # 使用するLLMに応じて必要なAPIキーを追加
      OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
      # ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
      # GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
      # GROK_API_KEY: ${{ secrets.GROK_API_KEY }}
    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ github.head_ref }}
      - uses: rmacklin/fetch-through-merge-base@v0
      - uses: oven-sh/setup-bun@v2
      - run: bun install -g opencode-ai
      - run: opencode run --agent=review "$(git diff ${{ github.base_ref }})" > ai-review.md
      - name: PR comment with file
        uses: mshick/add-pr-comment@v2
        with:
          message-path: ai-review.md
          refresh-message-position: true

おすすめプロンプト

.opencode/agent/review.md
# git diff 専用コードレビューエージェント

## 役割
あなたは「git diff の結果だけを見て、その変更範囲のみをレビューする」専門エージェントです。  
変更された行・周辺の数行だけを対象にレビューしてください。
問題がない場合は「一切指摘せず、良い点+マージOKのみ」を返します。
画像テンプレートから評価に応じて画像を添付します。

## 画像テンプレート

### 高評価

- ![画像](https://media1.tenor.com/m/NLg7AdOArugAAAAC/ye-shunguang-zzz.gif)

### 中評価

- ![画像](https://pbs.twimg.com/media/G7O9J_racAA1JCk?format=jpg)

### 低評価

- ![画像](https://media.tenor.com/nwBaAdVysNkAAAAi/phrolova-unamused.gif)
- ![画像](https://i.imgur.com/HqRunBZ.png)

## 応答ルール
- 日本語で、丁寧かつ簡潔・直接的に記述
- diff以外のコードについては「見えないので判断できません」とは絶対に言わない(diffだけが全て)
- 良い点は最初に1~2行だけ簡潔に褒める(あれば)
- 問題点は必ず箇条書きで番号付け
- 各指摘には必ず「ファイル名 + 行番号(可能な限り)」を明記
- 修正提案は```diff```形式で正確に提示(そのまま貼れるレベル)
- 致命的・セキュリティ問題は冒頭で**【緊急】**と太字で目立たせる

## 必ずチェックすること(diff範囲内のみ)
1. セキュリティ脆弱性(SQL/XSS/CSRF/認証回避/パス露出など)
2. 明らかなバグ・null参照・例外スロー忘れ・オフバイワン
3. 論理ミス(条件分岐の抜け、早期returnの誤りなど)
4. パフォーマンス悪化(明らかにO(N²)化、不要なコピー、N+1クエリ追加など)
5. 可読性低下(悪い変数名、魔法数、長い行、責務混在)
6. エラーハンドリングの削除・弱体化
7. テストしづらいコードの追加(ハードコード、static、グローバル状態変更)
8. 型安全の後退・不変性の破壊
9. プロジェクト固有ルールの違反(命名規則、ログ形式、エラー返却方法など)

## 出力テンプレート

# AIによるレビュー

画像ここに添付する

## 良い点
- 変更が最小限で影響範囲が明確です
- 変数名が適切に改善されています

## 修正項目
1. **src/user/service.go (+145)**  
   SQLインジェクションの危険性があります  
   ```diff
   - query := fmt.Sprintf("SELECT * FROM users WHERE name = '%s'", name)
   + query := "SELECT * FROM users WHERE name = ?"
   + stmt, _ := db.Prepare(query)
   + rows, err := stmt.Query(name)

まとめ

実際に使ってみてチームのモチベが目に見えて上がりました!

このレビューにGIFを追加することによりレビューが楽しみになります。

ぜひ自分のリポジトリやチームに導入してください!

株式会社Digeon

Discussion