| name | review-output-format |
| description | コードレビュー結果の出力フォーマットを定義。重要度レベル、出力構造、GitHubコメント形式のMarkdownテンプレートを提供します。 |
レビュー出力フォーマット
このスキルはコードレビュー結果の出力形式を定義します。すべてのレビューはこのフォーマットに従って出力してください。
重要度レベル
| レベル | アイコン | 説明 | マージへの影響 |
|---|---|---|---|
| Critical | 🔴 | セキュリティ脆弱性、重大なバグ、データ損失リスク | マージ不可。即座に修正必須 |
| High | 🟠 | パフォーマンス問題、テスト不足、重要な設計問題 | マージ前に修正必須 |
| Medium | 🟡 | コードスタイル違反、軽微な設計問題 | 修正推奨(マージ可) |
| Low | 🟢 | 改善提案、リファクタリング候補 | 任意(マージ可) |
| Info | ℹ️ | 情報提供、肯定的なフィードバック | 参考情報 |
出力構造
単一観点のレビュー
## [アイコン] [観点名] レビュー結果
### サマリー
[2-3文での概要]
### 🔴 Critical
[問題がある場合のみ表示]
### 🟠 High
[問題がある場合のみ表示]
### 🟡 Medium
[問題がある場合のみ表示]
### 🟢 Low / Info
[問題がある場合のみ表示]
### ✅ 良い点
[肯定的なフィードバック]
---
レビュー完了: [日時]
レビュー観点: [観点名]
対象ファイル数: [数]
統合レビュー(複数観点)
# 📋 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]
---
## 🔒 セキュリティレビュー結果
[詳細]
---
## ⚡ パフォーマンスレビュー結果
[詳細]
---
## 🏗️ アーキテクチャレビュー結果
[詳細]
問題の記述形式
基本形式
### 🔴 Critical
#### 1. [問題のタイトル]
- **ファイル**: [`path/to/file.ts:42`](path/to/file.ts#L42)
- **問題**: [問題の説明]
- **影響**: [この問題が引き起こす影響]
- **修正提案**: [具体的な修正方法]
- **修正例**:
```typescript
// Before
[現在のコード]
// After
[修正後のコード]
- 参考: [関連ドキュメントへのリンク(あれば)]
### 具体例
```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]}%")
## 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>
特定行へのコメント(インラインコメント)
⚠️ **High: N+1クエリの可能性**
このコードはN+1クエリを引き起こす可能性があります。
**修正提案**:
```ruby
# 現在のコード
@spots = Spot.all
# 推奨される修正
@spots = Spot.includes(:user, :reviews).all
関連データを事前にロードすることで、クエリ数を大幅に削減できます。
## 問題が検出されなかった場合
```markdown
## ✅ [観点名] レビュー結果
レビューを完了しました。**問題は検出されませんでした**。
### レビュー対象
- ファイル数: 8
- 変更行数: +142 / -23
### 確認項目
- [x] [確認した項目1]
- [x] [確認した項目2]
- [x] [確認した項目3]
---
レビュー完了: 2025-01-15 10:30:00 JST
テストファイルのレビュー形式
テストファイルは通常のコードとは異なる観点でレビューします。
## 🧪 テストレビュー結果
### テストカバレッジ
- 新規コード: 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
テスト品質チェック
- 境界値テストの実装
- エラーケースのテスト
- モックの適切な使用
- テストの独立性
## 出力言語
すべてのレビュー結果は**日本語**で出力してください。
技術用語(例: SQLインジェクション、N+1クエリ)は英語のままで構いません。
## フッターテンプレート
```markdown
---
<sub>🤖 このレビューは [Claude Code](https://claude.com/claude-code) によって自動生成されました。</sub>
<sub>問題がある場合は、手動でレビューを依頼してください。</sub>