← ClaudeAtlas

mir-backend-rubylisted

Make It Right (Ruby runtime tier). YARV/MRI Ruby 4.0 runtime reliability footguns shared across EVERY Ruby backend framework (Rails, Sinatra, Hanami, Sidekiq/Solid Queue workers) — distinct from the generic backend gates and from any one framework's mechanics. Covers: the GVL (threads give no CPU parallelism, like Python's GIL), the reworked Ractor API in Ruby 4.0, YJIT/ZJIT enablement, Puma's forked-worker + thread model, fork-safety of DB/Redis connections, copy-on-write memory and per-worker bloat, background job hygiene (idempotency, retries), GC/string-literal pressure, and the Rack/Puma/Bundler security layer every Ruby web app inherits. TRIGGER when the backend runtime is Ruby — sits between mir-backend (generic) and the framework module (e.g. mir-backend-ruby-rails). SKIP for Node/JVM/Go/Rust/.NET/Python/PHP/BEAM runtimes (each has its own mir-backend-<runtime> tier), and for Rails/ActiveRecord library mechanics — N+1, strong parameters, callbacks, migrations, Active Storage — which belong to mir-back
anantbhandarkar/make-it-right · ★ 15 · AI & Automation · score 81
Install: claude install-skill anantbhandarkar/make-it-right
# /mir-backend-ruby · Make It Right (Ruby runtime) The middle tier. `mir-backend` decides **what is correct** (any language). The framework module (e.g. `mir-backend-ruby-rails`) knows the **library's mechanics**. This tier owns what's true for **all Ruby backends because they run on YARV (MRI) and speak Rack** — the concurrency model, the process model, and the HTTP/dependency layer that Rails, Sinatra, Hanami, and every job worker inherit. **Runtime assumed:** MRI Ruby 4.0 under Puma. Current stable is **Ruby 4.0.6**; 3.4.x, 3.3.x and 3.2.x are still maintained, 3.1 is EOL (verified against ruby-lang.org on 13 Aug 2026). Notes hold for JRuby except where GVL specifics differ (JRuby has no GVL; true thread parallelism is available). Load order: `mir-backend` → `mir-backend-ruby` → `<framework module>`. ## What changed in Ruby 4.0 (check this before trusting older Ruby advice) Ruby 4.0.0 shipped 25 Dec 2025. It is the release that was planned and written about as "Ruby 3.5" — blog posts and AI training data referring to 3.5 mean this. | Change | What breaks | What to write instead | |---|---|---| | `Ractor.yield`, `Ractor#take`, `#close_incoming`, `#close_outgoing` **removed** | Every Ractor pipeline written against Ruby 3.x raises `NoMethodError` | `Ractor::Port` for message passing; `Ractor#join` / `#value` to wait for termination | | `--rjit` **removed** | Boot flags / Dockerfiles carrying `--rjit` fail to start | Drop the flag; use YJIT | | `Kernel#open` / `IO` with