TYPO3 upgrade intake
One job: prove exactly what will be upgraded and define the graph before mutation.
Preconditions
typo3-upgrade-runinitialized the local run and selected one project.- Work is inside a local DDEV clone. No staging/live access or sync action is authorized.
- Read
../typo3-upgrade-run/references/recent-run-lessons.md.
Evidence checklist
Record repository root, canonical remote, branch, HEAD, dirty/untracked ownership, DDEV root/name, primary URL, database identity, and installed TYPO3 core. Refuse any mismatch.
Record database dump/source date, maximum
pagesandtt_contenttimestamps, table/row sentinels, fileadmin count/hash, and one known page/content/media sentinel. A reachable empty or wrong database is a finding, not a usable baseline.Inspect sites/languages/bases, sitemaps, robots/canonical behavior, page-tree fallback, golden paths, dynamic routes, backend entry point, and local mail/search services. Name uncovered routes.
Inventory every installed/local/abandoned extension and feature usage. Preserve exact output of:
ddev composer why-not typo3/cms-core "^14.3" ddev composer why-not php 8.5 ddev composer audit --locked --format=jsonRequire one resolution strategy per v14 blocker; do not implement it here.
Check
typo3/cms-redirectsandspooner/deployer-information. If absent, activate dependency resolution. Always activate the editor-rights verification branch for Redirects.Identify Mask/Content Blocks, Vite/assets, Solr/search, RTE/Visual Editor, Powermail/forms, scheduler, custom backend modules/rights, local extensions, and schema/data migrations.
Record credential origins without reading/printing values. Reject committed/hard-coded secrets, ambiguous origins, production sessions, or cross-origin credential flows as security findings. Inventory the env loader, Bootstrap version, jQuery/plugin dependencies and the live-sync helper without executing it. Plan their scoped modernization; read the orchestrator's project environment for the dotenv/config-handling distinction.
Verify backup capability: artifact type, timestamp, checksum, target identity, restore command, and storage path. This is readiness evidence; take snapshots only immediately before stateful nodes.
Read
../typo3-upgrade-run/references/runtime-sizing.md. Record all nine sizing metrics and their source artifacts innodes/intake/runtime-size.json; select no profile yourself. Lett3u runtime-sealcalculate and seal the smallest fitting small/large/huge profile.Produce risk/cost order, graph applicability outcomes, and a smallest-decision list for the user.
Resolve known approvals before unattended execution. Forecast work from measured capture/test throughput as well as site size. Read
../typo3-upgrade-run/references/overnight-controller.md, write the selected-route runtime plan and runt3u graph-forecastbefore the baseline. A missing or non-fitting estimate blocks admission. The size-dependent 8/24/48h caps are not completion guarantees.
Routes
pass: identity, dated dataset decision, sites/URLs, blockers, credentials boundary, and graph applicability are evidenced.findings: route identity, dataset, sitemap/discovery, dependency, or credential issue to its specific recovery node.blocked: wrong/ambiguous project, secret exposure, no acceptable data, unsafe origin, or an unavailable decision prevents a safe run.
Output
Write node evidence under .typo3-update/nodes/ and manifests under .typo3-update/manifests/.
Include commands and exit codes, hashes, unresolved facts, approvals/ADRs needed, selected routes,
explicit non-applicable branches, and the runtime-sizing evidence. Do not say “ready” when any
identity, dataset, or sizing field is inferred.
Boundaries
Use typo3-upgrade-baseline for deterministic capture, typo3-upgrade-migration for changes, and
typo3-upgrade-retrospective when reconstructing an old run. Use typo3-ddev for DDEV mechanics,
but keep this skill responsible for the upgrade-specific identity verdict.