mcpField
R
reviewing-code

reviewing-code

github.com/prefecthqテスト・品質28.3k120 回インストール1 日前に更新
リポジトリ

reviewing-code について

コントリビューターやエージェントレビュアー向けのコードレビュー用スキルです。プロジェクトの方針や互換性を重視し、具体的で実行可能なフィードバックを促します。

主な機能

  1. 01変更とプロジェクト目標の整合性確認
  2. 02依存関係のバージョン互換性確認
  3. 03API設計と使いやすさのレビュー
  4. 04コンテキスト、テスト、境界条件の確認
  5. 05具体的で敬意ある提案

活用シーン

  1. 01プルリクエストとプロジェクト方針の照合
  2. 02依存関係更新による回帰の確認
  3. 03APIや命名上の問題の特定

インストール

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

$npx skills add https://github.com/prefecthq/fastmcp --skill reviewing-code

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

詳細

コードレビュー

基本方針

コードレビューは、健全なコードベースを維持しながら、コントリビューターの成功を支援します。PR には、価値をもたらすことを示す責任があります。あなたの役割は、実行可能なフィードバックを通じて、その実現を支援することです。

重要:完璧に書かれた PR であっても、望まれていない機能を追加するものであれば、却下する必要があります。コードは、コードベースを意図した方向に前進させるものでなければなりません。却下する場合は、プロジェクトの目標に沿うための明確な指針を示してください。

高い基準を保ちながら、親しみやすく歓迎する姿勢で接してください。うまく機能している点も指摘してください。コードに改善が必要な場合は、なぜ改善が必要なのか、どう修正すればよいのかを具体的に伝えてください。

注目すべき点

コードベースを適切に前進させる変更ですか?

望まれていない機能のために書かれた完璧なコードであっても、却下すべきです。

依存関係のバージョン互換性

PR で依存関係の新しいバージョンに合わせてコードを変更する場合(例:上流で削除されたパラメーターを削除する、新しい API を使う):

  • pyproject.toml のバージョン指定が変更と一致している必要があります。 変更によって、これまで指定されていた最小バージョンとの互換性が失われる場合は、最小バージョンを引き上げる必要があります。そうしないと、古いバージョンを使うユーザーにリグレッションが発生します。
  • 古いバージョンとの後方互換性を維持する場合、コードで両方のバージョンに対応する必要があります(例:try/except、バージョンチェック)。古い API の使用箇所を削除するだけでバージョン指定を引き上げないのは、常に誤りです。古いバージョンを使うユーザーに、気づかれないまま問題が発生します。
  • ロックファイル(uv.lock)の変更は、PR の目的に必要な範囲に限定してください。 ty の互換性問題を修正する PR に、uv sync --upgrade の実行によって生じた、無関係な依存関係のバージョン引き上げ(anthropic、google-auth など)も含めるべきではありません。こうした変更はノイズとなり、差分のレビューを難しくします。
API の設計と命名

混乱を招くパターンや、慣用的でないコードを見つけてください。

  • デフォルト値と矛盾するパラメーター値
  • ミュータブルなデフォルト引数
  • 将来の読者を混乱させる不明瞭な命名
  • コードベースのほかの部分と一貫しないパターン
具体的な改善点

一般的な指摘ではなく、実行可能なフィードバックを提供してください。

ユーザーにとっての使いやすさ

ユーザーの視点から API を考えてください。直感的に使えますか?習得にはどのくらいかかりますか?

エージェントレビュー担当者向け

  1. 全体の背景を読む:レビューの前に、関連ファイル、テスト、ドキュメントを確認します
  2. 確立されたパターンと照らし合わせる:コードベースの規約との一貫性を確認します
  3. 機能に関する主張を検証する:コードが主張していることだけでなく、実際に何をするのかを理解します
  4. エッジケースを考慮する:エラー条件や境界のケースを検討します

避けるべきこと

  • 具体性のない一般的なフィードバック
  • 起こりそうにない仮定上の問題
  • 強い理由のない、構成上の選択への細かな指摘
  • PR の説明にすでに書かれている内容の要約
  • 星による評価や過剰な絵文字
  • 機能に問題がない場合の、スタイルの好みを巡る議論
  • 解決策を示さずに変更を求めること
  • プロジェクトの規約よりも個人的なコーディングスタイルを重視すること

口調

  • 良い判断を認めます:「この API 設計はすっきりしています」
  • 率直でありながら、敬意を持って伝えます
  • 影響を説明します:「これはユーザーを混乱させます。なぜなら……」
  • 誰かがこのコードを今後ずっと保守していくことを忘れないでください

判断の枠組み

承認する前に、次の点を確認してください。

  1. この PR は、明示された目的を達成していますか?
  2. その目的は、コードベースが進むべき方向に沿っていますか?
  3. このコードを自分で保守することに抵抗はありませんか?
  4. 主張だけでなく、実際の動作を理解していますか?
  5. この変更は技術的負債を生み出しますか?

改善が必要な箇所がある場合は、具体的で実行可能なフィードバックを通じて、改善を支援してください。間違った問題を解決しようとしている場合は、そのことを明確に伝えてください。

コメントの例

良いコメント:

代わりにこう書く
"テストを追加する""handle_timeout メソッドでは、timeout=0 となる境界ケースのテストが必要です"
"この API は分かりにくい""パラメーター名の data は曖昧です。MCP の仕様に合わせて message_content にすることを検討してください"
"改善の余地がある""この方法でも動作しますが、循環依存が発生します。検証処理を utils/validators.py に移すことを検討してください"

チェックリスト

承認する前に、以下を確認してください。

  • 必須の開発ワークフローの手順(uv sync、prek、pytest)がすべて完了している
  • 変更がリポジトリのパターンや規約に沿っている
  • API の変更が文書化され、可能な場合は後方互換性が保たれている
  • エラー処理がプロジェクトのパターン(具体的な例外型)に従っている
  • テストで新機能と境界ケースが網羅されている
  • 変更によってコードベースが意図した方向に進んでいる

コメント