Rails Audit от thoughtbot
Rails Audit (thoughtbot)
Скилл thoughtbot для разбора Rails-приложения: находит проблемы в коде и тестах и распределяет замечания по важности
- 264 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Опциональные метрики запускают код тестов и меняют зависимости и настройки проекта
- Сценарии восстановления и очистки могут удалить незакоммиченные правки и ранее созданные отчеты
- Агент читает исходники и конфигурацию приложения; эти данные обрабатывает выбранная модель
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/rails-audit-thoughtbotОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Опциональные метрики запускают код тестов и меняют зависимости и настройки проекта
- Сценарии восстановления и очистки могут удалить незакоммиченные правки и ранее созданные отчеты
- Агент читает исходники и конфигурацию приложения; эти данные обрабатывает выбранная модель
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Rails Audit — скилл для Claude Code от студии thoughtbot. Он проходит по Rails-приложению и собирает аудит: тесты на RSpec, безопасность, модели, контроллеры, дизайн кода, представления, индексы и миграции базы, внешние сервисы с таймаутами и фоновыми задачами, типичные ошибки производительности. Опорой служат книги Ruby Science, Testing Rails и Rails Antipatterns, а в рекомендациях по дизайну скилл предпочитает простые объекты Ruby (PORO) сервис-объектам. Аудит бывает полным или точечным. Полный читает каталоги `app`, `spec` или `test`, `config`, `db` и `lib`. Точечный берет путь из запроса, например `/rails-audit-thoughtbot audit controllers`. Итог — Markdown-отчет, где замечания разложены по категориям (Testing, Security, Models, Controllers, Code Design, Views) и по уровням Critical, High, Medium, Low. Перед началом скилл предлагает по желанию собрать метрики инструментами. SimpleCov запускает ваши тесты и показывает покрытие по каталогам. RubyCritic анализирует сложность и дубли в исходниках без запуска тестов. Инструкции предлагают выбрать одно средство, оба или пропустить сбор метрик. Для каждого средства есть отдельный подагент.
Для кого. Для Rails-разработчиков и техлидов, которые принимают чужой код или хотят независимый взгляд на состояние своего приложения.
Подходит, если
- Нужен список проблем с уровнями критичности для принятого унаследованного Rails-приложения
- Нужно перед релизом проверить контроллеры на лишнюю логику и модели на смешение ответственностей
- Нужно понять, где покрытие тестами нулевое: SimpleCov покажет самые слабые файлы
- Нужно проверить подозрение на пропущенные индексы в базе или медленные запросы, написанные на Ruby там, где хватило бы SQL
- Нужен аудит одного каталога, например `app/models`, без разбора всего проекта
Не подходит, если
- Проект не на Rails: скилл ищет рельсовые соглашения и антипаттерны
- Нужен поиск уязвимостей в зависимостях или динамический тест безопасности: чек-лист безопасности в скилле — лишь список вопросов к коду
- Тесты написаны не на RSpec или Minitest: разделы про тесты потеряют смысл
- Рабочий каталог нельзя менять даже временно: для метрик скилл ненадолго правит `Gemfile`
Пример запроса к агенту
/rails-audit-thoughtbot audit controllers: проверь логику контроллеров без запуска метрик и укажи приоритет каждого замечания.Ограничения
Аудит отражает подход thoughtbot: часть советов по архитектуре может расходиться с правилами вашей команды. Выводы формирует модель, поэтому они требуют проверки по коду. При недоступном SimpleCov скилл допускает приблизительную оценку покрытия с пометкой причины; это не измерение.
Сбор метрик меняет `Gemfile`, файл блокировки зависимостей и тестовые настройки. Если оба инструмента нужно добавить, параллельный запуск может вызвать конфликт правок; выполняйте их последовательно на чистом рабочем дереве. Восстановление файлов и очистка отчетов могут затронуть существующие изменения и каталоги `coverage` и `tmp/rubycritic`. Перед запуском сохраните копии изменений и этих каталогов.
Как отключить. Удалите плагин через меню `/plugin`. При ручной установке удалите папку `~/.claude/skills/rails-audit-thoughtbot`. Сохраненные отчеты останутся в проекте.
Частые вопросы
Как поставить скилл аудита Rails в Claude Code?
Добавьте маркетплейс thoughtbot и установите плагин командами из раздела установки. Ручной вариант тоже доступен: клонирование репозитория в каталог скиллов Claude Code. Выберите один способ, чтобы не подключать набор дважды.
Как запустить аудит одного каталога?
Укажите цель целиком в команде: `/rails-audit-thoughtbot audit controllers`. Агент ограничит чтение указанными файлами или каталогами.
Можно ли получить аудит, если тесты не запускаются?
Да. Основной разбор строится по исходникам. Для измерения покрытия понадобятся Ruby, Bundler и работающий набор RSpec или Minitest. Если тесты не запускаются, пропустите этот этап и отдельно укажите ограничение отчета.
Из каких источников взяты правила аудита?
Из книг Ruby Science и Testing Rails от thoughtbot, а для антипаттернов еще из Rails Antipatterns Чада Пытеля и Таммера Салеха. Они сжаты в справочные файлы в папке `references`: запахи кода, тесты, PORO, чек-лист безопасности.
В каком формате приходит отчет?
В Markdown по шаблону `report_template.md`. Замечания сгруппированы по категориям, внутри каждой они делятся на Critical, High, Medium и Low.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыДва навыка для Codex и Claude Code: аудит репозитория без записи и цикл экспериментов с базовыми замерами.
Плагин Claude Code для проверки UX: проходит пользовательские сценарии в живом приложении и дает план правок.
Плагин из шести скиллов по доступности: проверка страниц, аудит WCAG 2.2 с Playwright, план аудита и дорожная карта улучшений.
Скилл состязательного аудита кода: Hunter ищет ошибки, Skeptic их оспаривает, Referee выносит вердикт, а правки без вашего разрешения не вносятся
Скилл evidence-code-review для Codex и Claude Code: ревью изменений по доказательствам, с уровнями MUST, SHOULD, BETTER и NITS
Плагин Claude Code для SwiftUI: ходит по приложению как пользователь и находит экраны без входа, тупики и заглушки данных.
Коротко о README
Набор распространяется по лицензии MIT и принимает правки к правилам обнаружения проблем. Справочные материалы разделены по темам, поэтому методику можно изучить до запуска на своем проекте.
Бейдж для README
Исходный SKILL.md
---
name: rails-audit-thoughtbot
description: 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.
---
# Rails Audit Skill (thoughtbot Best Practices)
Perform comprehensive Ruby on Rails application audits based on thoughtbot's Ruby Science and Testing Rails best practices, with emphasis on Plain Old Ruby Objects (POROs) over Service Objects.
## Audit Scope
The audit can be run in two modes:
1. **Full Application Audit**: Analyze entire Rails application
2. **Targeted Audit**: Analyze specific files or directories
## Execution Flow
### Step 1: Determine Audit Scope
Ask user or infer from request:
- Full audit: Analyze all of `app/`, `spec/` or `test/`, `config/`, `db/`, `lib/`
- Targeted audit: Analyze specified paths only
### Step 2: Collect Optional Metrics (SimpleCov + RubyCritic)
Ask the user **both questions upfront** in a single `AskUserQuestion` so they can decide once:
- **Question**: "Before starting the audit, would you like to collect automated metrics?\n\n1. **SimpleCov** — runs your test suite to capture actual code coverage percentages\n2. **RubyCritic** — analyzes code complexity, duplication, and smells (does not run tests)\n\nBoth are recommended for the most thorough audit."
- **Options**: "Yes to both (Recommended)" / "SimpleCov only" / "RubyCritic only" / "Skip both"
Based on the user's choice, spawn the accepted subagents **in parallel** using the Task tool. Both can run at the same time because SimpleCov modifies the test helper while RubyCritic only reads source files — they don't conflict.
**SimpleCov subagent** (if accepted):
> Read the file `agents/simplecov_agent.md` and follow all steps described in it. The audit scope is: {{SCOPE from Step 1}}. Return the coverage data in the output format specified in that file.
**RubyCritic subagent** (if accepted):
> Read the file `agents/rubycritic_agent.md` and follow all steps described in it. The audit scope is: {{SCOPE from Step 1}}. Return the code quality data in the output format specified in that file.
**After both agents finish**, clean up:
- If SimpleCov ran: `rm -rf coverage/`
- If RubyCritic ran: `rm -rf tmp/rubycritic/`
**Interpreting responses:**
- `COVERAGE_FAILED` / `RUBYCRITIC_FAILED`: no data for that tool — use estimation mode (SimpleCov) or omit the section (RubyCritic). Note the failure reason in the report.