drupal-config
Simplifies Drupal configuration management, syncing, and config splitting using Drush commands.
Install
mkdir -p .claude/skills/drupal-config && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/12481" && unzip -o skill.zip -d .claude/skills/drupal-config && rm skill.zipInstalls to .claude/skills/drupal-config
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Drupal configuration management with Drush — import/export config, preview config changes before applying (e.g., seeing what would change without importing), config splits, and environment syncing.Key capabilities
- →Export active Drupal configuration to YAML files
- →Import YAML configuration files into active Drupal configuration
- →Preview configuration changes before applying them
- →Manage complete and partial configuration splits
- →Activate and deactivate configuration splits
How it works
The skill uses Drush commands to manage Drupal configuration, including exporting, importing, previewing changes, and handling configuration splits for environment-specific settings.
Inputs & outputs
When to use drupal-config
- →Export Drupal config
- →Sync environments
- →Manage config splits
About this skill
Drupal Configuration Management
Safety: Avoid Accidental Remote Imports
Remote drush may default to --yes and auto-confirm cim. Always use safe patterns:
# SAFE — preview only
ssh user@remote "drush cim --no --diff"
ssh user@remote "drush config:get config.name"
ssh user@remote "drush config:status"
# DANGEROUS — may auto-import
ssh user@remote "drush cim --diff"
Import / Export
ddev drush cex # Export active config → YAML files
ddev drush cim # Import YAML files → active config
ddev drush cim --no --diff # Preview only (no import)
ddev drush config:status # Show pending changes (read-only)
Config Splits
Complete vs Partial — CRITICAL distinction
| Type | Behavior | Use for |
|---|---|---|
| Complete | Config exists ONLY in that environment | Modules on/off (devel, stage_file_proxy) |
| Partial | Base config everywhere, different VALUES | API keys, SMTP, search server URLs |
Complete split: config is removed from config/sync/ and lives only in config/{split}/.
Partial split: config stays in config/sync/, overrides live in config/{split}/config_split.patch.*.yml.
Split Commands
ddev drush config-split:status # List splits and active state
ddev drush csex {split-name} # Export specific split
ddev drush csim {split-name} # Import specific split
ddev drush config-split:activate {name}
ddev drush config-split:deactivate {name}
Updating a Split Definition
Changes must be in active config (DB), not just YAML files:
# Edit YAML, then import to activate
ddev drush config:import --partial
# OR set via PHP eval
ddev drush php:eval "\$c = \Drupal::configFactory()->getEditable('config_split.config_split.local'); \$c->set('partial_list', ['config.name']); \$c->save();"
ddev drush cex
Troubleshooting
Config deleted from config/sync/ on export
Root cause: Config is in complete_list instead of partial_list.
# Diagnose
grep -A10 "complete_list:" config/sync/config_split.config_split.local.yml
grep -A10 "partial_list:" config/sync/config_split.config_split.local.yml
Fix: move the item from complete_list to partial_list in the split YAML, then import and re-export.
Config won't import
ddev drush config:import --skip-config=system.site # Skip specific locked config
ddev drush config:import --skip-modules=config_split # Ignore splits
Split not activating
ddev drush config-split:status
ddev drush config-split:activate {split-name}
ddev drush cex
Intent → Command Mapping
| User Intent | Command |
|---|---|
| Preview config changes | drush cim --no --diff |
| Import config | drush cim |
| Export config | drush cex |
Related Commands
Read-only: config:get, config:status
Export: cex / config:export
Import: cim --no --diff (preview), cim (apply)
Splits: config-split:status, csex, csim, config-split:activate
Deep Dive
- full-guide.md — Extended reference on Config Split 2.0, patch files, export/import internals
When not to use it
- →When performing remote `drush cim` without `--no --diff`
- →When config is deleted from `config/sync/` due to `complete_list`
- →When a split is not activating correctly
Limitations
- →Remote `drush cim` may auto-import without `--no --diff`
- →Config deleted from `config/sync/` if in `complete_list`
- →Updating a split definition requires importing to activate
How it compares
This skill provides specific Drush commands and safety patterns for Drupal configuration management, including handling config splits, which is more controlled than manual file manipulation.
Compared to similar skills
drupal-config side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| drupal-config (this skill) | 0 | 4mo | Review | Intermediate |
| wp-testing-core | 6 | 9mo | Review | Intermediate |
| migration | 1 | 6mo | No flags | Beginner |
| browserstack-tester | 1 | 7mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
wp-testing-core
mikkelkrogsholm
Core WordPress testing procedures and patterns for browser-based plugin testing. Use when testing WordPress plugins, logging into WordPress admin, verifying plugin activation, or navigating WordPress UI.
migration
JaguarJack
Generate database migration file for CatchAdmin module.
browserstack-tester
mikopbx
Тестирование веб-интерфейса MikoPBX через BrowserStack. Запуск PHPUnit тестов с Selenium WebDriver в облачных браузерах. Использовать для автоматизированного тестирования админ-панели, проверки форм, навигации и интерактивных элементов.
Ploi PHP SDK Expert
ploi
Best practices for using the Ploi PHP SDK to interact with the Ploi.io server management API
hyva-exec-shell-cmd
graycoreio
Utility skill to detect Magento development environment and determine command wrapper. This skill should be used by other skills that need to execute shell commands in the Magento environment. It detects Warden, docker-magento, DDEV, and local environments and provides the appropriate command wrappe
staticphp-build-troubleshooting
crazywhalecc
Diagnose StaticPHP v3 failures. Use when investigating build, compile, linker, download, doctor, environment, CI, smoke-test, terminal output, spc.output.log, spc.shell.log, config.log, CMake logs, or user-provided error snippets from StaticPHP commands.