crmne/ruby_llm is a Ruby framework that provides one interface for building AI chats, agents, tools, retrieval-augmented generation, and multimodal workflows across multiple model providers. Ruby and Rails developers use it to add AI features without rewriting application code for each provider. The catalogue contains instructions and a skill for working with the framework.
Borrowing it
Nothing to install: this file belongs to crmne/ruby_llm. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/crmne/ruby_llm/main/.claude/skills/contributing/SKILL.mdgit clone --depth 1 https://github.com/crmne/ruby_llmWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/crmne/ruby_llm/contributing)<a href="https://agentmods.dev/skills/crmne/ruby_llm/contributing"><img src="https://agentmods.dev/badge/skills/crmne/ruby_llm/contributing/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/crmne/ruby_llm/contributing"><img src="https://agentmods.dev/badge/skills/crmne/ruby_llm/contributing.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Data Exfiltration · line 54 Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.Fix: Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00065 | $0.01866 |
| Opus 5.5 | $0.00026 | $0.00746 |
| Sonnet 5.5 | $0.00013 | $0.00373 |
| Haiku 4.5 | $0.00006 | $0.00187 |
Grade A, and why
contributing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 108 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Contributing to RubyLLM
Read AGENTS.md at the repo root first: it has the ground rules, the command table, and the architecture constraints that archspec check enforces. This skill adds the step-by-step recipes.
Choose the layer
The public API covers conversations (Chat, Message, Tool, Agent, structured output, streaming, and loop control) and individual operations (paint, animate, speak, transcribe, ocr, moderate, embed, rerank, judge, tokenize, and research). Both connect to services through providers and protocols: providers supply endpoints, authentication, catalogs, and protocol selection; protocols implement formats and their dialects.
Model resolution, configuration, accounting, instrumentation, batches, and provider resources support the framework as a whole. Keep independent operations independent of Chat. Rails integration adds Active Record, Active Storage, Hotwire, jobs, and generators around the same Ruby API; it does not define a second conversation API.
The fast loop
bundle exec rspec --tag ~live # unit tests only, no keys, seconds not minutes
bundle exec rspec spec/ruby_llm/chat_spec.rb:42 # one example
overcommit --run # what the commit hook will run
Run the fast loop while developing. Run overcommit --run before declaring anything done: it runs RuboCop (auto-correct), Flay (duplication), archspec (architecture), and the unit suite, and the commit fails if any of them do.
Working with cassettes
Specs tagged :live replay recorded provider traffic from spec/fixtures/vcr_cassettes. The cassette name derives from the example's full description, so renaming an example orphans its cassette.
To re-record after changing request shapes:
rake vcr:record[openai] # deletes that provider's cassettes, reruns the suite
rake vcr:record[openai,anthropic] # several providers
rake vcr:record[all] # everything (long, needs many keys)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago Changed b2e9c1130637
- 24d ago Changed 66a847b0fde4
- 27d ago Changed · +1 lines def964aee9f1
- 1mo ago Changed e58851eda1f1
- 1mo ago Changed · +15 lines · +5 tokens per session ae26bd2205ed
- 2mo ago First seen · 92 lines · 60 tokens per session scan A 145fc2bc2fda
contributing is a skill published in the GitHub repository crmne/ruby_llm (4,488 stars, last pushed yesterday), licensed MIT. It adds 65 tokens to every session and 1,866 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
kotlin-testing
Kotlin testing patterns with Kotest, MockK, coroutine testing, property-based testing, and Kover coverage. Follows TDD methodology with idiomatic Kotlin practices.
python-testing
Python testing best practices using pytest including fixtures, parametrization, mocking, coverage analysis, async testing, and test organization. Use when writing or improving Python tests.
rust-testing
Rust testing patterns including unit tests, integration tests, async testing, property-based testing, mocking, and coverage. Follows TDD methodology.
cpp-testing
Use only when writing/updating/fixing C++ tests, configuring GoogleTest/CTest, diagnosing failing or flaky tests, or adding coverage/sanitizers.
golang-testing
Go testing best practices including table-driven tests, test helpers, benchmarking, race detection, coverage analysis, and integration testing patterns. Use when writing or improving Go tests.
rspec
RSpec testing best practices for Ruby and Rails applications, covering test organization, data management, and isolation patterns.