# Review Pr

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

- Skill: `hiragram/review-pr` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add hiragram/review-pr`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hiragram/review-pr/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: hiragram (https://skillmd.com/u/hiragram)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/hiragram/review-pr

---


# 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情報の取得**
   ```bash
   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_REPOSITORY`、`PR_NUMBER` から取得

4. **既存レビューコメントの取得**（レビュー対応追跡用）
   ```bash
   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 }    │
└─────────────────────────────────────────────────────────────┘
```

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

**対応済みの場合**:
```markdown
## ✅ 対応確認

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

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

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

**追加対応が必要な場合**:
```markdown
## ⚠️ 追加対応が必要

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

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

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

**確認不能な場合**（ファイル削除等）:
```markdown
## ℹ️ 確認不能

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

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

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

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

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

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

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

**提案**:
```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";
+ }
```

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

## 関連ドキュメント

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

- [コード品質レビュー観点](references/code-quality.md)
- [パフォーマンスレビュー観点](references/performance.md)
- [テストカバレッジレビュー観点](references/test-coverage.md)
- [ドキュメント正確性レビュー観点](references/documentation.md)
- [セキュリティレビュー観点](references/security.md)

