Скилл агента для аудита флоу
Скилл flow-audit отвечает на один вопрос о флоу: готов ли он к продакшену? Укажите ваш ИИ-инструмент для кодирования на флоу — он прочитает конфигурацию через Adapty CLI, сверит её с каталогом продуктов и выдаст вердикт, а не список, который вам придётся самостоятельно интерпретировать.
Флоу может пройти все существующие проверки публикации и при этом оказаться небезопасным для показа пользователям. Собственные проверки публикации в Flow & Paywall Builder и команда flows config validate отвечают на вопрос «корректен ли этот документ?» — ни одна из них не спрашивает «застрянет ли реальный пользователь или увидит ли он что-то ложное?» Флоу в статусе publication_failed может пройти обе эти проверки; именно flow-audit ловит всё остальное.
flow-audit никогда не изменяет флоу. Он читает конфигурацию и ваш каталог продуктов, выполняет проверки и передаёт всё найденное вам — или скиллу flow-generator — для исправления.
Установите скилл
flow-audit входит в состав плагина adapty-skills.
Для установки плагина выполните в терминале команду:
npx adapty skills install
Перезапустите агент, чтобы загрузить скиллы. Другие способы установки описаны в README плагина.
Claude Code не обновляет плагин автоматически. Чтобы получать новые скиллы по мере их выхода, запустите в Claude Code команду /plugin, откройте Marketplaces, выберите adapty и нажмите Enable auto-update. Команду обновления для других агентов см. в README плагина.
Затем спросите, например: «Перед публикацией флоу — я ничего не упустил?» Назовите флоу или попросите вывести список всех флоу и выберите нужный.
Как это работает
Пять фаз, все в режиме чтения:
- Проверка и аутентификация. Убеждается, что версия CLI актуальна, а вход в Adapty выполнен.
- Выбор флоу. Выводит список ваших флоу (
adapty flows list) и спрашивает, какой из них проверить. - Загрузка. Получает конфигурацию флоу и каталог продуктов — снимок, по которому выполняются все проверки.
- Запуск проверок. Каждая проверка выполняется только по этому снимку.
- Отчёт. Итоговый вердикт, а не список замечаний.
Что проверяется
- Триггеры: элемент, текст которого обещает действие, но по всей цепочке предков нет ни одного обработчика взаимодействия. Визуально выглядит как рабочий элемент управления и ничего не делает.
- Соответствие требованиям стора: наличие в флоу доступной функции восстановления покупок, ссылки на условия использования, ссылки на политику конфиденциальности и возможности покинуть пейвол без покупки.
- Продукты: привязанный продукт, отсутствующий в каталоге; продукт без привязки к стору; карточка, заявляющая период тарификации, которого у продукта нет; жёстко заданная цена там, где нужна переменная с ценой.
- Переменные: переменная, которую флоу устанавливает, но нигде не читает — то есть экран собирает ответ, который нигде не используется.
- Локализация: пустые переводы, непереведённые значения и охват по каждой локали.
- Заполнители: незавершённый текст —
Lorem ipsum,TODO,Your headline here— и флоу, всё ещё называющийсяUntitled.
Серьёзность
Каждое нарушение получает один из трёх уровней:
| Уровень | Что означает |
|---|---|
| Blocker | Флоу не будет работать у реального пользователя, либо покажет ему ложную информацию — сфабрикованная цена может отображаться корректно и при этом врать. |
| Risk | Работает, но скорее всего не так, как задумано: заглушки вместо текста, значение, оставшееся идентичным локали по умолчанию, переменная, которую никто не читает. |
| Question | Нельзя определить по имеющимся данным. В отчёте указано, что было обнаружено, к чему не удалось получить доступ, и что именно нужно проверить — вместо того чтобы строить догадки. |
Пример отчёта
Flow: Nimbus onboarding · publication_failed
7 screens · 3 locales · 2 products
NOT READY FOR PRODUCTION — 2 blockers: no restore action, no way off the paywall
BLOCKERS
1. This row is dead text.
scr_paywall / el_089T reads "Restore purchase · Terms · Privacy" and carries no
interaction at all. It renders exactly like a working row, and none of the following work:
· no restorePurchases action anywhere in the flow → App Store 3.1.1
· no link to terms/EULA → App Store 3.1.2
· no link to a privacy policy → App Store 3.1.2
2. a user who does not buy cannot leave this screen: no closeFlow or navigateBack is
reachable from it.
Статус этого флоу — publication_failed, и проверки при публикации в Paywall Builder / Flow Builder, а также команда flows config validate не выявили проблем — ни одна из них не читает текст экранов и не проходит по взаимодействиям. Отчёт начинается с вердикта, затем идёт нумерованный список блокеров с указанием конкретного элемента и экрана, который нужно открыть.
Если флоу готов, строка вердикта содержит только READY FOR PRODUCTION — без каких-либо добавлений после. Если flow-audit не нашёл блокеров или рисков, но остались открытые вопросы, вердикт читается как READY, PENDING n CHECKS I CANNOT MAKE — вместо того чтобы подтверждать то, что не удалось проверить.
Что нельзя проверить
flow-audit не может определить, привязан ли флоу к плейсменту. adapty flows get возвращает только id, name, status и updated_at флоу, а CLI не имеет команды для получения списка плейсментов, к которым привязан флоу. Это постоянное напоминание в каждом отчёте, а не проверка: подтвердите привязку к плейсменту самостоятельно на странице Placements или обратитесь к разделу Create placement.
Кто что исправляет
Каждый отчёт завершается разделом WHAT TO DO NEXT, разбитым по исполнителям: что агент может изменить в самом флоу, что можно поменять только в дашборде Adapty, и что нужно проверить самостоятельно перед релизом.
flow-audit не вносит никаких изменений — он работает только на чтение, поэтому флоу с ошибками остаётся ровно таким, каким вы его оставили. Передайте отчёт скиллу flow-generator, который отвечает за резервное копирование, получение вашего согласия и непосредственную запись изменений.