Agent skill

review-changes

コミット前の変更をレビュー。差分を分析し、問題点・改善点・リスクを指摘。トリガー: /review-changes, 変更レビュー, コミット前チェック, diffレビュー

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/review-changes

SKILL.md

変更レビュースキル

コミット前の変更を自動レビューし、問題点・改善点・リスクを指摘します。

レビュー観点

1. コード品質

  • 不要なデバッグコード (console.log, print, debugger)
  • ハードコードされた値 (URL, 認証情報, マジックナンバー)
  • 未使用のimport/変数
  • コメントアウトされたコード
  • TODO/FIXME の新規追加

2. セキュリティ

  • 機密情報の漏洩 (APIキー, パスワード, トークン)
  • SQLインジェクション/XSSの可能性
  • 危険な関数の使用 (eval, exec)
  • 権限チェックの欠如

3. パフォーマンス

  • N+1 クエリの可能性
  • 不必要なループ/再計算
  • 大きなオブジェクトのコピー
  • メモリリークの可能性

4. 保守性

  • 関数が長すぎる (50行以上)
  • ネストが深すぎる (4階層以上)
  • 命名が不明確
  • 重複コード

5. テスト

  • テストが追加/更新されているか
  • テストカバレッジの低下
  • エッジケースのテスト漏れ

実行フロー

bash
# 1. 変更差分を取得
git diff --staged  # ステージングされた変更
git diff           # 未ステージの変更

# 2. 変更ファイル一覧
git diff --name-only

# 3. 各ファイルを分析
# 4. レポート生成

出力形式

markdown
## 変更レビューレポート

### 概要
- **変更ファイル**: N files
- **追加行**: +XXX
- **削除行**: -XXX
- **影響範囲**: src/api/, tests/

---

### 検出された問題

#### 🔴 要修正 (ブロッカー)

| ファイル | 行 | 問題 | 説明 |
|---------|-----|------|------|
| src/api.ts | 45 | 機密情報 | APIキーがハードコード |
| src/db.ts | 78 | SQLi | ユーザー入力が直接クエリに |

#### 🟡 推奨修正

| ファイル | 行 | 問題 | 説明 |
|---------|-----|------|------|
| src/util.ts | 12 | デバッグコード | console.log が残存 |
| src/handler.ts | 34 | 長い関数 | 78行 (推奨: 50行以下) |

#### 🟢 情報

| ファイル | 行 | 内容 |
|---------|-----|------|
| src/types.ts | 5 | 新しいTODO追加 |

---

### 良い点

- ✅ エラーハンドリングが適切に追加されている
- ✅ 型定義が明確
- ✅ テストが追加されている

---

### 推奨アクション

1. **[必須]** src/api.ts:45 のAPIキーを環境変数に移動
2. **[必須]** src/db.ts:78 でプリペアドステートメントを使用
3. **[推奨]** src/util.ts:12 のconsole.logを削除
4. **[推奨]** src/handler.ts の関数を分割

---

### コミット判定

❌ **コミット非推奨** - 要修正項目があります

または

✅ **コミット可能** - 重大な問題はありません

使用方法

bash
# ステージング済みの変更をレビュー
/review-changes

# 特定ファイルのみレビュー
/review-changes src/api.ts

# 未ステージの変更も含めてレビュー
/review-changes --all

自動検出パターン

機密情報 (正規表現)

# APIキー
(api[_-]?key|apikey)\s*[:=]\s*['"][^'"]+['"]

# パスワード
(password|passwd|pwd)\s*[:=]\s*['"][^'"]+['"]

# トークン
(token|secret|auth)\s*[:=]\s*['"][^'"]+['"]

# AWS認証情報
AKIA[0-9A-Z]{16}

デバッグコード

console\.(log|debug|info|warn|error)\(
print\(
debugger;
binding\.pry
import pdb

注意事項

  • 大量の変更 (500行以上) は概要のみのレビューに切り替え
  • バイナリファイル、ロックファイルはスキップ
  • 自動生成ファイル (*.min.js, dist/) はスキップ
  • レビュー結果は参考情報であり、最終判断は人間が行う

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results