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/patterns/create-service-object/assets/

create-service-object examples

  1. Simple usage from controller
result = AnimalTransfers::TransferService.call(source_shelter_id: 1, target_shelter_id: 2, tag_number: 'ABC-123')
if result[:success]
  render json: result[:response], status: :ok
else
  render json: { error: result[:response][:error][:message] }, status: :unprocessable_entity
end
  1. Orchestrator — early return on sub-service failure
result = UserCreationService.call(params)
return result unless result[:success]

workspace_result = WorkspaceSetupService.call(user_id: result[:response][:user].id)
return workspace_result unless workspace_result[:success]

{ success: true, response: { user: result[:response][:user], workspace: workspace_result[:response][:workspace] } }
  1. Batch — partial success with per-item error tracking
results = items.each_with_object({ successful: [], failed: [] }) do |item, acc|
  process_item(item)
  acc[:successful] << item[:sku]
rescue StandardError => e
  Rails.logger.error("Item error: #{e.message}")
  acc[:failed] << { sku: item[:sku], error: e.message }
end
{ success: true, response: results }
  1. Validator usage from a service
def call
  error = PackageValidator.validate(@dimensions)
  return { success: false, response: { error: { message: error } } } if error

  # proceed with business logic
end
  1. Correct error shape
{ success: false, response: { error: { message: 'External API timeout' } } }

skills

README.md

server.json

tile.json