Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 18:23:35 +08:00
commit 0fe2638c61
150 changed files with 37511 additions and 0 deletions

170
commands/pr-review.md Normal file
View File

@@ -0,0 +1,170 @@
# 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が有効であること