Trucos para que Antigravity haga EXACTAMENTE lo que quieres

Video thumbnail

Quiero compartirte un par de trucos y consideraciones para que Google Antigravity (o cualquier IA de código) te genere exactamente lo que buscas cuando necesitas implementar funcionalidades particulares. Estos consejos me sirven a diario y estoy seguro de que a ti también te ayudarán.

1. Contexto: La diferencia entre usuarios autenticados y visitantes

Imagina que quiero agregar una nueva funcionalidad a mi aplicación de academia. En ella, puedes ver cursos de pago (donde el usuario debe estar autenticado) y material gratuito (donde no es necesario).

Esto es un punto crítico:

  • Con autenticación: Puedo guardar el progreso en la base de datos usando el ID del usuario.
  • Sin autenticación: No sé quién es el usuario, por lo que la lógica cambia completamente.

Al conocer esta situación, evalúo mi código. Actualmente, manejo la lógica de pago y autenticación, pero he dejado un espacio (un else) precisamente para el contenido gratuito. Es aquí donde quiero gestionar el progreso de forma local.

️ Cómo redactar el "Prompt" sugerido

Para que la IA no invente soluciones que no quiero, sigo este esquema:

  • Dar contexto: Explico el problema y la situación actual.
  • Dar lineamientos claros: Le indico la solución técnica que prefiero. En este caso, le pido que utilice LocalStorage como almacenamiento persistente del navegador.

El navegador tiene varios tipos de almacenamiento (Cookies, IndexedDB, etc.), pero yo prefiero LocalStorage por su sencillez. Puedes ver lo que se almacena inspeccionando tu navegador en la pestaña Application > Local Storage.

El truco de la URL Relativa y la Ubicación Exacta

Para que la IA no se pierda en un mar de archivos (como sucede en proyectos grandes de Laravel), utilizo dos trucos vitales:

  1. Copiar la ruta relativa: Haz clic derecho en tu archivo y selecciona "Copy Relative Path". Pégalo en el chat para que la IA sepa exactamente dónde trabajar.
  2. Señalar el bloque de código: Le paso la pieza exacta de código donde quiero la implementación. Por ejemplo, le indico que busque el watch que vigila las propiedades classIndex y sectionIndex para actualizar el progreso localmente si el recurso es gratuito.

Modularización y Buenas Prácticas (Pinia y Vue)

Para evitar que la IA "escupa" todo el código en un solo archivo, le doy instrucciones de modularización. En mi caso, utilizo Pinia para manejar el estado.

La IA generó una función local para guardar el progreso dado el courseID, la sección y la clase, pero delegó la lógica de almacenamiento a un archivo separado manejado por Pinia. Esto mantiene el código limpio y profesional. Si tu solicitud es muy general, la IA tenderá a hacerlo todo local, lo cual es difícil de mantener.

Comparativa: Retos en Flutter y Configuraciones Globales

Cuando pides cambios globales (como configurar pagos en una app de Flutter), la precisión es aún más importante. Si el prompt es muy vago, pueden ocurrir errores:

  • Versiones obsoletas: La IA suele instalar plugins antiguos. Yo le indico la versión exacta o le pido explícitamente la última versión.
    • Le dije exactamente la versión que quería que instalara.
  • Archivos olvidados: En un proyecto de Flutter, la IA modificó el pubspec.yaml pero olvidó el AndroidManifest.xml. Sin los permisos en este último, la funcionalidad simplemente no sirve.
    • El prompt fue de que agregue el paquete de in_app_purchase para realizar compras mediante la Google Play en un proyecto en Flutter, el cual, debe de pasar por agregar el permiso de <uses-permission android:name="com.android.vending.BILLING" /> operación que NO hizo hasta que se lo pedí una segunda vez.

Si no dictas exactamente qué archivos tocar, la armonía del proyecto se pierde y el código se vuelve inmanejable. Ya que, al iniciar varias conersaciones, la IA muchas veces NO evaluta TODO el proyecto y puede que se salte algunas implementaciones existentes agregando redundancia y cambiando el estilo de la programación, y es por eso la importancia de hacer cambios puntuales indicando exactamente lo que quieres que haga y que TU verifiques estos cambios.

El flujo de trabajo ideal: Probar y Sincronizar

Lo que más me gusta de herramientas como Antigravity es que te marcan en amarillo (si usas Git) exactamente qué líneas cambiaron. Mi flujo es el siguiente:

  1. Analizar: Reviso las marcas amarillas de cambios.
  2. Ejecutar y Probar: Compruebo que funcionalmente esté OK.
  3. Sincronizar: Si el cambio es correcto, ejecuto git add, git commit y git push.
  4. Revertir si es necesario: Si algo sale mal, uso el comando git reset --hard para volver al estado anterior y reintentar.

Resumen: Dale contexto, dale la URL relativa del archivo, revisa los cambios puntuales y sincroniza constantemente con Git.

Guía práctica sobre Google Antigravity: Cómo pasar prompts efectivos, y precisos en base a lo que quieres EXACTAMENTE que el Agente te genere.

Acepto recibir anuncios de interes sobre este Blog.

Andrés Cruz

EN In english