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.clauderulestesting.md

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

Testing

  • Write tests alongside each layer, not after. Service tests with the service, controller tests with the controller.
  • Pest over PHPUnit. Use ddev craft pest/test to run (or ddev exec "cd /var/www/html && vendor/bin/pest" for explicit-path runs), never vendor/bin/pest on the host.
  • --filter=ClassName for targeted runs during development. Full suite before committing.
  • ->site('*') and ->status(null) in test queries to avoid false negatives from site/status scoping.
  • actingAs($user)->post() for controller tests. Assert both HTTP status and DB state.
  • Test edge cases: empty results, missing entities, expired elements, permission denials.
  • Factories for element setup. Never rely on database seeding or fixture ordering.
  • Multi-site: test propagation behavior when the plugin touches elements across sites.
  • Queue jobs: dispatch and assert the job processed correctly, not just that it was pushed.
  • Craft::$app->getProjectConfig()->muteEvents = true when tests modify project config directly.

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