vanilla-rails-naming
Installation
SKILL.md
Vanilla Rails Naming
37signals naming conventions from production Basecamp codebases.
The Naming Cascade
Every state change flows through this cascade:
| Layer | Pattern | Example |
|---|---|---|
| Concern | Adjective (-able/-ible) | Card::Closeable |
| State model | Noun | Closure |
| Controller | Plural noun | ClosuresController |
| Route | Singular resource | resource :closure |
| Method | Plain verb (no !) | card.close |
| Async enqueue | *_later |
notify_watchers_later |
| Sync execute | *_now or plain |
notify_watchers_now |
If the cascade doesn't flow, the naming is wrong.