review-php について
review-phpは、PHPの言語およびランタイム規約を確認するスキルです。ファイル名と行番号付きの指摘を出力し、スコープ選定、セキュリティ、アーキテクチャの分析は行わず、包括的なコードレビューのPHP工程として使えます。
主な機能
- 01厳密型と型宣言の確認
- 02例外処理とリソース管理の確認
- 03PSR、名前空間、自動読み込みの確認
- 04null安全性とイテラブルの確認
- 05PHP互換性とテスト容易性の確認
- 06位置情報付きの形式化された指摘
活用シーン
- 01PHPファイルの言語規約レビュー
- 02統合レビューのPHP工程として利用
- 03PR前の型、リソース、PSR規約の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nesnilnehc/ ai-cortex --skill review-phpインストール後、Claude Code で/review-phpを入力して読み込まれたか確認します。
同梱ファイルREADME.md
詳細
スキル:PHP のレビュー
目的
PHP のコードについて、言語およびランタイムの規約のみをレビューします。スコープ(差分とコードベースのどちらを対象とするか)は定義せず、セキュリティやアーキテクチャの分析も行いません。これらはスコープスキルおよび認知スキルが担当します。集約用の標準形式で指摘事項の一覧を出力します。厳密型と宣言、エラー処理、リソース管理、PSR 標準(PSR-4、PSR-12)、名前空間、null 安全性、ジェネレーターとイテラブル、PHP バージョン互換性、テスト容易性に重点を置きます。
中核となる目標
主な目標:対象コードのスコープについて、厳密型、エラー処理、リソース管理、PSR 標準、名前空間、null 安全性、ジェネレーター、バージョン互換性、テスト容易性を網羅した、PHP 言語・ランタイムに関する指摘事項の一覧を作成します。
成功基準(すべて満たす必要があります):
- ✅ PHP のみを対象:PHP 言語およびランタイムの規約のみをレビューし、スコープ選定、セキュリティ、アーキテクチャの分析は行わない
- ✅ PHP に関する 9 つの観点をすべて網羅:該当する範囲で、厳密型、エラー処理、リソース管理、PSR 標準、名前空間/オートロード、null 安全性、ジェネレーター/イテラブル、PHP バージョン互換性、テスト容易性を評価する
- ✅ 指摘事項の形式に準拠:各指摘事項には、findings-list §5.1 で必須とされるすべての要素を含め、カテゴリを
language-phpとする - ✅ ファイルと行番号を参照:すべての指摘事項で、行番号を含む具体的なファイル位置を参照する
- ✅ PHP 以外のコードを除外:明示的に対象として指定されない限り、PHP 固有の規則について PHP 以外のファイルを分析しない
受け入れテスト:出力には、セキュリティ、アーキテクチャ、スコープの分析を行わず、関連する言語/ランタイムの観点を網羅し、ファイルと行番号を参照する、PHP に特化した指摘事項の一覧が含まれていますか?
スコープの境界
このスキルが扱うもの:
declare(strict_types=1)、型付きプロパティ、パラメーター、戻り値の型- 例外処理(Throwable 階層、try-catch-finally、空の catch を使用しない)
- リソース管理(fopen/fclose、データベース接続、try-finally パターン)
- PSR-4 オートロードと PSR-12 コーディングスタイル
- 名前空間とオートロードの正確性
- null 合体演算子(
??)、null セーフ演算子(?->)、エラー抑制の回避 - ジェネレーターとイテラブルの正確性
- composer.json の制約に対する PHP バージョン互換性
- テスト容易性(DI、静的メソッド/シングルトンの回避、コンストラクターインジェクション)
このスキルが扱わないもの:
- スコープ選定 — スコープは呼び出し元によって指定されます
- セキュリティ分析(インジェクション、認証、CSRF)—
review-securityを使用してください - アーキテクチャ分析 —
review-architectureを使用してください - SQL 固有の分析 —
review-sqlを使用してください - レビュー全体のオーケストレーション —
orchestrate-code-reviewを使用してください
引き継ぎ先:PHP に関する指摘事項をすべて出力したら、集約のために orchestrate-code-review に引き継いでください。PHP コード内で SQL インジェクションやセキュリティ上の脆弱性を見つけた場合は、その旨を記載し、review-security の利用を提案してください。
使用例
- オーケストレーションされたレビュー:orchestrate-code-review が PHP プロジェクトに対し、スコープ → 言語 → フレームワーク → ライブラリ → 認知の順で実行される際に、言語レビューのステップとして使用します。
- PHP のみのレビュー:ユーザーが言語/ランタイムの規約のみを確認したい場合(例:新しい PHP ファイルの追加後)。
- PR 前の PHP チェックリスト:型安全性、リソースのクリーンアップ、PSR 準拠が適切であることを確認します。
使用するタイミング:レビュー対象のコードが PHP であり、タスクに言語/ランタイムの品質確認が含まれる場合です。スコープは呼び出し元またはユーザーが決定します。
動作
このスキルの対象範囲
- 分析するもの:指定されたコードスコープ(呼び出し元が提供するファイルまたは差分)における PHP 言語およびランタイムの規約。スコープは決定せず、コード範囲を入力として受け取ります。
- 行わないこと:スコープ選定、セキュリティレビュー、アーキテクチャレビューは行いません。明示的に対象として指定されない限り、PHP 固有の規則について PHP 以外のファイルをレビューしません。
レビューチェックリスト(PHP の観点のみ)
- 厳密な型と宣言:
declare(strict_types=1)の使用状況、型付きプロパティとパラメーター、戻り値の型宣言、暗黙的な型変換による問題の回避。 - エラー処理:例外とエラーの使い分け、
Throwableの階層、適切な try-catch と再スロー、空の catch や範囲が広すぎる catch の回避、該当する場合のerror_reportingとエラーの例外への変換。 - リソース管理:
fopen/fclose、データベース接続、ストリーム。リソースが確実に閉じられるようにする(try-finally または短いスコープを使用)。リソースリークを回避する。 - PSR 標準:PSR-4 のオートロードと名前空間からパスへのマッピング、PSR-12 のコーディングスタイル(インデント、波括弧、可視性)、クラスとメソッドの命名。
- 名前空間とオートロード:適切な
use文、グローバル名前空間の汚染を回避、Composer のオートロード設定との整合性。 - null 安全性:null 合体演算子(
??)、null セーフ演算子(?->)、@によるエラー抑制の回避、配列でのissetとarray_key_existsの使い分け。 - ジェネレーターと反復可能オブジェクト:
yieldの正しい使用、イテレーターの適切な実装、大規模なデータセットを反復処理する際のメモリー効率。 - PHP バージョンの互換性:使用されている機能と composer.json の
php制約との整合性、非推奨 API と移行方法。 - テスト容易性:依存性注入、static とシングルトンの使用、コンストラクターインジェクション、モック用の接合点。
トーンと参照
- 専門的かつ技術的に:具体的な場所(ファイル:行)を示してください。findings-list §5.1 で必須とされるすべての要素を含む指摘事項を出力してください。
入力と出力
入力
- コードの範囲:ユーザーまたはスコープスキルがすでに選択したファイルやディレクトリ(または差分)です。このスキルでは範囲を決定せず、提供された PHP コードについて言語規約のみをレビューします。
出力
- specs/findings-list.md で定義された形式で、
Categoryがlanguage-phpの指摘事項を 0 件以上出力してください。 - このスキルの Category は language-php です。
制約
厳守事項
- セキュリティ、アーキテクチャ、範囲選択に関するレビューは行わないでください。PHP 言語とランタイムの規約に限定してください。
- 具体的な場所や実行可能な提案を伴わない結論を提示しないでください。
- 明示的に範囲に含まれていない限り、PHP 固有のルールについて PHP 以外のコードをレビューしないでください。
スキルの境界
以下は行わないでください(他のスキルが担当します)。
- コードの範囲を選択または定義しないでください。範囲は呼び出し元または
orchestrate-code-reviewによって決定されます。 - セキュリティ分析(SQL インジェクション、XSS、CSRF)を行わないでください。
review-securityを使用してください。 - アーキテクチャ分析を行わないでください。
review-architectureを使用してください。 - 包括的な SQL 分析を行わないでください。
review-sqlを使用してください。
作業を中断して引き継ぐタイミング:
- PHP に関するすべての指摘事項を出力したら、集約のために
orchestrate-code-reviewに引き継いでください。 - ユーザーが全体的なレビュー(範囲、言語、認知面を含む)を求めている場合は、
orchestrate-code-reviewに案内してください。 - SQL インジェクションやセキュリティ上の問題が見つかった場合は、その旨を記載し、
review-securityを提案してください。
セルフチェック
主な成功基準
- PHP のみを対象:PHP の言語とランタイムの規約のみをレビューしている。範囲選択、セキュリティ分析、アーキテクチャ分析は行っていない。
- PHP の 9 つの観点をすべて確認:該当する範囲で、厳密な型、エラー処理、リソース管理、PSR 標準、名前空間/オートロード、null 安全性、ジェネレーター/反復可能オブジェクト、PHP バージョンの互換性、テスト容易性を評価している。
- 指摘事項の形式に準拠:すべての指摘事項が findings-list §5.1 で必須とされる要素を含み、カテゴリが
language-phpである。 - ファイルと行の参照:すべての指摘事項で、行番号を含む具体的なファイル位置を参照している。
- PHP 以外のコードを除外:明示的に範囲に含まれていない限り、PHP 固有のルールについて PHP 以外のファイルを分析していない。
プロセス品質チェック
- PHP 言語/ランタイムの観点のみをレビューしましたか(スコープ/セキュリティ/アーキテクチャは対象外)?
- 厳密な型指定、エラー処理、リソース、PSR、名前空間、null 安全性、ジェネレーター、バージョン互換性、テスト容易性を、関連する範囲で確認していますか?
- すべての指摘に、findings-list §5.1 で必須とされているすべての要素が含まれ、category=language-php となっていますか?
- 問題は file:line で参照されていますか?
受け入れテスト
出力には、セキュリティ、アーキテクチャ、スコープの分析を行わず、関連するすべての言語/ランタイムの観点を網羅した、file:line 参照付きの PHP に特化した指摘リストが含まれていますか?
例
例 1:リソースリーク
- 入力:
fopen()でファイルを開き、すべてのコードパスで閉じていない PHP 関数。 - 期待される結果: リソース管理に関する指摘を出し、try-finally を使うか、すべてのパスで
fclose()を実行するよう提案します。Category = language-php。
例 2:厳密な型指定の欠如
- 入力:
declare(strict_types=1)がなく、パラメーター/戻り値の型指定も欠けている新しい PHP ファイル。 - 期待される結果: 型安全性に関する指摘を出し、可能な範囲で厳密な型指定と型付きパラメーターを追加するよう提案します。Category = language-php。
エッジケース:PHP と SQL の混在
- 入力: データベースクエリ用の SQL 文字列が埋め込まれた PHP ファイル。
- 期待される結果: PHP の規約(リソース処理、エラー処理、型)のみをレビューします。ここでは SQL インジェクションに関する指摘は出さないでください。それは review-security または review-sql の対象です。