Skill

review-pr

PRを5つの観点から並列レビューし、インラインコメントで指摘する。GitHub Actionsから呼び出される想定。

From code-review
Install
1
Run in your terminal
$
npx claudepluginhub hiragram/claude-code-plugins --plugin code-review
Tool Access

This skill uses the workspace's default tool permissions.

Supporting Assets
View in Repository
references/code-quality.md
references/documentation.md
references/performance.md
references/security.md
references/test-coverage.md
Skill Content

PR Review スキル

GitHub Pull Requestを5つの専門エージェントで並列レビューし、インラインコメントで指摘を投稿します。

概要

このスキルは以下の5つの観点でPRをレビューします:

  1. コード品質 - クリーンコード、命名規則、エラーハンドリング
  2. パフォーマンス - アルゴリズム複雑度、メモリ管理、N+1問題
  3. テストカバレッジ - テストの有無、エッジケース、境界値テスト
  4. ドキュメント正確性 - コメントとコードの整合性、API文書
  5. セキュリティ - OWASP Top 10、入力検証、認証認可

各観点は独立したサブエージェントが担当し、並列実行されます。

使い方

/review-pr [owner/repo] [pr-number]

/review-pr anthropics/claude-code 123

GitHub Actions環境での使用

GitHub Actions環境では、引数を省略すると環境変数から自動取得します:

  • GITHUB_REPOSITORY → owner/repo
  • PR_NUMBER または GITHUB_EVENT_PATH から → pr-number

実行フロー

┌─────────────────────────────────────────────────────────────┐
│                      /review-pr 実行                         │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│ 1. プロジェクトルール読み込み (CLAUDE.md)                    │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│ 2. PR情報取得 (gh pr view, gh pr diff)                      │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│ 3. 5つのサブエージェントを並列起動                           │
│                                                              │
│   ┌─────────────┐ ┌─────────────┐ ┌─────────────┐           │
│   │ code-quality│ │ performance │ │test-coverage│           │
│   │  -reviewer  │ │  -reviewer  │ │  -reviewer  │           │
│   └─────────────┘ └─────────────┘ └─────────────┘           │
│                                                              │
│   ┌─────────────────────┐ ┌─────────────────────┐           │
│   │ documentation-      │ │ security-code-      │           │
│   │ accuracy-reviewer   │ │     reviewer        │           │
│   └─────────────────────┘ └─────────────────────┘           │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│ 4. 各エージェントがインラインコメントを投稿                  │
│    (mcp__github_inline_comment__create_inline_comment)       │
└─────────────────────────────────────────────────────────────┘

実行手順

Step 1: 情報収集

まず、必要な情報を収集します。

  1. プロジェクトルールの読み込み

    • CLAUDE.mdがあれば読み込み、プロジェクト固有のルールを把握
  2. PR情報の取得

    gh pr view [pr-number] --repo [owner/repo] --json title,body,additions,deletions,changedFiles
    gh pr diff [pr-number] --repo [owner/repo]
    
  3. 引数の解析

    • $ARGUMENTS を解析して owner/repo と pr-number を取得
    • または環境変数 GITHUB_REPOSITORYPR_NUMBER から取得
  4. 既存レビューコメントの取得(レビュー対応追跡用)

    gh api repos/{owner}/{repo}/pulls/{pr-number}/comments
    
    • すべてのレビューコメント(Claude + 人間)を取得
    • in_reply_to_id が null のコメント = スレッドの親コメント

Step 2: サブエージェントの並列実行

以下の5つのエージェントを同時に(単一メッセージで複数のTaskツール呼び出し)起動します:

エージェント役割
code-quality-reviewerコード品質・可読性・エラーハンドリング
performance-reviewerパフォーマンス・メモリ管理・アルゴリズム
test-coverage-reviewerテストカバレッジ・テスト品質
documentation-accuracy-reviewerドキュメント・コメントの正確性
security-code-reviewerセキュリティ脆弱性・認証認可

各エージェントには以下を渡します:

  • PR diff(変更差分)
  • プロジェクトルール(CLAUDE.mdの内容、あれば)
  • owner/repo と pr-number

Step 3: レビュー完了の確認

全エージェントが完了したら、レビュー結果をサマリーとしてまとめます。

Step 4: 既存レビューコメントの対応状況確認(レビュー対応追跡)

Step 1で取得した既存レビューコメントがある場合、各コメントの対応状況を確認し、フォローアップコメントを投稿します。

┌─────────────────────────────────────────────────────────────┐
│ 1. 親コメントのフィルタリング                                │
│    - in_reply_to_id が null のコメントを抽出                 │
│    - すでにフォローアップ済み(返信がある)ものは除外可能    │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│ 2. 各コメントの対応状況を確認                                │
│    - コメントの path(ファイル名)と line(行番号)を取得    │
│    - 現在のコードと指摘内容を比較                            │
│    - 指摘が修正されているか判定                              │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│ 3. フォローアップコメントを投稿                              │
│    - 元のコメントへの返信として投稿                          │
│    - gh api で POST /repos/{owner}/{repo}/pulls/{pr}/comments│
│      body に { "body": "...", "in_reply_to": コメントID }    │
└─────────────────────────────────────────────────────────────┘

フォローアップコメントの形式

対応済みの場合:

## ✅ 対応確認

この指摘は修正されています。

- **修正内容**: [具体的な修正の説明]

---
_🤖 Claude Code Review - follow-up check_

追加対応が必要な場合:

## ⚠️ 追加対応が必要

この指摘はまだ完全には対応されていません。

- **現状**: [現在のコード状態]
- **残課題**: [まだ対応が必要な点]

---
_🤖 Claude Code Review - follow-up check_

確認不能な場合(ファイル削除等):

## ℹ️ 確認不能

対象のコードが削除または移動されたため、対応状況を確認できません。

---
_🤖 Claude Code Review - follow-up check_

インラインコメントの形式

各エージェントは以下の形式でインラインコメントを投稿します:

## 🔍 [レビュー観点名]

**問題**: [問題の説明]

**影響**: [潜在的な影響]

**提案**:
```suggestion
[修正コード]

🤖 Claude Code Review - [agent-name]


## 注意事項

- **注目すべき問題のみ指摘**: 軽微な問題や好みの問題は指摘しません
- **具体的な改善案**: 可能な限り `suggestion` ブロックで修正コードを提供
- **プロジェクトルール尊重**: CLAUDE.mdで定義されたルールに従います
- **GitHub Actions環境が必要**: `github_inline_comment` MCPはGitHub Actions環境で自動提供されます

## インラインコメントの位置ルール

**重要**: コメントは原則として**追加行(+)側**に付けてください。

| diffの状態 | コメント位置 |
|-----------|-------------|
| 追加行のみ(+) | その追加行にコメント |
| 変更(-と+のペア) | **追加行(+)側**にコメント |
| 削除のみ(-) | 削除行にコメント(これのみ許可) |

```diff
例:
- const oldValue = "foo";     ← 削除のみの場合はここにコメント可
+ const newValue = "bar";     ← 通常はここにコメント(変更の場合も追加側)

+ function newFunction() {    ← 新規追加はここにコメント
+   return "hello";
+ }

理由: 削除側にコメントすると、コードが存在しない状態への指摘になり、修正すべき箇所が不明確になります。追加側にコメントすることで、「このコードをこう直してください」という明確な指示になります。

関連ドキュメント

各レビュー観点の詳細は以下を参照:

Similar Skills
cache-components

Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.

138.5k
Stats
Parent Repo Stars1
Parent Repo Forks0
Last CommitJan 26, 2026