Use when planning Rails features or breaking down work into PRs - enforces 2-5 file PRs, bug fix separation, and one-sentence scope test
From vanilla-railsnpx claudepluginhub zemptime/zemptime-marketplace --plugin vanilla-railsThis skill uses the workspace's default tool permissions.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
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.
Tests go with the functional change, never with styling.
Each of these MUST be its own PR:
pinned_first)Wrong (3 PRs):
Right (5 PRs):
Present tense, no prefixes:
Add hotkeys for triaging cards
Fix HTML injection in webhook titles
Expose card ID on comments
Not: feat:, fix:, WIP:
Stop and split if:
Never bundle bug fixes with feature PRs.
ā "This PR adds pinning to cards" ā "This PR adds pinning, styling, and filters"
If you use "and", split the PR.
| Excuse | Reality |
|---|---|
| "Sorting is part of the model concern" | No. Sorting is a feature that ships separately. Core pinning works without sorting. |
| "Styling and filtering touch the same view" | Different concerns. Filtering is functional, styling is visual. Separate PRs. |
| "More efficient to bundle them" | 37signals values small PRs over efficiency. 2-5 files is the target. |
| "They're logically grouped" | "Logical grouping" is not the test. One sentence without "and" is the test. |
| "Just a few lines of CSS" | Styling ALWAYS separate. Even one line. |
| "Just a tiny partial" | View code goes with controller, not model. Size irrelevant. |
| "It's related functionality" | Each feature = one PR. Even if related. One sentence test applies. |
| "The change is trivial" | Size doesn't matter. Separate concerns = separate PRs. |