mcpField
C
create-engine

create-engine

github.com/igmarin開発2838 回インストール4 週間前に更新
リポジトリ

create-engine について

create-engineは、Rails engine、プラグイン、engine gemの作成、スキャフォールド、リファクタリングを支援するスキルです。種類の選択、ホストアプリとの契約定義、最小構成の作成、統合の検証を案内します。

主な機能

  1. 01engineの種類選択ガイド
  2. 02ホストアプリ契約の定義
  3. 03スキャフォールドと名前空間の規則
  4. 04Rakeとルートの検証ポイント
  5. 05統合テストの案内

活用シーン

  1. 01mountable Rails engineの構築
  2. 02ホストアプリとの統合境界の定義
  3. 03既存Railsプラグインのリファクタリング

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/igmarin/rails-agent-skills --skill create-engine

インストール後、Claude Code で/create-engineを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

EXAMPLES.md
reference.md
TESTING.md
assets/
examples.md
README_NOTE.txt
release-checklist.md
scripts/
generate_engine_scaffold.sh

詳細

エンジンの作成

Rails エンジン、Rails プラグイン、またはエンジン gem を作成、スキャフォールド、リファクタリングするタスクでは、このスキルを使用してください。

このスキルでは、構造と設計に焦点を当てます。インストーラーの詳細、充実したテストカバレッジ、リリースワークフロー、ドキュメント作成には、関連するスキルを使用してください。

クイックリファレンス

エンジンの種類使用する場面
プレーンな gemRails のフックやアプリディレクトリが不要で、純粋な Ruby ライブラリの場合
RailtieRails の初期化フックが必要だが、モデル、コントローラー、ルート、ビューは不要な場合
エンジンRails のオートロードパス、イニシャライザー、マイグレーション、アセット、ジョブ、またはホストとの統合が必要な場合
マウント可能なエンジン独自のルート、コントローラー、ビュー、アセット、名前空間の境界が必要な場合

HARD-GATE

Before engine work is complete, confirm all of the following:

STRUCTURE & CONTRACT:
1. Root file requires only version, configuration, and engine.
2. Public engines use isolate_namespace; configuration exposes .configure block.
3. Host model references are configurable strings (e.g., "User"), never hard-coded ::User.
4. Host-app contract is documented (see Host App Contract section).

SAFETY CHECKS:
5. Engine code never auto-applies migrations at boot (no db:migrate, ActiveRecord::Migrator, or config.paths['db/migrate'] in initializers).
6. Initializers are idempotent and safe in development reloads.
7. Assets and generators are namespaced and idempotent.

VERIFICATION COMMANDS:
8. Dummy app exists: `ls spec/dummy` or `ls test/dummy` should return the app directory.
9. Integration tests pass: `bundle exec rspec` or `bundle exec rake test` exits 0.
10. Routes load correctly: `bundle exec rails routes` inside dummy app shows engine routes.
11. No hard-coded host constants: `grep -r "::User\|::Employee" lib/ app/` returns nothing.
12. No migration auto-apply patterns: `grep -r "db:migrate\|ActiveRecord::Migrator\|config.paths\['db/migrate'\]" lib/` returns nothing.

基本的な手順

  1. コードを書く前にエンジンの種類を特定します。適切なジェネレーターでスキャフォールドします。
    rails plugin new my_engine --mountable   # mountable engine
    rails plugin new my_engine --full        # full engine (non-isolated)
    rails plugin new my_engine               # plain Railtie/gem
    
  2. ホストアプリとの契約を定義します(ホストが提供するもの、エンジンが公開するもの、サポートされる拡張ポイント)。契約の完全なテンプレートについては、reference.md を参照してください。
  3. 最小限のエンジン構造を作成します。チェックポイント: エンジン内で bundle exec rake が成功すること。
  4. 名前空間の内側に機能を実装します。チェックポイント: ダミーアプリのルートにエンジンをマウントし、bundle exec rails routes で確認します。
  5. ダミーアプリを通じた最低限の統合テストを作成します。カバレッジ要件については TESTING.md を参照してください。
  6. 次の作業を行う人が理解できるよう、ホストアプリとの契約を明確に文書化します。

ユーザーがエンジンの種類を指定していない場合は、求められている動作から種類を推測し、選択した種類を明示してください。

その他のリソース

出力形式

Rails エンジンの作成またはスキャフォールドを依頼された場合、出力する answer.md は次の形式に従う必要があります。

  1. 具体的な成果物ファイル:エンジンの名前空間に正しく対応した、生成される .gemspec と Rakefile の完全な内容を示します。
  2. 検証と Rake の結果:エンジン内で bundle exec rake が成功する(終了コード 0)ことを明示し、成功を示す出力ブロックをシミュレーションして提示します。
  3. 統合テストのカバレッジ:設定、ルーティング、HTTP リクエストフロー、ドメインサービス、ホスト統合フックを網羅する統合テストの spec を作成します。必要な spec のカテゴリとパスについては TESTING.md を参照してください。モデル/サービスの単体テストは、リクエスト/統合テストとは分けてください。
  4. 言語:明示的に別の言語が指定されていない限り、英語を使用してください。

連携

スキル連携する場面
test-engineダミーアプリのセットアップ、統合テスト、回帰テストカバレッジ
review-engine指摘事項を優先する監査、構造レビュー
document-engineREADME、インストールガイド、ホストアプリとの契約に関するドキュメント
create-engine-installerジェネレーター中心のセットアップ、インストールスクリプト、マイグレーションのコピー
generate-api-collectionエンジンが HTTP エンドポイントを公開する場合(Postman コレクションの生成/更新)

コメント