Modern Go Guidelines : comment JetBrains veut empêcher les agents IA d’écrire du Go dépassé

Pourquoi ce projet existe
Le problème visé est simple : un agent de codage peut générer du Go valide, mais pas forcément du Go adapté à la version réellement utilisée par un projet. JetBrains, via l’équipe GoLand, a donc créé Modern Go Guidelines pour combler cet écart.
Le projet est publié dans un dépôt GitHub public, sous licence Apache-2.0. Sa description est explicite : aider les agents de codage IA à écrire du Go moderne. Concrètement, il s’agit d’un ensemble de règles et de compétences destiné à orienter la génération de code pour qu’elle reste compatible avec la version de Go déclarée par le projet.
Pour des équipes qui utilisent déjà des assistants de code, l’intérêt est immédiat : réduire les suggestions anachroniques, éviter l’introduction d’API trop récentes, et pousser l’agent vers des idiomes plus actuels quand la version du projet le permet.
Une logique centrée sur la version déclarée dans `go.mod`
Le point clé de l’approche est le fichier go.mod. Les guidelines sont conçues pour s’aligner sur la version de Go qui y est déclarée. D’après le dépôt, l’agent détecte la version du projet depuis go.mod, puis n’utilise que les fonctionnalités du langage et les ajouts à la bibliothèque standard disponibles jusqu’à cette version incluse.
L’exemple donné est parlant : si un projet déclare go 1.25, l’agent peut recevoir les règles applicables à Go 1.25 et aux versions antérieures, mais pas celles de Go 1.26 ni de Go 1.27.
Cette granularité compte en pratique. Dans beaucoup d’organisations, la montée de version de Go n’est pas instantanée : contraintes de build, dépendances internes, politiques de validation ou exigences de support peuvent retarder l’adoption des nouveautés. Un assistant qui respecte cette réalité est plus utile qu’un assistant qui pousse systématiquement la dernière API disponible.
Ce que couvrent les guidelines
Le corpus couvre les fonctionnalités utiles du langage et les ajouts à la bibliothèque standard de Go 1.0 à Go 1.27. Le dépôt précise aussi qu’il inclut les motifs pris en charge par l’analyseur Go modernize.
Quelques exemples cités montrent le type de modernisation visé :
errors.AsTypepour un appariement d’erreurs typé à partir de Go 1.26 ;strings.CutLastetbytes.CutLasten Go 1.27, à la place d’un usage deLastIndexsuivi d’un découpage manuel ;- une guideline identifiée comme
generic_methods, marquée comme disponible depuis Go 1.27.
Le fait que chaque règle dispose d’un identifiant stable est important. Cela facilite l’automatisation, la documentation interne et, potentiellement, l’intégration dans des workflows où l’on veut expliquer pourquoi une suggestion a été faite ou filtrée.
Un CLI minimal avec deux commandes
Le projet s’appuie sur un outil en ligne de commande nommé go-modern-guidelines. Il expose deux sous-commandes principales : list et explain.
La commande list sert aux guidelines courtes. Elle peut être appelée en lui passant directement une version de Go, par exemple go-modern-guidelines list --go-version 1.27. Elle peut aussi accepter un chemin de fichier, comme go-modern-guidelines list --file-path ./internal/worker/worker.go.
Le projet indique que la sortie commence par les guidelines applicables les plus récentes et qu’elle inclut un identifiant stable pour chacune. La commande explain, elle, sert à obtenir des exemples plus détaillés.
Cette séparation entre list et explain est bien pensée pour les usages IA. Un agent n’a pas toujours besoin d’un long contexte : une liste compacte suffit souvent pour cadrer une génération. À l’inverse, lorsqu’il faut justifier une transformation ou produire un exemple, un mode plus explicatif devient utile.
Comment l’intégration fonctionne dans les outils
JetBrains indique que le plugin peut être installé depuis une marketplace ou depuis un dépôt local. Les guidelines sont annoncées comme disponibles pour Junie, Claude Code, Codex et Cursor, ainsi que pour d’autres agents via skills.sh.
Sur le plan technique, l’intégration repose sur un petit CLI installé au premier usage avec go install. Les deux méthodes d’installation exigent que la toolchain Go soit présente dans le PATH. Le binaire est stocké dans un cache local, par exemple ~/.cache/go-modern-guidelines, et le projet précise qu’il ne modifie jamais le code du projet.
Autre détail utile : le CLI cible Go 1.25 ou plus récent. Pour les équipes, cela signifie que l’outil d’assistance lui-même a un prérequis distinct de la plage de versions couverte par les guidelines, qui va de Go 1.0 à Go 1.27.
En clair, l’intégration cherche à rester légère : dépendance à la toolchain Go, exécution locale depuis un cache, et absence de modification directe du dépôt. C’est un positionnement rassurant pour les environnements de développement où l’on veut limiter l’empreinte des assistants.
Ce que cela change pour les développeurs Go
Le principal apport n’est pas un nouveau compilateur ni un nouvel analyseur, mais une couche d’orientation pour les agents IA. Elle peut aider à faire converger les suggestions vers trois objectifs : compatibilité de version, usage d’API modernes quand elles sont disponibles, et réduction des patterns devenus moins idiomatiques.
Pour un développeur individuel, cela peut éviter de relire des propositions qui utilisent une API absente de la version du projet. Pour une équipe, cela peut homogénéiser les sorties de plusieurs assistants différents, puisque le même corpus de règles est annoncé pour plusieurs agents.
Le dépôt montre aussi un certain niveau d’adoption initiale sur GitHub, avec 838 étoiles, 34 forks et 2 issues au moment des faits fournis. Sans préjuger de son impact réel à long terme, cela indique au moins un intérêt visible de la communauté technique.
Enfin, le dépôt contient notamment FEATURES.md, README.md, go.mod et main.go, ce qui suggère un projet relativement simple à auditer pour les équipes qui veulent comprendre précisément ce qui est exécuté dans leur environnement.
Le point de vigilance : données et confidentialité
Les faits fournis ne décrivent pas de collecte spécifique liée à Modern Go Guidelines lui-même. En revanche, la politique de confidentialité de JetBrains, en version 3.2 et mise à jour le 12 juin 2026, donne le cadre général applicable à ses produits et services.
Cette notice indique que les responsables du traitement sont JetBrains s.r.o. et les sociétés associées de JetBrains, agissant comme responsables conjoints. Elle mentionne aussi que JetBrains peut collecter des données sur l’usage de fonctionnalités produit, par exemple la consommation de quota IA ou des statistiques sur le taux d’acceptation de suggestions IA.
La notice précise également que JetBrains chiffre les données en transit et au repos lorsque cela est techniquement possible, en citant TLS pour la transmission et AES-256 comme exemple pour le chiffrement au repos. Elle indique enfin que l’emplacement par défaut des données personnelles des clients est l’Union européenne, sauf mention contraire.
Pour les équipes soucieuses de conformité, il faut donc distinguer deux niveaux : d’un côté, un CLI local qui, selon le dépôt, s’exécute depuis un cache et ne modifie pas le projet ; de l’autre, le cadre plus large des produits JetBrains et de leurs fonctions IA, qui peut inclure des métriques d’usage. Si ce point est sensible en interne, il faudra vérifier l’intégration exacte utilisée et les paramètres associés.
À retenir
- Modern Go Guidelines est un dépôt GitHub public créé par l’équipe GoLand pour aider les agents IA à écrire du Go moderne.
- Les règles s’alignent sur la version déclarée dans `go.mod` et couvrent Go 1.0 à Go 1.27.
- Le CLI `go-modern-guidelines` propose deux commandes principales : `list` pour des règles courtes et `explain` pour des exemples détaillés.
- L’intégration nécessite la toolchain Go dans le `PATH`, installe le CLI avec `go install` au premier usage et l’exécute depuis un cache local sans modifier le projet.
- Le projet est annoncé pour plusieurs agents, dont Junie, Claude Code, Codex et Cursor.
Sources
- Help AI Coding Agents Write Up-To-Date Code With Modern Golang Skills – The JetBrains Blog — blog.jetbrains.com, 24 août 2026
- GitHub – JetBrains/go-modern-guidelines: Help AI coding agents write modern Go — github.com
- Privacy Notice — jetbrains.com