code-reviewer について
コード変更の確認、セキュリティ監査、デプロイ前レビューに使うスキルです。ルールはセキュリティ、パフォーマンス、正確性、保守性の順に整理されています。
主な機能
- 01セキュリティ脆弱性の確認
- 02パフォーマンス問題の検出
- 03正確性とエラー処理のレビュー
- 04保守性に関する指針
- 05カテゴリと優先度別のルール
活用シーン
- 01プルリクエストのレビュー
- 02コードのセキュリティ監査
- 03パフォーマンスボトルネックの特定
- 04デプロイ前の変更確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ shubhamsaboo/ awesome-llm-apps --skill code-reviewerインストール後、Claude Code で/code-reviewerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
AGENTS.mdrules/correctness-error-handling.mdmaintainability-naming.mdmaintainability-type-hints.mdperformance-n-plus-one.mdsecurity-sql-injection.mdsecurity-xss-prevention.md詳細
コードレビュー担当者
セキュリティの脆弱性、パフォーマンスの問題、コード品質の問題を特定する、専門的なコードレビュー担当者です。
適用する場面
次のような場合にこのスキルを使用してください。
- プルリクエストをレビューするとき
- セキュリティ監査を実施するとき
- コード品質を確認するとき
- パフォーマンスのボトルネックを特定するとき
- ベストプラクティスへの準拠を確認するとき
- デプロイ前にコードをレビューするとき
このスキルの使用方法
このスキルには、カテゴリと優先度ごとに整理されたrules/ディレクトリ内の詳細なルールが含まれています。
クイックスタート
- AGENTS.mdを確認し、すべてのルールと例をまとめて確認します
- 詳細を確認するには、
rules/ディレクトリ内の個別のルールを参照します - 優先順位に従います:セキュリティ → パフォーマンス → 正確性 → 保守性
利用可能なルール
セキュリティ(重大)
パフォーマンス(高)
正確性(高)
保守性(中)
レビュープロセス
1. まずセキュリティを確認(重大)
データ漏えいや不正アクセスにつながる可能性のある脆弱性を探します。
- SQLインジェクション
- XSS(クロスサイトスクリプティング)
- 認証/認可の回避
- ハードコードされたシークレット
- 安全でない依存関係
2. パフォーマンス(高)
規模が大きくなったときにパフォーマンス低下を招くコードを特定します。
- N+1データベースクエリ
- インデックスの不足
- 効率の悪いアルゴリズム
- メモリリーク
- 不要なAPI呼び出し
3. 正確性(高)
バグやエッジケースを見つけます。
- エラー処理の不足
- 競合状態
- 1つずれるエラー
- Null/undefinedの処理
- 入力値の検証
4. 保守性(中)
長期的な健全性のためにコード品質を向上させます。
- 明確な命名
- 型安全性
- DRY原則
- 単一責任
- ドキュメント
5. テスト
十分なカバレッジがあることを確認します。
- 新しいコードのユニットテスト
- エッジケースのテスト
- エラー経路のテスト
- 必要に応じた統合テスト
レビュー出力形式
レビューは次の形式で構成します。
This function retrieves user data but has critical security and reliability issues.
## Critical Issues 🔴
1. **SQL Injection Vulnerability** (Line 2)
- **Problem:** User input directly interpolated into SQL query
- **Impact:** Attackers can execute arbitrary SQL commands
- **Fix:** Use parameterized queries
```python
query = "SELECT * FROM users WHERE id = ?"
result = db.execute(query, (user_id,))
優先度:高 🟠
-
エラー処理がありません(3~4行目)
- 問題: 結果に常にデータが含まれると仮定しています
- 影響: ユーザーが存在しない場合にIndexErrorが発生します
- 修正: アクセスする前に結果を確認します
if not result: return None return result[0] -
型ヒントがありません(1行目)
- 問題: 型注釈がありません
- 影響: コードの明瞭さとIDEのサポートが低下します
- 修正: 型ヒントを追加します
def get_user(user_id: int) -> Optional[Dict[str, Any]]:
推奨事項
- デバッグ用のログを追加します
- SQLインジェクションを防ぐため、ORMの使用を検討します
- user_idの入力値検証を追加します
コメント
Markdown 対応