/ ディレクトリ / プレイグラウンド / craftcms-claude-skills
● コミュニティ michtio ⚡ 即起動

craftcms-claude-skills

作者 michtio · michtio/craftcms-claude-skills

Craft CMS 5を熟知したClaude Codeスキルバンドル — モジュール、Twigテンプレート、マイグレーション、GraphQLクエリをCraft流で生成します。

Claude CodeにCraft CMS 5の実践的な使い方を教える、本番対応のスキル、エージェント、プロジェクトテンプレート集です。汎用的なPHPの提案ではなく、Craft特有のパターン — 適切なエレメントクエリ、フィールドハンドル、モジュール構成、Pixel & Tonicの規約に沿ったコードを生成します。

なぜ使うのか

主な機能

ライブデモ

実際の動作

craftcms-claude-skill.replay ▶ 準備完了
0/0

インストール

作者のリポジトリ · Claude Skills の公式ドキュメント

ユースケース

実用的な使い方: craftcms-claude-skills

Claude Codeから離れずにCraft CMSカスタムモジュールをスキャフォールドする

👤 サイト固有のモジュールを構築するCraft CMS開発者 ⏱ ~30 min intermediate

使うタイミング: 新しいモジュールが必要だが、既存のモジュールを手作業でコピーしてテンプレートにしたくない場合。

フロー
  1. モジュールの役割を説明する
    Use craftcms-claude-skills. Create a new module called 'Inventory' that registers a custom element type for warehouse items.✓ コピーしました
    → Claudeが modules/inventory/ 以下に src/Inventory.php、elements/WarehouseItem.php、およびコンフィグエントリをスキャフォールドする
  2. モジュールを接続する
    Register the module in config/app.php and add the bootstrap entry.✓ コピーしました
    → コンフィグの差分が表示される。craft setup/checkでモジュールがエラーなく読み込まれる
  3. エレメントクエリを追加する
    Add a WarehouseItemQuery class with a custom 'sku' parameter that filters on the content table.✓ コピーしました
    → 適切なWHERE句を持つクエリクラス。生SQLの羅列ではない

結果: Pixel & Tonicの規約に準拠した動作するCraftモジュール — 最初のマイグレーションに進める状態です。

注意点
  • ClaudeがCraft 3/4スタイルのコードを生成する — プロンプトで毎回必ずCraft CMS 5と明示する — APIが変更されています
組み合わせ: filesystem · mysql

乱雑なTwigテンプレートをCraftの慣用的な書き方にリファクタリングする

👤 既存のCraftサイトを引き継いだフロントエンド開発者 ⏱ ~45 min intermediate

使うタイミング: 引き継いだCraftプロジェクトのテンプレートが生SQL、インラインPHP、機能しないキャッシュタグだらけの場合。

フロー
  1. 最も問題のあるテンプレートをClaudeに指示する
    Using craftcms-claude-skills, review templates/_entries/blog.twig and rewrite it using proper element queries and {% cache %} tags.✓ コピーしました
    → craft.entries、セクションハンドル、正しいキャッシュスコープを使ったリファクタリング済みテンプレート
  2. 再利用可能なマクロを抽出する
    Pull the card markup into a macro in _macros/cards.twig and include it properly.✓ コピーしました
    → マクロファイルが作成される。インクルードに {% from %} 構文を使用

結果: 読み込みが速く、後任の開発者が実際に読めるテンプレートになります。

注意点
  • キャッシュタグが動的なユーザーデータを囲んでしまい、誤ったコンテンツが表示される — {% cache %}にはグローバルキーによるバリエーションを使用し、認証済みユーザーデータの周囲には絶対に使わない
組み合わせ: filesystem

コンテンツモデル変更のための安全なCraftマイグレーションを作成する

👤 スキーマ変更を本番環境にデプロイするCraft開発者 ⏱ ~30 min advanced

使うタイミング: 新しいフィールドを追加したり既存のフィールドを再構成する必要があり、データを壊さないマイグレーションが必要な場合。

フロー
  1. 変更内容を説明する
    Use craftcms-claude-skills. Write a Craft migration that adds a 'featuredAt' datetime field to the News section, with a safe backfill from postDate.✓ コピーしました
    → safeUp / safeDown を持つマイグレーションファイル。CraftのFieldsサービスを使用し、生スキーマのハックではない
  2. 開発環境でドライランする
    Walk me through testing this with ./craft migrate/up --interactive=0 on a staging copy first.✓ コピーしました
    → DBバックアップを含むステップバイステップのチェックリスト

結果: 金曜日でも慌てずにデプロイできるマイグレーションです。

注意点
  • プロジェクトコンフィグにフィールドタイプを登録し忘れる — マイグレーション後に必ず craft project-config/write を実行し、YAMLをコミットする
組み合わせ: mysql · git

組み合わせ

他のMCPと組み合わせて10倍の力を

craftcms-claude-skill + filesystem

スキルがCraftパターンを提供し、filesystemがClaudeにプロジェクト内で実際に適用させます

Apply the craftcms-claude-skills module scaffold to my current project directory.✓ コピーしました
craftcms-claude-skill + mysql

マイグレーション作成時にCraftのコンテンツテーブルを確認する

Show me the current schema of the elements_sites table before I write this migration.✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
module_scaffold module name, element types 新しいモジュールを作成する時 0
field_generator field name, type, handle カスタムフィールドタイプを追加する時 0
twig_refactor template path レガシーテンプレートを整理する時 0

コストと制限

運用コスト

APIクォータ
なし
呼び出しあたりのトークン
中程度 — リファレンスファイルはオンデマンドで読み込まれます
金額
無料
ヒント
Craftのコード作業時のみスキル名を指定してください。無関係なタスクにコンテキストのオーバーヘッドが加わります。

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: 認証情報なし
データ送信先: なし — ローカルのプロンプトとファイルのみ

トラブルシューティング

よくあるエラーと対処法

ClaudeがCraft 3時代のコード(`craft()->elements`)を生成する

「Craft CMS 5」と明示的に記載してください。5.xではAPIの名前空間が craft\elements です

確認: grep -r 'craft()->' src/ should return nothing in Craft 5 code
マイグレーションは実行されたがフィールドがCPに表示されない

./craft project-config/write と ./craft project-config/apply を実行してください — プロジェクトコンフィグのずれが一般的な原因です

確認: ./craft project-config/diff

代替案

craftcms-claude-skills 他との比較

代替案代わりに使う場面トレードオフ
Raw Claude CodeCraft固有のイディオムが不要なシンプルなTwigのみの修正汎用的なPHPの提案で、Craftでは不正確なことが多い
symfony-hexagonal-skillCraftではなくSymfonyを使っている場合フレームワークの規約が異なる

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る