AgentSkillsCN

code-review

对当前分支进行代码评审。适用于需要“进行代码评审”“完成评审”“在发起 PR 之前进行检查”“检查是否存在破坏性变更”等请求,或在合并前需进行质量确认的情况。

SKILL.md
--- frontmatter
name: code-review
description: 現在のブランチをコードレビューする。「コードレビューして」「レビューして」「PRの前にチェック」「破壊的変更をチェック」といった依頼、またはマージ前の品質確認が必要な場合に使用する。
allowed-tools:
  - Read
  - Grep
  - Glob
  - Bash
  - Task
  - AskUserQuestion

コードレビュー

概要

目的: ローカルブランチまたは GitHub PR の変更内容をレビューし、品質・一貫性・潜在的な問題を検出する。

AskUserQuestion ツールを使ってレビュー条件をインタビューし、適切なサブエージェントでレビューを実行する。


フェーズ 1: レビュー対象の確認

AskUserQuestion ツールを使って質問する。

質問内容:

  • question: "レビュー対象は?"
  • header: "対象"
  • options:
    • label: "ローカルブランチ", description: "現在のブランチと main の差分をレビュー"
    • label: "GitHub PR", description: "現在のブランチPRの差分をレビュー"
    • label: "ローカル差分", description: "ローカルにある差分をレビュー"
    • label: "ステージ済みのローカル差分", description: "ローカルにあるステージ済みの差分をレビュー"

フェーズ 2: 破壊的変更チェックの確認

AskUserQuestion ツールを使って質問する。

質問内容:

  • question: "破壊的変更チェックは?"
  • header: "破壊的変更"
  • options:
    • label: "行う", description: "API/スキーマ変更確認"
    • label: "行わない", description: "通常レビューのみ"

フェーズ 3: 変更内容の取得

フェーズ 1 の回答に基づいて変更内容を取得する。

ローカルブランチの場合:

bash
git diff main...HEAD
git diff --name-only main...HEAD

GitHub PR の場合:

AskUserQuestion ツールを使って PR 番号を確認する。

<rules> - **AskUserQuestion ツールを必ず使用** - 会話形式の質問は不可 </rules>

その後:

bash
gh pr view <PR番号> --json title,body,files,additions,deletions
gh pr diff <PR番号>

フェーズ 4: レビューの実行

全てのサブエージェントを並列で実行する。

サブエージェント

サブエージェント専門領域
review-qualityコード品質(命名、SRP、複雑度、エラー処理)
review-performanceパフォーマンス(計算効率、メモリ、レンダリング)
review-securityセキュリティ(XSS、SQLi、入力検証)
review-guidelineガイドライン準拠(TypeScript/React/テストルール)

フェーズ 6: 破壊的変更のチェック

「行う」を選択した場合のみ実行する。

カテゴリ
API 変更関数の引数追加/削除、戻り値の型変更
スキーマ変更DB カラムの削除、型変更、NOT NULL 追加
設定変更環境変数の追加/削除、デフォルト値の変更
依存関係メジャーバージョンアップ、パッケージの削除

フェーズ 7: 結果の出力

レビュー観点(サブエージェント別)

サブエージェントチェック内容
review-quality命名規則、単一責任原則、関数複雑度、エラーハンドリング
review-performance計算効率、メモリ管理、レンダリング最適化、N+1問題
review-securityXSS、SQLi、入力検証、認証・認可、OWASP Top 10
review-guidelineTypeScript/React/テストルール準拠、コードスタイル

出力形式

markdown
## コードレビュー結果

### サマリー
- レビュー対象: ローカルブランチ / PR #XXX
- 変更ファイル数: X
- 追加行数: +XXX
- 削除行数: -XXX

### スコア一覧

| 観点 | スコア |
|------|--------|
| 品質 | A/B/C/D |
| パフォーマンス | A/B/C/D |
| テスト | A/B/C/D |
| ドキュメント | A/B/C/D |
| セキュリティ | A/B/C/D |
| ガイドライン | A/B/C/D |
| Design Doc | A/B/C/D(設計書ありの場合) |

### 破壊的変更
🔴 あり / 🟢 なし

### 発見事項

#### 🔴 Critical(修正必須)
- [ファイル名:行番号] 問題の説明

#### 🟡 Warning(推奨)
- [ファイル名:行番号] 改善提案

#### 🟢 Good(良い点)
- 良かった実装のポイント

### 総評
全体的な評価とコメント

重要な注意事項

  • AskUserQuestion ツールを必ず使用 - 会話形式の質問は不可
  • 各フェーズで必ず AskUserQuestion を呼び出してからユーザーの回答を待つ