Write and review Rails database migrations safely, including reversible changes, lock-aware operations, and rollout sequencing. Use when adding or changing schema, indexes, constraints, or backfills.
Automate repetitive workflows and reduce manual effort
Example: Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example: Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example: Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
Time estimate: 15-45 minutes depending on use case complexity
Prerequisites
Submit your Claude Code skill and start earning
epx add marckohlbrugge/37signals-skills/rails-migrationsCompatible with
Supported agents
| name | rails-migrations |
| description | Write and review Rails database migrations safely, including reversible changes, lock-aware operations, and rollout sequencing. Use when adding or changing schema, indexes, constraints, or backfills. |
| disable-model-invocation | true |
Use for schema changes and migration safety.
reversible blocks with explicit up/down SQL for data moves).table_exists? / column_exists? guards where migrations may run against varied states).execute "UPDATE ..." → tighten constraint); anything long-running moves out of the migration path entirely.Long-running or risky data backfills live in script/migrations/*.rb, run manually (e.g. via Kamal), not in the deploy migration window:
next if Entry.exists?(...)) so reruns are safe.find_each / in_batches), never one giant write.NOT NULL.find_each + update! up, update_all down.validates uniqueness (the validation races; the index doesn't).foreign_key: false on references) for DDL speed and shard-friendliness, keeping integrity in Rails. Either posture is fine — but make it consistent and documented, not accidental.singleton_guard column defaulting to 0 with a unique index.account.increment!(:cards_count) for sequence numbers + unique [account_id, number] index; a locked sequence row (first_or_create! under lock, increment!) for global ID sequences.[account_id, ...] composites in a dedicated migration phase; drop now-redundant single-column indexes and comment why.add_index :tags, [:account_id, :title], unique: true.migrations_paths and schema files.return if connection.adapter_name == "SQLite"), adapter-specific DDL (FTS5 vs sharded fulltext), and dual schema dumps (schema.rb / schema_sqlite.rb via per-config schema_dump).default_transaction_mode: immediate to reduce SQLITE_BUSY under concurrent writers.dump_schema_after_migration in production.Column replacement
Constraint hardening
Destructive changes
script/migrations/).validates uniqueness with no backing unique index.AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionrails-migrationsExecute the skills CLI command in your project's root directory to begin installation:
epx add marckohlbrugge/37signals-skills/rails-migrationsFetches rails-migrations from marckohlbrugge/37signals-skills and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
.cursor/skills/rails-migrations
Restart Cursor to activate rails-migrations. Access via /rails-migrationsin your agent's command palette.
Learn more:View source on GitHubSkills CLI docsAbout CursorWhat are agent skills?
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
dhh
marckohlbrugge/37signals-skills · dhh · same repo
rails-best-practices-core
marckohlbrugge/37signals-skills · rails-best-practices-core · same repo
rails-jobs
marckohlbrugge/37signals-skills · rails-jobs · same repo
rails-webhooks
marckohlbrugge/37signals-skills · rails-webhooks · same repo
rails-security-multitenancy
marckohlbrugge/37signals-skills · rails-security-multitenancy · same repo
rails-testing
marckohlbrugge/37signals-skills · rails-testing · same repo
I recommend rails-migrations for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
Registry listing for rails-migrations matched our evaluation — installs cleanly and behaves as described in the markdown.
I recommend rails-migrations for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
rails-migrations has been reliable in day-to-day use. Documentation quality is above average for community skills.
Keeps context tight: rails-migrations is the kind of skill you can hand to a new teammate without a long onboarding doc.
rails-migrations fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
Useful defaults in rails-migrations — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
We added rails-migrations from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
Useful defaults in rails-migrations — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
Keeps context tight: rails-migrations is the kind of skill you can hand to a new teammate without a long onboarding doc.
showing 1-10 of 74