typo3-conformance
npx machina-cli add skill netresearch/typo3-conformance-skill/typo3-conformance --openclawTYPO3 Extension Conformance Checker
Evaluate TYPO3 extensions for standards compliance, architecture patterns, and best practices.
When to Use
- Assessing extension quality before production deployment
- Generating conformance reports for code review
- Planning modernization to TYPO3 v12/v13/v14 standards
- Validating TER publishing readiness
Skill Delegation
- Testing details: Delegate to
typo3-testingskill - Documentation validation: Delegate to
typo3-docsskill - OpenSSF Scorecard: Delegate to
enterprise-readinessskill
Evaluation Workflow
Step 0: Understand Extension Context (always first)
Before checking files, understand: purpose, target TYPO3/PHP version, extension type (plugin, module, site package, library), criticality (production vs experimental), and codebase scope.
Steps 1-9: Conformance Checks
- Initial Assessment -- Extension key, target TYPO3 version, extension type
- File Structure -- composer.json, ext_emconf.php, required directories
- Coding Standards -- strict_types, type declarations, PSR-12
- Prohibited Patterns -- No
$GLOBALSaccess, noGeneralUtility::makeInstance()for services - PHP Architecture -- Constructor DI, Services.yaml, PSR-14 events
- Backend Modules -- ES6 modules, Modal API, CSRF protection (v13+)
- Testing -- PHPUnit setup, Playwright E2E, coverage >70%
- Best Practices -- DDEV setup, runTests.sh, quality tools, CI/CD
- TER Publishing -- Workflow, upload comment format, CI compatibility
Step 10: Verification Loop
After fixes, re-run conformance checks. Document score improvement (e.g., "58 -> 82"). Ensure no regressions.
Scoring System
Base Score (0-100): Architecture (20) + Guidelines (20) + PHP Patterns (20) + Testing (20) + Best Practices (20). Excellence bonus up to 22 additional points.
| Score Range | Interpretation | Action |
|---|---|---|
| 90-100+ | Excellent | Ready for production and TER |
| 80-89 | Good | Minor improvements recommended |
| 70-79 | Acceptable | Address before major releases |
| 50-69 | Needs Work | Significant improvements required |
| Below 50 | Critical | Block deployment until resolved |
Critical issues (security, data loss, core incompatibility) block deployment regardless of score.
Running Checks
# Full conformance check
scripts/check-conformance.sh /path/to/extension
# Individual checks
scripts/check-file-structure.sh /path/to/extension
scripts/check-coding-standards.sh /path/to/extension
scripts/check-architecture.sh /path/to/extension
scripts/check-testing.sh /path/to/extension
scripts/check-phpstan-baseline.sh /path/to/extension
scripts/generate-report.sh /path/to/extension
References
Detailed guidance for each evaluation area:
references/extension-architecture.md-- Directory structure, required filesreferences/coding-guidelines.md-- PSR-12, naming conventions, TYPO3 stylereferences/php-architecture.md-- DI, services, events, Extbase, middlewarereferences/testing-standards.md-- PHPUnit and Playwright requirementsreferences/composer-validation.md-- composer.json validation rulesreferences/ext-emconf-validation.md-- TER requirements, field specsreferences/version-requirements.md-- TYPO3/PHP compatibility matrixreferences/dual-version-compatibility.md-- v12+v13 patternsreferences/v13-deprecations.md-- Deprecated APIs and migration pathsreferences/backend-module-v13.md-- ES6, Modal API, accessibilityreferences/ter-publishing.md-- TER publication requirementsreferences/report-template.md-- Standard report structurereferences/excellence-indicators.md-- Bonus scoring criteriareferences/best-practices.md-- Tea extension organizational patterns
Asset Templates
Quality tool configs in assets/Build/: PHPStan (phpstan/), PHP-CS-Fixer (php-cs-fixer/), Rector (rector/), ESLint (eslint/), Stylelint (stylelint/), TypoScript lint (typoscript-lint/).
Source
git clone https://github.com/netresearch/typo3-conformance-skill/blob/main/skills/typo3-conformance/SKILL.mdView on GitHub Overview
Assesses TYPO3 extensions for standards compliance, architecture patterns, and best practices. It guides modernization to v12/v13/v14 and prepares conformance reports and TER readiness.
How This Skill Works
The skill analyzes extension context, file structure, coding standards, PHP architecture, backend modules, testing, and publishing readiness using a step-by-step workflow (Steps 0-9) and a verification loop. It relies on scripts like check-conformance.sh and individual checks to generate reports and score improvements for refactors and upgrades.
When to Use It
- Assessing extension quality before production deployment
- Generating conformance reports for code review
- Planning modernization to TYPO3 v12/v13/v14 standards
- Validating TER publishing readiness
- Reassessing after fixes to track score improvements and prevent regressions
Quick Start
- Step 1: Run a full conformance check: scripts/check-conformance.sh /path/to/extension
- Step 2: Review results and address issues in steps 1-9 (structure, standards, architecture, tests, publishing)
- Step 3: Re-run checks and document improvement (e.g., 58 -> 82); ensure no critical issues
Best Practices
- Define extension context first: purpose, target TYPO3/PHP version, extension type, and criticality
- Follow the 1-9 conformance checks in order: file structure, coding standards, architecture, testing, and publishing
- Run both the full conformance check and individual checks (structure, coding, architecture, testing, PHPStan, reports)
- Integrate checks into CI/CD with runTests.sh and quality tools for ongoing assurance
- Document score changes after the verification loop (e.g., 58 -> 82) and track regressions
Example Use Cases
- Modernizing a plugin to TYPO3 v12+ with DI usage, Services.yaml, and PSR-14 events
- Preparing a site package for TER publishing by aligning with TER workflow and CI compatibility
- Generating a conformance report for a code review to justify refactors
- Re-running conformance after fixes and showing measurable score improvement
- Verifying backend modules with ES6 modules, Modal API usage, and CSRF protection (v13+)