michtio / craftcms-claude-skills
Craft CMS 5 expertise as Claude Code skills + a thin PHP API. Consumed by Claude Code (skills plugin) and craftpulse/craft-cortex (MCP prompts/resources).
Package info
github.com/michtio/craftcms-claude-skills
Language:Shell
pkg:composer/michtio/craftcms-claude-skills
Requires
- php: ^8.2
README
Production-ready Claude Code skills, agents, and project templates for Craft CMS 5 development.
Built and maintained by michtio. Covers both plugin/module development (extending Craft) and site development (content modeling, Twig templates, front-end architecture).
Support
If this project saves you time, consider supporting its development:
Quick Start
1. Install
# Claude Code Plugin (recommended) # First time: add the marketplace, then install /plugin marketplace add michtio/craftcms-claude-skills /plugin install craftcms-claude-skills@michtio/craftcms-claude-skills # Or via Vercel Skills CLI npx skills add michtio/craftcms-claude-skills --all # Or clone manually git clone https://github.com/michtio/craftcms-claude-skills.git ~/.claude/craftcms-claude-skills cd ~/.claude/craftcms-claude-skills && bash install.sh
2. Set Up Your Project
Open Claude Code in your Craft project and say:
Set up Claude for this Craft project
The craft-project-setup skill detects your project type (plugin, site, module) and generates a tailored CLAUDE.md and .claude/rules/ directory.
3. Start Building
The skills trigger automatically based on what you're doing. Just describe what you need:
Build a blog with topics, authors, and a flexible body builder using CKEditor
Claude loads the right skills, follows Craft conventions, and uses the correct field handles, DDEV commands, and project config workflow.
Example Prompts
Just describe what you need. Skills trigger automatically and produce high-quality results.
Plan the content architecture for a multi-language corporate site with
news, team members, office locations, and a service catalog. We need
English, German, and French with subfolder-per-language routing.
Build a custom element type for "Job Listings" with postDate/expiryDate
status, a categories relation for departments, and a CP edit page with
field layout designer.
I need a modal dialog for my Craft plugin that opens when clicking
"Add Item", shows a form with name and handle fields, POSTs to my
plugin's save action, and closes on success. Make it keyboard accessible.
Create an atomic button component that supports links, form submits,
and disabled states. It needs size variants and a loading spinner option.
Configure Redis for cache, sessions, and mutex in our Craft project.
We're running DDEV locally and deploying to a VPS with Redis installed.
Build a member area with registration, login, password reset, and
profile editing. Users should be in the "Members" group and only see
content in the gated section.
See docs/prompt-guide.md for 40+ prompts organized by task type.
What's Inside
Skills
| Skill | Track | Key Coverage |
|---|---|---|
craftcms |
Plugin | Elements, queries, services, controllers, migrations, events, GraphQL, configuration, caching, permissions, CP templates (form macros, settings, navigation), CP components (widgets, utilities, slideouts), CP UI patterns (tri-state, condition builders, asset bundles), console commands (80+ commands), debugging. 30 reference files. |
craft-php-guidelines |
Plugin | PHPDocs, section headers, naming, class organization, ECS/PHPStan. 5 reference files. |
craft-content-modeling |
Site | Sections, entry types, fields, Matrix, relations, eager loading, entrification. Reuse-first field workflow. 6 reference files. |
craft-site |
Site | Atomic design, component patterns, routing, Vite, auth flows, search, feeds, headless. 18 reference files + 22 plugin references. |
craft-twig-guidelines |
Site | Variable naming, null handling, whitespace, include isolation, Craft helpers, collect(). |
craft-garnish |
Plugin | Garnish CP JavaScript: class system, UI widgets, drag system, ARIA/focus, Craft.* pattern. 5 reference files. |
ddev |
Shared | Commands, services, configuration, Xdebug, site sharing, troubleshooting. |
craft-project-setup |
Shared | Project scaffolding, upgrade, and audit. Generates CLAUDE.md, .claude/rules/, .claude/settings.local.json (permissions). Gap analysis for existing configs. |
8 skills, 86 reference files. Skills load automatically and declare companion skills so related knowledge loads together. See docs/skills-overview.md for the full breakdown.
Agents
| Agent | Model | Purpose |
|---|---|---|
craft-planner |
Opus | Decompose features into vertical slices with verification gates. Can research/audit public plugins via gh and git clone. |
craft-feature-builder |
Opus | Build plugin code feature by feature with automated + manual test gates |
craft-site-builder |
Opus | Site templates and components feature by feature with build-verify gates |
craft-debugger |
Sonnet | Systematic bug investigation |
craft-code-reviewer |
Sonnet | Full-stack review: PHP, Twig, JS, CSS, config (45 checklist items) |
Agents build feature by feature (vertical slices), not layer by layer. Tests are written alongside each layer, not batched at the end. Manual testing gates (required + optional) are identified per feature. The builder's 16 prevention rules map to the reviewer's 45 checklist items across PHP, Twig, JS, and CSS. See docs/agents.md for details.
Plugin Reference Library
22 Craft plugins with detailed configuration, Twig/PHP API, and common pitfalls:
View all 22 plugin references
| Plugin | Author | Key Surface |
|---|---|---|
| SEOMatic | nystudio107 | Meta cascade, JSON-LD, sitemaps, GraphQL |
| Blitz | putyourlightson | Static caching, Cloudflare, dynamic content, purgers |
| Formie | verbb | Form rendering, Tailwind theming, submissions, hooks |
| ImageOptimize | nystudio107 | Responsive images, transforms, loading strategies |
| CKEditor | craftcms | Rich text, nested entries, HTML Purifier |
| Sprig | putyourlightson | Reactive Twig components (htmx) |
| Element API | craftcms | JSON API endpoints |
| Retour | nystudio107 | Redirects, 404 tracking |
| Navigation | verbb | Menu node querying, active states |
| Hyper | verbb | Link fields, button integration |
| Colour Swatches | craftpulse | Color palettes, Tailwind class mapping |
| Password Policy | craftpulse | Validation rules, HIBP check |
| Typogrify | nystudio107 | Typography filters, widow prevention |
| Cache Igniter | putyourlightson | CDN cache warming |
| Knock Knock | verbb | Staging password protection |
| Elements Panel | putyourlightson | Debug toolbar, N+1 detection |
| Sherlock | putyourlightson | Security scanning |
| Embedded Assets | spicyweb | oEmbed as assets |
| Amazon SES | putyourlightson | SES mail transport |
| Timeloop | craftpulse | Recurring dates |
| Feed Me | craftcms | Data import from XML/JSON/CSV, CLI automation |
| Imager-X | spacecrafttechnologies | Advanced image transforms, named presets, effects |
Documentation
| Guide | What it covers |
|---|---|
| Getting Started | Installation, project setup, how skills auto-trigger, first steps |
| Skills Overview | All 8 skills with triggers, companion skills, reference counts, boundaries |
| Prompt Guide | 40+ real-world prompts organized by task type |
| Agents | 5 agents with tools, gate patterns, composition examples |
| Contributing | Adding plugin references, improving skills, reporting issues |
Requirements
- Claude Code installed and configured
- DDEV for local Craft CMS development
- Craft CMS 5.x
- Bash (macOS/Linux) for the install script
Versioning
The minor version of this package mirrors the Craft CMS minor version it documents:
- 1.4.x — Craft 5.9 realm
- 1.5.x — Craft 5.10 realm
- 1.6.x — Craft 5.11 realm (when it ships)
When Craft bumps its major version (5.x → 6.x), this package follows (1.x → 2.x).
Both lines stay actively maintained. New plugin references, cross-version conventions, and fixes that apply to multiple Craft minors land on every supported line via cherry-pick. Content specific to a Craft minor — APIs introduced in that version, breaking shape changes, new core conventions — lands only on the line(s) that target it.
Development happens on main (currently 1.5.x). Older lines live on their own branches (1.4.x etc.). Releases tag from the appropriate branch — v1.5.0 from main, v1.4.9 from 1.4.x. The release-validation workflow enforces that manifest versions match the tag regardless of which branch shipped it.
Roadmap
- Upgrade guide (Craft 3→4, 4→5, 3→5) with deprecated plugin mapping and migration paths
- DDEV skill expansion (Xdebug deep-dive, custom services, production parity)
- Commerce skill (products, variants, orders, carts, payments -- separate skill)
- CKEditor 4→5 migration guide (config conversion, custom styles, plugin mapping, HTML cleanup)
- More plugin references (Neo, Scout, Campaign)
Contributing
Contributions welcome. See docs/contributing.md for how to add plugin references, improve skills, and report issues.
For PHP consumers (composer)
The same repo also ships as a small composer package, exposing the bundled skills' markdown to PHP code through a thin static helper. The primary consumer is craftpulse/craft-cortex — a Craft CMS 5 MCP server plugin that surfaces these skills as MCP prompts and resources to AI agents.
composer require michtio/craftcms-claude-skills
use Michtio\CraftCmsClaudeSkills\Skills; Skills::skillNames(); // ['craft-content-modeling', 'craft-garnish', 'craft-php-guidelines', ...] Skills::content('craftcms'); // Full SKILL.md content as a string Skills::references('craftcms'); // ['architecture', 'caching', 'conditions', ...] Skills::referenceContent('craftcms', 'elements'); // Full reference markdown as a string Skills::agentNames(); // ['craft-code-reviewer', 'craft-debugger', 'craft-feature-builder', ...] Skills::agentContent('craft-debugger'); // Full agent markdown (frontmatter + body) as a string
The helper is read-only and does no caching — wrap it in your own registry if you need that. PHP 8.2+.
License
MIT -- see LICENSE.