Engine
This is my personal configuration of skills as a Ruby on Rails Dev
npx -y skills add igmarin/rails-agent-skills --skill engineAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 22 stars22 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Complete Rails engine development loop with hard gates: scaffold engine structure with isolate_namespace and verify gemspec validation → set up dummy app and verify tests run with exit 0 → NEVER integrate engine into host app before engine tests pass standalone, namespace is isolated, migrations won't conflict, and dependencies are declared → code review and dependency auditing → release with SemVer, changelog, and upgrade notes; phases authoring→testing→implementation/review→documentation/release. Use when creating, extracting, or maintaining Rails engines. Trigger: create engine, extract engine, engine release, engine testing, mountable engine, gem extraction.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.9 KB, as published. Nobody here has run it
Phase 1: Engine Authoring
- skills/engines/create-engine (sub-skill — invoke separately) — Design and scaffold namespace isolation, directory structure, and gemspec configuration
Kickoff command:
rails plugin new my_engine --mountable --test-framework=rspec
Key files to verify after scaffolding:
lib/my_engine/engine.rb— must containisolate_namespace MyEnginelib/my_engine/version.rbmy_engine.gemspec— must passgem specificationvalidationtest/dummy/— dummy app present
HARD GATE — Engine Structure Check:
grep -r 'module MyEngine' lib/my_engine/engine.rb
ruby -e "require 'rubygems'; spec = Gem::Specification.load('my_engine.gemspec'); puts spec.validate"
grep 'isolate_namespace\|engine.config.isolate_namespace' lib/my_engine/engine.rb
If structure check FAILS: Return to create-engine and fix.
Phase 2: Testing Setup
-
skills/engines/test-engine (sub-skill — invoke separately) — Set up dummy app, spec helpers, factory isolation, and test database
-
Write initial characterization tests:
- Test engine mounting
- Test generators if any
- Test core functionality
Run tests from engine root:
cd my_engine && bundle exec rspec
HARD GATE — Tests Run:
bundle exec rspec --format progress 2>&1 | tail -5
Must show no load errors and exit 0.
If load errors appear: Consult the test-engine sub-skill for ordered troubleshooting steps.
HARD GATE — Isolation Before Integration:
NEVER integrate engine into host app before:
- Engine tests pass standalone
- Namespace properly isolated
- Migrations won't conflict
- Dependencies clearly declared
Phase 3: Implementation & Review
-
Implement features using:
- tdd agent for complex features
- Individual skills for simple additions
-
skills/engines/review-engine (sub-skill — invoke separately)
-
skills/engines/upgrade-engine (sub-skill — invoke separately)
Check gem dependencies:
bundle exec rake dependencies
bundle exec bundler-audit check --update
Phase 4: Documentation & Release
-
skills/engines/document-engine (sub-skill — invoke separately) — Installation, configuration, usage examples, changelog
-
skills/engines/release-engine (sub-skill — invoke separately) — Version bump (SemVer), changelog, upgrade notes, git tag
Release commands:
gem build my_engine.gemspec
gem push my_engine-1.0.0.gem
git tag v1.0.0 && git push origin v1.0.0
Optional:
3. skills/engines/create-engine-installer — Idempotent rails g my_engine:install generator for host app configuration
Output: Published gem or releasable GitHub repository.
Quick Reference
New engine? → create-engine → test-engine
Extract from app? → extract-engine → create-engine
Release engine? → review-engine → release-engine
Not sure? → skill-router
Common Anti-Patterns
| Anti-Pattern | Fix |
|---|---|
Namespace leakage — ::MyEngine instead of MyEngine:: | Verify isolate_namespace MyEngine in engine.rb |
| Migration conflicts — Migrations outside engine dir or missing path config | Run engine migrations in isolation via dummy app |
Missing gemspec dependencies — Runtime gems in Gemfile but not in .gemspec | Run bundle exec rake dependencies and bundler-audit check at Phase 3 end |
Dummy app load errors — Missing require or incorrect spec_helper | Use test-engine sub-skill diagnostic steps |