I'm trying here…
At this point in my journey, running feels a little out of reach, which I am okay with because Agentic coding is a major software development paradigm shift. I'm eager to run and have Claude generate some 'production' and reviewable quality code for me. Still, when researching CLAUDE.md files, people recommend using or creating skills that simply offer reusable instructions to guide a prompt in the right direction. Installing some Drupal-specific skills should increase Claude's reliability when working with Drupal.
Still unsure what I'm doing here
I'm not sure what I'm doing here and am always seeking advice. The suggestions on Reddit range from adding agent skills and plugins to give Claude superpowers to the idea that Claude is already superpowered and doesn't need much help.
I'm skeptical about how much nudging Claude really needs when using skills. For example, I have been using Claude's Chat to plan a module without any additional context or information, and Claude is doing an excellent job generating a 'simple' module project specification. Claude fully understands Drupal APIs and some Drupalisms, but AIs are known to make mistakes; therefore, exploring skills is worthwhile and helpful for repetitive custom tasks, such as upgrading or refactoring codebases.
Ask the AI for help getting started
At this point in my AI journey, I'm between asking Claude to generate documentation and searching Google for references to include. I value that all my /docs have become iterative with AI, and I'm very optimistic they won't become outdated because you can ask an AI to review and enhance your documentation anytime. To Anthropic's credit, the creators of Claude offer excellent documentation that appears to be continuously updated. It's very likely that their documentation is created and maintained with AI assistance.
To begin adding skills to my project, I had Claude create a CLAUDE-CODE-SKILLS.md document that provides a clear overview of agent skills with some Drupal-specific skills.
Agent skills for everyone
Agent skills are an open standard used by most code agents. The fact that multiple companies are rapidly advancing agentic coding capabilities while still dedicating time to collaborate on open standards is noteworthy. How AI impacts open source is a topic for another day, but the optimist in me sees open standards being embraced.
Having a centralized shared listing of available skills that can be filtered by Drupal helped me understand the landscape. Differentiating what each Drupal skill does and how it does it can be somewhat confusing. So I decided to explore three Drupal skills packages, already knowing which one I would choose for a very specific reason.
Drupal Development Skills for Claude Code
I appreciate that Omedia broke down their skills into frontend, backend, and tooling. This aligns with how skills outside of Drupal are organized. For example, Claude suggests using their frontend-design skill/plugin. In Claude Code, plugins are code packages that can include configuration, skills, and MCP servers.
When reading OMedia's SKILL.md files, most of the directives appear to be common knowledge for Claude, and Claude may not require additional guidance. However, OMedia's skill includes a module_structure.md that provides an overview of a module's basic structure. I believe this type of tree overview on a module should be readily available on Drupal.org but I could not find an example.
It seems like Claude has surpassed most LLMs in popularity and capability, and perhaps other coding agents also need this level of guidance. Anyone focused on AI and LLMs stresses that we must assume models will become more capable, and that we should focus on future models rather than just adjusting to current ones.
Skills can help address an AI's knowledge gaps and guide its application.
CMS Cultivator
Accessibility is not a checklist—it's a mindset of inclusive design.
-- https://skills.sh/kanopi/cms-cultivator/accessibility-checker
Kanop's skills are quite nuanced because some of their abilities go beyond just explaining how to do X or Y; they also share the philosophy behind the best way to accomplish certain tasks and why they matter, like accessibility. Accessibility seems like something that could get lost during training LLMs. For Drupal, there are several pages about the Drupal community and its values; meanwhile, there are over 100,000 pages dedicated to Drupal's code. It makes sense that an Agentic coding agent wouldn't prioritize accessibility unless explicitly instructed to do so. As a side note, there is some doubt and skepticism about AI's benefits, but I have no doubt that AIs can assist people with disabilities in navigating the web.
Kanopi also includes skills for contributing to Drupal, which, once again, is something most AIs find challenging. It's ironic that Claude has a strong understanding of a module, but it won't contribute to Drupal without human prompting.
The CMS Cultivator features a drupalorg-contribution-helper that highlights the drupalorg-cli, created by Matt Glaman. It connects to Drupal.org's API to perform tasks such as creating issues and submitting patches. The future where an AI assists someone in contributing to Drupal seems inevitable. We need to help humans and AIs make meaningful contributions. Tools like the drupalorg-cli help build Drupal, the software, and should be showcased on Drupal.org rather than having their value limited to an agent skill.
So far, the skills between Omedia and Kanopy involve repackaging knowledge and combining common practice with front matter. This can help, but I have to ask: does AI only need a nudge to know when to act and where to look?
Drupal Claude Skills
Matt Grasmick's skills stood out because there is a 'Drupal at Your Fingertips' skill set that simply references amazing content created by Selwyn Polit. The 'Drupal at Your Fingertips' skill feels collaborative while recognizing a valuable source of high-quality information. An agentic skill might just need to guide an AI to the correct resource and in the right direction.
For example, while working on a module specification, I told Claude that I needed to support the latest version of a specific module, along with the URL. Claude opened Chrome and browsed the module's repository. This anecdotal experience suggests that AIs don't actually want to hallucinate; if you guide them to proper documentation, they will RTFM.
Another note about the Drupal Claude Skills: I suspect some were AI-generated and human-reviewed, which is a good thing because an AI is probably best at understanding what it needs to succeed. Conceptually, there could be a skill for creating a new documentation skill for Drupal that might later be used by an LLM for training.
I chose to install Drupal Claude Skills using the Skills Manager by Vercel, which feels like the best way to download, manage, and create skills.
cd drupal_playground;
npx skills add grasmash/drupal-claude-skills
Testing Drupal Claude Skills with building a module
One of the best rules of thumb I am learning when working with an AI like Claude is that if you don't know how the AI will do something, ask it how to do it. It seems increasingly clear that Anthropic allows Claude to perform introspection on its own capabilities.
With this in mind, I wanted to give Claude a chance to generate a Telephone Filter module that I had created with OpenAI last year. A year ago, OpenAI built an okay module, but it required extensive manual tweaking to become a working solution.
My initial step was to update my prompt for the telephone filter module. Separately, I am working on having Claude generate an example module specification template for use in creating a contrib or custom module specification. My goal is to develop a module specification to identify any missing requirements or APIs.
Here is the updated Telephone Filter module spec, which is much more thorough than before and required less writing and tweaking on my part; Claude did most of the planning and architecture.
By the way, the initial spec was not created using Claude Code; I used Claude's Chat instead. I wanted to see how much Claude understands without additional context. Claude Chat got the specification 80% correct on its own, without any context, and then I had to switch to the Claude Code tab in the desktop app to review, improve, and fix the plan.
Before Claude Code started building the module, I wanted to know which Drupal Claude Skill would assist Claude Code in implementing my module specifications. So, in my Drupal playground, where I store the generated spec, I asked Claude Code to review it and tell me which skills it would need to create the module, and I appended that to the spec.
I was focused on creating a "one-and-done" prompt that builds a fully functional module and showcases it here. The moment of truth has arrived. The module's unit tests passed, but the module didn't work when tested manually.
My two mistakes were not requiring a functional test and storing a list of supported area codes as an array rather than a simple comma-separated string. I prompted Claude to fix both issues, but I still had to make a few quick manual adjustments due to a Drupal code quirk. The simplest, least technical explanation I can give is that Drupal's Filter plugins don't follow some common patterns used by other plugins around default configuration and its settings form because filters were the first plugins migrated to Drupal 8. (@see https://www.drupal.org/node/2309961) Next time, I need to point Claude to a working filter example that includes an example of default configuration with a settings form.
What are the different types of skills?
I just attended Alex Urevick-Ackelsberg's presentation on Claude Skills and MCP for Drupal Development at Drupal Camp New Jersey. He is using agentic coding with multiple agents to orchestrate a soup-to-nuts Drupal development project workflow. Honestly, I will need several months to catch up with him. The main lesson I learned from him is that there are different types of skills being developed for AIs.
Of course, I googled "Different types of agent skills" and was surprised to find no simple summary of the skill types. I worked with Claude to identify three types and decided to give Claude full credit here, noting that I had to choose the keyword for the types: Knowledge, Intent, and Process.
Knowledge — Fills domain gaps by injecting platform conventions, APIs, and tribal knowledge Claude doesn't have by default.
Intent — Clarifies the quality bar by defining a constraint or standard (accessibility, security, voice) to apply across tasks.
Process — Encodes how work gets done by defining a multi-step, multi-agent workflow from spec to review.
-- Claude
I hope this summary provides you with a starting point for installing existing skills and creating new ones.
Takeaways
Below are a few takeaways from my experience with Agent Skills.
Skills might not need to suggest what to do; instead, skills need to say why and how to do it.
AIs need guidance, and we should always reinforce our core values. We may not need AGENTS.md or skills to teach an AI how to do Drupal, but we should remind the AI why certain things matter to us, like accessibility, translatability, and community.
Helping LLM understand the "how" begins with documentation.
LLMs are consuming information so quickly that the Drupal community's focus may not need to be on "knowledge"-based skills and context, but instead, we should improve our documentation. Besides our code, our documentation and tools can be AI-assisted. I understand this is a bitter pill for people who have laboriously contributed to Drupal's documentation. As a developer, I also have to accept that AI-generated code will consume, overwrite, and replace much of my previous code and contributions.
The process for implementing agentic coding agents is a very new frontier that we need to explore
It's okay to feel a bit overwhelmed by how agentic coding will be in shaping our process for building and maintaining Drupal's code and community. I'm overwhelmed by having to adopt a new software development process. Previously, I kept most things in my head while writing the code. Now, I recognize that agentic coding is pushing me to rethink my process and approach to documenting and building software.
Still, I am having fun here and feel strongly that it gets better and easier
I started building my Drupal (AI) Playground to experiment with AI. I enjoyed creating my module specification document while sipping coffee. Instead of laboring over code, I focused on planning my code.
What is next?
There is more experimentation and fun to come. I hope you're feeling inspired to begin exploring and experimenting with enhancing your agents with skills.
The Telephone Filter module was a simple test for AI that taught me a lot about how AI writes, reviews, and fixes code. Now, it's time for me to start using Claude Code to build a complex module.