A collection of skills for Rails development and consulting, with an emphasis on learning, communication, and client success.
Several skills draw on articles, books, and talks created by thoughtbot:
- Testing from the Outside-In
- Rails Test Types and the Testing Pyramid
- Break Apart Your Features into Full-Stack Slices
- Job Stories
Install with skills:
npx skills add thoughtbot/rails-consultant
Add the marketplace to Claude Code:
/plugin marketplace add thoughtbot/rails-consultant
Install the plugin:
/plugin install rails-consultant@rails-consultant
Takes one feature slice from idea to reviewed, committed code in a single guided pass: shapes it into a well-defined slice, builds it test-first, reviews and fixes the diff, then lands it as a clean commit. Chains /slice → /test-driven-development → code review → /git-commit, holding the discipline at each handoff — it won't build until the slice is sharp, and won't call the work done until the diff is reviewed and the suite is green. It also keeps the implementation lean, holding the production-code diff to a ~300-line budget. Scoped to one slice on purpose; hand it an epic and it helps you pick the single slice to build now.
/feature-dev Add a "copy to clipboard" button to code snippets on docs pages
/feature-dev Authors can schedule a post to publish at a future time
/feature-dev Admins can soft-delete comments and restore them within 30 days
Adapted from Anthropic's Feature Development plugin, threaded through this plugin's /slice, /test-driven-development, and /git-commit skills and closed out with Claude Code's built-in /code-review --fix.
Explains a specific piece of code or a user-facing flow. Point it at a file, class, or method for a close reading; point it at a feature or user action for a system-level diagram with entry points, branching logic, and side effects.
/explain app/models/user.rb
/explain password reset
/explain the Stripe webhook handler
Finds every place the codebase handles a specific concern — the consistent pattern and the exceptions. Answers the "how does this app do X?" question before you build something that reinvents it.
/prior-art How does this app handle authorization?
/prior-art Where do we send transactional emails?
/prior-art How are background jobs retried on failure?
Strict outside-in TDD workflow for Rails. Starts with a feature spec describing behavior from the user's perspective, lets each failure guide what to build next, and drops to unit tests for non-trivial logic. Enforces the discipline: no production code without a failing test first. Red-green-refactor.
/test-driven-development Users can cancel their subscription from the billing page
/test-driven-development Fix the bug where archived projects still appear in search results
Based on Superpowers by Jesse Vincent, adapted for Rails with guidance from Testing from the Outside-In, The Testing Pyramid, and Testing Antipatterns.
A pairing session, not a report. Reads the code silently, then leads you to see the issues yourself through questions — whether it's your own code, a teammate's PR, or something you inherited. Names smells and moves precisely, then closes with a concrete plan: what to fix, in what order, and where to start.
/socratic-review app/services/payment_processor.rb
/socratic-review the open PR on branch feature/notifications
/socratic-review I inherited this controller and something feels off
Turns your working changes into atomic commits, messages and all — no approval gate. Reads the diff, groups related changes so a freshly built feature lands in one commit while unrelated work (review fixes, stray refactors, a bug fix riding along) is split apart, then writes each message in the thoughtbot style: explaining the why, flagging risks and surprises, and referencing an issue or PR only when it's obvious.
/git-commit
/git-commit this addresses the review feedback on the auth PR
Turns a feature into well-defined, independently shippable slices — whether it's an epic that needs breaking apart or a single story that needs sharpening into a job story. Works Socratically: guides you to find the slices yourself, validates each against the "can it ship independently?" and "can a user see the value?" tests, then helps you sequence by risk and learning, not by ease.
/slice Users need to be able to manage their subscription
/slice We need an admin dashboard for customer support
/slice Add multi-tenancy to the existing app
Inspired by Break Apart Your Features into Full-Stack Slices and Job Stories from the thoughtbot Playbook.
Socratic friction to help you find clarity, not sympathy. Follows your thinking with one question at a time — the actual problem underneath, what you've already ruled out, what your gut says. Closes with an honest synthesis and one question you've been avoiding.
/rubber-duck I can't decide between a service object and a concern here
/rubber-duck I keep going back and forth on whether to extract this into a gem
/rubber-duck
Cross-examines a belief, design decision, or inherited constraint. Asks where it came from, what evidence would change it, and what the simplest alternative is. Has opinions — says directly when an assumption is weak and names the better path.
/challenge We need microservices because the monolith won't scale
/challenge We can't use Hotwire because our UI is too complex
/challenge The client says we have to support IE11
Writes a polished, ready-to-send client update. Checks git for context, then asks what the code can't tell: what you actually spent time on, what the client must know, what risks you might be softening. Pushes on internal team communication too — not just what goes to the client.
/standup
/standup We spent most of the day debugging a production issue with Sidekiq
A prep session before a difficult client conversation. Asks you to write your opening sentences before polishing them — then uses what comes out to show you how you instinctively handle pressure. Produces the opening, explanation, path forward, likely reactions, and specific phrases to avoid.
/hard-news The launch date is going to slip by two weeks
/hard-news We found a security vulnerability in production
/hard-news We need to recommend rewriting a module the client just paid for
Walks through the Designer/Developer wrap-up checklist for offboarding a client engagement — one item at a time, assisting where it can (scanning for secrets, checking branches, reviewing the README). No documents produced; the conversation is the deliverable.
/offboard
/offboard We're wrapping up the Acme Corp engagement this Friday
The commands in Rails Consultant pair well with the following plugins.
Use /feature-dev to run the whole loop as one guided pass, or run the steps yourself:
- Use
/sliceto break down a feature or epic into a Full-Stack Slice. - Use
/test-driven-developmentto drive out the implementation by testing from the outside-in using the testing pyramid. - Use
/simplifyto refactor the shameless green implementation. - Use
/git-committo group the work into atomic commits with well-written messages.
- Use
/explainto help you understand the change. - Use
/socratic-reviewto deliberately slow down and get a better understanding of the PR yourself. - Use
/code-reviewonly after you've given your own feedback.
See the CONTRIBUTING document. Thank you, contributors!
Rails Consultant is Copyright (c) thoughtbot, inc. It is free software, and may be redistributed under the terms specified in the LICENSE file.
This repo is maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc.
We love open source software! See our other projects. We are available for hire.