Reading Roundup: Agents Are Doing the Heavy Lifting Now
AI agent pipelines for test migration, harness engineering for Rails, and the infrastructure to deploy it all.
Hey there,
Something shifted this week. The articles landing in my reading list aren’t about whether AI agents can do useful work in a Rails codebase. They’re about the specific architectures people are building to make that work reliable. Harnesses, pipelines, skills, gates. The scaffolding around the agents is becoming as interesting as the agents themselves. Meanwhile, the infrastructure side hasn’t slowed down either: multi-tenant SaaS with on-demand SSL and a strategy pattern deep dive that’s worth bookmarking.
My Harness: How I Stopped Babysitting AI and Went Kitesurfing
A full walkthrough of a Claude Code harness for Rails development, from brainstorming through implementation to final review, built around convention skills, automated code review gates, and intent-level implementation plans.
https://rubyonai.com/my-harness-how-i-stopped-babysitting-ai-and-went-kitesurfing/
Polymorphism with Strategies
A detailed breakdown of when Rails inheritance stops serving you and how the Strategy pattern replaces rigid class hierarchies with composable collaborators, including a practical frontend example using Turbo 8 prefetch conditions.
https://www.rorvswild.com/blog/2026/advanced-domain-modeling-polymorphism-with-strategies
Building Multi-Tenant SaaS with Rails 8, Caddy, and Kamal
How to replace kamal-proxy with Caddy for on-demand TLS, so tenants get subdomains automatically and can connect custom domains without redeployment or manual certificate management.
https://mooktakim.com/blog/building-saas-with-rails-and-kamal/
From 6 Minutes to 66 Seconds: Migrating 9,835 Model Tests to Minitest with an AI Agent Swarm
A 6-gate multi-agent pipeline in Claude Code that migrated 3,780 RSpec model examples to 9,835 Minitest tests, running 5.7x faster using fixtures instead of factories and strict I/O contracts between agents.
https://augmentedcode.dev/multi-agent-pipeline-minitest-migration/
Our Rails Upgrade Methodology as Claude Code Skills
FastRuby.io open-sourced their Rails upgrade methodology as three Claude Code skills covering dual booting, sequential version upgrades, and incremental load_defaults alignment, built on 60,000+ hours of real upgrade work.
https://www.fastruby.io/blog/open-source-claude-code-skill-for-rails-upgrades.html
Quick notes and actionables
The harness engineering framing is worth internalising: The RubyOnAI article puts a name to something a lot of us are figuring out independently. You stop writing code and start writing the rules the code must follow. Convention skills, review gates, and CI verification become the actual product. The agents are the hands. The interesting bit is the shift to intent-level implementation plans rather than exact code snippets. The reasoning: you can only trust the agent to figure out how because convention skills constrain it. Without those skills, the plan has to be prescriptive, and reviewing prescriptive plans for uncompiled code is miserable work.
The Strategy pattern article is the clearest explanation I’ve read in a while: Julian Rubisch walks through the exact moment inheritance breaks down, when you need to override orchestration logic in a subclass just to change one behaviour. The fix is lightweight: extract transports and output formats into standalone objects, inject them at runtime. The rule of thumb he gives is useful: if it’s central to your business logic, extract a class. If it’s simple, a lambda works fine. The Turbo 8 prefetch example at the end is a nice bonus showing the same pattern on the frontend.
The Caddy + Kamal setup solves a real pain point for multi-tenant Rails apps: kamal-proxy can’t issue SSL certificates on demand, so every new tenant domain means editing deploy.yml and redeploying. Caddy’s on-demand TLS fixes this by calling a verification endpoint in your Rails app before issuing a cert. The constraint-based routing approach is clean: TenantConstraint checks subdomains and custom domains first, MainConstraint catches the application hosts. Worth noting that
config.hosts.clearis needed since Rails 8 blocks unknown hostnames by default.The Minitest migration numbers are striking, but the architecture matters more: 5.7x faster is the headline, but the real contribution is the multi-agent pipeline design. Each agent has typed I/O contracts and a Forbidden column defining what it cannot produce. Writers only see their slice of the YAML plan, never the full thing. The disk is the shared state, everything else is ephemeral. The self-healing loop at Gate 5 gives agents three retries to fix failing tests before reporting. It’s a pattern that transfers well beyond test migration.
FastRuby.io encoding 60,000 hours of upgrade experience into Claude Code skills is a smart move: The three skills (upgrade orchestrator, dual boot, load_defaults alignment) enforce the methodology that makes Rails upgrades boring in the good way. Dual booting always, sequential version hops, and constant test suite verification. The dual boot skill is independently useful for any major dependency upgrade, not just Rails. The load_defaults skill walks through framework configs one at a time with risk tiers, which is the step most teams skip and then regret.
Three of this week’s five articles are about Claude Code agent architectures, and they’re all solving different problems: One is a general development harness, one is a test migration pipeline, one is an upgrade methodology. They’ve converged on similar ideas independently: strict contracts between agents, convention-encoded rules, verification gates, and disk as the source of truth. That convergence is worth paying attention to.
Plenty to chew on this week. If you end up building something off the back of any of these, I want to hear about it. P.S. You can see everything I’ve been reading at dcyoung.dev/bookmarks.
