code-review について
Code Reviewは、コードのセキュリティ、パフォーマンス、品質、テストを確認するレビュー用スキルです。よくある問題のチェックリストと、重大な指摘や提案を整理して報告する形式を備えています。
主な機能
- 01一般的なセキュリティ脆弱性を確認
- 02パフォーマンス上の問題を特定
- 03コード品質とエラー処理を評価
- 04テストカバレッジと信頼性を確認
- 05重大度別に指摘と修正案を報告
活用シーン
- 01マージ前の変更をレビュー
- 02コード内のセキュリティ問題を調査
- 03新しいコードのテストや性能の不足を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ moizibnyousaf/ ai-agent-skills --skill code-reviewインストール後、Claude Code で/code-reviewを入力して読み込まれたか確認します。
詳細
コードレビュー
レビューのカテゴリ
1. セキュリティレビュー
以下を確認します:
- SQL インジェクションの脆弱性
- XSS(クロスサイトスクリプティング)
- コマンドインジェクション
- 安全でないデシリアライゼーション
- ハードコードされたシークレット/認証情報
- 不適切な認証/認可
- 安全でない直接オブジェクト参照
2. パフォーマンスレビュー
以下を確認します:
- N+1 クエリ
- データベースインデックスの不足
- 不要な再レンダリング(React)
- メモリーリーク
- 非同期コード内のブロッキング操作
- キャッシュを適用できる箇所の見落とし
- バンドルサイズが大きい
3. コード品質レビュー
以下を確認します:
- コードの重複(DRY 違反)
- 多くの処理を担う関数(SRP 違反)
- 深いネスト/複雑な条件分岐
- マジックナンバー/文字列
- 不適切な命名
- エラーハンドリングの不足
- 型カバレッジの不足
4. テストレビュー
以下を確認します:
- 新しいコードのテストカバレッジ不足
- 動作をテストしていないテスト
- 不安定なテストのパターン
- エッジケースの不足
- 外部依存関係のモック化
レビュー出力形式
## Code Review Summary
### 🔴 Critical (Must Fix)
- **[File:Line]** [Issue description]
- **Why:** [Explanation]
- **Fix:** [Suggested fix]
### 🟡 Suggestions (Should Consider)
- **[File:Line]** [Issue description]
- **Why:** [Explanation]
- **Fix:** [Suggested fix]
### 🟢 Nits (Optional)
- **[File:Line]** [Minor suggestion]
### ✅ What's Good
- [Positive feedback on good patterns]
注意すべき一般的なパターン
セキュリティ
// BAD: SQL injection
const query = `SELECT * FROM users WHERE id = ${userId}`;
// GOOD: Parameterized query
const query = 'SELECT * FROM users WHERE id = $1';
await db.query(query, [userId]);
パフォーマンス
// BAD: N+1 query
users.forEach(async user => {
const posts = await getPosts(user.id);
});
// GOOD: Batch query
const userIds = users.map(u => u.id);
const posts = await getPostsForUsers(userIds);
エラーハンドリング
// BAD: Swallowing errors
try {
await riskyOperation();
} catch (e) {}
// GOOD: Handle or propagate
try {
await riskyOperation();
} catch (e) {
logger.error('Operation failed', { error: e });
throw new AppError('Operation failed', { cause: e });
}
レビューチェックリスト
- ハードコードされたシークレットがない
- 入力検証が実装されている
- エラーハンドリングが完全である
- 型/インターフェースが定義されている
- 新しいコードにテストが追加されている
- 明らかなパフォーマンス上の問題がない
- コードが読みやすく、ドキュメント化されている
- 破壊的変更が文書化されている
コメント
Markdown 対応