CtrlK
BlogDocsLog inGet started
Tessl Logo

igmarin/rails-agent-skills

Curated library of 41 public AI agent skills for Ruby on Rails development. Organized by category: planning, testing, code-quality, ddd, engines, infrastructure, api, patterns, context, and orchestration. Covers code review, architecture, security, testing (RSpec), engines, service objects, DDD patterns, and TDD automation. Repository workflows remain documented in GitHub but are intentionally excluded from the Tessl tile.

95

1.77x
Quality

93%

Does it follow best practices?

Impact

96%

1.77x

Average score across 41 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

EXAMPLES.mdskills/engines/upgrade-engine/

Rails Engine Compatibility — Examples

Gemspec Version Bounds

# Good: narrow and tested
spec.add_dependency "rails", ">= 7.0", "< 8.0"
spec.required_ruby_version = ">= 3.0"

# Bad: claims support without CI evidence
# spec.add_dependency "rails", ">= 5.2"  # untested on 5.2/6.x

Zeitwerk: File and Constant Must Match

# File: lib/my_engine/widget_policy.rb

# ✅ Good: constant matches path
module MyEngine
  class WidgetPolicy
  end
end

# ❌ Bad: will break with Zeitwerk
# class WidgetPolicy  # expected in widget_policy.rb at root — wrong namespace

Run bundle exec rake zeitwerk:check to detect mismatches before shipping.

Reload-Safe Hook

# In engine.rb
initializer "my_engine.setup" do
  config.to_prepare do
    MyEngine::Decorator.apply  # runs on each reload in development
  end
end

Hooks registered outside config.to_prepare run only once at boot and will not pick up reloaded code.

CI Matrix (GitHub Actions)

# .github/workflows/ci.yml
strategy:
  matrix:
    ruby: ["3.1", "3.2", "3.3"]
    rails: ["7.0", "7.1", "7.2"]
steps:
  - name: Set Rails version
    run: bundle config set --local gemfile gemfiles/rails_${{ matrix.rails }}.gemfile
  - run: bundle exec rake zeitwerk:check
  - run: bundle exec rspec

Each claimed version in add_dependency must have a matching row in the matrix.

Optional Integration Matrix

Include this in upgrade reports so compatibility checks cover more than gemspec and Zeitwerk.

IntegrationStatusFile path checkedPer-version verification
Jobspresent/absentapp/jobs/my_engine/...bundle exec rspec spec/jobs across matrix
Mailerspresent/absentapp/mailers/my_engine/...bundle exec rspec spec/mailers across matrix
Assetspresent/absentapp/assets, app/javascript, app/viewsdummy app boot + asset build/importmap check
Routespresent/absentconfig/routes.rb, spec/dummy/config/routes.rbrequest specs against mounted dummy app
Install generatorspresent/absentlib/generators/my_engine/install_generator.rbrun generator twice in dummy app; verify idempotence
Dummy app mountpresent/absentspec/dummy/config/routes.rbbundle exec rspec spec/requests on each Rails version

skills

README.md

server.json

tile.json