mcpField
C
code-review

code-review

github.com/moizibnyousafテスト・品質1.2k961 回インストール5 週間前に更新
リポジトリ

code-review について

Code Reviewは、コードのセキュリティ、パフォーマンス、品質、テストを確認するレビュー用スキルです。よくある問題のチェックリストと、重大な指摘や提案を整理して報告する形式を備えています。

主な機能

  1. 01一般的なセキュリティ脆弱性を確認
  2. 02パフォーマンス上の問題を特定
  3. 03コード品質とエラー処理を評価
  4. 04テストカバレッジと信頼性を確認
  5. 05重大度別に指摘と修正案を報告

活用シーン

  1. 01マージ前の変更をレビュー
  2. 02コード内のセキュリティ問題を調査
  3. 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 });
}

レビューチェックリスト

  • ハードコードされたシークレットがない
  • 入力検証が実装されている
  • エラーハンドリングが完全である
  • 型/インターフェースが定義されている
  • 新しいコードにテストが追加されている
  • 明らかなパフォーマンス上の問題がない
  • コードが読みやすく、ドキュメント化されている
  • 破壊的変更が文書化されている

コメント