mcpField
C
code-review-excellence

code-review-excellence

github.com/awesome-skillsテスト・品質2.2k688 回インストール7 週間前に更新
リポジトリ

code-review-excellence について

開発者やチーム向けのコードレビュー用スキルです。段階的な手順と建設的なフィードバックを軸に、言語別の参考資料や共通の品質ガイドも提供します。

主な機能

  1. 01段階的なプルリクエストレビュー手順
  2. 02実行可能な協調的フィードバック手法
  3. 03レビューコメントの重要度ラベル
  4. 04言語別・横断的なガイド
  5. 05レビュー用チェックリストとテンプレート

活用シーン

  1. 01プルリクエストやコード変更のレビュー
  2. 02チームのレビュー基準やチェックリスト作成
  3. 03レビューを通じた若手開発者の指導

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/awesome-skills/code-review-skill --skill code-review-excellence

インストール後、Claude Code で/code-review-excellenceを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.gitignore
README.md
.nojekyll
LICENSE
index.html
CONTRIBUTING.md
index.en.html
assets/
review-checklist.md
pr-review-template.md
reference/
angular.md
common-bugs-checklist.md
code-review-best-practices.md
c.md
code-quality-universal.md
architecture-review-guide.md
css-less-sass.md
cpp.md
csharp.md
django.md
fastapi.md
java.md
nestjs.md
go.md
qt.md
kotlin.md
python.md
react.md
php.md
performance-review-guide.md
security-review-guide.md

詳細

コードレビューの卓越性

建設的なフィードバック、体系的な分析、協力的な改善を通じて、コードレビューを門番役から知識共有の場へと変えます。

このスキルを使用する場面

  • プルリクエストやコード変更をレビューするとき
  • チームのコードレビュー基準を策定するとき
  • レビューを通じてジュニア開発者を指導するとき
  • アーキテクチャレビューを実施するとき
  • レビューチェックリストやガイドラインを作成するとき
  • チームの協力体制を改善するとき
  • コードレビューのサイクル時間を短縮するとき
  • コード品質基準を維持するとき

基本原則

1. レビューへの姿勢

コードレビューの目標:

  • バグやエッジケースを見つける
  • コードの保守性を確保する
  • チーム内で知識を共有する
  • コーディング規約を徹底する
  • 設計とアーキテクチャを改善する
  • チーム文化を築く

目標ではないこと:

  • 知識をひけらかす
  • 書式を細かく指摘する(リンターを使用します)
  • 不必要に進行を妨げる
  • 自分の好みに合わせて書き直す
2. 効果的なフィードバック

良いフィードバックとは:

  • 具体的で、実行に移せる
  • 批判的ではなく、学びにつながる
  • 個人ではなく、コードに焦点を当てている
  • バランスが取れている(良い仕事も褒める)
  • 優先順位が明確(重大な指摘と、あると望ましい提案を区別する)
❌ Bad: "This is wrong."
✅ Good: "This could cause a race condition when multiple users
         access simultaneously. Consider using a mutex here."

❌ Bad: "Why didn't you use X pattern?"
✅ Good: "Have you considered the Repository pattern? It would
         make this easier to test. Here's an example: [link]"

❌ Bad: "Rename this variable."
✅ Good: "[nit] Consider `userCount` instead of `uc` for
         clarity. Not blocking if you prefer to keep it."
3. レビューの範囲

レビューする項目:

  • ロジックの正しさとエッジケース
  • セキュリティ上の脆弱性
  • パフォーマンスへの影響
  • テストの網羅性と品質
  • エラー処理
  • ドキュメントとコメント
  • API の設計と命名
  • アーキテクチャとの適合性

手動でレビューしない項目:

  • コードの書式(Prettier、Black などを使用します)
  • インポートの整理
  • リント違反
  • 単純な誤字

レビュープロセス

フェーズ 1:背景情報の収集(2~3 分)

コードを詳しく見る前に、次の点を把握します。

  1. PR の説明と、リンクされている Issue を読む
  2. PR の規模を確認する(400 行超? 分割を依頼します)
  3. CI/CD の状態を確認する(テストは成功しているか?)
  4. ビジネス要件を理解する
  5. 関連するアーキテクチャ上の決定事項を確認する
フェーズ 2:概要レビュー(5~10 分)
  1. アーキテクチャと設計 - 解決策は問題に適していますか?
  2. パフォーマンス評価 - パフォーマンス上の懸念はありますか?
  3. ファイル構成 - 新しいファイルは適切な場所にありますか?
  4. テスト戦略 - エッジケースを網羅するテストがありますか?
フェーズ 3:行単位のレビュー(10~20 分)

