Claude-skill-registry drupal-tooling
Drupal development tooling skill for DDEV local environments and Drush command-line operations (Drupal 8-11+). Use when working with Docker-based development environments, Drush commands, deployment workflows, or site management tasks.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/drupal-tooling" ~/.claude/skills/majiayu000-claude-skill-registry-drupal-tooling && rm -rf "$T"
skills/data/drupal-tooling/SKILL.mdDrupal Development Tooling
Overview
Enable expert-level Drupal development tooling capabilities with comprehensive guidance for DDEV Docker-based local development environments and Drush command-line operations for Drupal 8, 9, 10, and 11+.
When to Use This Skill
Invoke this skill when working with:
- DDEV operations: Starting, managing, or configuring local development environments
- Drush commands: Site management, configuration, cache operations
- Database management: Import/export, snapshots, migrations
- Deployment workflows: Configuration sync, database updates
- Development setup: Project initialization, environment configuration
- Troubleshooting: Debugging environment or command-line issues
Core Capabilities
1. DDEV Local Development
Manage Docker-based local Drupal environments efficiently:
Project initialization:
# Initialize new Drupal project ddev config --project-type=drupal10 --docroot=web --create-docroot # Start containers ddev start # Install Drupal via Composer ddev composer create drupal/recommended-project # Install Drupal site ddev drush site:install standard --account-name=admin --account-pass=admin
Daily operations:
# Start/stop project ddev start ddev stop ddev restart # SSH into container ddev ssh # Launch site in browser ddev launch # View logs ddev logs ddev logs -f # Follow logs
Database operations:
# Import database ddev import-db --src=database.sql.gz # Export database ddev export-db --file=backup.sql.gz --gzip # Create snapshot ddev snapshot # Restore snapshot ddev snapshot restore # Access MySQL CLI ddev mysql
Reference documentation:
- Complete DDEV referencereferences/ddev.md
2. Drush Command-Line Management
Execute site management tasks efficiently:
Cache management:
# Rebuild cache (most common) ddev drush cr # Clear specific cache ddev drush cache:clear css-js ddev drush cache:clear render
Configuration management:
# Export configuration ddev drush config:export ddev drush cex # Import configuration ddev drush config:import ddev drush cim # View configuration ddev drush config:get system.site ddev drush cget system.site # Set configuration ddev drush config:set system.site name "My Site" ddev drush cset system.site name "My Site"
Module management:
# Enable module ddev drush pm:enable mymodule -y ddev drush en mymodule -y # Uninstall module ddev drush pm:uninstall mymodule -y ddev drush pmu mymodule -y # List modules ddev drush pm:list ddev drush pml # Download module ddev drush pm:download webform
Database updates:
# Run pending database updates ddev drush updatedb -y ddev drush updb -y
User management:
# One-time login URL ddev drush user:login ddev drush uli # Login as specific user ddev drush uli admin # Create user ddev drush user:create newuser --mail="user@example.com" --password="pass" # Change password ddev drush user:password admin "newpassword"
Reference documentation:
- Complete Drush referencereferences/drush.md
3. Development Workflows
Common development and deployment workflows:
Standard deployment:
# Run database updates ddev drush updb -y # Import configuration ddev drush cim -y # Clear cache ddev drush cr # One-liner version ddev drush updb -y && ddev drush cim -y && ddev drush cr
Fresh site setup:
# Clone repository git clone <repo> myproject cd myproject # Start DDEV ddev start # Install dependencies ddev composer install # Import database and files ddev import-db --src=database.sql.gz ddev import-files --src=files.tar.gz # Clear cache ddev drush cr # Launch site ddev launch
Theme/module development:
# Start work ddev start # Clear cache frequently ddev drush cr # Watch for changes (if using build tools) ddev exec npm run watch # View logs ddev drush watchdog:tail
4. Code Generation
Use Drush generators to scaffold code:
# Generate module ddev drush generate module # Generate controller ddev drush generate controller # Generate form ddev drush generate form # Generate plugin block ddev drush generate plugin:block # Generate service ddev drush generate service # Generate theme ddev drush generate theme # Generate hook ddev drush generate hook # List all generators ddev drush generate --help
5. Debugging & Troubleshooting
Debug and monitor your Drupal site:
Enable Xdebug:
# Enable Xdebug ddev xdebug on # Disable Xdebug (improves performance) ddev xdebug off # Check status ddev xdebug status
View logs:
# Recent watchdog messages ddev drush watchdog:show # Follow watchdog logs ddev drush watchdog:tail # Container logs ddev logs -s web ddev logs -s db
Project information:
# Show project details ddev describe # Drupal status ddev drush status ddev drush st # List all DDEV projects ddev list
Best Practices
DDEV Best Practices
- Run tools through DDEV: Always use
,ddev drush
,ddev composerddev npm - Snapshots: Create before risky operations
- Performance: Enable Mutagen (Mac) or NFS for better file sync
- Xdebug: Only enable when debugging
- Version control: Commit
to share configuration.ddev/config.yaml - Clean shutdown: Use
before system shutdownddev stop
Drush Best Practices
- Aliases: Use short aliases (
,cr
,cex
,cim
)uli - Automation: Add
flag to skip confirmations-y - Custom commands: Create for repetitive tasks
- Site aliases: Configure for multi-environment management
- Chaining: Use
for sequential operations&& - Error handling: Check exit codes in scripts
Deployment Best Practices
- Order: Run updates (
) before config import (updb
)cim - Testing: Test deployment workflow in staging first
- Backups: Always backup before major changes
- Rollback plan: Have a way to revert changes
- Monitoring: Check logs after deployment
Common Operations
Initialize DDEV for Existing Project
cd existing-project # Configure DDEV ddev config # Start containers ddev start # Install dependencies ddev composer install # Import database (if available) ddev import-db --src=backup.sql.gz # Clear cache ddev drush cr
Pull From Remote Environment
# Configure Drush alias for remote site # Then pull database and files ddev pull @production # Or pull separately ddev drush sql:sync @production @self ddev rsync @production:%files @self:%files
Update Drupal Core
# Backup first ddev snapshot # Update with Composer ddev composer update drupal/core "drupal/core-*" --with-all-dependencies # Run database updates ddev drush updb -y # Clear cache ddev drush cr
Enable Development Settings
# Copy development settings cp sites/example.settings.local.php sites/default/settings.local.php # Disable CSS/JS aggregation via Drush ddev drush config:set system.performance css.preprocess 0 -y ddev drush config:set system.performance js.preprocess 0 -y # Enable Twig debugging # Edit sites/default/services.yml: # twig.config: # debug: true # auto_reload: true # cache: false # Clear cache ddev drush cr
Troubleshooting
DDEV Issues
Containers won't start:
# Check Docker is running docker ps # Restart DDEV ddev restart # Power off and restart ddev poweroff ddev start # Clean restart ddev restart --clean
Port conflicts:
# Check what's using ports ddev describe # Change ports in .ddev/config.yaml: # router_http_port: "8080" # router_https_port: "8443" # Restart ddev restart
Permission issues:
# Fix file permissions ddev exec chmod -R 755 web/sites/default/files ddev exec chown -R www-data:www-data web/sites/default/files
Drush Issues
Drush not found:
# Always run through DDEV ddev drush status # Not just: drush status
Configuration sync failures:
# Check for overridden configuration ddev drush config:status # Force import ddev drush cim -y --partial # Check specific config ddev drush config:get system.site
Database update failures:
# Run with verbose output ddev drush updb -v # Check specific module updates ddev drush updatedb:status # Check logs ddev drush watchdog:show
Performance Optimization
DDEV Performance (Mac)
Enable Mutagen:
# In .ddev/config.yaml ddev config --mutagen-enabled # Restart ddev restart
Enable NFS:
# In .ddev/config.yaml ddev config --nfs-mount-enabled # Restart ddev restart
Drush Performance
Disable Xdebug when not debugging:
ddev xdebug off
Use specific commands instead of aliases:
# Faster (loads less) ddev drush cache:rebuild # vs ddev drush cr
Resources
Reference Documentation
-
- Complete DDEV referencereferences/ddev.md- Project initialization and configuration
- Database and file operations
- Add-ons and services (Redis, Elasticsearch, etc.)
- Performance optimization
- Troubleshooting
-
- Complete Drush referencereferences/drush.md- Cache management commands
- Configuration management
- Module and theme operations
- Database operations
- User management
- Custom command development
Searching References
# Find DDEV command grep -r "ddev snapshot" references/ # Find Drush command grep -r "config:import" references/ # Find deployment info grep -r "deployment" references/
Common Use Cases
Local Development Setup
- Clone project:
git clone <repo> - Configure DDEV:
ddev config - Start:
ddev start - Install dependencies:
ddev composer install - Import DB:
ddev import-db --src=db.sql.gz - Clear cache:
ddev drush cr - Launch:
ddev launch
Deploying Configuration Changes
- Export config:
ddev drush cex -y - Commit to git:
git add config/ && git commit - Push:
git push - On server:
drush cim -y && drush cr
Debugging Performance Issues
- Enable Xdebug:
ddev xdebug on - Set breakpoints in IDE
- Trigger request:
ddev launch - Step through code
- Disable Xdebug:
ddev xdebug off
Version Compatibility
DDEV Versions
- DDEV v1.21+ recommended
- Supports all Drupal versions (8-11+)
- Update with:
(Mac) or platform equivalentbrew upgrade ddev
Drush Versions
- Drush 10+ for Drupal 8.4+
- Drush 11+ for Drupal 9.0+
- Drush 12+ for Drupal 10.0+
- Install via Composer (project-specific)
See Also
- drupal-frontend - Theme development and Twig templates
- drupal-backend - Module development and APIs
- DDEV Documentation - Official DDEV docs
- Drush Documentation - Official Drush docs
- DDEV Discord - Community support