CtrlK
BlogDocsLog inGet started
Tessl Logo

igmarin/rails-agent-skills

Curated library of AI agent skills for Ruby on Rails development. Covers code review, architecture, security, testing (RSpec), engines, service objects, DDD patterns, and workflow automation.

98

1.38x
Quality

99%

Does it follow best practices?

Impact

98%

1.38x

Average score across 26 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-6/

{
  "context": "Tests whether the agent wraps multi-step database operations in a transaction, uses SQL sanitization for dynamic queries, keeps module namespaces aligned with directory structure, and includes a README for the module.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Transaction present",
      "description": "The service wraps its multi-step database operations inside `ActiveRecord::Base.transaction` (or equivalent) — not just a single operation",
      "max_score": 14
    },
    {
      "name": "Transaction scope correct",
      "description": "Only the multi-step operations that must be atomic are inside the transaction — NOT the entire `call` method body",
      "max_score": 10
    },
    {
      "name": "SQL sanitization used",
      "description": "Any dynamic raw SQL query uses `ActiveRecord::Base.sanitize_sql` (or a parameterized query with `?` placeholders) rather than string interpolation",
      "max_score": 14
    },
    {
      "name": "No SQL string interpolation",
      "description": "Does NOT construct raw SQL with `\"... #{variable}\"` string interpolation",
      "max_score": 10
    },
    {
      "name": "Module namespace",
      "description": "The service class is wrapped in a module whose name matches the subdirectory under `app/services/`",
      "max_score": 10
    },
    {
      "name": "File path correct",
      "description": "Service file is at `app/services/<module>/<service>.rb` — not flat in `app/services/`",
      "max_score": 8
    },
    {
      "name": "README present",
      "description": "A `README.md` file is created alongside or documenting the service module",
      "max_score": 10
    },
    {
      "name": "Frozen string literal",
      "description": "Service file begins with `# frozen_string_literal: true`",
      "max_score": 8
    },
    {
      "name": "Response format",
      "description": "Return value uses `{ success: true/false, response: { ... } }` structure",
      "max_score": 8
    },
    {
      "name": "Error constants",
      "description": "At least one error message or default value is defined as a Ruby constant rather than an inline string literal",
      "max_score": 8
    }
  ]
}

README.md

tile.json