mcpField
C
code-review

code-review

github.com/shareai-labテスト・品質79.6k110 回インストール3 日前に更新
リポジトリ

code-review について

開発者向けの構造化されたコードレビュー用スキルです。セキュリティ、正確性、性能、保守性、テストを確認し、レビュー手順や言語別の例、コマンドラインでの検査案を示します。

主な機能

  1. 01セキュリティと脆弱性の確認
  2. 02ロジック・性能・リソースの確認
  3. 03保守性とテストのレビュー
  4. 04手順と言語別の例

活用シーン

  1. 01プルリクエストのセキュリティ問題を確認
  2. 02変更箇所の境界条件やリソース漏れを確認
  3. 03マージ前にテストと保守性を評価

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/shareai-lab/learn-claude-code --skill code-review

インストール後、Claude Code で/code-reviewを入力して読み込まれたか確認します。

詳細

コードレビューのスキル

包括的なコードレビューを実施するための専門知識を身につけました。次の構造化された手順に従ってください。

レビューチェックリスト

1. セキュリティ(重大)

次の点を確認してください。

  • インジェクションの脆弱性:SQL、コマンド、XSS、テンプレートインジェクション
  • 認証の問題:ハードコードされた認証情報、脆弱な認証
  • 認可の欠陥:アクセス制御の欠如、IDOR
  • データの漏えい:ログやエラーメッセージに含まれる機密データ
  • 暗号化:脆弱なアルゴリズム、不適切な鍵管理
  • 依存関係:既知の脆弱性(npm audit、pip-auditで確認)
# Quick security scans
npm audit                    # Node.js
pip-audit                    # Python
cargo audit                  # Rust
grep -r "password\|secret\|api_key" --include="*.py" --include="*.js"
2. 正確性

次の点を確認してください。

  • ロジックエラー:オフバイワンエラー、null の処理、エッジケース
  • 競合状態:同期せずに行われる同時アクセス
  • リソースリーク:閉じられていないファイルや接続、メモリ
  • エラー処理:握りつぶされた例外、エラーパスの欠落
  • 型安全性:暗黙的な型変換、any 型
3. パフォーマンス

次の点を確認してください。

  • N+1 クエリ:ループ内でのデータベース呼び出し
  • メモリの問題:大きなメモリ割り当て、解放されない参照
  • ブロッキング処理:非同期コード内の同期 I/O
  • 非効率なアルゴリズム:O(n)で実現できる処理におけるO(n^2)
  • キャッシュの欠如:高コストな計算の繰り返し
4. 保守性

次の点を確認してください。

  • 命名:明確で、一貫性があり、内容をよく表しているか
  • 複雑さ:50行を超える関数、3階層を超える深いネスト
  • 重複:コピー&ペーストされたコードブロック
  • デッドコード:未使用のインポート、到達不能な分岐
  • コメント:古い、冗長、または必要な箇所にないコメント
5. テスト

次の点を確認してください。

  • カバレッジ:重要なパスがテストされているか
  • エッジケース:null、空、境界値
  • モック:外部依存関係が分離されているか
  • アサーション:意味があり、具体的なチェック

レビュー出力形式

## Code Review: [file/component name]

### Summary
[1-2 sentence overview]

### Critical Issues
1. **[Issue]** (line X): [Description]
   - Impact: [What could go wrong]
   - Fix: [Suggested solution]

### Improvements
1. **[Suggestion]** (line X): [Description]

### Positive Notes
- [What was done well]

### Verdict
[ ] Ready to merge
[ ] Needs minor changes
[ ] Needs major revision

指摘すべき一般的なパターン

Python
# Bad: SQL injection
cursor.execute(f"SELECT * FROM users WHERE id = {user_id}")
# Good:
cursor.execute("SELECT * FROM users WHERE id = ?", (user_id,))

# Bad: Command injection
os.system(f"ls {user_input}")
# Good:
subprocess.run(["ls", user_input], check=True)

# Bad: Mutable default argument
def append(item, lst=[]):  # Bug: shared mutable default
# Good:
def append(item, lst=None):
    lst = lst or []
JavaScript/TypeScript
// Bad: Prototype pollution
Object.assign(target, userInput)
// Good:
Object.assign(target, sanitize(userInput))

// Bad: eval usage
eval(userCode)
// Good: Never use eval with user input

// Bad: Callback hell
getData(x => process(x, y => save(y, z => done(z))))
// Good:
const data = await getData();
const processed = await process(data);
await save(processed);

レビューコマンド

# Show recent changes
git diff HEAD~5 --stat
git log --oneline -10

# Find potential issues
grep -rn "TODO\|FIXME\|HACK\|XXX" .
grep -rn "password\|secret\|token" . --include="*.py"

# Check complexity (Python)
pip install radon && radon cc . -a

# Check dependencies
npm outdated  # Node
pip list --outdated  # Python

レビューワークフロー

  1. コンテキストを理解する:PR の説明と、リンクされた Issue を読む
  2. コードを実行する:可能であれば、ビルド、テストを行い、ローカルで実行する
  3. 上から順に読む:主なエントリーポイントから始める
  4. テストを確認する:変更はテストされているか。テストは成功するか
  5. セキュリティスキャンを行う:自動化ツールを実行する
  6. 手動でレビューする:上記のチェックリストを使う
  7. フィードバックを書く:具体的に、修正案を提案し、親切に伝える

コメント