find-bugs
Find Bugs — это skill Sentry для ревью изменений текущей ветки с приоритетом на реальные bugs, security vulnerabilities и проблемы качества кода. Он задаёт последовательный процесс, который начинается со сбора полного diff относительно default branch. Если вывод обрезан, нужно дочитать каждый изменённый файл отдельно; перед анализом также фиксируется полный список файлов, затронутых веткой. Такой вход нужен, чтобы выводы не строились на случайном фрагменте патча и чтобы область проверки была явно ограничена фактическими изменениями. Следующий этап — карта attack surface для каждого изменённого файла. В ней отмечаются пользовательские входы, включая параметры запроса, заголовки, тело и URL-компоненты; database queries; проверки authentication и authorization; операции сессии и состоянием; внешние вызовы; криптографические операции. Карта помогает связать конкретный участок diff с риском: например, не пропустить проверку прав рядом с запросом к базе или обработку ответа внешнего сервиса рядом с пользовательским вводом. Инструкция требует смотреть на каждый изменённый файл, а не ограничиваться несколькими строками, которые кажутся наиболее важными. Основная проверка проходит по одинаковому security-чек-листу для каждого файла. Нужно проверить injection в SQL, командах, шаблонах и заголовках; XSS и экранирование выводов; authentication для защищённых операций; authorization и IDOR, а не только факт входа пользователя; CSRF для изменений состояния; race conditions и TOCTOU в схемах read-then-write; фиксацию, истечение и secure-флаги сессий; криптографию и отсутствие секретов в логах. Дополнительно проверяются утечки информации, сообщения об ошибках и timing attacks, DoS из-за неограниченных операций или исчерпания ресурсов, а также бизнес-логика, переходы состояний, переполнения и пограничные числовые случаи. Стилистические замечания сами по себе не являются целью этого skill. Для каждого найденного риска сначала выясняется, не обрабатывается ли он уже в другом месте изменённого кода. Затем ищутся существующие тесты, которые покрывают сценарий, и читается окружающий контекст, чтобы отделить подтверждённую проблему от предположения. Итог должен быть приоритизирован: сначала security vulnerabilities, затем bugs, затем code quality. Каждое замечание оформляется с файлом и строкой, severity от Critical до Low, описанием проблемы, доказательством, предложением исправления и ссылками на OWASP, RFC или другой применимый стандарт. Если существенных проблем нет, skill прямо рекомендует это сказать и не выдумывать findings. Перед выводом нужно провести pre-conclusion audit. В отчёте перечисляются все просмотренные файлы и подтверждается полнота чтения; для каждого пункта чек-листа указывается, найден риск или проверка чиста; отдельно фиксируются области, которые нельзя было полноценно проверить, и причина ограничения. Find Bugs не исправляет код автоматически: он выдаёт отчёт для принятия решения владельцем изменений. Поэтому команды, выполняющие diff и проверки, должны работать с намеренно выбранным диапазоном, а ограничения доступа к GitHub, неполный diff или отсутствие тестов нельзя маскировать формулировкой о завершённом аудите.
Для чего подходит
- Поиск ошибок в diff
- Проверка изменений перед pull request
- Проверка качества и attack surface кода
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/getsentry/skills/tree/main/skills/find-bugs