Guardrails para Google Antigravity, hechos con tus propias reglas.

Las reglas de tu empresa llegan a Antigravity justo después de cada edición. Lo que nunca debe hacer se bloquea antes de ejecutarse.

npx -y @cybedefend/vibedefend@latest install

Crear una cuenta gratisAntigravity 2.0 o posteriorLeer la documentación

Google Antigravity está escribiendobilling/refund.ts

export async function refund(req: Request) {
  const { id, amount } = await req.json();
  const invoice = await db.invoices.find({
    id, tenant: req.tenant,
  });
  if (amount > 500)
    await approvals.second(invoice);
  return payments.refund(invoice, amount);
}

Cada consulta se limita al tenant.

rules/data-access.md

Los reembolsos de más de 500 € necesitan un segundo aprobador.

Aprobada una vez por Sofia M.

Revisado antes del commit: limpio

Listo en cuatro pasos.

  1. Ejecuta un comandoEn cualquier terminal, en macOS, Linux o Windows. Node 18.17 o posterior.
  2. Elige la región e inicia sesiónUE o EE. UU. Tu navegador se abre para iniciar sesión, sin clave que pegar.
  3. Marca Google AntigravityEl instalador encuentra los agentes de tu equipo y los marca por ti.
  4. Programa como siempreUna sola vez, en Antigravity: abre Customizations, Installed, MCP Servers y pulsa Authenticate junto a cybedefend.

Compruébalo cuando quieras: vibedefend status

Lo que VibeDefend añade a Google Antigravity.

Reglas servidas

Tras la edición

Para cada edición, y cada comando de shell que escribe archivos, las reglas llegan a Antigravity en su siguiente llamada al modelo: un paso después de la edición, antes de que siga.

Google Antigravity está escribiendosrc/billing/cart-checkout.ts

const total = new Decimal128(cart.sum);
const rows = await db.query(
  "SELECT * FROM carts WHERE id = $1", [id]
);

Los importes usan Decimal128, nunca Number.

Extraída de src/billing.ts:14

Toda consulta que mezcla datos del usuario va parametrizada.

OWASP Top 10

Servidas en el paso siguiente

Protección de secretos

Las lecturas directas de secretos se rechazan; Google Antigravity recibe la referencia gestionada.

Google Antigravitywebhooks.ts

  1. cat .env | grep STRIPE

    Bloqueado: lectura directa de un secreto

  2. En su lugarprocess.env.STRIPE_WEBHOOK_SECRET

  3. npm test -- webhooks

    Los tests pasan

Registrado para el equipo

Control de acciones

Comandos destructivos, borrados de esquema y rutas protegidas se detienen antes de ejecutarse.

Google Antigravity

  1. rm -rf dist/

    Permitido: salida del build

  2. rm -rf .cache/

    Permitido: caché

  3. rm -rf ./storage/uploads

    Bloqueado: ruta protegida, archivos de los usuarios

Registrado para el equipo

Hallazgos en vivo

Los hallazgos de SAST, SCA, secretos, IaC y CI/CD, en vivo en la sesión.

Google Antigravity

  1. SASTsrc/db/users.repo.ts:42

    SQL injection

  2. SCApackage.json

    lodash 4.17.20, CVE-2021-23337

  3. Secretsconfig/prod.yml

    AWS access key

  4. IaCinfra/main.tf

    S3 bucket public-read

  5. CI/CD.github/workflows/deploy.yml

    pull_request_target

En el contexto del agente, en vivo

Preguntas frecuentes.

¿VibeDefend modifica mi configuración de Google Antigravity?
Añade sus hooks y registra el servidor MCP cybedefend, en ~/.gemini/config/hooks.json, ~/.gemini/config/mcp_config.json. Tus propios hooks se mantienen: volver a ejecutar el instalador solo sustituye las entradas de VibeDefend.
¿Qué sale de mi máquina?
El análisis se ejecuta en la región que elegiste al instalar, UE o EE. UU. La decisión de bloquear una acción se toma en tu máquina. Antes de una edición, el hook envía la parte del archivo que se está escribiendo, para encontrar las reglas que se aplican. La revisión de fin de sesión envía los archivos que se modificaron durante la sesión. Ambos se analizan al vuelo: no guardamos nada de tu código, solo el registro de las reglas aplicadas y las acciones bloqueadas. Tu token de inicio de sesión se queda en el llavero de tu sistema operativo.
¿Qué versión de Google Antigravity necesito?
Google Antigravity 2.0 o posterior, y Node 18.17 o posterior. El instalador funciona en macOS, Linux y Windows.
¿Tengo que vincular cada repositorio?
No en los proyectos importados desde GitHub o GitLab: VibeDefend lee el origin del repositorio y encuentra el proyecto. Para cualquier otro repositorio, ejecuta vibedefend link una vez. El comando escribe .cybedefend/config.json con el ID del proyecto.
¿Cómo lo desinstalo?
Ejecuta vibedefend uninstall: elimina todos los archivos que instaló VibeDefend. Si instalaste el paquete de forma global, ejecuta después npm uninstall -g @cybedefend/vibedefend.
¿Por qué Antigravity responde Unauthorized tras la instalación?
Antigravity no abre por sí mismo el inicio de sesión de CybeDefend. En la app, abre Customizations, Installed, MCP Servers y pulsa Authenticate junto a cybedefend; en la CLI agy, ejecuta /mcp, elige cybedefend y luego Authenticate.
Detalles técnicos para Antigravity
Servidor MCP
Disponible~/.gemini/config/mcp_config.json
Reglas antes de cada edición
Tras la ediciónPreToolUsePreInvocationPara cada edición, y cada comando de shell que escribe archivos, las reglas llegan a Antigravity en su siguiente llamada al modelo: un paso después de la edición, antes de que siga.
Acciones peligrosas bloqueadas
DisponiblePreToolUseCada llamada de herramienta, en la app, el IDE y la CLI agy. agy --dangerously-skip-permissions no ejecuta ningún hook.
Reglas cargadas al inicio
DisponibleSessionStart
Revisión al final de la sesión
DisponibleStop
Revisión de las sesiones largas
No disponibleSin equivalenteAntigravity no tiene ningún evento previo a la compactación.
Recordatorio en cada prompt
No disponibleSin equivalenteNo disponible en Antigravity.

Lo que escribe para Antigravity

  • ~/.gemini/config/hooks.json
  • ~/.gemini/config/mcp_config.json

Además, el runner de los hooks en ~/.cybedefend/. Tus propios hooks se mantienen: volver a ejecutar el instalador solo sustituye las entradas de VibeDefend.

Inicia sesión una vez en Antigravity: no abre por sí mismo el inicio de sesión de CybeDefend. En la app, abre Customizations, Installed, MCP Servers y pulsa Authenticate junto a cybedefend. En la CLI, ejecuta /mcp, elige cybedefend y luego Authenticate. La app, el IDE y la CLI guardan cada uno su propia sesión.

Un solo archivo de hooks sirve a la app, al IDE y a agy: ~/.gemini/config/hooks.json, global, nunca por proyecto. En Windows, una carpeta personal cuya ruta contiene un espacio aún no está soportada: el instalador lo avisa en lugar de conectar un hook que nunca se ejecutaría.

¿Algo no va bien? vibedefend status da un informe de solo lectura, y vibedefend doctor repara lo que puede.