/ Directorio / Playground / craftcms-claude-skills
● Comunidad michtio ⚡ Instantáneo

craftcms-claude-skills

por michtio · michtio/craftcms-claude-skills

Un paquete de habilidades de Claude Code que domina Craft CMS 5 al detalle — escribe módulos, plantillas Twig, migraciones y consultas GraphQL a la manera de Craft.

Habilidades listas para producción, agentes y plantillas de proyecto que enseñan a Claude Code cómo funciona realmente Craft CMS 5. En lugar de sugerencias PHP genéricas, obtienes patrones idiomáticos de Craft — consultas de elementos adecuadas, manejadores de campos, estructura de módulos, convenciones de Pixel & Tonic.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

craftcms-claude-skill.replay ▶ listo
0/0

Instalar

Elige tu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "craftcms-claude-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/michtio/craftcms-claude-skills",
        "~/.claude/skills/craftcms-claude-skills"
      ],
      "_inferred": true
    }
  }
}

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "craftcms-claude-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/michtio/craftcms-claude-skills",
        "~/.claude/skills/craftcms-claude-skills"
      ],
      "_inferred": true
    }
  }
}

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "craftcms-claude-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/michtio/craftcms-claude-skills",
        "~/.claude/skills/craftcms-claude-skills"
      ],
      "_inferred": true
    }
  }
}

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "craftcms-claude-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/michtio/craftcms-claude-skills",
        "~/.claude/skills/craftcms-claude-skills"
      ],
      "_inferred": true
    }
  }
}

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "craftcms-claude-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/michtio/craftcms-claude-skills",
        "~/.claude/skills/craftcms-claude-skills"
      ]
    }
  ]
}

Continue usa un array de objetos de servidor en lugar de un mapa.

~/.config/zed/settings.json
{
  "context_servers": {
    "craftcms-claude-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/michtio/craftcms-claude-skills",
          "~/.claude/skills/craftcms-claude-skills"
        ]
      }
    }
  }
}

Añádelo a context_servers. Zed recarga en caliente al guardar.

claude mcp add craftcms-claude-skill -- git clone https://github.com/michtio/craftcms-claude-skills ~/.claude/skills/craftcms-claude-skills

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: craftcms-claude-skills

Estructura un módulo personalizado de Craft CMS sin salir de Claude Code

👤 Desarrolladores de Craft CMS que crean módulos específicos del sitio ⏱ ~30 min intermediate

Cuándo usarlo: Necesitas un nuevo módulo y no quieres copiar manualmente otro como plantilla.

Requisitos previos
  • Proyecto de Craft CMS 5 configurado localmente — composer create-project craftcms/craft my-project
  • Habilidad clonada — git clone https://github.com/michtio/craftcms-claude-skills ~/.claude/skills/craftcms-claude-skills
Flujo
  1. Describe el trabajo del módulo
    Usa craftcms-claude-skills. Crea un nuevo módulo llamado 'Inventory' que registre un tipo de elemento personalizado para artículos de almacén.✓ Copiado
    → Claude estructura modules/inventory/ con src/Inventory.php, elements/WarehouseItem.php, y una entrada de configuración
  2. Conéctalo
    Registra el módulo en config/app.php y añade la entrada de bootstrap.✓ Copiado
    → Se muestra diff de configuración; el módulo se carga sin errores en craft setup/check
  3. Añade una consulta de elemento
    Añade una clase WarehouseItemQuery con un parámetro personalizado 'sku' que filtre en la tabla de contenido.✓ Copiado
    → Clase Query con cláusulas WHERE apropiadas, no sopa SQL cruda

Resultado: Un módulo Craft funcional que siga convenciones de Pixel & Tonic — listo para tu primera migración.

Errores comunes
  • Claude escribe código de estilo Craft 3/4 — Declara explícitamente Craft CMS 5 en cada prompt — la superficie de la API cambió
Combinar con: filesystem · mysql

Refactoriza un desastre de plantillas Twig en Craft idiomático

👤 Devs de front-end que heredan un sitio Craft con plantillas cuestionables ⏱ ~45 min intermediate

Cuándo usarlo: Tomaste un proyecto Craft y las plantillas están llenas de SQL crudo, PHP inline, y etiquetas de caché que no funcionan.

