| name | vanilla-rails-work-breakdown |
| description | Use when planning Rails features or breaking down work into PRs - enforces 2-5 file PRs, bug fix separation, and one-sentence scope test |
Vanilla Rails Work Breakdown
Core Rule
Each PR = one sentence. Target 2-5 files, max 7-8.
If you can't describe the PR in one sentence, split it.
CRITICAL: If your PR description uses "and", STOP and split it.
Bundle Together
- Model + tests (but NOT scopes/sorting)
- Controller + view + tests
- Migration + model using it
- Routes + controller they configure
Tests go with the functional change, never with styling.
Keep Separate (ALWAYS)
Each of these MUST be its own PR:
- Bug fixes
- Refactoring
- Styling/CSS (even one line)
- Filters (even simple params)
- Sort options (including scopes like
pinned_first)
Example: Card Pinning
Wrong (3 PRs):
- "Add pinning to cards with sorting" (model + sorting scope + tests)
- "Add UI for pinning" (controller + views + tests)
- "Add filtering and styling" (filter + CSS)
Right (5 PRs):
- "Add pinning to cards" (migration + model methods + tests, 3 files)
- "Add UI for pinning cards" (controller + view + tests, 4 files)
- "Sort pinned cards first" (scope + tests, 2 files)
- "Add filter for pinned cards" (controller param + view + tests, 3 files)
- "Style pinned cards" (CSS, 1 file)
Commit Messages
Present tense, no prefixes:
Add hotkeys for triaging cards
Fix HTML injection in webhook titles
Expose card ID on comments