Habilidad de agente para auditar flows
La habilidad flow-audit responde una sola pregunta sobre un flow: ¿está listo para producción? Apunta tu herramienta de IA a un flow y esta leerá la configuración a través de la Adapty CLI, la comprobará con tu catálogo de productos y emitirá un veredicto, sin dejarte una lista que tengas que interpretar tú mismo.
Un flow puede superar todas las validaciones de publicación existentes y aun así no ser seguro para mostrárselo a los usuarios. Las comprobaciones de publicación del propio Flow & Paywall Builder y flows config validate se preguntan “¿es este documento correcto formalmente?” — ninguna de las dos pregunta “¿un usuario real podría quedarse bloqueado, o ver algo falso?” Un flow en estado publication_failed puede superar ambas comprobaciones; flow-audit es lo que detecta el resto.
flow-audit nunca escribe en un flow. Lee la configuración y tu catálogo de productos, ejecuta sus comprobaciones y te entrega todo lo que encuentra — a ti o al skill flow-generator — para que lo corrijas.
Instala la skill
flow-audit viene incluido en el plugin adapty-skills (adaptyteam/adapty-skills) junto con flow-generator — una sola instalación te da todas las skills del plugin, actualmente siete, incluyendo flow-audit.
Para Claude Code:
claude plugin marketplace add adaptyteam/adapty-skills
claude plugin install adapty-skills@adapty
Luego ejecuta /reload-plugins para activar las skills. Para otras herramientas de codificación con IA, sigue los pasos de instalación de flow-generator — mismo repositorio, mismos comandos.
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.
Cómo funciona
Cinco fases, todas de solo lectura:
- Resolución y autenticación. Confirma que la CLI es lo suficientemente reciente y que tu sesión de Adapty es válida.
- Selección del flow. Lista tus flows (
adapty flows list) y pregunta cuál quieres comprobar. - Obtención de datos. Descarga la configuración del flow y tu catálogo de productos — el snapshot contra el que se ejecutan todas las comprobaciones.
- Ejecución de comprobaciones. Cada comprobación se ejecuta únicamente contra ese snapshot.
- Informe. Un veredicto, no una lista.
Qué comprueba
- Disparadores: Un elemento cuyo texto promete una acción pero no tiene ninguna interacción en toda su cadena de ancestros. Se muestra exactamente igual que un control funcional y no hace nada.
- Cumplimiento de la store: Una acción de restauración accesible en algún punto del flow, un enlace a tus términos, un enlace a tu política de privacidad y una forma de que el usuario abandone un paywall sin comprar.
- Productos: Un producto vinculado que falta en tu catálogo, un producto sin vínculo a la store, una tarjeta que indica un período de facturación que el producto no tiene, o un precio fijo donde debería ir una variable de precio.
- Variables: Una variable que el flow define pero nunca lee, de modo que una pantalla recoge una respuesta que nada utiliza.
- Localización: Traducciones vacías, valores sin traducir y cobertura por idioma.
- Marcadores de posición: Texto que nunca se terminó —
Lorem ipsum,TODO,Your headline here— y un flow que sigue llamándoseUntitled.
Gravedad
Cada hallazgo recibe uno de tres niveles:
| Nivel | Qué significa |
|---|---|
| Bloqueante | El flow no funcionará para un usuario real, o le mostrará algo falso — un precio inventado puede renderizarse perfectamente y aun así mentir. |
| Riesgo | Funciona, pero probablemente no es lo que nadie pretendía: textos de relleno, un valor idéntico al del locale predeterminado, una variable que nadie lee. |
| Pregunta | No es posible decidir con los datos disponibles. El informe indica qué vio, a qué no pudo acceder, y la única cosa que verificar — en lugar de adivinar. |
Ejemplo de informe
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.
El estado de este flow es publication_failed, y tanto las comprobaciones de publicación del Flow & Paywall Builder como flows config validate ya lo aprobaron — ninguno lee el texto de una pantalla ni recorre sus interacciones. El informe comienza con el veredicto, seguido de una lista numerada de bloqueantes con el elemento exacto y la pantalla que hay que abrir.
El veredicto de un flow limpio dice READY FOR PRODUCTION, sin nada añadido después. Si flow-audit no encontró bloqueantes ni riesgos pero aún tiene preguntas abiertas, el veredicto dice READY, PENDING n CHECKS I CANNOT MAKE en lugar de certificar algo que no pudo verificar.
Qué no puede verificar
flow-audit no puede indicarte si el flow está vinculado a un placement. adapty flows get solo devuelve el id, el name, el status y el updated_at del flow, y la CLI no dispone de ningún comando que liste los placements en los que aparece un flow. Este es un recordatorio fijo en todos los informes, nunca una comprobación: confirma el placement tú mismo en la página Placements o consulta Crear placement.
Quién arregla qué
Cada informe termina con su propia sección WHAT TO DO NEXT, dividida según quién realiza el trabajo: qué puede cambiar un agente en el flow, qué solo tú puedes cambiar en el Adapty Dashboard, y qué debes confirmar tú mismo antes de publicar.
flow-audit no realiza ninguno de esos cambios por sí mismo — es de solo lectura por diseño, así que un flow que falla permanece exactamente como lo dejaste. Pasa el informe al skill flow-generator, que se encarga de la copia de seguridad, tu aprobación y la escritura real.