Drupal Claude Skills

24 skills and 8 subagents for Drupal development: config management, module updates, DDEV, security, search and testing.

  • 83 ★ on the repository
  • Last commit
  • MIT
Skill

Extended access

Why this level

  • The skills describe `drush`, Composer and deploy commands, and the subagents and `settings.json` set agent permissions in the project.
All reasons and checks

grasmash/drupal-claude-skills

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/drupal-claude-skills

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The skills describe `drush`, Composer and deploy commands, and the subagents and `settings.json` set agent permissions in the project.

This is third-party code. Review the repository files before installing.

What it does

Drupal Claude Skills is a set of proven practices for Drupal 10 and 11. It holds 24 skills, 8 subagents and sample permission settings. The skills cover configuration management (import, export, Config Split), module updates through Composer and patches, the DDEV local environment, OWASP security, mail, Views, Search API, OAuth2 through simple_oauth, PHPUnit testing, performance, Vite themes and Canvas. The subagents take separate roles: pre-commit gate, completion check, Drupal implementation, frontend, code research, review, and running and writing tests. The settings ask for confirmation before the risky commands `drush cim`, `drush sql-drop` and `drush site:install`.

Who it is for. Drupal 10 and 11 site developers who run projects with Claude Code, Cursor or Codex and want to codify team practices.

Good fit when

  • Configuration moves between environments and the diff must be previewed with `cim --no --diff`.
  • A module is updated through Composer and a drupal.org patch has to be rebuilt for the new version.
  • A DDEV local environment is slow or breaks on Mutagen.
  • Before a release you check what passes locally and breaks on deploy.
  • OAuth2 is added to a site and the token permissions need debugging.

Not a fit when

  • The project is not on Drupal: the skills do not cover other CMS or frameworks.
  • Canvas React and JSX components: for them the set points to the official `drupal-canvas/skills`.
  • You need a quick installer that leaves your settings alone: the script and manual install copy agents and `settings.json`.

Example request

Using drupal-config-mgmt, set up partial config splits for the dev environment and show the diff before any import.

Limitations

The command `npx skills add grasmash/drupal-claude-skills` installs only the skills. Subagents, the sample `settings.json` and the CLAUDE.md section are copied by `install.sh` or by hand; read a script from the network before running it. The set covers Drupal and does not replace the skills of a JavaScript framework on top of it. Part of the material comes from Selwyn Polit (Drupal at Your Fingertips) and Ivan Grynenko (security rules), with licenses listed in `THIRD_PARTY_NOTICES.md`. Canvas on React needs the separate official suite.

How to disable. Delete the unwanted folders from `.claude/skills/` and `.claude/agents/` in the project and remove the section added to CLAUDE.md. If you copied `settings.json`, restore your previous permissions.

FAQ

How do I install the Drupal skills?

Run `npx skills add grasmash/drupal-claude-skills`: the skills land in `.claude/skills/`. It works with Claude Code, Cursor, Codex and Gemini CLI.

Which subagents are included?

Eight: `quality-gate`, `done-gate`, `drupal-specialist`, `frontend-specialist`, `researcher`, `reviewer`, `test-runner` and `test-writer`. They live in `.claude/agents/`.

Why is config import through remote Drush risky?

Wrappers such as Terminus auto-confirm by default. The skill advises adding `--no` so that `cim --no --diff` shows the diff and applies nothing.

Are there skills for Drupal Canvas?

Yes: `drupal-canvas-sdc` for Twig components and `canvas-contribution` for contributing to drupal.org. For React components use `drupal-canvas/skills`.

Can I take only some of the skills?

Yes. Each skill has its own folder under `skills/` with a `SKILL.md`, so you can copy them one by one.

Discussion

No questions or reviews yet.

Skills

Claude Code skills, agents and project templates for Craft CMS 5: plugins, content modeling, Twig, Pest tests and hosting

PluginExtended access89Repository stars

67 skills across languages, frameworks, DevOps and security, plus 9 workflow commands for Jira and Confluence epics

SkillMinimal access12.3KRepository stars

15 skills for Claude Code and Codex: Laravel, Docker, UI, debugging, tests and docs in four ready plugin bundles

PluginExtended access69Repository stars

ClaudeKit Skills

ClaudeKit - Agent Skills

A plugin marketplace for Claude Code with a set of thirty-plus skills: frontend, backend, devops, databases, documents, debugging and MCP work

PluginExtended access2.2KRepository stars

Claude Code Skills and Agents

Claude Code Skills & Agents

A Claude Code plugin bundling skills and sub-agents: deep research, image generation, GitHub work, code review and model switching

PluginBroad access1.7KRepository stars

A skills library for Claude Code, Cursor and Codex: team code review, TDD, stacked PRs and repository readiness scoring

PluginExtended access72Repository stars

README in short

The description gives four install options, lists the skills by group (Drupal core, design QA, observability, Canvas) and the subagents, then explains automatic activation by context.

README badge

Original SKILL.md

---
name: drupal-config-mgmt
description: Guides Drupal configuration management safely - single-config export/set/delete, config:import and config:export (cim/cex) with preview-first --no --diff, config:status checks, Config Split (complete vs partial splits, csex/csim, activation), and syncing config from remote environments through Terminus, acli, platform/upsun, lagoon or drush aliases. Use when exporting or importing Drupal config, inspecting or changing a single config object, merging production config into a feature branch, working with config_split, or diagnosing config that will not import or vanishes from config/default on export.
---

# Drupal Configuration Management

Comprehensive guide for Drupal configuration management including imports, exports, config splits, and environment syncing.

## Remote CLI — host-neutral

Examples below use Pantheon's **Terminus** (`terminus drush <site>.<env> -- <cmd>`). The commands are identical on any host — substitute your platform's remote-drush form. If your platform provides Drush site aliases, the generic `drush @<alias> <cmd>` works everywhere.

| Task | Acquia (`acli`) | Pantheon (Terminus) | Platform.sh / Upsun | Lagoon (amazee.io) | Generic (Drush aliases) |
|---|---|---|---|---|---|
| Remote drush | `acli remote:drush -- <cmd>` | `terminus drush <site>.<env> -- <cmd>` | `platform drush -e <env> -- <cmd>` (Upsun: `upsun drush …`) | `lagoon ssh -p <project> -e <env> -C "drush <cmd>"` | `drush @<alias> <cmd>` |
| Get/inspect config | `acli remote:drush -- config:get <name>` | `terminus drush <site>.<env> -- config:get <name>` | `platform drush -e <env> -- config:get <name>` | `lagoon ssh -p <project> -e <env> -C "drush config:get <name>"` | `drush @<alias> config:get <name>` |

> **The auto-confirm warning below applies to every host** — append `--no` to `cim`/`config:import` to preview instead of apply. Drush defaults to `--yes` when invoked non-interactively (which all remote-CLI wrappers do).

## Problem: Avoid Accidental Config Imports

**CRITICAL**: Terminus drush commands default to `--yes` unless explicitly told `--no`. This means commands like `config:import` or `cim` will AUTO-CONFIRM and import configuration even when you only want to inspect differences.

### Dangerous vs Safe Patterns

❌ **DANGEROUS** - Auto-imports without confirmation:
```bash
terminus drush {site}.{env} -- cim --diff  # DON'T DO THIS!
```

✅ **SAFE** - Shows diff without importing:
```bash
terminus drush {site}.{env} -- cim --no --diff

Report a problem