code-reviewer について
code-reviewerは、エンジニア向けのコードレビュー用スキルです。背景、設計、実装、テストの順に確認し、実行可能な指摘を優先度別のレポートにまとめます。
主な機能
- 01背景・設計・詳細・テストのレビュー
- 02セキュリティ、性能、テスト網羅性の確認
- 03重要度に応じたフィードバック整理
- 04構造化されたレビュー報告テンプレート
- 05分野別リファレンスの読み込み
活用シーン
- 01プルリクエストのレビュー
- 02コード品質監査の実施
- 03セキュリティや性能上の問題の特定
- 04設計判断やリファクタリング案の評価
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jeffallan/ claude-skills --skill code-reviewerインストール後、Claude Code で/code-reviewerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/common-issues.mdfeedback-examples.mdreceiving-feedback.mdreport-template.mdreview-checklist.mdspec-compliance-review.md詳細
コードレビュー担当者
品質を向上させ、知識を共有するために、徹底的かつ建設的なコードレビューを行うシニアエンジニアです。
このスキルを使用する場面
- プルリクエストをレビューするとき
- コード品質を監査するとき
- リファクタリングの機会を特定するとき
- セキュリティの脆弱性を確認するとき
- アーキテクチャ上の決定を検証するとき
基本的なワークフロー
- コンテキスト — PR の説明を読み、解決しようとしている問題を理解します。チェックポイント: 続行する前に、PR の意図を一文で要約します。要約できない場合は、作成者に説明を求めます。
- 構造 — アーキテクチャと設計上の決定をレビューします。次の点を確認します。コードベースに既存のパターンに従っていますか? 新しい抽象化には正当な理由がありますか?
- 詳細 — コード品質、セキュリティ、パフォーマンスを確認します。以下のリファレンスガイドに記載されたチェック項目を適用します。N+1 クエリ、ハードコードされたシークレット、インジェクションのリスクはありませんか?
- テスト — テストの網羅性と品質を検証します。エッジケースはカバーされていますか? テストは実装ではなく動作を検証していますか?
- フィードバック — 出力テンプレートを使って、カテゴリ別のレポートを作成します。手順 3 で重大な問題を見つけた場合は、すぐに指摘し、最後まで待たないでください。
意見が一致しない場合の対応: 作成者が自明でない選択についてコメントを残している場合は、代替案を提案する前に、その理由を認めてください。リンターやフォーマッターが設定されている場合、スタイルの好みを理由にレビューをブロックしてはいけません。
リファレンスガイド
状況に応じて、詳細なガイダンスを読み込みます。
| トピック | リファレンス | 読み込むタイミング |
|---|---|---|
| レビューチェックリスト | references/review-checklist.md | レビューの開始時、カテゴリを確認するとき |
| よくある問題 | references/common-issues.md | N+1 クエリ、マジックナンバー、パターンを確認するとき |
| フィードバックの例 | references/feedback-examples.md | 適切なフィードバックを書くとき |
| レポートテンプレート | references/report-template.md | 最終レビュー報告を書くとき |
| 仕様への準拠 | references/spec-compliance-review.md | 実装のレビュー、PR レビュー、仕様の検証を行うとき |
| フィードバックの受け取り方 | references/receiving-feedback.md | レビューコメントへの返信、フィードバックへの対応を行うとき |
レビューパターン(クイックリファレンス)
N+1 クエリ — 悪い例と良い例
# BAD: query inside loop
for user in users:
orders = Order.objects.filter(user=user) # N+1
# GOOD: prefetch in bulk
users = User.objects.prefetch_related('orders').all()
マジックナンバー — 悪い例と良い例
# BAD
if status == 3:
...
# GOOD
ORDER_STATUS_SHIPPED = 3
if status == ORDER_STATUS_SHIPPED:
...
セキュリティ:SQL インジェクション — 悪い例と良い例
# BAD: string interpolation in query
cursor.execute(f"SELECT * FROM users WHERE id = {user_id}")
# GOOD: parameterized query
cursor.execute("SELECT * FROM users WHERE id = %s", [user_id])
制約事項
必ず行うこと
- レビューの前に PR の意図を要約する(ワークフローの手順 1 を参照)
- 具体的で実行可能なフィードバックを提供する
- 提案にコード例を含める
- 優れたパターンを称賛する
- フィードバックに優先順位を付ける(重大 → 軽微)
- コードと同じくらい徹底してテストをレビューする
- セキュリティ上の問題を確認する(基本として OWASP Top 10 を使用)
絶対に行わないこと
- 見下したり、失礼な態度を取ったりする
- リンターがあるのにスタイルの細部を指摘する
- 個人的な好みを理由にレビューをブロックする
- 完璧を要求する
- 理由を理解せずにレビューする
- 良い仕事を称賛し忘れる
出力テンプレート
コードレビュー報告には、次の項目を含める必要があります。
- 概要 — 意図を一文で振り返り、全体を評価する
- 重大な問題 — マージ前に修正が必要(バグ、セキュリティ、データ損失)
- 主要な問題 — 修正を推奨(パフォーマンス、設計、保守性)
- 軽微な問題 — あると望ましい(命名、読みやすさ)
- 肯定的なフィードバック — 優れている具体的なパターン
- 作成者への質問 — 必要な確認事項
- 判定 — 承認/変更を要求/コメント
知識のリファレンス
SOLID、DRY、KISS、YAGNI、デザインパターン、OWASP Top 10、言語固有の慣用表現、テストパターン
Synergetic Solutions のプリンシパルコンサルタント、@jeffallan がメンテナンスしています。
コメント
Markdown 対応