Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add jorgegorka/ariadna --skill rails-performancegit clone --depth 1 https://github.com/jorgegorka/ariadnaWrote 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/jorgegorka/ariadna/rails-performance)<a href="https://agentmods.dev/skills/jorgegorka/ariadna/rails-performance"><img src="https://agentmods.dev/badge/skills/jorgegorka/ariadna/rails-performance/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/jorgegorka/ariadna/rails-performance"><img src="https://agentmods.dev/badge/skills/jorgegorka/ariadna/rails-performance.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.00033 | $0.01537 |
| Opus 5 | $0.00016 | $0.00768 |
| Sonnet 5 | $0.00007 | $0.00307 |
| Haiku 4.5 | $0.00003 | $0.00154 |
Grade A, and why
rails-performance 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 10d 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 — 218 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Rails Performance Skill
Opinionated conventions for Rails performance. Every pattern has a clear unsafe anti-pattern and safe fix.
Sub-files:
- PROFILING.md — Profiling, benchmarking, and measurement workflows
N+1 Query Prevention
Always eager load associations accessed in loops:
@posts = Post.includes(:author) # single association
@post = Post.includes(comments: :author).find(id) # nested
Counter caches instead of .count in loops:
# Model: belongs_to :board, counter_cache: true
# Migration: add_column :boards, :cards_count, :integer, default: 0, null: false
board.cards_count # reads column — no query
board.cards.count # fires COUNT — N+1 in loops
Efficient Queries
# pluck returns plain arrays — no AR objects allocated
emails = User.where(active: true).pluck(:email)
ids = Order.where(status: "pending").ids
# exists? → SELECT 1 LIMIT 1 (not .present?, .any?, .count > 0)
user.orders.where(status: "pending").exists?
# SQL aggregation — never load records to compute in Ruby
User.order(created_at: :desc) # NOT .all.sort_by(&:created_at).reverse
Order.distinct.pluck(:status) # NOT .all.map(&:status).uniq
Order.sum(:total_price) # NOT .all.sum(&:total_price)
Product.group(:category_id).count # preload all counts in one query
Batch processing for large result sets:
User.find_each { |u| process(u) } # 1000 at a time
Order.where("created_at < ?", 1.year.ago).find_each(&:archive!)
Product.where(discontinued: true).find_in_batches(batch_size: 100) do |batch|
Index.bulk_delete(batch)
end
Database Indexing
Index every FK column and every column used in where, order, find_by:
# t.references adds index by default
create_table :comments do |t|
t.references :post, foreign_key: true
t.references :user, foreign_key: true
end
add_index :articles, :status
add_index :articles, :slug, unique: true
add_index :users, :email, where: "active = true", unique: true # partial
# Composite for multi-column queries
add_index :orders, [:user_id, :status, :created_at]
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 10d ago First seen · 218 lines · 33 tokens per session scan A df2e48d4e28f
rails-performance is a skill published in the GitHub repository jorgegorka/ariadna (21 stars, last pushed 5mo ago), licensed MIT. It adds 33 tokens to every session and 1,537 once invoked, about $0.0002 per session on Opus 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
ddia-principles
Designing Data-Intensive Applications (DDIA) distilled reference guide by Martin Kleppmann. MUST be loaded when: designing database schemas, choosing storage engines, implementing replication or partitioning, handling distributed transactions, building batch/stream processing pipelines, choosing consistency models…
event-store-design
Design and implement event stores for event-sourced systems. Use when building event sourcing infrastructure, choosing event store technologies, or implementing event persistence patterns.
cqrs-implementation
Implement Command Query Responsibility Segregation for scalable architectures. Use when separating read and write models, optimizing query performance, or building event-sourced systems.
nw-ddd-eventsourcing
Event Sourcing and CQRS as DDD implementation patterns — when to use, aggregate event streams, projections, snapshots, sagas, upcasting, conflict resolution.
nw-sd-patterns
Core distributed systems patterns - load balancing, caching, sharding, consistent hashing, message queues, rate limiting, CDN, Bloom filters, ID generation, replication, conflict resolution, CAP theorem.
firebase
Use when building on Firebase — Firestore data modeling, Security Rules, Auth and custom claims, Cloud Functions, Storage, modular Web/Admin SDK imports — including symptoms like a database open to the internet, a query rejected by rules, or a doc stuck at 1 write/sec. NOT managed-Postgres BaaS with SQL and RLS (that…