Скилл агента для аудита флоу

Скилл flow-audit отвечает на один вопрос о флоу: готов ли он к продакшену? Укажите ваш ИИ-инструмент для кодирования на флоу — он прочитает конфигурацию через Adapty CLI, сверит её с каталогом продуктов и выдаст вердикт, а не список, который вам придётся самостоятельно интерпретировать.

Флоу может пройти все существующие проверки публикации и при этом оказаться небезопасным для показа пользователям. Собственные проверки публикации в Flow & Paywall Builder и команда flows config validate отвечают на вопрос «корректен ли этот документ?» — ни одна из них не спрашивает «застрянет ли реальный пользователь или увидит ли он что-то ложное?» Флоу в статусе publication_failed может пройти обе эти проверки; именно flow-audit ловит всё остальное.

Note

flow-audit никогда не изменяет флоу. Он читает конфигурацию и ваш каталог продуктов, выполняет проверки и передаёт всё найденное вам — или скиллу flow-generator — для исправления.

Установите скилл

flow-audit входит в состав плагина adapty-skills.

Для установки плагина выполните в терминале команду:

npx adapty skills install

Перезапустите агент, чтобы загрузить скиллы. Другие способы установки описаны в README плагина.

Claude Code не обновляет плагин автоматически. Чтобы получать новые скиллы по мере их выхода, запустите в Claude Code команду /plugin, откройте Marketplaces, выберите adapty и нажмите Enable auto-update. Команду обновления для других агентов см. в README плагина.

Затем спросите, например: «Перед публикацией флоу — я ничего не упустил?» Назовите флоу или попросите вывести список всех флоу и выберите нужный.

Как это работает

Пять фаз, все в режиме чтения:

  1. Проверка и аутентификация. Убеждается, что версия CLI актуальна, а вход в Adapty выполнен.
  2. Выбор флоу. Выводит список ваших флоу (adapty flows list) и спрашивает, какой из них проверить.
  3. Загрузка. Получает конфигурацию флоу и каталог продуктов — снимок, по которому выполняются все проверки.
  4. Запуск проверок. Каждая проверка выполняется только по этому снимку.
  5. Отчёт. Итоговый вердикт, а не список замечаний.

Что проверяется

  • Триггеры: элемент, текст которого обещает действие, но по всей цепочке предков нет ни одного обработчика взаимодействия. Визуально выглядит как рабочий элемент управления и ничего не делает.
  • Соответствие требованиям стора: наличие в флоу доступной функции восстановления покупок, ссылки на условия использования, ссылки на политику конфиденциальности и возможности покинуть пейвол без покупки.
  • Продукты: привязанный продукт, отсутствующий в каталоге; продукт без привязки к стору; карточка, заявляющая период тарификации, которого у продукта нет; жёстко заданная цена там, где нужна переменная с ценой.
  • Переменные: переменная, которую флоу устанавливает, но нигде не читает — то есть экран собирает ответ, который нигде не используется.
  • Локализация: пустые переводы, непереведённые значения и охват по каждой локали.
  • Заполнители: незавершённый текст — 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, который отвечает за резервное копирование, получение вашего согласия и непосредственную запись изменений.