# Review Changes

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

- Skill: `majiayu000/review-changes` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/review-changes`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/review-changes/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/review-changes

---


# 変更レビュースキル

コミット前の変更を自動レビューし、問題点・改善点・リスクを指摘します。

## レビュー観点

### 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/) はスキップ
- レビュー結果は参考情報であり、最終判断は人間が行う

