All skills
michtio avatar

/craft-project-setup

@64a3c26

Scaffold Claude Code configuration specifically for Craft CMS projects. Generates CLAUDE.md and .claude/rules/ files tailored to the project type (plugin, site, module, hybrid, or monorepo). Only for Craft CMS projects — not for Next.js, Laravel, or other frameworks. Triggers on: 'set up Claude for this Craft project', 'initialize CLAUDE.md', 'scaffold project config', 'configure Claude Code for Craft', 'create CLAUDE.md', 'missing CLAUDE.md', 'does this project have a CLAUDE.md', 'bootstrap Claude config', 'new Craft project setup', 'onboard a developer to this Craft project', 'generate .claude/rules', 'set up coding standards config', 'upgrade Claude config', 'update CLAUDE.md', 'compare my setup', 'is my config up to date', 'audit my Claude setup', 'redo project setup'. Also triggers when starting work in a new Craft CMS project that lacks a CLAUDE.md file, or when the user wants to check or upgrade an existing configuration. Detects project type from composer.json (craft-plugin, craft-module, project), .ddev/config.yaml, templates/, config/project/, and modules/. NOT for installing Craft CMS itself, creating DDEV environments, writing PHP code, building templates, or content modeling. NOT for non-Craft projects — if the project is React, Next.js, Laravel, or any non-Craft framework, this skill does not apply.

Use this Skill: https://skilld.dev/gh/michtio/craftcms-claude-skills/craft-project-setup

This session only. Nothing lands on disk.

templatesplugin.clauderulesmigrations.md

≈244 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Migrations

  • Scaffold with ddev craft make migration --with-docblocks.
  • Install.php for the full schema on fresh install. Numbered migrations for incremental changes.
  • Idempotent: check if column/table exists before creating. safeDown() should reverse safeUp().
  • Foreign keys with explicit CASCADE or SET NULL behavior. Index columns used in queries.
  • muteEvents = true when writing to project config in migrations — prevents infinite event loops.
  • Content migrations (creating sections, fields, entry types) use Craft::$app->getProjectConfig()->set() — never direct DB inserts for managed content.
  • After adding columns, update the Record class and the element query's addSelect().
  • Test: ddev craft migrate/up succeeds, ddev craft migrate/down reverses cleanly, ddev craft migrate/up succeeds again.
  • Deploy: ddev craft up runs both migrations and project config apply. Never run migrate/all and project-config/apply separately.

Source: SKILL.md on GitHub

1 warning16d3 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    The skill automates Craft CMS project setup by scaffolding configuration and pre-approving developer commands to improve agent efficiency. While functional, the broad permission grants and the audit workflow for external repositories introduce surfaces for unauthorized command execution and indirect prompt injection.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: MEDIUM · 1 issue

Signed by skilld at 64a3c26. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 weeks ago.

Activeupdated 2 weeks ago

README badge

README badge for michtio/craftcms-claude-skills/craft-project-setup