agentleFS
edutruledutrul/drupal-ai/.claude/skills/drupal-config/SKILL.md

drupal-config

Skill71 starsChanged 7 months agoMITView on GitHub

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.

The file

Files
SKILL.md

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

TypeBehaviorUse for
CompleteConfig exists ONLY in that environmentModules on/off (devel, stage_file_proxy)
PartialBase config everywhere, different VALUESAPI 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 IntentCommand
Preview config changesdrush cim --no --diff
Import configdrush cim
Export configdrush 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

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.