Guardrails para o Google Antigravity, feitos com as tuas próprias regras.
As regras da tua empresa chegam ao Antigravity logo após cada edição. O que ele nunca deve fazer fica bloqueado antes de correr.
npx -y @cybedefend/vibedefend@latest install
Google Antigravity está a escreverbilling/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 fica limitada ao tenant.
rules/data-access.mdReembolsos acima de 500 € precisam de um segundo aprovador.
Aprovada uma vez por Sofia M.Verificado antes do commit: limpo
Pronto em quatro passos.
- Executa um comandoEm qualquer terminal, no macOS, Linux ou Windows. Node 18.17 ou mais recente.
- Escolhe a região e inicia sessãoUE ou EUA. O teu browser abre-se para iniciares sessão, sem chave para colar.
- Seleciona o Google AntigravityO instalador encontra os agentes no teu computador e seleciona-os por ti.
- Programa como sempreUma vez, no Antigravity: abre Customizations, Installed, MCP Servers e clica em Authenticate ao lado de
cybedefend.
O que o VibeDefend acrescenta ao Google Antigravity.
Regras servidas
Após a ediçãoPara cada edição, e cada comando shell que escreve ficheiros, as regras chegam ao Antigravity na chamada seguinte ao modelo: um passo depois da edição, antes de ele continuar.
Google Antigravity está a escreversrc/billing/cart-checkout.ts
const total = new Decimal128(cart.sum); const rows = await db.query( "SELECT * FROM carts WHERE id = $1", [id] );
Os montantes usam Decimal128, nunca Number.
Extraída de src/billing.ts:14Qualquer consulta que misture dados do utilizador é parametrizada.
OWASP Top 10Servidas no passo seguinte
Proteção de segredos
As leituras diretas de segredos são recusadas; o Google Antigravity recebe a referência gerida.
Google Antigravitywebhooks.ts
cat .env | grep STRIPEBloqueado: leitura direta de um segredo
Em vez disso
process.env.STRIPE_WEBHOOK_SECRETnpm test -- webhooksOs testes passam
Registado para a equipa
Controlo de ações
Comandos destrutivos, eliminações de esquema e caminhos protegidos são travados antes de correrem.
Google Antigravity
rm -rf dist/Permitido: saída do build
rm -rf .cache/Permitido: cache
rm -rf ./storage/uploadsBloqueado: caminho protegido, ficheiros dos utilizadores
Registado para a equipa
Descobertas em direto
As descobertas de SAST, SCA, segredos, IaC e CI/CD, em direto na sessão.
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
No contexto do agente, em direto
As tuas perguntas.
O VibeDefend altera a minha configuração do Google Antigravity?
~/.gemini/config/hooks.json, ~/.gemini/config/mcp_config.json. Os teus hooks ficam onde estão: voltar a correr o instalador só substitui as entradas do VibeDefend.O que é que sai da minha máquina?
De que versão do Google Antigravity preciso?
Tenho de associar cada repositório?
vibedefend link uma vez. O comando escreve .cybedefend/config.json com o ID do projeto.Como é que o desinstalo?
vibedefend uninstall: remove todos os ficheiros que o VibeDefend instalou. Se instalaste o pacote globalmente, corre depois npm uninstall -g @cybedefend/vibedefend.Porque é que o Antigravity responde Unauthorized depois da instalação?
cybedefend; na CLI agy, corre /mcp, escolhe cybedefend e depois Authenticate.Detalhes técnicos para o Antigravity
- Servidor MCP
- Disponível
~/.gemini/config/mcp_config.json - Regras antes de cada alteração
- Após a edição
PreToolUsePreInvocationPara cada edição, e cada comando shell que escreve ficheiros, as regras chegam ao Antigravity na chamada seguinte ao modelo: um passo depois da edição, antes de ele continuar. - Ações perigosas bloqueadas
- Disponível
PreToolUseTodas as chamadas de ferramentas, na app, no IDE e na CLI agy. O agy --dangerously-skip-permissions não corre nenhum hook. - Regras carregadas no arranque
- Disponível
SessionStart - Revisão no fim da sessão
- Disponível
Stop - Revisão das sessões longas
- IndisponívelSem equivalenteO Antigravity não tem evento antes da compactação.
- Lembrete a cada prompt
- IndisponívelSem equivalenteNão disponível no Antigravity.
O que escreve para o Antigravity
~/.gemini/config/hooks.json~/.gemini/config/mcp_config.json
E o runner dos hooks em ~/.cybedefend/. Os teus hooks ficam onde estão: voltar a correr o instalador só substitui as entradas do VibeDefend.
Inicia sessão uma vez no Antigravity: ele não abre sozinho a autenticação da CybeDefend. Na app, abre Customizations, Installed, MCP Servers e clica em Authenticate ao lado de cybedefend. Na CLI, corre /mcp, escolhe cybedefend e depois Authenticate. A app, o IDE e a CLI guardam cada um a sua própria sessão.
Um único ficheiro de hooks serve a app, o IDE e o agy: ~/.gemini/config/hooks.json, global, nunca por projeto. No Windows, uma pasta pessoal cujo caminho tem um espaço ainda não é suportada: o instalador avisa em vez de ligar um hook que nunca correria.
Algo não bate certo? O vibedefend status dá um relatório só de leitura, e o vibedefend doctor repara o que conseguir.