mcpField
C
code-reviewer

code-reviewer

github.com/zhaono1テスト・品質85752 回インストール9 週間前に更新
リポジトリ

code-reviewer について

Code Reviewerは、プルリクエストやコード変更を正確性、セキュリティ、性能、保守性の観点から確認するスキルです。段階的なレビュー手順、チェックリスト、言語別の指針、チェックリスト用スクリプトを備えています。

主な機能

  1. 01正確性と境界ケースを確認
  2. 02セキュリティと性能を点検
  3. 03コード品質と保守性を評価
  4. 04テストとドキュメントを確認
  5. 05言語別のレビュー指針を活用

活用シーン

  1. 01承認前にプルリクエストをレビュー
  2. 02変更に含まれるセキュリティ上の問題を確認
  3. 03新機能のテストを評価

インストール

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

$npx skills add https://github.com/zhaono1/agent-playbook --skill code-reviewer

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
references/
checklist.md
patterns.md
security.md
scripts/
review_checklist.py

詳細

コードレビュー

プルリクエストやコード変更を分析し、品質、セキュリティ、保守性、ベストプラクティスを確認する包括的なコードレビュースキルです。

このスキルが有効になるとき

このスキルは、次の場合に有効になります。

  • コードレビューを依頼したとき
  • PR レビューを依頼したとき
  • 変更のレビューについて言及したとき
  • 「これをレビューして」や「このコードをチェックして」と伝えたとき

レビュープロセス

フェーズ 1:コンテキストの収集
  1. 変更されたファイルを取得

    git diff main...HEAD --name-only
    git log main...HEAD --oneline
    
  2. 差分を取得

    git diff main...HEAD
    
  3. プロジェクトのコンテキストを把握

    • 関連するドキュメントを読む
    • 類似ファイルにおける既存のパターンを確認する
    • プロジェクト固有の規約を特定する
フェーズ 2:分析カテゴリ
1. 正確性
  • ロジックに問題がなく、要件に合致している
  • エッジケースが処理されている
  • エラー処理が適切である
  • 明らかなバグや誤字がない
2. セキュリティ
  • 秘密情報や認証情報がハードコードされていない
  • 入力値の検証とサニタイズが行われている
  • SQL インジェクションが防止されている
  • XSS が防止されている(フロントエンドの場合)
  • 認証/認可のチェックが行われている
  • ユーザーデータが安全に扱われている
3. パフォーマンス
  • N+1 クエリがない
  • キャッシュが適切に使用されている
  • アルゴリズムが効率的である
  • 不要な計算がない
  • メモリ効率がよい
4. コード品質
  • DRY 原則に従っている
  • KISS 原則に従っている
  • 抽象化が適切である
  • 命名規則が明確である
  • 型が適切に指定されている(TypeScript の場合)
  • コメントアウトされたコードがない
5. テスト
  • テストで新しい機能がカバーされている
  • テストでエッジケースがカバーされている
  • テストのアサーションに意味がある
  • 壊れやすいテストがない
6. ドキュメント
  • 複雑なロジックが説明されている
  • 公開 API にドキュメントがある
  • 関数に JSDoc/TSDoc がある
  • 必要に応じて README が更新されている
7. 保守性
  • コードが読みやすい
  • スタイルが一貫している
  • モジュール化された設計になっている
  • 関心事が分離されている
フェーズ 3:出力形式

レビューのフィードバックには、次の構造化された形式を使用します。

# Code Review

## Summary
Brief overview of the changes (2-3 sentences).

## Issues by Severity

### Critical
Must fix before merge.

- [ ] **Issue Title**: Description with file:line reference

### High
Should fix before merge unless there's a good reason.

- [ ] **Issue Title**: Description with file:line reference

### Medium
Consider fixing, can be done in follow-up.

- [ ] **Issue Title**: Description with file:line reference

### Low
Nice to have improvements.

- [ ] **Issue Title**: Description with file:line reference

## Positive Highlights
What was done well in this PR.

## Suggestions
Optional improvements that don't require immediate action.

## Approval Status
- [ ] Approved
- [ ] Approved with suggestions
- [ ] Request changes

よくある問題の確認

セキュリティ上の問題
問題パターン推奨事項
秘密情報のハードコードconst API_KEY = "sk-"環境変数を使用する
SQL インジェクション\"SELECT * FROM...\" + user_inputパラメーター化クエリを使用する
XSS 脆弱性innerHTML = user_inputサニタイズするか、textContent を使用する
認証チェックの欠落@RequireAuth のない新しいエンドポイント認証ミドルウェアを追加する
パフォーマンス上の問題
問題パターン推奨事項
N+1 クエリデータベース呼び出しを含むループイーガーローディングまたはバッチクエリを使用する
不要な再レンダリングuseEffect の依存配列が不足している依存配列を修正する
メモリリークイベントリスナーが削除されていないuseEffect の return でクリーンアップを追加する
非効率なループO(n²) のネストされたループハッシュマップまたは別のアルゴリズムを検討する
コード品質の問題
問題パターン推奨事項
コードの重複類似したブロックが繰り返されている関数に切り出す
マジックナンバーif (status === 5)名前付き定数を使用する
長い関数関数が 50 行を超える小さな関数に分割する
複雑な条件式`a && b
テスト上の問題
問題パターン推奨事項
テストがないテストファイルのない新機能ユニットテストを追加する
エッジケースが未テスト正常系のみをカバーするテストエッジケースのテストを追加する
壊れやすいテスト実装の詳細に依存するテスト実装ではなく動作をテストする
アサーションの欠落何もアサートしないテスト適切なアサーションを追加する

言語別ガイドライン

TypeScript
  • 型が指定されていない値には any ではなく unknown を使用する
  • 公開 API には interface を、ユニオン型には type を優先する
  • strict モード設定を使用する
  • 可能な限り as による型アサーションを避ける
React
  • Hooks のルールに従う
  • useCallback/useMemo を適切に使用する(早まって使用しない)
  • 関数コンポーネントを優先する
  • リストでは適切な key props を使用する
  • Context を使って prop drilling を避ける
Python
  • PEP 8 スタイルガイドに従います
  • 型ヒントを使用します
  • フォーマットには f-string を使用します
  • map/filter よりもリスト内包表記を優先します
  • リソースにはコンテキストマネージャーを使用します
Go
  • エラーを明示的に処理します
  • 明確さのために名前付き戻り値を使用します
  • goroutine はシンプルに保ちます
  • 通信にはチャネルを使用します
  • パッケージレベルの状態を避けます

承認する前に

以下を確認してください:

  • すべての重大な問題に対処している
  • テストがローカルで合格する
  • マージの競合がない
  • コミットメッセージが明確である
  • ドキュメントが更新されている
  • 破壊的変更が文書化されている

スクリプト

レビューチェックリストのスクリプトを実行します:

python3 scripts/review_checklist.py --base main --output review-checklist.md

参考資料

  • references/checklist.md - レビューチェックリストの全項目
  • references/security.md - セキュリティレビューのガイドライン
  • references/patterns.md - よくあるパターンとアンチパターン

コメント