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).
If this project saves you time, consider supporting its development:
# 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.shOpen 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, hybrid, or monorepo) and generates a tailored CLAUDE.md and .claude/rules/ directory.
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.
Just describe what you need — skills trigger automatically and produce high-quality results. A few to show the range, grouped by domain:
Content modeling & architecture
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.
Plugins & modules
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.
Control panel & author experience
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.
Front-end & Twig
Create an atomic button component that supports links, form submits,
and disabled states. It needs size variants and a loading spinner option.
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.
Hosting & deployment
Set this project up to deploy on Servd: Servd asset storage, static
caching with Blitz in reverse-proxy mode, and the dedicated queue
runner. Document the constraints in CLAUDE.md.
Configure Redis for cache, sessions, and mutex in our Craft project.
We're running DDEV locally and deploying to a VPS with Redis installed.
See docs/prompt-guide.md for 40+ prompts organized by task type — content modeling, plugin development, field types, security, Twig, CP/JS, configuration & deployment, testing, and headless.
| 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 + 23 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. |
craft-cloud |
Shared | Craft Cloud serverless hosting: craft-cloud.yaml, Build → Migrate → Release pipeline, the craftcms/cloud extension, edge image transforms, static caching + ESI, MySQL 8 / Postgres 15 constraints, Console command runner, plugin Cloud-compatibility, self-hosted → Cloud migration. 12 reference files. |
servd |
Shared | Servd managed hosting: git push-to-deploy + servd.yaml, local → staging → production sync, the servd/craft-asset-storage plugin (svdcdn CDN, off-server transforms), Servd static caching + Blitz reverse-proxy mode, MariaDB/MySQL over SSH, backups, Dedicated Queue Runner, ephemeral filesystem. 6 reference files. |
10 skills, 105 reference files. Skills load automatically and declare companion skills so related knowledge loads together. See docs/skills-overview.md for the full breakdown.
| 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 against a structured checklist: PHP, Twig, JS, CSS, config |
craft-code-reviewer-deep |
Opus | Deep review for high-stakes PRs (release branches, security, migrations, multi-service flows): cross-file data flow, untested paths, race conditions, scale concerns |
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 prevention rules map directly to the reviewer's checklist across PHP, Twig, JS, and CSS; craft-code-reviewer-deep (Opus) goes further for high-stakes changes. See docs/agents.md for details.
23 Craft plugins with detailed configuration, Twig/PHP API, and common pitfalls:
View all 23 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 | spacecatninja | Advanced image transforms, named presets, effects |
| Vite | nystudio107 | Asset loading (craft.vite.*), critical CSS, dev server, manifest |
| Guide | What it covers |
|---|---|
| Getting Started | Installation, project setup, how skills auto-trigger, first steps |
| Skills Overview | All 10 skills with triggers, companion skills, reference counts, boundaries |
| Prompt Guide | 40+ real-world prompts organized by task type |
| Agents | 6 agents with tools, gate patterns, composition examples |
| Contributing | Adding plugin references, improving skills, reporting issues |
- Claude Code installed and configured
- DDEV for local Craft CMS development
- Craft CMS 5.x
- Bash (macOS/Linux) for the install script
This package follows its own semantic versioning, driven by the pack's own content — it is not pinned to Craft's minor releases:
- Patch (e.g. 1.6.0 → 1.6.1) — accuracy fixes, corrections, small content updates
- Minor (e.g. 1.5.x → 1.6.0) — new skills, new plugin references, significant content additions
- Major (1.x → 2.x) — Craft's next major (5.x → 6.x, where APIs break) or a major reorganization of the pack
The pack targets Craft CMS 5, latest minor (currently 5.10). Behaviour specific to a Craft minor is annotated inline in the content (e.g. "since 5.10.0"), so a single line serves projects on any Craft 5 minor — the minors are additive and backward-compatible. New content like a hosting skill or plugin reference is a feature of the pack, independent of which Craft minor is current.
Development happens on main. The 1.4.x branch is a frozen snapshot targeting Craft 5.9 — it received a final quality release and no longer takes new work; all new development lands on main. The release-validation workflow enforces that manifest versions match the release tag.
- 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)
Contributions welcome. See docs/contributing.md for how to add plugin references, improve skills, and report issues.
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-skillsuse 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 stringThe helper is read-only and does no caching — wrap it in your own registry if you need that. PHP 8.2+.
MIT -- see LICENSE.