code-review-expert について
現在の Git 変更を対象に、SOLID、アーキテクチャ、削除候補、セキュリティ、信頼性を確認する構造化レビュー用スキルです。既定では指摘のみを提示し、明示的な依頼なしに変更を実装しません。
主な機能
- 01Git変更範囲の把握
- 02SOLIDとアーキテクチャの評価
- 03削除候補の特定
- 04セキュリティと信頼性の確認
- 05重大度別の指摘整理
活用シーン
- 01マージ前のコード変更レビュー
- 02セキュリティ上重要な箇所や主要経路の確認
- 03未使用コードの削除と後続作業の計画
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dtyq/ magic --skill code-review-expertインストール後、Claude Code で/code-review-expertを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/agent.yamlreferences/code-quality-checklist.mdremoval-plan.mdsecurity-checklist.mdsolid-checklist.md詳細
コードレビューの専門家
概要
現在の Git の変更を、SOLID、アーキテクチャ、削除候補、セキュリティリスクに重点を置いて、体系的にレビューします。ユーザーが変更の実装を依頼しない限り、レビュー結果のみを出力します。
重要度レベル
| レベル | 名前 | 説明 | 対応 |
|---|---|---|---|
| P0 | 重大 | セキュリティ脆弱性、データ損失のリスク、正確性の不具合 | マージを必ずブロック |
| P1 | 高 | ロジックエラー、重大な SOLID 違反、パフォーマンスの低下 | マージ前に修正すべき |
| P2 | 中 | コードの不自然な点、保守性の懸念、軽微な SOLID 違反 | この PR で修正するか、フォローアップを作成 |
| P3 | 低 | スタイル、命名、軽微な提案 | 任意の改善 |
ワークフロー
1) 事前のコンテキスト確認
git status -sb、git diff --stat、git diffを使用して変更範囲を把握します。- 必要に応じて、
rgまたはgrepを使用して関連するモジュール、使用箇所、契約を探します。 - エントリーポイント、責任範囲の境界、重要な処理経路(認証、決済、データ書き込み、ネットワーク)を特定します。
エッジケース:
- 変更なし:
git diffが空の場合はユーザーに伝え、ステージ済みの変更または特定のコミット範囲をレビューするか確認します。 - 大きな差分(500 行超):まずファイルごとに要約し、その後、モジュールまたは機能領域ごとに分けてレビューします。
- 関心事の混在:ファイル順ではなく、論理的な機能ごとに指摘をまとめます。
2) SOLID とアーキテクチャ上の問題点
- 具体的な確認項目については
references/solid-checklist.mdを読み込みます。 - 次の点を確認します。
- SRP:無関係な責任を抱えた過剰なモジュール。
- OCP:拡張ポイントを設けず、振る舞いの追加のたびに頻繁な編集が必要な箇所。
- LSP:期待を損なうサブクラスや、型チェックを必要とするサブクラス。
- ISP:未使用のメソッドを含む広範なインターフェース。
- DIP:低レベルの実装に結び付いた高レベルのロジック。
- リファクタリングを提案する場合は、凝集度や結合度がどう改善するかを説明し、最小限で安全な分割方法を示します。
- リファクタリングが容易でない場合は、大規模な書き換えではなく、段階的な計画を提案します。
3) 削除候補と反復計画
- テンプレートについては
references/removal-plan.mdを読み込みます。 - 未使用、重複、または機能フラグで無効化されたコードを特定します。
- 今すぐ安全に削除可能なものと、計画を立てて延期するものを区別します。
- 具体的な手順とチェックポイント(テスト/メトリクス)を含むフォローアップ計画を提示します。
4) セキュリティと信頼性の確認
- 確認範囲については
references/security-checklist.mdを読み込みます。 - 次の点を確認します。
- XSS、インジェクション(SQL/NoSQL/コマンド)、SSRF、パストラバーサル
- 認可/認証の不備、テナントチェックの欠落
- 秘密情報の漏えい、ログ/環境変数/ファイル内の API キー
- レート制限、上限のないループ、CPU/メモリの負荷が高い箇所
- 安全でないデシリアライゼーション、脆弱な暗号、安全でないデフォルト設定
- 競合状態:並行アクセス、確認後の実行、TOCTOU、ロックの欠落
- 悪用可能性と影響の両方を指摘します。
5) コード品質の確認
- 確認範囲については
references/code-quality-checklist.mdを読み込みます。 - 次の点を確認します。
- エラー処理:握りつぶされた例外、広範すぎる catch、エラー処理の欠落、非同期エラー
- パフォーマンス:N+1 クエリ、ホットパスでの CPU 負荷の高い処理、キャッシュの欠落、上限のないメモリ使用
- 境界条件:null/undefined の処理、空のコレクション、数値の境界、オフバイワン
- サイレントな失敗や本番環境でのインシデントにつながる可能性がある問題を指摘します。
6) 出力形式
レビューは次の形式で構成します。
## Code Review Summary
**Files reviewed**: X files, Y lines changed
**Overall assessment**: [APPROVE / REQUEST_CHANGES / COMMENT]
---
## Findings
### P0 - Critical
(none or list)
### P1 - High
- **[file:line]** Brief title
- Description of issue
- Suggested fix
### P2 - Medium
...
### P3 - Low
...
---
## Removal/Iteration Plan
(if applicable)
## Additional Suggestions
(optional improvements, not blocking)
インラインコメント:ファイル固有の指摘には、次の形式を使用します。
::code-comment{file="path/to/file.ts" line="42" severity="P1"}
Description of the issue and suggested fix.
::
問題がない場合:問題が見つからなかった場合は、次の点を明示します。
- 確認した内容
- 確認できていない領域(例:「データベースのマイグレーションは検証していません」)
- 残存リスク、または推奨する追加テスト
7) 次のステップの確認
指摘を提示した後、どのように進めるかをユーザーに確認します。
---
## Next Steps
I found X issues (P0: _, P1: _, P2: _, P3: _).
**How would you like to proceed?**
1. **Fix all** - I'll implement all suggested fixes
2. **Fix P0/P1 only** - Address critical and high priority issues
3. **Fix specific items** - Tell me which issues to fix
4. **No changes** - Review complete, no implementation needed
Please choose an option or provide specific instructions.
重要:ユーザーが明示的に確認するまで、変更を実装してはいけません。このワークフローでは、まずレビューを行います。
リソース
references/
| ファイル | 目的 |
|---|---|
solid-checklist.md | SOLID の問題点に関するプロンプトとリファクタリングのヒューリスティック |
security-checklist.md | Web/アプリのセキュリティとランタイムのリスクに関するチェックリスト |
code-quality-checklist.md | エラー処理、パフォーマンス、境界条件 |
removal-plan.md | 削除候補とフォローアップ計画のテンプレート |
コメント
Markdown 対応