From typo3-skills
Analyzes, plans, and executes TYPO3 v13 to v14 upgrades in Composer-based projects: checks extension compatibility, deprecations, Rector/Fractor migrations, and system requirements.
How this skill is triggered — by the user, by Claude, or both
Slash command
/typo3-skills:typo3-v13-to-v14-upgradeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill to analyze, plan, and execute a TYPO3 13 to TYPO3 14 upgrade in Composer-based projects. Treat the upgrade as a staged engineering change: first remove uncertainty, then plan the migration, then execute in small reversible steps.
Use this skill to analyze, plan, and execute a TYPO3 13 to TYPO3 14 upgrade in Composer-based projects. Treat the upgrade as a staged engineering change: first remove uncertainty, then plan the migration, then execute in small reversible steps.
AGENTS.md and follow it. If it requires SequentialThinking, memory reads, DDEV, Playwright, Rector, or Fractor, apply those rules before touching files.analyze: Inventory the project, installed extensions, constraints, deprecations, and blockers. Do not change code except for explicitly requested reports.plan: Produce a detailed migration plan with ordered phases, commands, risks, rollback points, and acceptance criteria.execute: Perform the upgrade incrementally. Keep changes focused, run dry-runs before applying automated refactors, and verify after every phase.If the user does not specify a mode, start with analyze, then ask before executing Composer or code changes unless the user already requested implementation.
Collect the current state using DDEV-first commands when the project uses DDEV:
ddev describe
ddev composer show typo3/cms-core
ddev composer show --direct
ddev composer show -t
ddev composer outdated --direct
ddev php -v
ddev typo3 --version
Also inspect these files when present:
composer.json, composer.lock, rector.php, fractor.php, .ddev/config.yamlconfig/system/settings.php, config/sites/*/config.yamlpackages/*/ext_emconf.php, packages/*/composer.json, packages/*/Configuration/**packages/*/Resources/Private/**/*.html, *.typoscript, *.tsconfig, *.yaml, *.xml, *.xlfpublic/typo3conf/ext/* only for non-Composer or legacy extension layoutsBuild a table of installed extensions and classify each one:
| Extension | Package | Type | Current version | TYPO3 14 compatible? | Evidence | Action |
|---|---|---|---|---|---|---|
customer_sitepackage | packages/customer_sitepackage | custom | local | unknown | local analysis | migrate |
Use these checks:
ddev composer why-not typo3/cms-core ^14.3
ddev composer prohibits typo3/cms-core ^14.3
ddev composer why-not typo3/cms-backend ^14.3
For each direct extension, inspect Packagist/TER/vendor docs as needed. Do not assume compatibility from package names. For local extensions, inspect composer constraints, ext_emconf.php, service configuration, event listeners, TCA, TypoScript, Fluid, XLF, and custom PHP APIs.
Classify actions as:
ready: supports target TYPO3 14 version with no known changes.update: compatible version exists; update before or during core upgrade.migrate: local extension or sitepackage requires code/config changes.replace: extension is unmaintained or blocks v14.remove: extension is unused or no longer needed.blocked: no compatible version or unresolved Composer conflict.Run non-destructive scans first:
ddev typo3 referenceindex:update
ddev typo3 cache:flush
ddev exec vendor/bin/rector process --dry-run
ddev php vendor/bin/fractor process --dry-run
If TYPO3's extension scanner is available, run it from the backend Upgrade module or via an installed CLI scanner. Capture findings and map each issue to a changelog entry when possible.
Review TYPO3 v14 changelogs for these categories:
typo3/cms-scheduler is installedPay special attention to:
ext_localconf.php, ext_tables.php, event listeners, middleware, DI services, hooks, signals, and PSR-14 eventsProduce and execute a checklist before changing Composer constraints:
composer.json and composer.lock state through Git.why-not and prohibits.When asked for a plan, use this structure:
# TYPO3 13 to 14 Migration Plan
## Executive Summary
- Current TYPO3/PHP versions:
- Target TYPO3/PHP versions:
- Upgrade readiness:
- Primary blockers:
- Recommended approach:
## Extension Compatibility Matrix
| Extension | Current | Target | Status | Evidence | Required action |
## Pre-Upgrade Checklist
- [ ] Backup database and files
- [ ] Update to latest v13.4 patch
- [ ] Run v13 upgrade wizards
- [ ] Update reference index
- [ ] Resolve Composer blockers
- [ ] Run Rector dry-run
- [ ] Run Fractor dry-run
- [ ] Confirm test baseline
## Step-by-Step Execution
1. Create branch and baseline evidence
2. Update PHP/DDEV if required while staying on TYPO3 13
3. Update extensions compatible with v13 and v14
4. Apply Rector and Fractor pre-upgrade changes
5. Change TYPO3 Composer constraints to target v14
6. Run Composer update with all dependencies
7. Run TYPO3 upgrade wizards
8. Apply post-upgrade Rector and Fractor changes
9. Fix extension and sitepackage issues
10. Run full verification
11. Prepare deployment and rollback notes
## Commands
Provide exact DDEV-first commands for this project.
## Risks And Rollback Points
List risk, impact, detection method, mitigation, rollback point.
## Verification Matrix
| Area | Command/manual check | Expected result |
git status --short
git switch -c codex/typo3-v14-upgrade
ddev start
ddev composer install
ddev npm install
Only create the branch if the user has not already chosen one. If the worktree is dirty, identify unrelated changes and do not overwrite them.
ddev composer update "typo3/*" --with-all-dependencies
ddev typo3 upgrade:run
# If the project uses a different command name, inspect `ddev typo3 list upgrade` first.
ddev typo3 referenceindex:update
ddev typo3 cache:flush
ddev typo3 cache:warmup
ddev exec vendor/bin/phpunit
ddev playwright test
Adapt command names to the installed TYPO3 console version. If an upgrade command is unavailable, use the backend Upgrade module and document manual steps.
Run dry-runs, inspect the diff, then apply only relevant changes:
ddev exec vendor/bin/rector process --dry-run
ddev exec vendor/bin/rector process
ddev php vendor/bin/fractor process --dry-run
ddev php vendor/bin/fractor process
After changing Fluid, TypoScript, YAML, XML, XLF, or .htaccess, run Fractor dry-run again to confirm no remaining automated findings.
Generate the exact Composer command from installed TYPO3 core packages. Prefer upgrading all installed TYPO3 core packages together:
ddev composer require --update-with-all-dependencies \
"typo3/cms-core:^14.3" \
"typo3/cms-backend:^14.3" \
"typo3/cms-frontend:^14.3"
Do not blindly use this sample. Include every installed typo3/cms-* package from the project and remove packages that no longer exist in v14. Use composer why-not to resolve conflicts before forcing changes.
ddev composer dump-autoload
ddev typo3 cache:flush
ddev typo3 upgrade:list
ddev typo3 upgrade:run
ddev typo3 database:updateschema
ddev typo3 referenceindex:update
ddev exec vendor/bin/rector process --dry-run
ddev php vendor/bin/fractor process --dry-run
Run relevant upgrade wizards. For TYPO3 14, check official docs for current required wizards; scheduler task migration is one known area when typo3/cms-scheduler is installed.
Use the repository's completion gates. Typical checks:
ddev composer ci:composer:normalize
ddev exec vendor/bin/phpunit
ddev npm run build
ddev playwright test
ddev typo3 cache:flush
ddev typo3 cache:warmup
Manually verify:
Before using Rector, inspect rector.php and installed packages. Upgrade or add TYPO3 Rector sets only when compatible with the target. Use dry-run output to separate safe mechanical changes from changes needing human review.
Good practice:
Fractor is required after changes to Fluid, TypoScript, XML, YAML, XLF, and .htaccess when available in the project. Use it for automated modernization and formatting where rules exist.
Good practice:
When done, report:
If the upgrade is not fully completed, clearly separate completed work, blockers, and next executable steps.
Use current official documentation during each real upgrade because TYPO3 14 guidance and extension compatibility can change:
https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/Administration/Upgrade/Major/Version14.htmlhttps://docs.typo3.org/m/typo3/reference-coreapi/14.3/en-us/Administration/Upgrade/Major/PreupgradeTasks/Index.htmlhttps://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/Administration/Upgrade/Major/UpgradeCore.htmlhttps://docs.typo3.org/m/typo3/reference-coreapi/14.3/en-us/Administration/Upgrade/MigrateToComposer/MigrationSteps.htmlnpx claudepluginhub starraider/typo3-skillsAnalyzes, plans, and executes TYPO3 12.4 LTS to 13.4 LTS upgrades in Composer-based projects. Covers extension compatibility, Rector/Fractor migrations, deprecations, and platform requirements.
Systematic framework for upgrading TYPO3 extensions to newer LTS versions (v11→v12→v13→v14). Uses Extension Scanner, Rector, Fractor, PHPStan for automated migrations and static analysis.
Step-by-step PHP version upgrade playbook covering 8.0 through 8.4+ with automated tooling. Guides users through auditing, running Rector, fixing deprecations, and testing.