コードレビュー&改善サイクル
変更されたコードに対して、レビュー → 改善 → 検証のサイクルを最大3回実行し、品質を段階的に向上させる。
前提条件
- •対象: 現在のブランチで変更されたファイル(
git diffで特定) - •受入基準: コミットメッセージまたはPR説明から推測。不明な場合はユーザーに確認する。
実行手順
Phase 1: 現状把握
- •
git diff --name-onlyで変更ファイル一覧を取得 - •変更されたファイルの内容を確認し、全体像を理解
- •関連するテストファイルを特定(
spec/配下の対応ファイル)
Phase 2: レビューサイクル(最大3回)
各サイクルで以下を順に実行する:
Step 1: テスト実行
関連するRSpecテストを実行し、結果を確認する。 失敗がある場合は、他の観点より先に修正を優先する。
Step 2: 品質チェック(優先度順)
以下の順序で確認し、問題があれば修正する:
| 優先度 | 観点 | 確認内容 | アクション |
|---|---|---|---|
| 🔴 高 | セキュリティ | SQLインジェクション、XSS、マスアサインメント、StrongParameters | 即座に修正 |
| 🔴 高 | 受入基準 | 要求された機能が正しく実装されているか | 不足があれば実装 |
| 🟠 中 | エラーハンドリング | nil、空配列、境界値、例外処理 | 必要に応じて追加 |
| 🟠 中 | パフォーマンス | N+1クエリ、不要なループ、計算量 | 最適化を実施 |
| 🟡 低 | 可読性 | 命名規則、複雑度、コードの意図 | リファクタリング |
| 🟡 低 | DRY原則 | 重複コード、共通化の余地 | 抽出を検討 |
Step 3: 改善実施
- •問題を発見した場合、修正を実行
- •修正後、テストを再実行して回帰がないことを確認
- •RuboCopで静的解析エラーがないことを確認
Step 4: サイクル継続判定
- •🔴 高優先度の問題が残っている → 次のサイクルへ進む
- •🔴 高優先度の問題がすべて解消 → サイクルを終了
Phase 3: 完了報告
以下の形式で結果を報告する:
code
## レビュー結果サマリー ### 実施サイクル数: X/3 ### 修正内容 - [ファイル名:行番号] 修正内容の説明 ### 残存する改善提案(任意) - [ ] 提案内容(理由) ### テスト結果 - 実行: X件 / 成功: X件 / 失敗: 0件 ### RuboCop結果 - 違反: 0件
制約事項
- •テストが通らない状態でサイクルを終了しない
- •大規模なリファクタリングは提案のみとし、実施前にユーザー確認を取る
- •セキュリティ問題は必ず修正する(スキップ不可)
- •変更範囲外のコードは修正しない(影響範囲を限定)