Des garde-fous pour Google Antigravity, tirés de vos propres règles.
Vos règles d'entreprise arrivent dans Antigravity juste après chaque édition. Ce qu'il ne doit jamais faire est bloqué avant de s'exécuter.
npx -y @cybedefend/vibedefend@latest install
Google Antigravity écritbilling/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); }
Chaque requête est cloisonnée par tenant.
rules/data-access.mdUn remboursement de plus de 500 € demande un second validateur.
Approuvée une fois par Sofia M.Vérifié avant le commit : rien à corriger
Prêt en quatre étapes.
- Lancez une commandeDans n'importe quel terminal, sur macOS, Linux ou Windows. Node 18.17 ou plus récent.
- Choisissez la région, connectez-vousUE ou US. Votre navigateur s'ouvre pour la connexion, aucune clé à coller.
- Cochez Google AntigravityL'installeur trouve les agents présents sur votre machine et les coche pour vous.
- Codez comme d'habitudeUne fois, dans Antigravity : ouvrez Customizations, Installed, MCP Servers et cliquez sur Authenticate à côté de
cybedefend.
Ce que VibeDefend ajoute à Google Antigravity.
Règles servies
Après l'éditionPour chaque édition, et chaque commande shell qui écrit des fichiers, les règles arrivent dans Antigravity à son appel de modèle suivant : une étape après l'édition, avant qu'il ne continue.
Google Antigravity écritsrc/billing/cart-checkout.ts
const total = new Decimal128(cart.sum); const rows = await db.query( "SELECT * FROM carts WHERE id = $1", [id] );
Les montants utilisent Decimal128, jamais Number.
Tirée de src/billing.ts:14Toute requête qui mêle une saisie utilisateur est paramétrée.
OWASP Top 10Servies à l'étape suivante
Garde-fou des secrets
Les lectures brutes de secrets sont refusées ; Google Antigravity reçoit la référence gérée à la place.
Google Antigravitywebhooks.ts
cat .env | grep STRIPEBloqué : lecture brute d'un secret
À la place
process.env.STRIPE_WEBHOOK_SECRETnpm test -- webhooksLes tests passent
Consigné pour l'équipe
Garde-fou des actions
Commandes destructrices, suppressions de schéma, chemins protégés : arrêtés avant de s'exécuter.
Google Antigravity
rm -rf dist/Autorisé : sortie de build
rm -rf .cache/Autorisé : cache
rm -rf ./storage/uploadsBloqué : chemin protégé, fichiers des utilisateurs
Consigné pour l'équipe
Alertes en direct
Les alertes SAST, SCA, secrets, IaC et CI/CD, en direct dans la session.
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
Dans le contexte de l'agent, en direct
Vos questions.
VibeDefend modifie-t-il ma configuration Google Antigravity ?
~/.gemini/config/hooks.json, ~/.gemini/config/mcp_config.json. Vos propres hooks restent : relancer l'installeur ne remplace que les entrées de VibeDefend.Qu'est-ce qui quitte ma machine ?
Quelle version de Google Antigravity faut-il ?
Faut-il relier chaque dépôt ?
vibedefend link une fois. La commande écrit .cybedefend/config.json avec l'identifiant du projet.Comment le retirer ?
vibedefend uninstall : la commande retire chaque fichier installé par VibeDefend. Si vous avez installé le paquet globalement, lancez ensuite npm uninstall -g @cybedefend/vibedefend.Pourquoi Antigravity répond-il Unauthorized après l'installation ?
cybedefend ; dans le CLI agy, lancez /mcp, choisissez cybedefend, puis Authenticate.Détails techniques pour Antigravity
- Serveur MCP
- Disponible
~/.gemini/config/mcp_config.json - Règles avant chaque modification
- Après l'édition
PreToolUsePreInvocationPour chaque édition, et chaque commande shell qui écrit des fichiers, les règles arrivent dans Antigravity à son appel de modèle suivant : une étape après l'édition, avant qu'il ne continue. - Actions dangereuses bloquées
- Disponible
PreToolUseChaque appel d'outil, dans l'app, l'IDE et le CLI agy. agy --dangerously-skip-permissions ne lance aucun hook. - Règles chargées au démarrage
- Disponible
SessionStart - Revue en fin de session
- Disponible
Stop - Revue des longues sessions
- Non disponiblePas d'équivalentAntigravity n'a pas d'événement avant la compaction.
- Rappel à chaque prompt
- Non disponiblePas d'équivalentNon disponible dans Antigravity.
Ce qu'il écrit pour Antigravity
~/.gemini/config/hooks.json~/.gemini/config/mcp_config.json
Plus le runner des hooks dans ~/.cybedefend/. Vos propres hooks restent : relancer l'installeur ne remplace que les entrées de VibeDefend.
Connectez-vous une fois dans Antigravity : il n'ouvre pas la connexion CybeDefend de lui-même. Dans l'app, ouvrez Customizations, Installed, MCP Servers et cliquez sur Authenticate à côté de cybedefend. Dans le CLI, lancez /mcp, choisissez cybedefend, puis Authenticate. L'app, l'IDE et le CLI gardent chacun leur propre connexion.
Un seul fichier de hooks sert l'app, l'IDE et agy : ~/.gemini/config/hooks.json, global, jamais par projet. Sous Windows, un dossier personnel dont le chemin contient un espace n'est pas encore pris en charge : l'installeur le signale plutôt que de brancher un hook qui ne tournerait jamais.
Quelque chose cloche ? vibedefend status donne un état en lecture seule, et vibedefend doctor répare ce qu'il peut.