Навык агента для аудита флоу
Навык flow-audit отвечает на один вопрос о флоу: готов ли он к продакшену? Укажите вашему AI-инструменту на флоу — он считает конфиг через Adapty CLI, сверит его с каталогом продуктов и выдаст вердикт, а не список, который придётся интерпретировать самому.
Флоу может пройти все существующие проверки публикации и при этом оставаться небезопасным для показа пользователям. Собственные проверки при публикации в Flow & Paywall Builder и команда flows config validate задают один вопрос: «Документ корректно сформирован?» — и ни одна из них не спрашивает: «Застрянет ли реальный пользователь или увидит ли что-то ложное?» Флоу со статусом publication_failed может пройти обе эти проверки; именно flow-audit находит всё остальное.
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 — тот же репозиторий, те же команды.
Then ask for it — /flow-audit in tools that map slash commands to skills, or “Use the flow-audit skill” in the ones that don’t. Name the flow, or let it list your flows and ask which one.
Как это работает
Пять фаз, все только на чтение:
- Проверка и авторизация. Убеждается, что CLI достаточно новой версии и вы авторизованы в Adapty.
- Выбор флоу. Выводит список ваших флоу (
adapty flows list) и спрашивает, какой из них проверить. - Загрузка. Получает конфигурацию флоу и каталог продуктов — снапшот, против которого выполняются все проверки.
- Запуск проверок. Каждая проверка выполняется только против этого снапшота.
- Отчёт. Итоговый вердикт, а не список.
Что проверяется
- Triggers: элемент, текст которого обещает действие, но нигде в цепочке предков нет взаимодействия. Выглядит как рабочий элемент управления, но ничего не делает.
- Store compliance: действие восстановления покупок, доступное где-либо во флоу, ссылка на условия использования, ссылка на политику конфиденциальности и возможность покинуть пейвол без покупки.
- Products: связанный продукт, отсутствующий в каталоге; продукт без привязки к стору; карточка, заявляющая период оплаты, которого нет у продукта; или захардкоженная цена там, где должна стоять переменная.
- Variables: переменная, которую флоу задаёт, но нигде не читает — экран собирает ответ, который нигде не используется.
- Localization: пустые переводы, непереведённые значения и охват по локалям.
- Placeholders: незаконченные тексты —
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, который отвечает за резервное копирование, получение вашего подтверждения и запись изменений.