レビュー出力フォーマット
このスキルはコードレビュー結果の出力形式を定義します。すべてのレビューはこのフォーマットに従って出力してください。
重要度レベル
| レベル | アイコン | 説明 | マージへの影響 |
|---|---|---|---|
| Critical | 🔴 | セキュリティ脆弱性、重大なバグ、データ損失リスク | マージ不可。即座に修正必須 |
| High | 🟠 | パフォーマンス問題、テスト不足、重要な設計問題 | マージ前に修正必須 |
| Medium | 🟡 | コードスタイル違反、軽微な設計問題 | 修正推奨(マージ可) |
| Low | 🟢 | 改善提案、リファクタリング候補 | 任意(マージ可) |
| Info | ℹ️ | 情報提供、肯定的なフィードバック | 参考情報 |
出力構造
単一観点のレビュー
markdown
## [アイコン] [観点名] レビュー結果 ### サマリー [2-3文での概要] ### 🔴 Critical [問題がある場合のみ表示] ### 🟠 High [問題がある場合のみ表示] ### 🟡 Medium [問題がある場合のみ表示] ### 🟢 Low / Info [問題がある場合のみ表示] ### ✅ 良い点 [肯定的なフィードバック] --- レビュー完了: [日時] レビュー観点: [観点名] 対象ファイル数: [数]
統合レビュー(複数観点)
markdown
# 📋 PR レビュー結果 ## サマリー | 観点 | Critical | High | Medium | Low | |------|----------|------|--------|-----| | 🔒 セキュリティ | 0 | 1 | 2 | 0 | | ⚡ パフォーマンス | 0 | 0 | 1 | 1 | | 🏗️ アーキテクチャ | 0 | 0 | 0 | 2 | | **合計** | **0** | **1** | **3** | **3** | ## 判定 [APPROVED / CHANGES_REQUESTED / COMMENT] --- ## 🔒 セキュリティレビュー結果 [詳細] --- ## ⚡ パフォーマンスレビュー結果 [詳細] --- ## 🏗️ アーキテクチャレビュー結果 [詳細]
問題の記述形式
基本形式
markdown
### 🔴 Critical #### 1. [問題のタイトル] - **ファイル**: [`path/to/file.ts:42`](path/to/file.ts#L42) - **問題**: [問題の説明] - **影響**: [この問題が引き起こす影響] - **修正提案**: [具体的な修正方法] - **修正例**: ```typescript // Before [現在のコード] // After [修正後のコード]
- •参考: [関連ドキュメントへのリンク(あれば)]
code
### 具体例
```markdown
### 🔴 Critical
#### 1. SQLインジェクションの脆弱性
- **ファイル**: [`back/app/controllers/api/v1/spots_controller.rb:25`](back/app/controllers/api/v1/spots_controller.rb#L25)
- **問題**: ユーザー入力が直接SQLクエリに挿入されています
- **影響**: 攻撃者がデータベースの全データを取得・改ざん・削除可能
- **修正提案**: パラメータ化クエリを使用してください
- **修正例**:
```ruby
# Before
Spot.where("name LIKE '%#{params[:q]}%'")
# After
Spot.where("name LIKE ?", "%#{params[:q]}%")
code
## GitHubコメント形式 ### PR全体へのコメント ```markdown ## 📋 自動コードレビュー結果 > このレビューは Claude Code によって自動生成されました ### 概要 このPRでは [変更の概要] が実装されています。 ### レビュー結果 - 🔴 Critical: **0件** - 🟠 High: **1件** - 🟡 Medium: **2件** - 🟢 Low: **3件** ### 判定: ⚠️ CHANGES_REQUESTED --- [詳細なレビュー内容] --- <details> <summary>レビュー設定</summary> - レビューエージェント: security-reviewer, performance-reviewer, architecture-reviewer - レビュー日時: 2025-01-15 10:30:00 JST - 対象ファイル数: 12 </details>
特定行へのコメント(インラインコメント)
markdown
⚠️ **High: N+1クエリの可能性** このコードはN+1クエリを引き起こす可能性があります。 **修正提案**: ```ruby # 現在のコード @spots = Spot.all # 推奨される修正 @spots = Spot.includes(:user, :reviews).all
関連データを事前にロードすることで、クエリ数を大幅に削減できます。
code
## 問題が検出されなかった場合 ```markdown ## ✅ [観点名] レビュー結果 レビューを完了しました。**問題は検出されませんでした**。 ### レビュー対象 - ファイル数: 8 - 変更行数: +142 / -23 ### 確認項目 - [x] [確認した項目1] - [x] [確認した項目2] - [x] [確認した項目3] --- レビュー完了: 2025-01-15 10:30:00 JST
テストファイルのレビュー形式
テストファイルは通常のコードとは異なる観点でレビューします。
markdown
## 🧪 テストレビュー結果
### テストカバレッジ
- 新規コード: 85%
- 全体: 78%
### 検出された問題
#### 🟡 Medium: アサーションの不足
- **ファイル**: [`spec/models/spot_spec.rb:45`](spec/models/spot_spec.rb#L45)
- **問題**: テストケースにアサーションがありません
- **修正例**:
```ruby
# Before
it 'creates a spot' do
Spot.create(name: 'Test')
end
# After
it 'creates a spot' do
expect { Spot.create(name: 'Test') }.to change(Spot, :count).by(1)
end
テスト品質チェック
- • 境界値テストの実装
- • エラーケースのテスト
- • モックの適切な使用
- • テストの独立性
code
## 出力言語 すべてのレビュー結果は**日本語**で出力してください。 技術用語(例: SQLインジェクション、N+1クエリ)は英語のままで構いません。 ## フッターテンプレート ```markdown --- <sub>🤖 このレビューは [Claude Code](https://claude.com/claude-code) によって自動生成されました。</sub> <sub>問題がある場合は、手動でレビューを依頼してください。</sub>