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
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.mdLos 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.
- Ejecuta un comandoEn cualquier terminal, en macOS, Linux o Windows. Node 18.17 o posterior.
- Elige la región e inicia sesiónUE o EE. UU. Tu navegador se abre para iniciar sesión, sin clave que pegar.
- Marca Google AntigravityEl instalador encuentra los agentes de tu equipo y los marca por ti.
- Programa como siempreUna sola vez, en Antigravity: abre Customizations, Installed, MCP Servers y pulsa Authenticate junto a
cybedefend.
Lo que VibeDefend añade a Google Antigravity.
Reglas servidas
Tras la ediciónPara 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:14Toda consulta que mezcla datos del usuario va parametrizada.
OWASP Top 10Servidas en el paso siguiente
Protección de secretos
Las lecturas directas de secretos se rechazan; Google Antigravity recibe la referencia gestionada.
Google Antigravitywebhooks.ts
cat .env | grep STRIPEBloqueado: lectura directa de un secreto
En su lugar
process.env.STRIPE_WEBHOOK_SECRETnpm test -- webhooksLos tests pasan
Registrado para el equipo
Control de acciones
Comandos destructivos, borrados de esquema y rutas protegidas se detienen antes de ejecutarse.
Google Antigravity
rm -rf dist/Permitido: salida del build
rm -rf .cache/Permitido: caché
rm -rf ./storage/uploadsBloqueado: 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
SAST
src/db/users.repo.ts:42SQL injection
SCA
package.jsonlodash 4.17.20, CVE-2021-23337
Secrets
config/prod.ymlAWS access key
IaC
infra/main.tfS3 bucket public-read
CI/CD
.github/workflows/deploy.ymlpull_request_target
En el contexto del agente, en vivo
Preguntas frecuentes.
¿VibeDefend modifica mi configuración de Google Antigravity?
~/.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?
¿Qué versión de Google Antigravity necesito?
¿Tengo que vincular cada repositorio?
vibedefend link una vez. El comando escribe .cybedefend/config.json con el ID del proyecto.¿Cómo lo desinstalo?
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?
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ón
PreToolUsePreInvocationPara 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
- Disponible
PreToolUseCada 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
- Disponible
SessionStart - Revisión al final de la sesión
- Disponible
Stop - 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.