{"id":"c6fdc75e-ae15-42b6-a352-9c359e00ece5","shortId":"2TqCu9","kind":"skill","title":"typo3-ddev","tagline":"Use when providing DDEV URLs, accessing TYPO3 backend in browser, performing any ddev command (e.g. start, stop, restart, describe, exec), setting up DDEV for TYPO3 extension development, or testing across multiple TYPO3 versions. Triggers on: ddev URLs, backend URLs, local devel","description":"# TYPO3 DDEV Setup Skill\n\n## CRITICAL: URL Scheme\n\n**NEVER guess URLs. Read `name:` from `.ddev/config.yaml`, then apply subdomain pattern:**\n\n`https://v{VERSION}.{sitename}.ddev.site/typo3/` — e.g., `https://v14.my-ext.ddev.site/typo3/`\n\nLanding page: `https://{sitename}.ddev.site/` · Docs: `https://docs.{sitename}.ddev.site/`\n\nEach version gets its own Apache vhost (`/var/www/html/v{VERSION}`), routed via `additional_hostnames`. Check configured versions before presenting URLs. **Never infer URLs from directory listings.**\n\n**Credentials**: admin / Joh316!!\n\n## Container Priority\n\n1. `.ddev/` exists → `ddev exec`\n2. `docker-compose.yml` → `docker compose exec`\n3. System tools only if no container. Always use project's configured PHP.\n\n## Quick Start\n\n```bash\nddev start && ddev install-all    # All versions (11/12/13/14)\nddev install-v14                  # v14.3 LTS (default / gold standard)\nddev install-v13                  # v13.4 LTS\n```\n\n## Database Selection\n\n**MariaDB 10.11** (default) · SQLite (simple, no SQL) · PostgreSQL 16 (GIS) · MySQL 8.0 (Oracle parity). See `references/advanced-options.md`.\n\n## PHP Management\n\n`php_version: \"8.3\"` in config.yaml. Upgrade via `.ddev/web-build/Dockerfile` (`apt-get dist-upgrade`). Custom settings: `.ddev/php/custom.ini`. See `references/0003-php-version-management.md`.\n\n## TYPO3 Version Differences\n\n| | v12 | v13 | v14.3 LTS |\n|---|---|---|---|\n| Setup | `install:setup --use-existing-database` | `setup` | `setup` |\n| Activation | Auto (Composer) | `extension:setup` | `extension:setup` |\n| `composer.json` | optional | optional | **required** (classic mode, #108310) |\n| Default theme | bootstrap-package | bootstrap-package | **Camino** (#108539) |\n| Fluid | 2.x | 4.x | 5.x strict (#108148) |\n| CKEditor | 41–42 | 41–42 | 47 |\n\nSee `references/typo3-12-cli-changes.md`.\n\n## Post-Setup Verification\n\n`ddev status`, `ddev describe`, `ddev exec -d /var/www/html/v13 vendor/bin/typo3 extension:list --active`. See `references/post-setup-verification.md`.\n\n## Optional Services & Commands\n\n- **Valkey 8** (default) or Redis 7: `references/0001-valkey-default-with-redis-alternative.md`\n- **Ofelia** scheduler: TYPO3 scheduler automation\n- `ddev generate-makefile` / `ddev generate-index` / `ddev docs`\n- `ddev xdebug on` / Cache: `ddev exec -d /var/www/html/v13 vendor/bin/typo3 cache:flush`\n\n## Extension Naming\n\nHyphens for composer (`nr-llm`), underscores for TYPO3 key (`nr_llm`). Source: composer.json `name`.\n\n## Troubleshooting\n\n| Issue | Solution |\n|---|---|\n| Port conflict | `router_http_port: \"8080\"` / `router_https_port: \"8443\"` |\n| Database exists | `ddev mysql -e \"DROP DATABASE v13; CREATE DATABASE v13;\"` |\n| Extension not found | `ddev exec -d /var/www/html/v13 vendor/bin/typo3 cache:flush` |\n| Windows health check | Add `/phpstatus` endpoint with `php-fpm.sock` |\n| PCOV/pecl fails | `apt-get install php${PHP_VERSION}-pcov` |\n| PHP settings ignored | Place in `.ddev/php/custom.ini` |\n| Full cleanup | `ddev delete --omit-snapshot --yes` then remove Docker volumes |\n\n## References\n\n| Topic | File |\n|---|---|\n| Prerequisites | `references/prerequisites-validation.md` |\n| Quick start | `references/quickstart.md` |\n| Advanced options | `references/advanced-options.md` |\n| Post-setup | `references/post-setup-verification.md` |\n| Branding/landing page | `references/index-page-generation.md` |\n| ADR References | `references/{0001,0002,0003}-*.md` |\n| Windows | `references/windows-fixes.md`, `references/windows-optimizations.md` |\n| Docs rendering | `references/documentation-rendering.md` |\n| Troubleshooting | `references/troubleshooting.md` |","tags":["typo3","ddev","skill","netresearch","agent-skills","ai-agent","claude-code-skill","developer-tool","development-environment","open-standard","typo3-cms","typo3-extension"],"capabilities":["skill","source-netresearch","skill-typo3-ddev","topic-agent-skills","topic-ai-agent","topic-claude-code-skill","topic-ddev","topic-developer-tool","topic-development-environment","topic-open-standard","topic-skill","topic-typo3","topic-typo3-cms","topic-typo3-extension"],"categories":["typo3-ddev-skill"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/netresearch/typo3-ddev-skill/typo3-ddev","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add netresearch/typo3-ddev-skill","source_repo":"https://github.com/netresearch/typo3-ddev-skill","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (3,638 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:13:19.424Z","embedding":null,"createdAt":"2026-05-18T13:20:39.362Z","updatedAt":"2026-05-18T19:13:19.424Z","lastSeenAt":"2026-05-18T19:13:19.424Z","tsv":"'/phpstatus':366 '/typo3/':68,72 '/var/www/html/v':88 '/var/www/html/v13':268,307,358 '0001':419 '0002':420 '0003':421 '1':111 '10.11':164 '108148':248 '108310':229 '108539':239 '11/12/13/14':145 '16':171 '2':116,241 '3':121 '4':243 '41':250,252 '42':251,253 '47':254 '5':245 '7':283 '8':279 '8.0':174 '8.3':183 '8080':336 '8443':340 'access':9 'across':33 'activ':216,272 'add':365 'addit':92 'admin':107 'adr':416 'advanc':406 'alway':128 'apach':86 'appli':60 'apt':190,373 'apt-get':189,372 'auto':217 'autom':289 'backend':11,41 'bash':136 'bootstrap':233,236 'bootstrap-packag':232,235 'branding/landing':413 'browser':13 'cach':303,309,360 'camino':238 'check':94,364 'ckeditor':249 'classic':227 'cleanup':387 'command':17,277 'compos':119,218,315 'composer.json':223,326 'config.yaml':185 'configur':95,132 'conflict':332 'contain':109,127 'creat':349 'credenti':106 'critic':49 'custom':195 'd':267,306,357 'databas':161,213,341,347,350 'ddev':3,7,16,26,39,46,112,114,137,139,146,155,261,263,265,290,294,298,300,304,343,355,388 'ddev.site':67,76,80 'ddev.site/typo3/':66 'ddev/config.yaml':58 'ddev/php/custom.ini':197,385 'ddev/web-build/dockerfile':188 'default':152,165,230,280 'delet':389 'describ':22,264 'devel':44 'develop':30 'differ':202 'directori':104 'dist':193 'dist-upgrad':192 'doc':77,78,299,426 'docker':118,396 'docker-compose.yml':117 'drop':346 'e':345 'e.g':18,69 'endpoint':367 'exec':23,115,120,266,305,356 'exist':113,212,342 'extens':29,219,221,270,311,352 'fail':371 'file':400 'fluid':240 'flush':310,361 'found':354 'full':386 'generat':292,296 'generate-index':295 'generate-makefil':291 'get':83,191,374 'gis':172 'gold':153 'guess':53 'health':363 'hostnam':93 'http':334 'https':338 'hyphen':313 'ignor':382 'index':297 'infer':101 'instal':141,148,157,208,375 'install-al':140 'install-v13':156 'install-v14':147 'issu':329 'joh316':108 'key':322 'land':73 'list':105,271 'llm':318,324 'local':43 'lts':151,160,206 'makefil':293 'manag':180 'mariadb':163 'md':422 'mode':228 'multipl':34 'mysql':173,344 'name':56,312,327 'never':52,100 'nr':317,323 'nr-llm':316 'ofelia':285 'omit':391 'omit-snapshot':390 'option':224,225,275,407 'oracl':175 'packag':234,237 'page':74,414 'pariti':176 'pattern':62 'pcov':379 'pcov/pecl':370 'perform':14 'php':133,179,181,376,377,380 'php-fpm.sock':369 'place':383 'port':331,335,339 'post':258,410 'post-setup':257,409 'postgresql':170 'prerequisit':401 'present':98 'prioriti':110 'project':130 'provid':6 'quick':134,403 'read':55 'redi':282 'refer':398,417,418 'references/0001-valkey-default-with-redis-alternative.md':284 'references/0003-php-version-management.md':199 'references/advanced-options.md':178,408 'references/documentation-rendering.md':428 'references/index-page-generation.md':415 'references/post-setup-verification.md':274,412 'references/prerequisites-validation.md':402 'references/quickstart.md':405 'references/troubleshooting.md':430 'references/typo3-12-cli-changes.md':256 'references/windows-fixes.md':424 'references/windows-optimizations.md':425 'remov':395 'render':427 'requir':226 'restart':21 'rout':90 'router':333,337 'schedul':286,288 'scheme':51 'see':177,198,255,273 'select':162 'servic':276 'set':24,196,381 'setup':47,207,209,214,215,220,222,259,411 'simpl':167 'sitenam':65,75,79 'skill':48 'skill-typo3-ddev' 'snapshot':392 'solut':330 'sourc':325 'source-netresearch' 'sql':169 'sqlite':166 'standard':154 'start':19,135,138,404 'status':262 'stop':20 'strict':247 'subdomain':61 'system':122 'test':32 'theme':231 'tool':123 'topic':399 'topic-agent-skills' 'topic-ai-agent' 'topic-claude-code-skill' 'topic-ddev' 'topic-developer-tool' 'topic-development-environment' 'topic-open-standard' 'topic-skill' 'topic-typo3' 'topic-typo3-cms' 'topic-typo3-extension' 'trigger':37 'troubleshoot':328,429 'typo3':2,10,28,35,45,200,287,321 'typo3-ddev':1 'underscor':319 'upgrad':186,194 'url':8,40,42,50,54,99,102 'use':4,129,211 'use-existing-databas':210 'v':63 'v12':203 'v13':158,204,348,351 'v13.4':159 'v14':149 'v14.3':150,205 'v14.my-ext.ddev.site':71 'v14.my-ext.ddev.site/typo3/':70 'valkey':278 'vendor/bin/typo3':269,308,359 'verif':260 'version':36,64,82,89,96,144,182,201,378 'vhost':87 'via':91,187 'volum':397 'window':362,423 'x':242,244,246 'xdebug':301 'yes':393","prices":[{"id":"765fb7c6-becf-4b95-927e-ded166112eb4","listingId":"c6fdc75e-ae15-42b6-a352-9c359e00ece5","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"netresearch","category":"typo3-ddev-skill","install_from":"skills.sh"},"createdAt":"2026-05-18T13:20:39.362Z"}],"sources":[{"listingId":"c6fdc75e-ae15-42b6-a352-9c359e00ece5","source":"github","sourceId":"netresearch/typo3-ddev-skill/typo3-ddev","sourceUrl":"https://github.com/netresearch/typo3-ddev-skill/tree/main/skills/typo3-ddev","isPrimary":false,"firstSeenAt":"2026-05-18T13:20:39.362Z","lastSeenAt":"2026-05-18T19:13:19.424Z"}],"details":{"listingId":"c6fdc75e-ae15-42b6-a352-9c359e00ece5","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"netresearch","slug":"typo3-ddev","github":{"repo":"netresearch/typo3-ddev-skill","stars":8,"topics":["agent-skills","ai-agent","claude-code-skill","ddev","developer-tool","development-environment","open-standard","skill","typo3","typo3-cms","typo3-extension"],"license":"other","html_url":"https://github.com/netresearch/typo3-ddev-skill","pushed_at":"2026-05-15T11:38:13Z","description":"Agent Skill for automating DDEV environment setup in TYPO3 extension projects | Claude Code compatible","skill_md_sha":"8c53580946d6dc656109c154aab395d22e9e9fb2","skill_md_path":"skills/typo3-ddev/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/netresearch/typo3-ddev-skill/tree/main/skills/typo3-ddev"},"layout":"multi","source":"github","category":"typo3-ddev-skill","frontmatter":{"name":"typo3-ddev","description":"Use when providing DDEV URLs, accessing TYPO3 backend in browser, performing any ddev command (e.g. start, stop, restart, describe, exec), setting up DDEV for TYPO3 extension development, or testing across multiple TYPO3 versions. Triggers on: ddev URLs, backend URLs, local development, docker environment, PHP version management, multi-version testing."},"skills_sh_url":"https://skills.sh/netresearch/typo3-ddev-skill/typo3-ddev"},"updatedAt":"2026-05-18T19:13:19.424Z"}}