code-reviewer について
code-reviewerは、Spring Boot 4のJavaコードベースを対象とする構造化レビュー用スキルです。コードの文脈を確認し、関連箇所を調べて、ファイルパスと行番号を添えた具体的な指摘をまとめます。
主な機能
- 01レビュー範囲とバージョンの確認
- 02必要な参考資料の読み込み
- 03ビルド設定とAPIの確認
- 04アーキテクチャ・データ・セキュリティのレビュー
- 05ファイルパスと行番号付きの指摘
活用シーン
- 01Spring Boot 4のプルリクエストのレビュー
- 02セキュリティとパフォーマンスの確認
- 03移行時の残存課題の評価
- 04アーキテクチャ境界のレビュー
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ a-pavithraa/ springboot-skills-marketplace --skill code-reviewerインストール後、Claude Code で/code-reviewerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/architecture-patterns.mddomain-modeling.mdjava-25-features.mdjspecify-null-safety.mdperformance-patterns.mdsecurity-checklist.mdspring-boot-4-patterns.mdvalue-objects-patterns.md詳細
Spring Boot 4 Reviewer(Java 17+)
目的
このスキルを使って、サポート対象のあらゆる Java バージョン(最低 17。新規 Boot 4 プロジェクトでは 21 LTS と 25 が一般的です)で、Spring Boot 4 のコードを体系的にレビューします。指摘は実際のコードベースに基づくものとし、該当する注目領域に限ってリファレンスファイルを使用してください。
重要なルール
- コードのコンテキストなしにレビューを行わないでください。ファイル、差分、または該当するモジュールが提供されていない場合は、提示を依頼してください。
- 指摘には必ずファイルパスと行番号を記載してください。
- Spring Boot 4 を対象としてください。プロジェクトの
pom.xml/build.gradleを読み、実際の Java バージョンを確認してください(Boot 4 は 17、21、25 をサポートしています)。Java 17 や 21 を「古すぎる」として指摘してはいけません。これらは Boot 4 で有効なベースラインです。 - 仮想スレッド、リアクティブ方式への書き換え、アーキテクチャの変更を推奨する前に、ワークロードを分析してください。
- 新しい Boot 4 コードでは、null 安全性の基準として JSpecify を優先してください。ただし、従来のアノテーションをすべて指摘する前に、コードベースが移行途中かどうかを確認してください。
- 主張がフレームワークの動作に関わる場合は、公式の Spring と Java のガイダンスを優先してください。
ワークフロー
Step 1:範囲を確認する
正確なレビューに必要な最小限のコンテキストを収集します。
- 対象範囲:単一ファイル、モジュール、PR、またはコードベース全体。
- 対象バージョン:該当する場合は、ビルドファイルで Java と Spring Boot のバージョンを確認します。
- 注目領域:移行、アーキテクチャ、データアクセス、セキュリティ、パフォーマンス、null 安全性、またはすべて。
- テストのコンテキスト:ユーザーがレビュー指摘のみを求めているのか、修正案とテストへの影響も求めているのか。
Step 2:レビューに該当するリファレンスのみを読み込む
必要に応じてリファレンスを読み込みます。
| 注目領域 | 読むファイル |
|---|---|
| Spring Boot 4 の移行パターンとフレームワークの変更点 | references/spring-boot-4-patterns.md |
| Java 25 の言語機能と並行処理の導入 | references/java-25-features.md |
| セキュリティレビュー | references/security-checklist.md |
| パフォーマンスレビュー | references/performance-patterns.md |
| アーキテクチャの境界とパッケージ構成 | references/architecture-patterns.md |
| ドメインモデルの構造 | references/domain-modeling.md |
| 値オブジェクトを多用する設計 | references/value-objects-patterns.md |
| null 安全性の確認 | references/jspecify-null-safety.md |
必要に応じて、別のスキルに切り替えてください。
- リポジトリ、クエリ、リレーションシップの詳細な作業には
spring-data-jpaを使用します。 - 段階的なアップグレード計画やアップグレードの実行には
springboot-migrationを使用します。
Step 3:レビューを実施する
依頼に該当するパスのみを実施してください。全体レビューでは、次の順序で進めます。
Pass A:ビルドと設定
pom.xmlまたはbuild.gradleで Java と Spring Boot のバージョンを確認します。- スターター名と移行時の残存要素を確認します。
- Jackson 3 の移行に関する問題、古くなったテストアノテーション、バージョンの不整合を調べます。
Pass B:API の正確性
- コントローラーとサービスの境界を確認します。
- バリデーションとエラー処理を確認します。
- 公開 API とメソッドのオーバーライドにおける null 許容性を確認します。
Pass C:アーキテクチャとパッケージ構成
- 使用されているアーキテクチャスタイルを特定します。
- パッケージ構成がそのスタイルと一貫しているか確認します。
- コントローラーからリポジトリへの近道や、ドメインコードにおけるインフラストラクチャ型の使用など、境界の漏れを指摘します。
Pass D:データアクセス
- リポジトリの配置と集約の境界を確認します。
- N+1 クエリ、ページネーションの欠如、プロジェクションの不一致、トランザクションの誤用を確認します。
Pass E:セキュリティ
- 認証と認可を確認します。
- 入力バリデーションと安全でないクエリパターンを確認します。
- シークレットの取り扱いと機密情報のログ出力を確認します。
Pass F:パフォーマンスとレジリエンス
- キャッシュ戦略、上限のない読み取り、非同期処理の使用、リモート呼び出しの動作を確認します。
- コードとワークロードから妥当性が確認できる場合にのみ、仮想スレッドの使用を評価します。
- タイムアウト、リトライ、コネクションプールに関する前提を確認します。
指摘のクイックトリガー
これらはコードの証拠の代わりではなく、レビューの着眼点として使用してください。
Spring Boot 4 と移行
- 古いスターター名
- 古い Mockito テストアノテーション
- Boot 4 のコードベースでの Jackson 2 の前提
RestTestClientではなくTestRestTemplateを使用@ImportHttpServicesではなくHttpServiceProxyFactoryの定型コードを手動で記述- ネイティブの
spring.mvc.apiversion.*ではなく、カスタムの API バージョニングを使用 @EnableResilientMethodsを付けずに@ConcurrencyLimitまたはネイティブの@Retryableを使用
Null 安全性
- プロジェクトで JSpecify を使用している場合に
package-info.javaがない - JSpecify への移行が完了したコードに
org.springframework.langアノテーションが残っている - オーバーライドに null 許容アノテーションがコピーされていない
アーキテクチャ
- コントローラーがリポジトリを直接呼び出している
- JPA エンティティを API に公開している
- モジュリスの境界が漏れている
- ビジネスロジックがコントローラーに集中している
パフォーマンス
- ループ内でエンティティをたどっている
- ページネーションがない
- 読み取り負荷の高い処理でプロジェクションを活用できていない
- ワークロードの根拠がない仮想スレッドの推奨
セキュリティ
- 特権操作に認可がない
- SQL または NoSQL インジェクションのリスク
- ソースコードまたはログにシークレットが含まれている
- エラー情報が安全でない形で公開されている
レポート形式
重大度の高い順に指摘事項を並べ、次のテンプレートを使用してください。
## Critical
- **[Category]**: Issue summary
- **File**: `path/to/File.java:123`
- **Impact**: What can fail, leak, or regress
- **Fix**: Specific change to make
## High
- ...
## Medium
- ...
## Low
- ...
指摘事項がない場合は、その旨を明記し、未レビューのモジュール、テスト不足、実行時コンテキストを利用できないなど、残る死角を挙げてください。
よくあるレビューの種類
クイック PR レビュー
- 変更されたファイルを読みます。
references/spring-boot-4-patterns.mdとreferences/java-25-features.mdを読み込みます。- 差分が該当領域に触れている場合は、
references/security-checklist.mdまたはreferences/performance-patterns.mdを追加します。 - ファイル名と行番号を示した、具体的な指摘事項のみを報告します。
セキュリティレビュー
references/security-checklist.mdを読みます。- コントローラー、サービスのエントリーポイント、セキュリティ設定、永続化の境界に注目します。
- 違反したルールだけでなく、悪用可能性と影響を受けるエントリーポイントを報告します。
アーキテクチャレビュー
references/architecture-patterns.mdを読みます。- コードからリッチドメインアプローチが適切と思われる場合は、
references/domain-modeling.mdまたはreferences/value-objects-patterns.mdを追加します。 - 現在のアーキテクチャスタイルに関連する境界の不整合と結合の問題を報告します。
移行レビュー
references/spring-boot-4-patterns.mdとreferences/java-25-features.mdを読みます。- 移行時の残存事項、古い API、導入が不完全な問題に注目します。
- レビューではなく段階的なアップグレード計画をユーザーが求めている場合は、
springboot-migrationを使用します。
このスキルを使用しない場合
- Kotlin を主に使用するコードベース
- Micronaut や Quarkus など、Spring 以外の Java フレームワーク
- コードのコンテキストがない一般的なレビュー指導
- フロントエンドのみの変更
コメント
Markdown 対応