Files
gh-doarakko-dotfiles-claude/commands/pr-review.md
2025-11-29 18:23:35 +08:00

6.1 KiB
Raw Blame History

PRレビュー - 包括的なコードレビュー実行

指定されたPull Requestを詳細にレビューし、改善提案を行います。

使用方法

/pr-review <PR番号またはURL>

例:

  • /pr-review 123
  • /pr-review https://github.com/owner/repo/pull/123

実行手順

1. PR情報の取得と検証

  • gh pr view <PR番号> --json でPR詳細情報を取得
  • タイトル、説明、作成者、ステータスを確認
  • ターゲットブランチとソースブランチの確認
  • 認証エラー時はフォールバック処理を実行

2. 変更内容の分析

  • gh pr diff <PR番号> で差分を取得
  • 変更されたファイル一覧を取得 (gh pr view --json files)
  • 追加・削除された行数の統計情報を収集
  • コミット履歴の確認 (gh pr view --json commits)

3. コードレビューの実施

3.1 自動チェック項目

  • セキュリティ(最重要・厚めにチェック)

    • 認証・認可
      • ハードコードされた認証情報API key, password, token等
      • 認証トークンの安全な保管方法
      • 認可チェックの実装(権限検証の欠落)
      • セッション管理の安全性
    • インジェクション攻撃
      • SQLインジェクション脆弱性
      • NoSQLインジェクション
      • コマンドインジェクション
      • XSSStored/Reflected/DOM-based
      • LDAP/XMLインジェクション
    • 入力検証とサニタイゼーション
      • ユーザー入力の検証不足
      • ファイルアップロードの検証
      • Content-Type検証
      • サイズ制限の実装
      • ホワイトリスト方式の採用
    • データ保護
      • 機密情報のログ出力
      • 暗号化の適切な実装
      • 安全でない乱数生成
      • パスワードのハッシュ化bcrypt、Argon2等
    • API/ネットワークセキュリティ
      • CORS設定の安全性
      • CSRF対策の実装
      • Rate limiting の実装
      • HTTPSの強制
    • 依存関係のセキュリティ
      • 既知の脆弱性を持つライブラリ
      • 最新版への更新の必要性
    • その他のセキュリティ
      • パストラバーサル脆弱性
      • XXEXML External Entity攻撃
      • サーバーサイドリクエストフォージェリSSRF
      • 安全でないデシリアライゼーション
  • テストケース(重要・厚めにチェック)

    • テストカバレッジ
      • 新規機能に対するテストの有無
      • 既存機能への影響範囲のテスト
      • エッジケースのカバー状況
      • エラーケースのテスト
    • テストの種類と品質
      • 単体テストUnit Testの適切性
      • 統合テストIntegration Testの必要性
      • E2Eテストの必要性
      • テストの可読性と保守性
    • テストケースの十分性
      • 正常系のテスト
      • 異常系のテスト(バリデーションエラー、ネットワークエラー等)
      • 境界値テスト
      • 並行処理のテスト(該当する場合)
    • セキュリティテスト
      • 認証・認可のテスト
      • 入力検証のテスト
      • エラーハンドリングのテスト
    • モックとテストデータ
      • 外部依存のモック化
      • テストデータの適切性
      • テスト環境の分離
    • パフォーマンステスト
      • 負荷テストの必要性評価
      • レスポンスタイムの検証
    • 過剰なテストの検出
      • 実装の詳細に依存しすぎたテスト(脆弱なテスト)
      • 重複したテストケース
      • 価値の低いテスト(自明な処理のテスト)
      • メンテナンスコストが高すぎるテスト
      • 不要にモックが多すぎるテスト
  • コード品質

    • 命名規則の一貫性
    • 重複コードの検出
    • 複雑度の評価
    • デッドコードの検出
  • パフォーマンス

    • N+1クエリの検出
    • 非効率なループ処理
    • 不要な再レンダリング(フロントエンド)
    • メモリリークの可能性
  • 保守性

    • 適切なコメントの有無
    • エラーハンドリングの実装
    • ログ出力の適切性
    • ドキュメントの更新

3.2 プロジェクト固有のチェック

  • プロジェクトのコーディング規約への準拠
  • 既存のアーキテクチャとの整合性
  • 依存関係の適切な管理

4. レビュー結果のフォーマット

4.1 サマリー

  • 全体的な評価Approve/Request Changes/Comment
  • 主要な問題点の要約
  • 良い点の強調

4.2 詳細フィードバック

各ファイルごとに:

  • 問題点の指摘(行番号付き)
  • 改善提案と具体的なコード例
  • 参考となるドキュメントやベストプラクティスへのリンク

4.3 アクションアイテム

  • 必須の修正項目(ブロッカー)
  • 推奨される改善項目
  • 将来的な改善提案

5. GitHub上でのコメント投稿オプション

  • gh pr comment を使用してレビューコメントを投稿
  • 行単位のインラインコメント
  • 全体的なレビューコメント

エラーハンドリング

GitHub CLI認証エラー

プライベートリポジトリで認証エラーが発生した場合:

  1. エラーメッセージを表示
  2. 手動でPRを確認するためのURLを提供
  3. 認証の再設定方法を案内:
    • gh auth refresh -s repo,read:org
    • GITHUB_TOKEN環境変数の確認

API制限

  • レート制限に達した場合の待機処理
  • 部分的な結果での続行オプション

設定オプション

  • --format: 出力形式markdown/json/html
  • --severity: レビューの厳密さstrict/normal/lenient
  • --focus: 特定の観点に絞るsecurity/performance/style
  • --no-comment: GitHubへのコメント投稿をスキップ

前提条件

  • GitHub CLIがインストールされ認証済みであること
  • 対象リポジトリへの読み取りアクセス権限
  • PR番号またはURLが有効であること