typo3-conformance について
typo3-conformanceは、品質やリリース準備、モダナイズを評価する開発者向けのTYPO3拡張レビュー用スキルです。コード、アーキテクチャ、テスト、バックエンドの実践、バージョン対応を確認して適合度を採点します。
主な機能
- 01拡張機能のメタデータと構成の確認
- 02PHPとアーキテクチャ規則の確認
- 03バックエンドとテストの確認
- 04TERと開発プラクティスのレビュー
- 05重大な問題を反映した採点レポート
- 06TYPO3 v14対応の確認
活用シーン
- 01TER公開前の拡張機能の評価
- 02モダナイズ時の適合度レビュー
- 03修正の検証とスコア変化の記録
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ dirnbauer/ webconsulting-skills --skill typo3-conformanceインストール後、Claude Code で/typo3-conformanceを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
checkpoints.yamlassets/.github/workflows/publish-to-ter.ymlassets/Build/composer-unused/composer-unused.phpassets/Build/eslint/.eslintrc.jsonassets/Build/php-cs-fixer/php-cs-fixer.phpassets/Build/phpstan/phpstan-baseline.neonphpstan.neonassets/Build/rector/rector.phpassets/Build/stylelint/.stylelintrc.jsonassets/Build/typoscript-lint/TypoScriptLint.ymlreferences/backend-module-v13.mdbest-practices.mdcoding-guidelines.mdcomposer-validation.mdcrowdin-integration.mddevelopment-environment.mddirectory-structure.mddual-version-compatibility.mdexcellence-indicators.mdext-emconf-validation.mdext-files-validation.mdextension-architecture.mdhooks-and-events.mdlocalization-coverage.mdmulti-version-dependency-compatibility.mdphp-architecture.mdreport-template.mdruntests-validation.mdter-publishing.mdtesting-standards.md詳細
TYPO3 Extension Conformance Checker
TYPO3 のコーディング規約、アーキテクチャパターン、ベストプラクティスに照らして TYPO3 拡張機能を評価します。
使用する場面
- 拡張機能の品質/TER 公開準備
- スコア付き適合性レポート
- v12/v13/v14 へのモダナイズ(v14.3 LTS がデフォルト/ゴールドスタンダードです)
委任
テスト → typo3-testing | ドキュメント → typo3-docs | OpenSSF → enterprise-readiness
対象範囲: 拡張機能のみです。サイト/プロジェクトリポジトリ(type: project + Compose)は、ゴールドチェッカー typo3-14-gold/tools/conformance でスコアを付けます。
ワークフロー
ステップ 0:コンテキスト
ext_emconf.php と composer.json を読み、バージョン、種類、対象範囲を確認します。
ステップ 1-11:チェック項目
- メタデータ -- key、TYPO3 バージョン、種類
- 構成 -- composer.json、ext_emconf.php、Classes/、Configuration/、Resources/
- コーディング -- strict_types、PSR-12、PHP 8.4 の明示的な nullable、PHP 8.5 の float-to-int
- 禁止事項 --
$GLOBALSを使用しない、サービスにGeneralUtility::makeInstance()を使用しない - アーキテクチャ -- コンストラクター DI、Services.yaml、PSR-14 イベント(try/catch)、PSR-3 ロギング(LoggerAware+NullLogger)、ファクトリーのフォールバック
- バックエンド -- ES6、Modal API、CSRF、CSP(v13 以降)
- テスト -- PHPUnit、Playwright E2E、カバレッジ >70%
- プラクティス -- DDEV、runTests.sh、CI/CD
- TER -- 公開ワークフロー、アップロード時のコメント
- 監査 -- PHPStan ベースライン、TCA searchFields、XLIFF、cache has()+get()、クエリプロパティ、複数バージョン対応アダプター
- v14 対応状況 --
ext_tables.php/HashService/マジックファインダーを使用しないこと。Fluid VH を厳格にすること。XLF は 2 スペース。references/v14-deprecations.mdを参照してください。
ステップ 12:検証
修正後に再実行します。スコアの変化を記録してください。
grep の簡易レシピ
grep -rL 'strict_types' Classes/ --include='*.php'
grep -rn '\$GLOBALS' Classes/ --include='*.php'
grep -rn 'GeneralUtility::makeInstance' Classes/ --include='*.php'
grep -rPn '\(\s*[A-Za-z\\]+\s+\$\w+\s*=\s*null' Classes/ --include='*.php' | grep -v '?' # PHP 8.4 implicit nullable
grep -rn '->has(' Classes/ --include='*.php' # cache has()+get() anti-pattern
grep -l 'strict_types' ext_emconf.php # ext_emconf must NOT have strict_types
grep -rn '(int)\s*\$' Classes/ --include='*.php' # PHP 8.5 implicit float-to-int
grep -rn 'data-toggle\|data-dismiss\|data-ride' Resources/ --include='*.html' # Bootstrap 4 in Fluid
grep -rn 'HashService\|GeneralUtility::hmac(\|->findBy[A-Z]\|->findOneBy[A-Z]\|->countBy[A-Z]' Classes/ --include='*.php' # v14 removals
[ -f ext_tables.php ] && echo "WARN: ext_tables.php deprecated (#109438)" # v14.3 deprecation
スコアリング
基本スコア(0-100): アーキテクチャ(20)+ ガイドライン(20)+ PHP(20)+ テスト(20)+ プラクティス(20)。優秀さのボーナスは最大 22 点です。重大な問題がある場合、スコアにかかわらずブロックされます。
| 範囲 | レベル | 対応 |
|---|---|---|
| 90+ | 優秀 | 本番/TER 公開の準備完了 |
| 80-89 | 良好 | 軽微な修正 |
| 70-79 | 許容可能 | リリース前に修正 |
| 50-69 | 要改善 | 大幅な作業が必要 |
| <50 | 重大 | デプロイをブロック |
参考資料
references/ を参照してください。
- アーキテクチャとコード:
extension-architecture.md、directory-structure.md、php-architecture.md、coding-guidelines.md、best-practices.md、hooks-and-events.md - 検証:
composer-validation.md、ext-emconf-validation.md、ext-files-validation.md、runtests-validation.md、version-requirements.md、testing-standards.md - 複数バージョン対応:
dual-version-compatibility.md、v13-v14-dual-compatibility.md、multi-version-dependency-compatibility.md、v13-deprecations.md、v14-deprecations.md - プラクティスとバックエンド:
development-environment.md、backend-module-v13.md、ter-publishing.md、report-template.md、excellence-indicators.md、localization-coverage.md、crowdin-integration.md
アセットのテンプレートは assets/Build/ にあります:PHPStan、PHP-CS-Fixer、Rector、ESLint、Stylelint、TypoScript lint。
クレジットと帰属表示
このスキルは、 Netresearch DTT GmbH による優れた取り組みを基にしています。
元のリポジトリ:https://github.com/netresearch/typo3-conformance-skill
Copyright (c) Netresearch DTT GmbH — 方法論とベストプラクティス(MIT / CC-BY-SA-4.0)
このスキルコレクションの形成に貢献した、TYPO3 コミュニティへの寛大なオープンソースの貢献に対し、Netresearch DTT GmbH に心より感謝します。 このスキルコレクション向けに webconsulting.at が適応しました