各ファイルについて、次の点を確認します。

  • ロジックと正確性 - エッジケース、オフバイワン、null チェック、競合状態
  • セキュリティ - 入力検証、インジェクションのリスク、XSS、機密データ
  • パフォーマンス - N+1 クエリ、不要なループ、メモリリーク
  • 保守性 - 分かりやすい名前、単一責任、コメント
  • 再利用 - 新しいコードを受け入れる前に、既存のユーティリティやヘルパーで置き換えられないか検索します。隣接するファイルや共有モジュールに類似のパターンがないか確認します。パラメーターの乱立、漏れやすい抽象化、入れ子の条件分岐、文字列に依存した型指定、TOCTOU、何もしない更新などのアンチパターンについては、ユニバーサル品質ガイドを参照してください。
フェーズ 4:まとめと判断(2~3 分)
  1. 主な懸念事項をまとめる
  2. 良いと思った点を挙げる
  3. 判断を明確に示す:
    • ✅ 承認
    • 💬 コメント(軽微な提案)
    • 🔄 変更をリクエスト(対応必須)
  4. 複雑な場合は、ペアでの作業を申し出る

レビュー手法

手法 1:チェックリスト方式

一貫性のあるレビューにはチェックリストを使用します。包括的なセキュリティチェックリストについては、セキュリティレビュ​​ーガイドを参照してください。

手法 2:質問形式

問題を断定するのではなく、質問します。

❌ "This will fail if the list is empty."
✅ "What happens if `items` is an empty array?"

❌ "You need error handling here."
✅ "How should this behave if the API call fails?"
手法 3:命令せず、提案する

協力的な表現を使います。

❌ "You must change this to use async/await"
✅ "Suggestion: async/await might make this more readable. What do you think?"

❌ "Extract this into a function"
✅ "This logic appears in 3 places. Would it make sense to extract it?"
Technique 4: 深刻度を区別する

優先度を示すラベルを使用します。

  • 🔴 [blocking] - マージ前に必ず修正します
  • 🟡 [important] - 修正が望ましい項目です。異論がある場合は話し合います
  • 🟢 [nit] - あるとよい項目ですが、マージを妨げるものではありません
  • 💡 [suggestion] - 検討できる別の方法です
  • 📚 [learning] - 学習に役立つコメントです。対応は不要です
  • 🎉 [praise] - 良い仕事です。その調子で続けましょう!

言語別ガイド

レビュー対象のコード言語に応じて、対応する詳細ガイドを参照してください。

言語/フレームワーク参照ファイル主なトピック
ReactReact ガイドHooks、useEffect、React 19 Actions、RSC、Suspense、TanStack Query v5
Vue 3Vue ガイドComposition API、リアクティブシステム、Props/Emits、Watchers、Composables
Angular 17+Angular ガイドSignals、Standalone コンポーネント、RxJS、Zoneless 変更検知、テンプレート最適化
RustRust ガイド所有権/借用、Unsafe のレビュー、非同期コード、キャンセル安全性、エラー処理
TypeScriptTypeScript ガイド型安全性、async/await、不変性
PythonPython ガイド可変デフォルト引数、例外処理、クラス属性
Django / DRFDjango ガイドセキュリティレビュー、N+1 クエリ、Serializer のアンチパターン、ViewSet、非同期ビュー
FastAPIFastAPI ガイドDepends、Pydantic v2 の検証、非同期処理の正確性、セッション/N+1、認証と認可の違い、テスト駆動の検証
JavaJava ガイドJava 17/21 の新機能、Spring Boot 3、仮想スレッド、Stream/Optional
PHPPHP ガイドPHP 8.x の型システム、PDO、セキュリティレビュー、Composer、PHPUnit/PHPStan
C# / .NETC# ガイドC# 12 の機能、非同期プログラミング、EF Core のパフォーマンス、ASP.NET Core、LINQ
GoGo ガイドエラー処理、goroutine/channel、context、インターフェース設計
Kotlin / AndroidKotlin ガイドコルーチン、Flow、Jetpack Compose、null 安全性、メモリーリーク、アーキテクチャパターン
NestJSNestJS ガイド依存性注入、階層化アーキテクチャ、DTO 検証、Guard/Interceptor、循環依存
Svelte / SvelteKitSvelte ガイドRunes、Load 関数、Form Actions、Store の移行、SSR/CSR の境界
CC ガイドポインター/バッファー、メモリー安全性、UB、エラー処理
C++C++ ガイドRAII、ライフタイム、Rule of 0/3/5、例外安全性
CSS/Less/SassCSS ガイド変数の規約、!important、パフォーマンス最適化、レスポンシブ対応、互換性
QtQt ガイドオブジェクトモデル、シグナル/スロット、メモリー管理、スレッド安全性、パフォーマンス

分野横断ガイド

すべてのコードレビューに適用できる、言語に依存しないパターンです。

トピック参照ファイル主なトピック
普遍的な品質普遍的な品質ガイド再利用性の監査、パラメーターの過剰な増加、抽象化の漏れ、入れ子になった条件分岐、文字列型に依存するコード、TOCTOU、何もしない更新、冗長な状態

追加リソース

コメント