Скилл агента для аудита флоу
Скилл 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 — тот же репозиторий, те же команды.
После этого вызовите скилл — /flow-audit в инструментах, которые поддерживают слэш-команды, или «Use the flow-audit skill» в тех, что не поддерживают. Укажите флоу по имени или позвольте инструменту вывести список флоу и выбрать нужный.
Как это работает
Пять этапов, все только для чтения:
- Проверка и аутентификация. Убеждается, что CLI достаточно новый и логин в Adapty действителен.
- Выбор флоу. Выводит список флоу (
adapty flows list) и спрашивает, какой из них проверить. - Загрузка. Получает конфиг флоу и каталог продуктов — снимок, против которого выполняются все проверки.
- Выполнение проверок. Каждая проверка выполняется только по этому снимку.
- Отчёт. Вердикт, а не список.
Что проверяется
- Триггеры: элемент, чей текст обещает действие, но нигде в цепочке предков не несёт никакого взаимодействия. Выглядит в точности как рабочий элемент управления и ничего не делает.
- Соответствие требованиям стора: наличие действия восстановления покупок, ссылки на условия использования, ссылки на политику конфиденциальности и способа покинуть пейвол без покупки.
- Продукты: продукт в привязке отсутствует в каталоге, продукт без привязки к стору, карточка, заявляющая расчётный период, которого у продукта нет, или жёстко прописанная цена вместо переменной цены.
- Переменные: переменная, которую флоу задаёт, но нигде не читает — экран собирает ответ, который ни на что не влияет.
- Локализация: пустые переводы, непереведённые значения и покрытие по локалям.
- Плейсхолдеры: незаконченный текст —
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, который отвечает за резервное копирование, ваше подтверждение и фактическую запись.