Agent skills for AI tools like Claude, Cursor, Copilot
Give your AI coding agents proven approaches to building better software. We’ve open sourced our agent skills to package thoughtbot practices for building, reviewing, testing, and maintaining software into reusable instructions that agents can put to work.
What are agent skills?
Agent skills are reusable instructions and workflows that give AI agents specialized capabilities. Instead of repeatedly prompting an agent with the same context and process, a skill packages that expertise so the agent can apply it when it's needed.
For example, thoughtbot's Rails Audit Skill guides an agent through a comprehensive code audit based on thoughtbot practices, while Atomic Commits guides agents to make focused, incremental commits.
Designed with care by experienced software development humans
We've spent more than 20 years refining practices for designing and building maintainable software. We're turning those practices into agent skills so developers can bring them into AI-assisted development workflows. We’re sharing them openly so the community can use, inspect, and improve them.
Explore our agent skills
We've built a variety of skills across a few different agent plugins. Check out our Skills GitHub page or skills.sh/thoughtbot to explore and install these skills in your agent.
rails-development
Skills for Ruby on Rails development
/generate-postman-collection
Automatically generate or update a Postman API collection by analyzing a Rails application's routes, controllers, and test specs. Use when the user wants a Postman collection created or refreshed for a Rails app's API.
react-development
React/Next.js development toolkit with performance review skills and MCP server integrations
/design-to-component
Convert Figma designs into production-ready React components. Uses the Figma MCP to extract design specs, variants, design tokens, and layout — then scaffolds typed TypeScript components with proper prop interfaces. Triggers when a user shares a Figma URL or node ID and asks to implement, build, or convert a design.
/onboard
Deep project onboarding that deploys a team of specialized agents to explore any codebase and generate comprehensive, didactic markdown documentation with Mermaid diagrams. Use this skill whenever starting work on an unfamiliar project, joining a new team, needing to understand a codebase before a refactor, or when asked to "onboard me", "explore this codebase", "document the project", "understand how this works", "map the architecture", "help me get up to speed", or "generate project docs". Goes far beyond /init — produces interconnected documents covering architecture, data flows, design patterns, directory structure, and component hierarchies with rich diagrams. Always invoke this skill when the user is orienting themselves to a new project.
/review-react
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
design
Skills for product design work
/design-consultant-feedback
Evaluate meeting notes, project updates, or sprint recaps against designer consulting best practices. Use this skill whenever the user pastes meeting notes, sprint notes, standup summaries, or project updates — OR when they ask for a project check-in, self-assessment, or reflection without any notes to share. Triggers on phrases like "are we doing this right?", "what are we missing?", "how's the team doing on process?", "evaluate this sprint", "how am I doing on this project?", "let's do a check-in", or "I want to reflect on how the project is going". In note-analysis mode, extracts and evaluates practices from the content. In guided reflection mode, asks a structured set of questions one at a time and synthesizes a full evaluation at the end. Both modes use the same framework and output format.
rails-audit-thoughtbot
Rails audit skill from thoughtbot
/rails-audit-thoughtbot
Perform comprehensive code audits of Ruby on Rails applications based on thoughtbot best practices. Use this skill when the user requests a code audit, code review, quality assessment, or analysis of a Rails application. The skill analyzes the entire codebase focusing on testing practices (RSpec), security vulnerabilities, code design (skinny controllers, domain models, PORO with ActiveModel), Rails conventions, database optimization, and Ruby best practices. Outputs a detailed markdown audit report grouped by category (Testing, Security, Models, Controllers, Code Design, Views) with severity levels (Critical, High, Medium, Low) within each category.
atomic-commits
Guides agents to commit early and often in atomic increments, separate feature/refactor/cleanup work, and keep pull requests around ~200 lines
/atomic-commits
Use when implementing features, fixing bugs, refactoring code, or making any multi-step code changes. Guides agents to commit early and often in atomic increments, separate feature/refactor/cleanup work, and keep pull requests under ~200 lines. Use whenever writing code that will be committed, even if the user doesn't mention commits or PRs.
rails-consultant
A collection of skills for Rails development and consulting, with an emphasis on learning, communication, and client success
/challenge
Pressure-test an assumption, decision, or inherited constraint — Socratic cross-examination that forces you to defend or abandon your position
/explain
Explain what a piece of code does — a specific file, class, or method in close detail, or a user-facing flow as a concise system overview. What it does and why, not whether it's good.
/feature-dev
Take one new feature slice from idea to reviewed, committed code in a single guided pass — scope it into the smallest shippable slice, build it test-first with strict TDD, review and fix the diff, then commit it. Chains slice → test-driven-development → the built-in /code-review → git-commit. Not for reviewing an existing PR, upgrades, or open-ended design questions.
/git-commit
Turn the working changes into one or more atomic commits with well-written messages. Use whenever the user runs /git-commit or asks to commit their work, wrap up a feature, or "commit what I have."
/hard-news
Prepare to deliver difficult technical news to a client — a conversational prep session before the hard conversation happens
/offboard
Walk through the Designer/Developer wrap-up checklist for offboarding a client engagement — conversationally, one item at a time.
/prior-art
Discover how a codebase already handles a specific concern — search broadly, find every instance, and assess consistency. The "how does this app do X?" tool.
/rubber-duck
Think out loud about a problem, decision, or approach — Socratic friction to help you find clarity, not sympathy
/slice
Turn 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
/socratic-review
Socratic code review and refactoring session — whether it's your own code, a teammate's PR, or something you inherited. Leads you to see the issues through questions, names smells and moves precisely, then closes with a concrete plan.
/standup
Write a client update — identify what was done, what's next, and surface risks before they become surprises. End of day, start of day, or end of week.
/test-driven-development
Strict red-green-refactor TDD workflow for implementing features, fixing bugs, or changing behavior in Rails applications. Enforces the discipline of writing a failing test before any production code. Use whenever you want to implement with TDD — whether a new feature, a bugfix, a refactor, or any behavior change.
dependabot-review-skill-thoughtbot
A skill that reviews Dependabot gem upgrade pull requests to assess impact, breaking changes, and security vulnerabilities
/dependabot-review
Reviews Dependabot dependency upgrade pull requests to assess impact, breaking changes, and merge readiness. Works across ecosystems (npm, RubyGems, PyPI, Go modules, etc.). Works in two modes: (1) single-PR review when the user pastes a Dependabot PR URL, and (2) audit mode that discovers every open Dependabot PR in the current repo, analyzes them one by one, and produces a consolidated triage report. Use this skill whenever the user pastes a Dependabot PR URL, asks to review a dependency upgrade PR, mentions a package version bump, or wants to know if a Dependabot PR is safe to merge. Also trigger in audit mode when the user says things like "review all open dependabot PRs", "which dependabot PRs are ready to merge", "audit our dep upgrades", "go through the open dep PRs", "check dependabot", or asks for a status/report on pending dependency updates. Trigger on any GitHub PR URL related to dependabot, package upgrades, or "bump" in the title.
clean-rspec-output
Systematically eliminates unexpected output from a Ruby on Rails RSpec test suite
/clean-rspec-output
Systematically eliminate unexpected output (warnings, stray puts/logs, deprecation notices) from a Ruby on Rails RSpec test suite, one issue at a time, with per-fix verification and commits. Use this skill whenever the user wants to clean up, silence, fix, or investigate noisy output from `bundle exec rspec`, mentions warnings or stray logs appearing during test runs, or asks to get their RSpec suite running "clean". Also use when a user says things like "my test output is noisy", "there's a bunch of warnings when I run specs", or "help me clean up the RSpec output" - even if they don't explicitly name this skill.