{"id":42958537,"url":"https://github.com/netresearch/typo3-ddev-skill","last_synced_at":"2026-04-22T12:01:22.981Z","repository":{"id":319998219,"uuid":"1080397136","full_name":"netresearch/typo3-ddev-skill","owner":"netresearch","description":"Agent Skill for automating DDEV environment setup in TYPO3 extension projects | Claude Code compatible","archived":false,"fork":false,"pushed_at":"2026-04-19T09:04:18.000Z","size":251,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-19T11:13:42.002Z","etag":null,"topics":["agent-skills","ai-agent","claude-code-skill","ddev","developer-tool","development-environment","open-standard","skill","typo3","typo3-cms","typo3-extension"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/netresearch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-CC-BY-SA-4.0","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY-AUDIT.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-10-21T10:05:16.000Z","updated_at":"2026-04-19T09:04:21.000Z","dependencies_parsed_at":"2026-04-02T18:02:53.075Z","dependency_job_id":null,"html_url":"https://github.com/netresearch/typo3-ddev-skill","commit_stats":null,"previous_names":["netresearch/typo3-ddev-skill"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/netresearch/typo3-ddev-skill","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Ftypo3-ddev-skill","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Ftypo3-ddev-skill/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Ftypo3-ddev-skill/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Ftypo3-ddev-skill/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netresearch","download_url":"https://codeload.github.com/netresearch/typo3-ddev-skill/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Ftypo3-ddev-skill/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32135189,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T08:34:57.708Z","status":"ssl_error","status_checked_at":"2026-04-22T08:34:55.583Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-skills","ai-agent","claude-code-skill","ddev","developer-tool","development-environment","open-standard","skill","typo3","typo3-cms","typo3-extension"],"created_at":"2026-01-30T22:48:15.725Z","updated_at":"2026-04-22T12:01:17.968Z","avatar_url":"https://github.com/netresearch.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TYPO3 DDEV Skill\n\n\u003e An Agent Skill for automating DDEV environment setup in TYPO3 extension projects\n\n[![TYPO3](https://img.shields.io/badge/TYPO3-11%20%7C%2012%20%7C%2013-orange.svg)](https://typo3.org/)\n[![DDEV](https://img.shields.io/badge/DDEV-Local%20Development-blue.svg)](https://ddev.com/)\n[![License](https://img.shields.io/badge/License-MIT%20%2B%20CC--BY--SA--4.0-blue.svg)](#license)\n[![Agent Skill](https://img.shields.io/badge/Agent%20Skill-Compatible-blueviolet.svg)](https://agentskills.io)\n\n## 🔌 Compatibility\n\nThis is an **Agent Skill** following the [open standard](https://agentskills.io) originally developed by Anthropic and released for cross-platform use.\n\n**Supported Platforms:**\n- ✅ Claude Code (Anthropic)\n- ✅ Cursor\n- ✅ Windsurf\n- ✅ GitHub Copilot\n- ✅ Other skills-compatible AI agents\n\n\u003e Skills are portable packages of procedural knowledge that work across any AI agent supporting the Agent Skills specification.\n\n\n## Overview\n\nThis skill helps TYPO3 extension developers quickly set up a complete DDEV development environment with multiple TYPO3 versions. Instead of manually configuring DDEV, this skill automates the entire process - from detecting your extension metadata to generating all configuration files and installing TYPO3.\n\n### What It Does\n\n- ✅ Detects TYPO3 extension projects automatically\n- ✅ Extracts extension metadata (key, package name, namespace)\n- ✅ Generates complete DDEV configuration\n- ✅ Creates multi-version TYPO3 testing environment (11.5, 12.4, 13.4 LTS)\n- ✅ Provides backend and frontend access with preconfigured credentials\n- ✅ Includes custom DDEV commands for easy TYPO3 installation\n\n### Who It's For\n\n- TYPO3 extension developers\n- Teams working on TYPO3 extensions\n- Developers needing to test extensions across multiple TYPO3 versions\n- Anyone wanting a quick, reproducible TYPO3 development environment\n\n## Prerequisites\n\nBefore using this skill, ensure you have:\n\n- [DDEV](https://ddev.readthedocs.io/en/stable/users/install/ddev-installation/) installed\n- [Docker](https://www.docker.com/get-started) running\n- A TYPO3 extension project (with `ext_emconf.php` or `composer.json`)\n- A skills-compatible AI agent (Claude Code, Cursor, Windsurf, GitHub Copilot, etc.)\n\n## Installation\n\n### Marketplace (Recommended)\n\nAdd the [Netresearch marketplace](https://github.com/netresearch/claude-code-marketplace) once, then browse and install skills:\n\n```bash\n# Claude Code\n/plugin marketplace add netresearch/claude-code-marketplace\n```\n\n### npx ([skills.sh](https://skills.sh))\n\nInstall with any [Agent Skills](https://agentskills.io)-compatible agent:\n\n```bash\nnpx skills add https://github.com/netresearch/typo3-ddev-skill --skill typo3-ddev\n```\n\n### Download Release\n\nDownload the [latest release](https://github.com/netresearch/typo3-ddev-skill/releases/latest) and extract to your agent's skills directory.\n\n### Git Clone\n\n```bash\ngit clone https://github.com/netresearch/typo3-ddev-skill.git\n```\n\n### Composer (PHP Projects)\n\n```bash\ncomposer require netresearch/typo3-ddev-skill\n```\n\nRequires [netresearch/composer-agent-skill-plugin](https://github.com/netresearch/composer-agent-skill-plugin).\n## Usage\n\n### Invoking the Skill\n\nOnce installed, invoke the skill in your TYPO3 extension project directory:\n\n**Via slash command:**\n```\n/typo3-ddev\n```\n\n**Via natural language:**\n```\nSet up DDEV for my TYPO3 extension\n```\n\nThe skill will:\n\n1. Validate prerequisites (DDEV, Docker, TYPO3 extension structure)\n2. Extract your extension metadata\n3. Confirm configuration with you\n4. Generate all `.ddev/` files with proper values\n5. Guide you through starting DDEV and installing TYPO3\n\n### What You'll Get\n\nAfter setup, you'll have:\n\n```\nproject-root/\n├── .ddev/\n│   ├── config.yaml\n│   ├── docker-compose.web.yaml\n│   ├── apache/\n│   │   └── apache-site.conf\n│   ├── web-build/\n│   │   └── Dockerfile\n│   └── commands/\n│       └── web/\n│           ├── install-v11\n│           ├── install-v12\n│           ├── install-v13\n│           └── install-all\n├── Classes/\n├── Configuration/\n├── ext_emconf.php\n└── composer.json\n```\n\n### Accessing Your Environment\n\nOnce installed, access TYPO3 at:\n\n**Overview Dashboard:**\n```\nhttps://your-ext.ddev.site/\n```\n\n**TYPO3 11.5 LTS:**\n- Frontend: `https://v11.your-ext.ddev.site/`\n- Backend: `https://v11.your-ext.ddev.site/typo3/`\n\n**TYPO3 12.4 LTS:**\n- Frontend: `https://v12.your-ext.ddev.site/`\n- Backend: `https://v12.your-ext.ddev.site/typo3/`\n\n**TYPO3 13.4 LTS:**\n- Frontend: `https://v13.your-ext.ddev.site/`\n- Backend: `https://v13.your-ext.ddev.site/typo3/`\n\n### Backend Credentials\n\n```\nUsername: admin\nPassword: Joh316!!\n```\n\n### Branded Landing Page\n\nThe overview dashboard automatically uses branded templates based on your project:\n\n| Vendor | Template | Branding |\n|--------|----------|----------|\n| `netresearch/*` | Netresearch | Turquoise (#2F99A4), [n] logo |\n| All others | TYPO3 | Orange (#FF8700), TYPO3 swoosh |\n\n**Features:**\n- Three-state theme switcher (Light / System / Dark)\n- Git branch and commit info display\n- Links to TER, Packagist, GitHub, Documentation, Mailpit\n- TYPO3 version cards with Frontend/Backend links\n- Composer package name display\n\nGenerate or regenerate the landing page:\n```bash\nddev generate-index\n```\n\n**Template Variables** (auto-detected from `composer.json`):\n- `{{EXTENSION_NAME}}` - Human-readable extension name\n- `{{COMPOSER_PACKAGE}}` - Composer package name\n- `{{TER_EXTENSION_KEY}}` - TER extension key\n- `{{GITHUB_REPO}}` - GitHub repository URL\n- `{{GIT_BRANCH}}` - Current git branch\n- `{{GIT_COMMIT_SHORT}}` - Short commit hash\n\n## Custom DDEV Commands\n\nThe skill creates these custom commands:\n\n```bash\n# Install specific TYPO3 version\nddev install-v11  # TYPO3 11.5 LTS\nddev install-v12  # TYPO3 12.4 LTS\nddev install-v13  # TYPO3 13.4 LTS\n\n# Install all versions at once\nddev install-all\n\n# Install Introduction Package (demo content)\nddev install-introduction v13\n```\n\n## Adding Demo Content\n\nTest your extension with realistic content using the TYPO3 Introduction Package:\n\n```bash\n# Install Introduction Package\nddev install-introduction v13\n```\n\n**Includes:**\n- 86+ pages with example content\n- 226+ content elements (text, images, forms, tables)\n- Multi-language support (EN, DE, DA)\n- Bootstrap Package responsive theme\n- Perfect for testing RTE features\n\n## Extension Auto-Configuration\n\nFor extensions needing additional setup (RTE config, TSconfig, TypoScript), create a custom configuration command:\n\n```bash\n# Copy template\ncp .ddev/templates/commands/web/configure-extension.optional \\\n   .ddev/commands/web/configure-myext\n\n# Customize for your extension's needs\n# Add: RTE YAML, Page TSConfig, TypoScript, site package setup\n\n# Run after TYPO3 installation\nddev configure-myext v13\n```\n\n**Use Cases:**\n- **RTE/CKEditor plugins** - Configure toolbar, import plugin YAML\n- **Backend modules** - Set up TSconfig, permissions\n- **Frontend plugins** - TypoScript configuration, example content\n\n**Pattern Benefits:**\n- One-command post-install setup\n- Consistent team configuration\n- Includes demo content automatically\n- Reduces manual configuration errors\n\nSee `SKILL.md` for detailed examples and template structure.\n\n## Troubleshooting\n\n### Database Already Exists\n\nIf reinstalling TYPO3:\n\n```bash\nddev mysql -e \"DROP DATABASE IF EXISTS v13; CREATE DATABASE v13;\"\nddev install-v13\n```\n\n### Services Not Starting\n\nCheck and restart services:\n\n```bash\ndocker ps --filter \"name=ddev-your-ext\"\nddev restart\n```\n\n### Extension Not Visible\n\nFlush caches:\n\n```bash\nddev exec -d /var/www/html/v13 vendor/bin/typo3 cache:flush\n```\n\n## Architecture\n\nThe setup creates a unique multi-version environment:\n\n- **Extension Source**: Mounted at `/var/www/{{EXTENSION_KEY}}` (your project root)\n- **TYPO3 Installations**: Separate directories for each version (`/var/www/html/v11`, `v12`, `v13`)\n- **Extension Installation**: Installed via Composer path repository in each TYPO3 version\n- **Persistent Data**: Docker volumes for each TYPO3 version database and files\n\nThis architecture allows you to:\n- Develop extension code in your project root\n- Test immediately across all TYPO3 versions\n- Keep TYPO3 installations separate and clean\n- Avoid committing TYPO3 core files to your extension repository\n\n## Configuration\n\n### Supported TYPO3 Versions\n\nBy default, the skill supports:\n- TYPO3 11.5 LTS (PHP 8.0+)\n- TYPO3 12.4 LTS (PHP 8.1+)\n- TYPO3 13.4 LTS (PHP 8.2+)\n\nPHP version is set to 8.2 for maximum compatibility.\n\n### Customization\n\nAfter generation, you can customize:\n\n**PHP Version** (`.ddev/config.yaml`):\n```yaml\nphp_version: \"8.3\"  # Change to 8.1, 8.3, or 8.5 if needed\n```\n\n**PHP Patch Upgrades** (`.ddev/web-build/Dockerfile.apt`):\n\nWhen DDEV ships an older PHP patch (e.g., 8.5.0RC3) and you need a newer one (e.g., 8.5.1):\n```dockerfile\n# .ddev/web-build/Dockerfile.apt\nRUN apt-get update\nRUN apt-get install --only-upgrade -y php${PHP_VERSION}-*\n```\nThen run `ddev restart`.\n\n**PHP Extensions** (`.ddev/web-build/Dockerfile`):\n```dockerfile\n# Use apt-get, NOT pecl (pecl not available in DDEV)\nRUN apt-get update \u0026\u0026 apt-get install -y php${PHP_VERSION}-pcov\nRUN apt-get update \u0026\u0026 apt-get install -y php${PHP_VERSION}-redis\n```\n\n**Custom PHP Settings** (`.ddev/php/custom.ini`):\n```ini\nmemory_limit = 512M\nmax_execution_time = 300\n```\n\n**XDebug** (enable/disable):\n```bash\nddev xdebug on   # Enable\nddev xdebug off  # Disable\n```\n\n**Database** (Tiered Selection: SQLite/MariaDB/PostgreSQL/MySQL):\n\nThe skill uses **intelligent tiered database selection** based on extension complexity:\n\n**🎯 Tier 1: SQLite (Simple Extensions - Development Optimized)**\n\nFor extensions using only TYPO3 Core APIs (no custom tables, no raw SQL):\n\n```yaml\n# No .ddev/config.yaml database config needed\n# TYPO3 installation automatically uses SQLite\n```\n\n**Benefits:**\n- ⚡ Startup: 5-10 seconds faster per ddev start\n- 💾 RAM: 900 MB saved (no container)\n- 💿 Disk: 744 MB saved\n- 🔒 Perfect v11/v12/v13 isolation\n\n**⚠️ Development ONLY** - Never use SQLite in production. Switch to MariaDB for final testing.\n\n**🔧 Tier 2: MariaDB 10.11 (Complex Extensions - Production Parity)**\n\nFor extensions with custom tables, raw SQL, or unknown complexity:\n\n```yaml\n# Default for complex extensions (.ddev/config.yaml)\ndatabase:\n  type: mariadb\n  version: \"10.11\"\n```\n\n**Why MariaDB 10.11?** Production standard (95% hosting), extension compatibility, 13-36% faster than MySQL 8.\n\n**🌐 Tier 3 \u0026 4: Specialized Databases**\n\n```yaml\n# PostgreSQL 16 (for GIS, analytics, full-text search)\ndatabase:\n  type: postgres\n  version: \"16\"\n\n# MariaDB 11 (forward-looking performance)\ndatabase:\n  type: mariadb\n  version: \"11.4\"\n\n# MySQL 8.0 (corporate/Oracle ecosystem)\ndatabase:\n  type: mysql\n  version: \"8.0\"\n```\n\n**For detailed rationale**, see `docs/adr/0002-mariadb-default-with-database-alternatives.md`.\n\n**Caching Service** (Valkey or Redis):\n\nThe skill provides Valkey 8 as the default caching service (open source, future-proof):\n\n```bash\n# Default: Valkey 8\ncp .ddev/templates/docker-compose.services.yaml.optional .ddev/docker-compose.services.yaml\n\n# Alternative: Redis 7 (for legacy production parity)\ncp .ddev/templates/docker-compose.services-redis.yaml.optional .ddev/docker-compose.services.yaml\n\n# Restart DDEV\nddev restart\n```\n\n**Why Valkey?** True open source (BSD-3), AWS/Google/Oracle backing, 30% smaller than Redis 8, cost-effective. See `docs/adr/0001-valkey-default-with-redis-alternative.md` for details.\n\n**Additional Services** (add to `.ddev/docker-compose.services.yaml`):\n```yaml\n# The services template includes: Valkey/Redis, MailPit, Ofelia\n# See SKILL.md for complete documentation\n```\n\n## Troubleshooting\n\n### DDEV Won't Start\n\n**Port Conflicts:**\n```bash\n# Check what's using ports 80/443\nsudo lsof -i :80\nsudo lsof -i :443\n\n# Option 1: Stop conflicting services\n# Option 2: Change ports in .ddev/config.yaml\nrouter_http_port: \"8080\"\nrouter_https_port: \"8443\"\n```\n\n### PHP Version Outdated\n\nIf DDEV ships with an older PHP patch version:\n```bash\n# Create .ddev/web-build/Dockerfile.apt\necho 'RUN apt-get update' \u003e .ddev/web-build/Dockerfile.apt\necho 'RUN apt-get install --only-upgrade -y php${PHP_VERSION}-*' \u003e\u003e .ddev/web-build/Dockerfile.apt\nddev restart\n```\n\n### PCOV/Extension Installation Fails\n\nDDEV doesn't include `pecl`. Use `apt-get` instead:\n```dockerfile\n# In .ddev/web-build/Dockerfile\nRUN apt-get update \u0026\u0026 apt-get install -y php${PHP_VERSION}-pcov\n```\n\n### PHP Settings Not Applied\n\nPlace settings in `.ddev/php/custom.ini`, NOT in `/usr/local/etc/php/conf.d/`:\n```ini\n# .ddev/php/custom.ini (correct location)\nmemory_limit = 512M\n```\n\n### Installation Fails\n\n**Check Composer Issues:**\n```bash\nddev ssh\ncomposer diagnose\n```\n\n**View Installation Logs:**\n```bash\nddev logs\n```\n\n**Retry Installation:**\n```bash\n# For specific version\nddev ssh\nrm -rf /var/www/html/v13/*\nexit\nddev install-v13\n```\n\n### Extension Not Appearing\n\n**Verify Extension Key:**\n```bash\nddev ssh\necho $EXTENSION_KEY  # Should match your ext_emconf.php\n```\n\n**Check Composer Repository:**\n```bash\nddev ssh\ncd /var/www/html/v13\ncomposer config repositories\n```\n\nFor complete troubleshooting guide, see `references/troubleshooting.md`.\n\n## Contributing\n\nContributions welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## Credits\n\nThis skill is based on the excellent work by [Armin Vieweg](https://github.com/a-r-m-i-n) in [ddev-for-typo3-extensions](https://github.com/a-r-m-i-n/ddev-for-typo3-extensions).\n\n### Additional Resources\n\n- [DDEV Documentation](https://ddev.readthedocs.io/)\n- [TYPO3 Extension Development](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/Index.html)\n- [TYPO3 DDEV Setup Guide](https://docs.typo3.org/m/typo3/tutorial-getting-started/main/en-us/Installation/UsingDdev.html)\n\n## License\n\nThis project uses split licensing:\n\n- **Code** (scripts, workflows, configs): [MIT](LICENSE-MIT)\n- **Content** (skill definitions, documentation, references): [CC-BY-SA-4.0](LICENSE-CC-BY-SA-4.0)\n\nSee the individual license files for full terms.\n## Support\n\n- **Issues**: [GitHub Issues](https://github.com/netresearch/typo3-ddev-skill/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/netresearch/typo3-ddev-skill/discussions)\n- **TYPO3 Slack**: #ddev channel\n\n---\n\n**Made with ❤️ for the TYPO3 Community by [Netresearch DTT GmbH](https://www.netresearch.de/)**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetresearch%2Ftypo3-ddev-skill","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetresearch%2Ftypo3-ddev-skill","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetresearch%2Ftypo3-ddev-skill/lists"}