Aiogram bot auditor
LLM Skills
npx -y skills add goldenprofile/llm-skills --skill aiogram-bot-auditorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Аудит и помощь по Telegram-ботам на aiogram 3.x: надёжность Telegram API, архитектура, деплой и тесты. Находит необработанный flood-control (429/TelegramRetryAfter), несколько polling-инстансов (409 Conflict), блокировку event loop, MemoryStorage в проде, отсутствие graceful shutdown и идемпотентности, проблемы структуры (Router/middlewares/FSM) и небезопасный webhook. Используй когда пользователь просит проверить или отревьюить бота, спрашивает «почему бот падает/тормозит/дублирует ответы», пишет или чинит aiogram-бота, настраивает FSM/middlewares/webhook/деплой или рассылку, или упоминает aiogram, TelegramRetryAfter, RedisStorage, polling/webhook. Только aiogram 3.x.
SKILL.md
7.0 KB, as published. Nobody here has run it
Aiogram Bot Auditor
Аудитор и помощник по Telegram-ботам на aiogram 3.x. Цель — поймать то, из-за чего бот в проде падает, тормозит, дублирует ответы, теряет состояние или попадает под флуд-бан, а также выправить структуру и тесты. По итогу — отчёт с уровнями риска и (по согласованию) правки.
Когда применять
Перед деплоем бота, при ревью PR, при жалобах «бот не отвечает / тормозит / дублирует / теряет
шаг диалога», при настройке рассылки, FSM, middlewares, webhook. Только aiogram 3.x — если код
на 2.x (executor, Dispatcher(bot), @dp.message_handler), сначала предупреди о
несовместимости и предложи миграцию на 3.x, не применяй 3.x-советы вслепую.
Контекст — установить ПЕРВЫМ делом
- Версия aiogram — подтверди 3.x (импорты
from aiogram import Router, F,dp.run_polling). - Запуск — polling (по умолчанию у владельца) или webhook. См. references/deploy.md.
- Storage FSM — MemoryStorage (только dev) или RedisStorage (прод). У владельца есть redis.
- Масштаб — есть ли рассылки/большая аудитория (тогда критичен flood-control и троттлинг).
- Инстансы — гарантирован ли один polling-процесс (две копии → 409 Conflict).
Процесс
- Собрать точки входа (
__main__, созданиеBot/Dispatcher,run_polling/webhook-setup), роутеры, middlewares, FSM, обработку ошибок, местаbot.send_*/рассылок, деплой-юнит. - Прогнать по чеклисту рисков (ниже) и справочникам.
- Классифицировать риск, объяснить почему ломается в проде именно у него.
- Предложить безопасную альтернативу.
- Отчёт по references/output-format.md; по согласованию — правки.
Уровни риска
- CRITICAL — бот не работает/недоступен в проде: две polling-копии (409), блокировка event loop (sync/CPU в хендлере), краш без graceful shutdown с потерей состояния.
- HIGH — рассылка без обработки
TelegramRetryAfter(429) иTelegramForbiddenError(бот заблокирован) → бан токена/потеря сообщений; MemoryStorage в проде (теряет FSM при рестарте); глобально не обработанныеTelegramAPIError. - MEDIUM — нет идемпотентности к повторной доставке апдейтов, нет таймаутов, токен/секреты
в репозитории,
allowed_updatesне включает нужные типы, монолит без роутеров/middlewares. - LOW — стиль, именование, мелкие улучшения.
Быстрый чеклист
- Гарантирован один polling-инстанс? (две копии → 409, апдейты теряются)
- Рассылка ловит
TelegramRetryAfterиTelegramForbiddenError, троттлит (≤~30 msg/s, ~1/s в чат)? - В хендлерах нет блокирующих/CPU-операций в event loop (sync-БД, requests, тяжёлые вычисления)?
- FSM на RedisStorage в проде, а не MemoryStorage?
- Есть graceful shutdown:
dp.shutdown, закрытиеbot.session, redis, пулов БД? allowed_updatesвключает нужные типы (callback_query,my_chat_memberи т.п.)?- Токен и секреты — из env/
EnvironmentFile, не в репозитории? - Хендлеры идемпотентны к повторной доставке (особенно платежи/побочные эффекты)?
- Webhook (если есть): проверяется
secret_token, за nginx+TLS,drop_pending_updatesосознанно?
Связь с библиотекой навыков
- Бот ходит в БД с миграциями → перед деплоем навык
migration-safety-auditor. - Аудит/написание тестов хендлеров и FSM →
test-coverage-auditor(см. также references/testing.md). - Ревью диффа правок →
techlead-ai; перед релизом →python-project-audit.
Справочники
- references/reliability.md — Telegram API: 429/flood-control, ошибки, троттлинг рассылок, таймауты, graceful shutdown, идемпотентность, single instance.
- references/architecture.md — Router, middlewares (outer/inner),
DI, FSM и storage, фильтры (
F), структура проекта, вынос бизнес-логики из хендлеров. - references/deploy.md — polling под systemd (основное), webhook+nginx (best practice), RedisStorage, секреты, логирование, healthcheck, один экземпляр.
- references/testing.md — pytest, мок
Bot,feed_update, тесты хендлеров и переходов FSM. - references/output-format.md — формат отчёта.