CtrlK
BlogDocsLog inGet started
Tessl Logo

igmarin/rails-agent-skills

Curated library of 28 public AI agent skills for Ruby on Rails development. Organized by category: testing, code-quality, engines, infrastructure, api, and context. Covers code review, architecture, security, testing (RSpec), engines, Hotwire, and TDD automation. Shared Ruby skills (YARD docs, DDD, service objects) have moved to ruby-core-skills. Repository agents remain documented in GitHub but are intentionally excluded from the Tessl tile.

93

1.78x
Quality

95%

Does it follow best practices?

Impact

93%

1.78x

Average score across 28 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-26/

{
  "context": "Checks whether the final artifact follows the apply-code-conventions instructions from the published Rails Agent Skills tile.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "instruction-1",
      "description": "The submitted artifact follows this skill instruction: **Run linter** — Detect config (for example `.rubocop.yml` or `.standard.yml`), run the appropriate tool, note absence if none found. Do not invent style rules; all style/formatting defers to the detected config. *Output: state which linter was detected (or absent) and that style defers to it.*",
      "max_score": 13
    },
    {
      "name": "instruction-2",
      "description": "The submitted artifact follows this skill instruction: **Apply area-specific rules** — Check path patterns (e.g., models, background jobs, controllers) and apply targeted guidance from the Apply by area table below. *Output: concrete per-path recommendations for every relevant changed file.*",
      "max_score": 13
    },
    {
      "name": "instruction-3",
      "description": "The submitted artifact follows this skill instruction: **Verify tests gate** — Confirm failing tests exist before any new behavior; run specs and checkpoints. *Output: state the failing spec, run command, expected failure, minimal implementation step, and passing rerun.*",
      "max_score": 13
    },
    {
      "name": "instruction-4",
      "description": "The submitted artifact follows this skill instruction: **Chain to specialised skills** — Use the Integration table to pull in deeper guidance (security, jobs, specs) as needed.",
      "max_score": 13
    },
    {
      "name": "instruction-5",
      "description": "The submitted artifact follows this skill instruction: Only recommend `let_it_be` if `test-prof` is already in `Gemfile.lock`. Otherwise default to `let`; reach for `let!` only when lazy evaluation would break the example. Don't introduce `test-prof` unless asked.",
      "max_score": 12
    },
    {
      "name": "instruction-6",
      "description": "The submitted artifact follows this skill instruction: Load these files only when their specific content is needed:",
      "max_score": 12
    },
    {
      "name": "instruction-7",
      "description": "The submitted artifact follows this skill instruction: **[assets/checklist.md](assets/checklist.md)** — Use for detailed code review checklists.",
      "max_score": 12
    },
    {
      "name": "instruction-8",
      "description": "The submitted artifact follows this skill instruction: **[assets/snippets.md](assets/snippets.md)** — Use for quick code snippets of common patterns.",
      "max_score": 12
    }
  ]
}

README.md

tile.json