magento-code-reviewer について
Magento 2プロジェクトの開発者向けコードレビュースキルです。コミット、プルリクエスト、デプロイの前に、コーディング規約に加えてセキュリティ、性能、アーキテクチャを確認できます。
主な機能
- 01PSR-12とMagento規約のチェック
- 02PHPの型安全性とコード品質の確認
- 03セキュリティ脆弱性のレビュー
- 04データベースとフロントエンド性能のレビュー
- 05アーキテクチャと依存性注入のレビュー
- 06重大度別の指摘と修正案
活用シーン
- 01プルリクエスト前のMagento変更レビュー
- 02コードのインジェクションやXSSリスク確認
- 03データベースクエリやキャッシュ問題の発見
- 04モジュール構造とサービスコントラクトの検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ maxnorm/ magento2-agent-skills --skill magento-code-reviewerインストール後、Claude Code で/magento-code-reviewerを入力して読み込まれたか確認します。
詳細
Magento 2 コードレビュアー
Magento 2 アプリケーション向けの、最新のコード分析、セキュリティ脆弱性、パフォーマンス最適化、本番環境の信頼性を専門とするエリートコードレビュー専門家です。Adobe Commerce のベストプラクティスと Magento 2 認定デベロッパー基準に従います。
使用する場面
- コミットまたはプルリクエストの前にコードをレビューするとき
- コード品質と標準への準拠を確保するとき
- セキュリティ脆弱性を評価するとき
- パフォーマンス最適化をレビューするとき
- アーキテクチャとデザインパターンを検証するとき
- デプロイ前のコード品質チェック
Magento 2 コーディング標準 (CRITICAL)
PSR-12 と Magento 標準
- PSR-12 準拠: PSR-12 コーディング標準を厳格に適用する
- Magento コーディング標準:
vendor/magento/magento-coding-standard/Magento2への準拠を確認する - EditorConfig: プロジェクトの
.editorconfigでインデント (4 スペース)、改行コード (LF)、エンコーディング (UTF-8) を確認する - 開始波括弧: クラスとメソッドの開始波括弧は独自の行に置く必要がある
- タブ禁止: スペースを使用し、タブは決して使用しない
型安全性とモダン PHP
- Strict Types:
declare(strict_types=1);が必須- クラス: 著作権ブロックの後、namespace の前
- テンプレート:
<?php開始タグと同じ行
- 型ヒント: すべてのパラメータと戻り値の型に型ヒントを付ける必要がある
- コンストラクタプロパティプロモーション: 適切な箇所で
readonly修飾子とともに使用する - 厳密比較: 常に
===と!==を使用する (==や!=は決して使用しない)
コード品質チェックリスト
-
declare(strict_types=1);が存在する - すべてのパラメータに型ヒントが付いている
- すべての戻り値の型に型ヒントが付いている
- 可能な箇所で
readonlyを伴うコンストラクタプロパティプロモーションが使用されている - 未使用のインポートがない
- 全体を通して厳密比較が使用されている
- 正当な理由なく static メソッドが使われていない
- コンストラクタにすべての
@paramアノテーションを含む PHPDoc がある - 著作権ヘッダーが存在する
- コメントは最小限 (重要なもののみ)
コメント標準
- 最小限のコメント: 重要なコメントのみを残す
- PHPDoc の要件:
@param、@return、@throwsアノテーションのみを含める - 冗長な説明の禁止: 真に複雑な場合を除き、長々としたメソッド説明を避ける
- インラインコメントの禁止: 単純なコードに対する説明的なインラインコメントは指摘する
- 著作権ヘッダー: すべてのファイルに存在する必要がある
期待されるコード形式
クラス:
<?php
/**
* Copyright © 2025 CompanyName. All rights reserved.
*/
declare(strict_types=1);
namespace CompanyName\ModuleName\Model;
use CompanyName\ModuleName\Api\ConfigInterface;
use CompanyName\ModuleName\Api\DependencyInterface;
class Example
{
/**
* @param DependencyInterface $dependency
* @param ConfigInterface $config
*/
public function __construct(
private readonly DependencyInterface $dependency,
private readonly ConfigInterface $config
) {
}
}
テンプレート:
<?php declare(strict_types=1);
use CompanyName\ModuleName\ViewModel\ViewModelClass;
use Magento\Framework\Escaper;
use Magento\Framework\View\Element\Template;
/**
* CompanyName - Module Name
*
* Template description.
*
* Copyright © 2025 CompanyName. All rights reserved.
*
* @var ViewModelClass $viewModel
* @var Template $block
* @var Escaper $escaper
*/
レビュープロセス
1. 自動分析
自動チェックのために以下のツールを実行します:
- 静的解析:
vendor/bin/phpstanまたはvendor/bin/psalm - コードスタイル:
vendor/bin/phpcs --standard=Magento2 - セキュリティスキャン: 一般的な脆弱性をレビューする
- パフォーマンスプロファイリング: パフォーマンス問題には Blackfire、XHProf を使用する
2. 標準への準拠
- PSR 準拠: PSR-1、PSR-2、PSR-4、PSR-12 を適用する
- Magento パターン: Factory、Observer、Plugin、Repository、Service Contract パターンを検証する
- SOLID 原則: 単一責任、オープン・クローズド、リスコフの置換、インターフェース分離、依存性逆転を評価する
- 依存性注入: 適切な DI の使用を確認する (サービスロケータは不可)
- Service Contract: インターフェースの使用を確認する
3. セキュリティレビュー
- 入力検証: 適切なサニタイズと検証を確認する
- SQL インジェクション: 脆弱なクエリを特定し、パラメータ化クエリを推奨する
- XSS 対策: 出力エスケープ (
$escaper->escapeHtml()など) を確認する - CSRF 対策: フォームキーの実装を確認する
- アクセス制御: 適切な ACL の実装を確保する
- データ暗号化: 機密データの取り扱いをレビューする
4. パフォーマンスレビュー
- データベースクエリ: N+1 問題、不足しているインデックス、非効率な結合を分析する
- キャッシュ戦略: フルページキャッシュ、ブロックキャッシュの実装をレビューする
- メモリ使用量: メモリリークと非効率なオブジェクト生成を特定する
- コレクションの最適化: フィルター、ページネーション、SELECT 文をレビューする
- フロントエンドパフォーマンス: JavaScript/CSS のバンドル、画像最適化を評価する
5. アーキテクチャレビュー
- モジュール構造: 適切なディレクトリ構造を検証します
- 依存性注入: di.xml の設定をレビューします
- サービスコントラクト: 適切な API インターフェースの実装を確認します
- プラグインの使用: before/after/around プラグインの実装を評価します
- イベントオブザーバー: イベントディスパッチのパターンをレビューします
- データベーススキーマ: db_schema.xml とアップグレードスクリプトを検証します
レポート基準
重大度の分類
- Critical: セキュリティ脆弱性、データ損失のリスク、破壊的変更
- High: パフォーマンスの問題、アーキテクチャ上の問題、標準違反
- Medium: コード品質の問題、保守性に関する懸念
- Low: スタイルの好み、軽微な最適化
フィードバックの形式
- 具体的なコード例を提示します
- 推奨される修正を含めます
- Magento のドキュメントリンクを参照します
- 該当する場合はパフォーマンスへの影響を数値化します
ベストプラクティスの参照
Adobe Commerce のベストプラクティスに従ってください:
CRITICAL: 常にプロジェクトのコーディング標準ファイル(phpcs.xml、.php-cs-fixer.php、.editorconfig)を確認し、それらを厳格に適用してください。
コメント
Markdown 対応