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

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

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

Note

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

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

flow-audit входит в плагин adapty-skills (adaptyteam/adapty-skills) вместе с flow-generator — одна установка даёт все скиллы плагина, сейчас их семь, включая flow-audit.

Для Claude Code:

claude plugin marketplace add adaptyteam/adapty-skills
claude plugin install adapty-skills@adapty

Затем выполните /reload-plugins, чтобы активировать скиллы. Для других AI-инструментов следуйте инструкциям по установке flow-generator — тот же репозиторий, те же команды.

После этого вызовите скилл — /flow-audit в инструментах, которые поддерживают слэш-команды, или «Use the flow-audit skill» в тех, что не поддерживают. Укажите флоу по имени или позвольте инструменту вывести список флоу и выбрать нужный.

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

Пять этапов, все только для чтения:

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

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

  • Триггеры: элемент, чей текст обещает действие, но нигде в цепочке предков не несёт никакого взаимодействия. Выглядит в точности как рабочий элемент управления и ничего не делает.
  • Соответствие требованиям стора: наличие действия восстановления покупок, ссылки на условия использования, ссылки на политику конфиденциальности и способа покинуть пейвол без покупки.
  • Продукты: продукт в привязке отсутствует в каталоге, продукт без привязки к стору, карточка, заявляющая расчётный период, которого у продукта нет, или жёстко прописанная цена вместо переменной цены.
  • Переменные: переменная, которую флоу задаёт, но нигде не читает — экран собирает ответ, который ни на что не влияет.
  • Локализация: пустые переводы, непереведённые значения и покрытие по локалям.
  • Плейсхолдеры: незаконченный текст — Lorem ipsum, TODO, Your headline here — и флоу, который до сих пор называется Untitled.

Серьёзность

Каждая находка получает одну из трёх категорий:

КатегорияЧто означает
БлокерФлоу не будет работать для реального пользователя или покажет ему что-то ложное — сфабрикованная цена может отображаться идеально и всё равно лгать.
РискРаботает, но, вероятно, не так, как задумывалось: текст-плейсхолдер, значение, оставшееся идентичным локали по умолчанию, переменная, которую никто не читает.
ВопросНевозможно определить по имеющимся данным. В отчёте указано, что было найдено, что не удалось проверить и единственное, что нужно проверить вручную, — вместо предположений.

Пример отчёта

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, и обе проверки — собственные проверки Flow & Paywall 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, который отвечает за резервное копирование, ваше подтверждение и фактическую запись.