review-java について
指定された範囲の Java 言語およびランタイム規約を確認するコードレビュースキルです。カテゴリとファイル・行番号付きの指摘を出力し、範囲選定やセキュリティ、アーキテクチャのレビューは行いません。
主な機能
- 01並行処理とスレッド安全性の確認
- 02例外とリソース管理
- 03APIとバージョン互換性
- 04コレクション、ストリーム、NIOの確認
- 05テスト容易性のレビュー
- 06ファイル・行番号付きの指摘
活用シーン
- 01Javaの言語規約だけをレビュー
- 02レビューオーケストレーションのJava工程
- 03PR前のJava変更チェック
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nesnilnehc/ ai-cortex --skill review-javaインストール後、Claude Code で/review-javaを入力して読み込まれたか確認します。
同梱ファイルREADME.md
詳細
スキル:Java のレビュー
目的
Java コードの言語およびランタイムの規約のみをレビューします。対象範囲(差分かコードベース全体か)は決めず、セキュリティ分析やアーキテクチャ分析も行いません。これらはスコープおよび認知スキルが担当します。集約に使う標準形式で指摘事項の一覧を出力します。並行処理とスレッドセーフティ、例外と try-with-resources、API とバージョンの互換性、コレクションとストリーム、NIO と適切なクローズ、該当する場合はモジュール(JPMS)、テスト容易性に重点を置きます。
中核目標
主な目標:指定されたコード範囲を対象に、並行処理、例外、リソース管理、API 互換性、コレクション/ストリーム、NIO、テスト容易性を網羅した Java 言語/ランタイムの指摘事項一覧を作成します。
成功基準(すべて満たす必要があります):
- ✅ Java の範囲のみ:Java の言語およびランタイムの規約のみをレビューし、対象範囲の選定、セキュリティ分析、アーキテクチャ分析を行っていない
- ✅ Java の 6 つの観点をすべて網羅:関連する範囲で、並行処理/スレッドセーフティ、例外/リソース、API/バージョン互換性、コレクション/ストリーム、NIO/クローズ、テスト容易性を評価している
- ✅ 指摘事項の形式に準拠:すべての指摘事項に、findings-list §5.1 で必須とされるすべての要素が含まれ、カテゴリが
language-javaになっている - ✅ file:line 参照:すべての指摘事項が、行番号を含む具体的なファイル位置を示している
- ✅ Java 以外のコードを除外:明示的に対象範囲に含まれている場合を除き、Java 固有のルールを Java 以外のファイルに適用していない
受け入れテスト:出力には Java を中心とした指摘事項一覧が含まれ、関連する言語/ランタイムのすべての観点について file:line 参照が記載され、セキュリティ、アーキテクチャ、対象範囲の分析が含まれていませんか?
対象範囲の境界
このスキルの担当範囲:
- 並行処理とスレッドセーフティ(synchronized、volatile、並行コレクション、エグゼキューターのライフサイクル)
- 例外処理(try-with-resources、Throwable の階層、再スローのパターン)
- API の安定性とバージョン互換性(非推奨 API、JPMS の境界)
- コレクションと Stream API(割り当て、ボクシング、副作用、不変性)
- NIO とリソースのクローズ(ストリーム、チャネル、セレクター)
- テスト容易性(DI、シングルトンの使用、final とオーバーライド可能な設計)
このスキルの担当範囲外:
- 対象範囲の選定 — 対象範囲は呼び出し元が決定します
- セキュリティ分析 —
review-securityを使用します - アーキテクチャ分析 —
review-architectureを使用します - SQL 固有の分析 —
review-sqlを使用します - レビュー全体の統括 —
orchestrate-code-reviewを使用します
引き継ぎ先:Java の指摘事項をすべて出力したら、集約のために orchestrate-code-review に引き継ぎます。Java コード内で SQL またはセキュリティ上の問題に気付いた場合は、その旨を記載し、適切な認知スキルを提案します。
使用例
- 統括レビュー:orchestrate-code-review が Java プロジェクトを対象に、スコープ → 言語 → フレームワーク → ライブラリ → 認知の順で実行される際、言語ステップとして使用します。
- Java のみのレビュー:ユーザーが言語/ランタイムの規約のみを確認したい場合に使用します。
- PR 前の Java チェックリスト:並行処理、リソース管理、API 互換性が適切であることを確認します。
使用する状況:レビュー対象のコードが Java で、タスクに言語/ランタイムの品質が含まれている場合に使用します。対象範囲は呼び出し元またはユーザーが設定します。
動作
このスキルの対象
- 分析する内容:指定されたコード範囲(呼び出し元から提供されたファイルまたは差分)における Java 言語およびランタイムの規約です。対象範囲は選定せず、入力として受け取ります。
- 行わないこと:対象範囲の選定、セキュリティレビュー、アーキテクチャレビューは行いません。また、明示的に対象範囲に含まれている場合を除き、Java 以外のファイルに Java のルールを適用しません。
レビューチェックリスト(Java の観点のみ)
- 並行処理とスレッドセーフティ:synchronized、volatile、ロック、または並行処理 API の適切な使用、可視性と happens-before、共有可変状態、Executor の使用とシャットダウンを確認します。
- 例外とリソース:Closeable/AutoCloseable に対する try-with-resources、例外処理と抑制、空の catch や範囲が広すぎる catch の回避を確認します。
- API とバージョンの互換性:パブリック API の安定性、後方互換性、非推奨 API の使用と移行方法、該当する場合はモジュール境界(JPMS)を確認します。
- コレクションと Stream:Stream API の適切な使用、Stream 内の副作用、割り当てとボクシング、適切な場合の不変コレクションの使用を確認します。
- NIO とクローズ処理:ストリーム、チャネル、セレクターが適切にクローズされていること、リソースリークの回避、try-with-resources の使用を確認します。
- テスト容易性:依存性注入、static とシングルトンの使用、オーバーライド可能か final か、テストダブルとモックを確認します。
トーンと参照
- 専門的かつ技術的に:具体的な場所(file:line)を示してください。findings-list §5.1 が求めるすべての要素を含む指摘を出してください。
入力と出力
入力
- コードの対象範囲:ユーザーまたはスコープスキルがすでに選択したファイルやディレクトリ(または差分)です。このスキルは対象範囲を決めず、渡された Java コードの言語規約を確認します。
出力
- specs/findings-list.md で定義された形式で、カテゴリが
language-javaの指摘を 0 件以上出力します。 - このスキルのカテゴリは language-java です。
制限事項
厳守する境界
- セキュリティ、アーキテクチャ、対象範囲の選定を行わないでください。Java 言語とランタイムの規約に限定してください。
- 具体的な場所または実行可能な提案なしに結論を出さないでください。
- 明示的に対象に含まれていない限り、Java 以外のコードに Java 固有のルールを適用しないでください。
スキルの境界
次の作業は行わないでください(ほかのスキルが担当します)。
- コードの対象範囲を選択または定義しないでください。呼び出し元または
orchestrate-code-reviewが設定します。 - セキュリティ分析を行わないでください —
review-securityを使用してください。 - アーキテクチャ分析を行わないでください —
review-architectureを使用してください。 - SQL の完全な分析を行わないでください —
review-sqlを使用してください。
停止して引き継ぐタイミング:
- Java に関するすべての指摘を出し終えたら、集約のため
orchestrate-code-reviewに引き継ぎます。 - ユーザーが完全なレビュー(対象範囲、言語、認知的側面を含む)を希望する場合は、
orchestrate-code-reviewに案内します。 - SQL またはセキュリティの問題が見つかった場合は、その旨を伝え、適切な認知スキルを提案します。
セルフチェック
中核となる成功基準
- Java の対象範囲のみ:Java 言語とランタイムの規約のみをレビューし、対象範囲の選定、セキュリティ、アーキテクチャの分析を行っていない
- Java の 6 つの観点すべてを確認:該当する場合、並行処理/スレッドセーフティ、例外/リソース、API/バージョン互換性、コレクション/Stream、NIO/クローズ処理、テスト容易性を評価した
- 指摘の形式に準拠:すべての指摘に、カテゴリ
language-javaとともに findings-list §5.1 が求めるすべての要素が含まれている - file:line の参照:各指摘が行番号付きの具体的なファイル位置を示している
- Java 以外のコードを除外:明示的に対象に含まれていない限り、Java 以外のファイルに Java 固有のルールを適用していない
プロセス品質の確認
- Java 言語/ランタイムの観点のみをレビューしたか(対象範囲、セキュリティ、アーキテクチャは対象外)?
- 該当する並行処理、例外、リソース、コレクション/Stream、NIO、テスト容易性の観点を確認したか?
- すべての指摘に、カテゴリ
language-javaとともに findings-list §5.1 が求めるすべての要素が含まれているか? - 各問題に file:line の参照が付いているか?
受け入れテスト
出力には、関連するすべての言語/ランタイムの観点を網羅し、ファイル名と行番号を示す参照を含む、Java を中心とした指摘リストがありますか。また、セキュリティ、アーキテクチャ、スコープの分析は含まれていませんか?
例
例 1: リソースと例外
- 入力: try-with-resources を使わずに InputStream を開く Java メソッド。
- 期待される結果: リソース管理に関する指摘を出力し、try-with-resources の使用を提案します。category=language-java。
例 2: 並行処理
- 入力: 複数のスレッドからアクセスされる共有可変リストがあり、同期も並行コレクションも使われていません。
- 期待される結果: スレッドセーフ性に関する指摘を出力します(たとえば、CopyOnWriteArrayList または同期の使用を提案します)。フィールドとその使用箇所を示します。category=language-java。
境界事例: Java と SQL の混在
- 入力: Java のロジックとともに JDBC または JPA を含むファイル。
- 期待される結果: Java の規約のみをレビューします(リソース、例外、並行処理)。SQL インジェクションに関する指摘はここでは出力しません。そうした指摘は review-security または review-sql の対象です。