GoVueKit

Vibe coding sur un boilerplate : empêcher votre agent de reconstruire ce qui existe déjà

2 août 2026

Pointez un agent de code vers un boilerplate SaaS et demandez « des offres premium avec 14 jours d'essai ». Si l'agent ne sait pas qu'internal/billing existe, ce que vous récupérez est impressionnant, plausible — et faux : un deuxième client Stripe, une deuxième route de webhook, une table plans qui duplique celle déjà servie par la configuration. Tout compile. La moitié n'est pas testée. Vous possédez maintenant deux systèmes de facturation.

Ce n'est pas un problème d'hallucination au sens habituel. L'agent n'a pas inventé une API ; il a inventé du travail. Et il l'a inventé parce que rien ne lui a dit que le travail était déjà fait.

Pourquoi les prompts ne règlent rien

Le réflexe est de prompter plus fort : « utilise le code de facturation existant ». Ça marche une fois. Ça ne survit pas à la dixième session, au deuxième agent, ni au coéquipier qui a oublié la formule. Les consignes qui vivent dans l'historique d'une conversation meurent avec elle.

Ce qui survit, c'est un fichier dans le dépôt que chaque agent lit avant d'écrire — si, et seulement si, ce fichier ne peut pas pourrir.

La carte

GoVueKit livre AGENTS.md à la racine du dépôt — le fichier que Codex, Cursor et consorts lisent nativement ; CLAUDE.md l'importe, donc Claude Code lit le même. Ce n'est pas de la prose sur la prudence. C'est un tableau :

capacité package s'étend par
paiements internal/billing billing.Provider
email internal/email email.Mailer
fichiers internal/storage storage.Storage
tâches de fond internal/jobs Queue.Register
effets de bord à l'inscription internal/auth OnUserCreated
rôles et tenancy internal/http RequireOrgRole

avec une seule consigne au-dessus : avant d'écrire quoi que ce soit, trouve-le ici. « Offres premium » se résout désormais en configuration plus la couture fournisseur existante, parce que la carte le dit à l'endroit où l'agent regarde.

La carte porte aussi les règles que le code fait respecter (SQL portable, organization_id sur chaque requête métier, webhooks idempotents, français et anglais au même pas) et la chaîne qu'une nouvelle fonctionnalité suit — migration, requêtes, package métier, handler, route, store, vue, tests. Un agent qui connaît la chaîne produit un diff à la forme du code existant, au lieu d'un framework à lui.

Une carte qui ne peut pas pourrir

La documentation dérive ; c'est pour ça que les agents l'ignorent. La carte de GoVueKit est tenue par un test, cmd/server/agents_test.go, et la suite passe au rouge quand :

La conséquence mérite d'être dite clairement : si make test est vert, ce que dit la carte est vrai. C'est une propriété que peu de documentations peuvent revendiquer, et c'est celle qui rend rationnelle la confiance d'un agent dans le fichier.

Le reste du harnais

La carte réduit ce que l'agent écrit ; les suites le jugent. 186 tests Go tournent sur PostgreSQL et sur SQLite, 48 tests front incluent une vérification que les catalogues français et anglais définissent exactement les mêmes clés, et 14 parcours Playwright pilotent le vrai binaire de production — y compris la requête d'un autre locataire qui doit répondre 404. Un diff d'agent qui fait fuir des données d'un locataire ou oublie une traduction échoue avant que vous ne le lisiez.

Pour le dernier coup d'œil, le labs démarre tout le produit en local — SSO, uploads, checkout, email — depuis un fichier, sans rien configurer :

curl -fsSLO https://govuekit.dev/labs/docker-compose.yml
docker compose up -d

Ce que ça ne résout pas

Trois concessions, parce qu'un harnais n'est pas magique.

D'abord, la carte empêche un agent de reconstruire les fondations ; elle ne rend pas votre idée de fonctionnalité bonne. Un agent implémentera fidèlement un parcours que vos utilisateurs n'ont jamais demandé, tests verts jusqu'au bout.

Ensuite, un agent peut encore écrire une version pire de quelque chose dans le bon fichier. Les coutures lui disent où ; elles ne garantissent pas l'élégance. La relecture reste votre travail — le harnais ne fait que réduire ce qu'il y a à relire.

Enfin, ça marche en partie parce que le kit est petit : 19 packages Go, un schéma dans un seul fichier de migration, une architecture qui se parcourt en dix minutes. Une carte d'un framework tentaculaire serait un livre, et les agents ne lisent pas les livres. Si vous évaluez un autre starter pour travailler avec des agents, demandez quelle part tient dans une fenêtre de contexte — et si quoi que ce soit fait échouer le build quand sa documentation ment.