Flujo
  1. Señala a Claude la peor plantilla
    Usando craftcms-claude-skills, revisa templates/_entries/blog.twig y reescríbelo usando consultas de elementos adecuadas y etiquetas {% cache %}.✓ Copiado
    → Plantilla refactorizada con craft.entries, manejador de sección, y alcance de caché correcto
  2. Extrae macros reutilizables
    Extrae el marcado de tarjeta a una macro en _macros/cards.twig e inclúyela correctamente.✓ Copiado
    → Archivo de macro creado; incluye sintaxis {% from %}

Resultado: Plantillas que se cargan más rápido y que los devs futuros pueden leer realmente.

Errores comunes
  • Las etiquetas de caché envuelven datos dinámicos del usuario y muestran contenido incorrecto — Usa {% cache %} con variaciones codificadas globalmente, nunca alrededor de datos de usuario autenticado
Combinar con: filesystem

Escribe una migración segura de Craft para cambios de modelo de contenido

👤 Devs de Craft que envían cambios de esquema a producción ⏱ ~30 min advanced

Cuándo usarlo: Estás añadiendo un nuevo campo o reestructurando uno existente y necesitas una migración que no coma datos.

Flujo
  1. Describe el cambio
    Usa craftcms-claude-skills. Escribe una migración de Craft que añada un campo datetime 'featuredAt' a la sección News, con un backfill seguro desde postDate.✓ Copiado
    → Archivo de migración con safeUp / safeDown; usa el servicio Fields de Craft, no hacks de esquema crudo
  2. Prueba en dev
    Guíame a través de probar esto con ./craft migrate/up --interactive=0 en una copia de staging primero.✓ Copiado
    → Lista de verificación paso a paso incluyendo copia de seguridad de base de datos

Resultado: Una migración que puedas enviar un viernes sin pánico.

Errores comunes
  • Olvidar registrar el tipo de campo en la configuración del proyecto — Siempre ejecuta craft project-config/write después de la migración y confirma el YAML
Combinar con: mysql · git

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

craftcms-claude-skill + filesystem

La habilidad proporciona patrones de Craft; filesystem permite a Claude aplicarlos realmente en tu proyecto

Aplica el scaffolding de módulo craftcms-claude-skills a mi directorio de proyecto actual.✓ Copiado
craftcms-claude-skill + mysql

Inspecciona las tablas de contenido de Craft mientras escribes migraciones

Muéstrame el esquema actual de la tabla elements_sites antes de escribir esta migración.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
module_scaffold nombre del módulo, tipos de elemento Iniciando un nuevo módulo 0
field_generator nombre del campo, tipo, manejador Añadiendo un tipo de campo personalizado 0
twig_refactor ruta de plantilla Limpiando plantillas heredadas 0

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
Ninguno
Tokens por llamada
Moderado — los archivos de referencia se cargan bajo demanda
Monetario
Gratuito
Consejo
Haz referencia a la habilidad por nombre solo cuando trabajes en código Craft; añade sobrecarga de contexto a tareas no relacionadas.

Seguridad

Permisos, secretos, alcance

Almacenamiento de credenciales: Sin credenciales
Salida de datos: Ninguno — solo prompts y archivos locales

Resolución de problemas

Errores comunes y soluciones

Claude genera código de la era Craft 3 (craft()->elements)

Menciona 'Craft CMS 5' explícitamente; el espacio de nombres de la API es craft\elements en 5.x

Verificar: grep -r 'craft()->' src/ no debería devolver nada en código Craft 5
La migración se ejecuta pero el campo no aparece en CP

Ejecuta ./craft project-config/write y ./craft project-config/apply — la desviación de configuración del proyecto es la causa habitual

Verificar: ./craft project-config/diff
La habilidad no se activa en prompts de Craft

Invoca por nombre: 'usa craftcms-claude-skills'. Verifica que SKILL.md esté presente.

Verificar: ls ~/.claude/skills/craftcms-claude-skills/SKILL.md

Alternativas

craftcms-claude-skills vs otros

AlternativaCuándo usarlaContrapartida
Raw Claude CodeAjustes simples solo Twig que no necesitan idiomas específicos de CraftSugerencias genéricas de PHP, a menudo incorrectas para Craft
symfony-hexagonal-skillEstás en Symfony, no en CraftConvenciones de marco diferentes

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills