コードレビューの基本
ユーザーが指定した変更をレビューします。指定がない場合は、現在のブランチをそのベースブランチと比較します:
- ベースブランチを見つける:
git merge-base HEAD origin/main、次にorigin/master、次にorigin/developを試します。いずれも存在しない場合は、未コミットの変更(git diff HEAD)をレビューします。 - 完全な差分を読み、差分だけでは判断できない変更については周辺のコードも開きます。
チェックリスト
各項目について確認し、実際に問題があるものだけを報告します。
正当性
- コードは変更の意図を実現していますか?オフバイワンエラー、誤った条件、未処理の
None/null、飲み込まれた例外に注意します。 - エッジケースは処理されていますか:空の入力、非常に大きな入力、同時呼び出し、リトライ?
テスト
- すべての振る舞いの変更は、それがなければ失敗するテストでカバーされていますか?
- テストは実装の詳細ではなく振る舞いをチェックしていますか?
可読性
- 名前は正確ですか?新しく参加した人が一度読んだだけで理解できますか?
- デッドコード、デバッグ出力、コメントアウトされたコードが残っていませんか?
セキュリティ(基本)
- コード、設定、ログにシークレット、トークン、認証情報が含まれていませんか?
- ユーザー入力は検証され、クエリはパラメータ化されており、文字列連結で構築されていませんか?
一貫性
- CLAUDE.md および周辺コードの規則に従っていますか?
出力
発見事項を重要度でグループ化します:
- 必須修正: バグ、セキュリティ問題、危険なロジックに対するテストの欠落。
- 推奨修正: 後で時間を浪費する保守性の問題。
- 微調整: 任意の洗練。少数に抑えます。
各発見事項について、ファイル:行番号、問題、具体的な修正案を提示します。最後に一行で判定を出力します:マージ可能、必須修正後にマージ可能、または再レビュー必要。特定のカテゴリで何も見つからなかった場合は、そのカテゴリを省略します。空白を埋めるために問題をでっち上げないでください。
Pro エディションは、完全なセキュリティ、パフォーマンス、アクセシビリティ、API設計のチェックリストと、差分に適したものを自動選択する
/reviewコマンドを追加します。