By proofoftom
15 skills for generating correct Drupal 10/11 module code. Covers module scaffolding, entities, routing, forms, plugins, caching, theming, testing, Views, batch processing, access control, config management, database API, Drush, and coding standards.
Theme Drupal output by building render arrays, Twig templates, hook_theme(), preprocess functions, and CSS/JS library attachments. Use WHENEVER producing visible output in a Drupal module: creating themed markup, building a template, defining a theme hook, attaching CSS or JavaScript libraries, or rendering structured data with #theme or #type render elements. Covers render array types and .libraries.yml. Do NOT use for cache invalidation or cache metadata strategy (use drupal-caching).
Integrate custom data with Drupal Views and build custom Views plugins (field, filter, sort, argument, relationship). Use when asked to expose a database table or entity type to Views via hook_views_data(), create custom Views field/filter/sort handlers, or alter existing Views definitions with hook_views_data_alter(). Covers D11 Views plugin attributes (#[ViewsField], #[ViewsFilter]) and entity-based Views integration. Do NOT use for general entity creation (use drupal-entities-fields).
Implement Drupal access control and security: permissions (.permissions.yml), route access requirements, entity access handlers, CSRF protection, and XSS prevention. Use when asked to restrict access to routes or content, define custom permissions, protect forms against CSRF, sanitize output against XSS, or implement AccessResult-based access checks. Covers cacheable access results with addCacheableDependency(). Do NOT use for building the routes themselves (use drupal-routing-controllers).
Implement background and deferred processing in Drupal using Batch API, Queue API with QueueWorker plugins, and hook_cron(). Use when asked to process large datasets in batches, run periodic scheduled tasks, defer work to background queues, implement cron operations, or build queue workers with processItem(). Covers cron-queue separation pattern, RequeueException handling, and Lock API for exclusive operations. Do NOT use for one-off database operations (use drupal-database-api).
Apply correct cache metadata (tags, contexts, max-age) to Drupal render arrays and implement cache invalidation patterns. Use WHENEVER producing render arrays that display entity or config data, working with blocks that need cache metadata, or troubleshooting stale content. Covers #cache on render arrays, getCacheTags()/getCacheContexts() on blocks, cache tag invalidation, and cache bubbling behavior. Do NOT use for building templates or themed output structure (use drupal-theming).
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A Claude Code plugin marketplace bundling Drupal-development skills. Two plugins ship today:
The two are versioned independently because the source material (and so the skills' evolution) is independent.
In Claude Code, add this marketplace and install whichever plugin you want:
/plugin marketplace add proofoftom/drupal-skills
/plugin install drupal-skills@drupal-skills # the 15-skill core
/plugin install drupal-tdd@drupal-skills # optional TDD discipline
Skills activate automatically when you ask Claude Code to work on Drupal projects. To update later: /plugin marketplace update drupal-skills.
| Skill | What It Does |
|---|---|
| drupal-module-scaffold | Scaffolds modules with .info.yml, PSR-4 structure, and .module files |
| drupal-routing-controllers | Routes, controllers, services, and dependency injection |
| drupal-entities-fields | Content and config entity types, base fields, and entity handlers |
| Skill | What It Does |
|---|---|
| drupal-forms-api | Form API lifecycle, form altering, and settings forms |
| drupal-plugins-blocks | Block plugins, custom plugin types, and plugin dependency injection |
| drupal-config-storage | Config API, State API, TempStore, and config schemas |
| drupal-access-security | Permissions, access control, CSRF protection, and XSS prevention |
| Skill | What It Does |
|---|---|
| drupal-theming | Render arrays, Twig templates, theme hooks, and asset libraries |
| drupal-caching | Cache tags, contexts, max-age, and lazy builders |
| drupal-testing | PHPUnit tests: unit, kernel, functional, and browser |
| drupal-database-api | Schema API, dynamic queries, and update hooks |
| Skill | What It Does |
|---|---|
| drupal-views-dev | Views data integration and custom Views plugins |
| drupal-batch-queue-cron | Batch API, queue workers, and cron hooks |
| Skill | What It Does |
|---|---|
| drupal-coding-standards | phpcs compliance for Drupal/DrupalPractice coding standards |
| Skill | What It Does |
|---|---|
| drupal-tdd | Red/green/refactor cadence, outside-in test ordering, test-first feature growth. Pairs with drupal-testing (which covers base classes and assertion APIs) -- drupal-testing answers "which test type and skeleton?", drupal-tdd answers "in what order, and how do I grow the code from the tests?" |
Install separately: /plugin install drupal-tdd@drupal-skills.
Skills activate automatically based on your prompt content. You don't need to reference them directly. Just describe what you want to build:
Multi-skill prompts work naturally. Ask Claude to "create a block plugin with a settings form and cache tags" and the relevant skills activate together.
git clone https://github.com/proofoftom/drupal-skills.git
claude --plugin-dir /path/to/drupal-skills
The plugin system auto-discovers all 15 skills. No configuration needed.
Deprecated: The install.sh method copies skills to
~/.claude/skills/and requires manual re-runs to update. Use the plugin method above instead.
./install.sh
Copies all skill directories to ~/.claude/skills/. Re-run the installer to pick up updates after git pull.
./install.sh --symlink
Creates symlinks from ~/.claude/skills/ to the repo. Skills update automatically when you git pull. However, skills break if you move or delete the repo directory.
If you previously installed skills using install.sh, migrate to the plugin system:
Remove previously installed skills:
./install.sh --uninstall
Use the plugin system going forward:
claude --plugin-dir /path/to/drupal-skills
The --uninstall flag removes all drupal-* directories from ~/.claude/skills/. The plugin loads skills directly from the repository, so there is nothing to install or keep in sync.
npx claudepluginhub proofoftom/drupal-skills --plugin drupal-skillsTest-driven development discipline for Drupal modules: red/green/refactor cadence, outside-in test ordering, and test-first feature growth. Companion to drupal-skills' drupal-testing (which covers base classes and boilerplate).
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Develop, test, build, and deploy Godot 4.x games with Claude Code. Includes GdUnit4 testing, web/desktop exports, CI/CD pipelines, and deployment to Vercel/GitHub Pages/itch.io.
A growing collection of Claude-compatible academic workflow bundles. Covers scientific figures, manuscript writing and polishing, reviewer assessment, citation retrieval, data availability, paper reading, literature search, response letters, paper-to-PPTX conversion, and evidence-grounded Chinese invention patent drafting. Rules are organized as reusable skill folders with explicit workflows and quality checks.
Intelligent draw.io diagramming plugin with AI-powered diagram generation, multi-platform embedding (GitHub, Confluence, Azure DevOps, Notion, Teams, Harness), conditional formatting, live data binding, and MCP server integration for programmatic diagram creation and management.
Persistent file-based planning for AI coding agents. Crash-proof markdown plans (task_plan.md, findings.md, progress.md) that survive context loss and /clear, with an opt-in completion gate and multi-agent shared state. Manus-style. Works with Claude Code, Codex CLI, Cursor, Kiro, OpenCode and 60+ agents via the SKILL.md standard. Includes Arabic, German, Spanish, and Chinese (Simplified and Traditional).
Comprehensive feature development workflow with specialized agents for codebase exploration, architecture design, and quality review