# Real World Rails

> Research how production Rails apps solve architectural problems using the Real World Rails repository. Use when the user wants to know how other apps handle something, find patterns, or compare approaches. Triggers on "rails patterns", "how do other apps", "real world rails", "research how apps do".

- Skill: `tkoenig/real-world-rails` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tkoenig/real-world-rails`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tkoenig/real-world-rails/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: tkoenig (https://skillmd.com/u/tkoenig)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tkoenig/real-world-rails

---


# Rails Pattern Research

## What This Is

The **Real World Rails** repository is a collection of 200+ production Rails
application source code, included as git submodules. The `apps/` directory
contains the full source of each app — models, migrations, schema,
controllers, views, concerns, gems. The `engines/` directory contains Rails
engines.

## Locating the Repository

Look for a directory called `real-world-rails` with an `apps/` subdirectory.
Check the current working directory first, then
`~/Development/tkoenig/playground/real-world-rails`. If not found, ask the
user where it lives.

## Filtering to Active Projects

**Only research apps that have been actively maintained** — exclude any
project without a commit in the last year. Before searching, run the helper
script to get the list of active apps:

```bash
bash <skill-dir>/scripts/active-apps.sh /path/to/real-world-rails
```

Limit all searches to the directories output by that script. Ignore stale or
abandoned projects — their patterns may be outdated or reflect deprecated
Rails conventions.

## What To Do

The user gives you a topic. Spin up parallel agents to search the **active**
apps for how real codebases implement that pattern. Read actual code — models,
schemas, migrations, associations, validations, query patterns — not just
file names. Synthesize what you find into a clear analysis.

If the user's wording suggests they want help choosing a pattern for their
current project (words like "compare for us", "which fits best",
"adversarial", "debate", "evaluate for our project"), also spin up adversarial
agents that each argue for a different pattern in the context of the current
project's architecture and goals.

