[{"data":1,"prerenderedAt":1156},["ShallowReactive",2],{"/fr-fr/blog/building-an-ai-dev-workflow":3,"navigation-fr-fr":406,"banner-fr-fr":842,"footer-fr-fr":849,"blog-post-authors-fr-fr-Gregory Havenga":1098,"blog-related-posts-fr-fr-building-an-ai-dev-workflow":1112,"blog-share-wrapper-fr-fr":1137,"next-steps-fr-fr":1147},{"id":4,"title":5,"authors":6,"body":8,"category":387,"date":388,"description":389,"extension":390,"externalUrl":391,"faq":391,"featured":392,"heroImage":393,"meta":394,"navigation":395,"path":396,"seo":397,"slug":400,"stem":401,"tags":402,"template":404,"updatedDate":391,"__hash__":405},"blogPosts/fr-fr/blog/building-an-ai-dev-workflow.md","Du chaos au contexte : comment construire un workflow de développement assisté par l'IA",[7],"Gregory Havenga",{"type":9,"value":10,"toc":375},"minimark",[11,23,26,41,64,67,72,75,82,88,101,107,132,138,142,145,148,151,157,160,166,181,185,188,207,210,213,222,245,248,252,259,262,265,272,275,279,282,285,288,291,294,298,301,304,307,310,313,317,320,323,338,341,345,348,351,354,357,360],[12,13,14,15,22],"p",{},"Il existe un sentiment de frustration particulier qui survient lorsqu'on demande à un assistant d'IA d'effectuer la même correction à plusieurs reprises au cours d'une même session. Les ",[16,17,21],"a",{"href":18,"rel":19,"title":20},"https://about.gitlab.com/fr-fr/blog/large-language-model/",[],"Qu'est-ce qu'un grand modèle de langage ?","grands modèles de langage (LLM)"," modernes vous permettent de travailler avec l'apprenti le plus enthousiaste que vous ayez jamais eu. Cependant, cet apprenti souffre également d'amnésie. Il faut constamment se répéter : « Oui, je veux vraiment que mes messages de commit soient formatés de cette manière, nous en avons déjà parlé trois fois. »",[12,24,25],{},"Vous avez peut-être eu aussi des difficultés à orchestrer plusieurs sessions d'IA en parallèle, pendant lesquelles l'IA résout les mêmes problèmes et efface son travail d'une session à l'autre.",[12,27,28,29,34,35,40],{},"Ces frustrations m'ont conduit sur la voie de l'itération. J'ai travaillé sur les premières versions de deux fonctionnalités d'IA de GitLab : ",[16,30,33],{"href":31,"rel":32},"https://docs.gitlab.com/ee/user/application_security/analyze/duo/",[],"Explain this vulnerability"," et ",[16,36,39],{"href":37,"rel":38},"https://docs.gitlab.com/ee/user/application_security/vulnerabilities/#vulnerability-resolution",[],"Resolve this vulnerability",". Elles me semblaient rudimentaires à l'époque, et j'en attendais davantage.",[12,42,43,44,50,51,56,57,63],{},"L'",[16,45,49],{"href":46,"rel":47,"title":48},"https://about.gitlab.com/fr-fr/topics/agentic-ai/",[],"Qu'est-ce que l'IA agentique ?","IA agentique"," a répondu à cette attente. Au lieu de suggestions ponctuelles à créer via un prompt puis à coller manuellement, un agent pouvait lire le code source, effectuer la modification et exécuter les tests de manière autonome. Il accomplissait le travail au lieu de simplement fournir des conseils. À partir de là, je suis passé par les agents personnalisés de GitLab Duo, les intégrations VS Code, puis ",[16,52,55],{"href":53,"rel":54},"https://opencode.ai",[],"OpenCode",", un agent open source qui se décrit comme vous aidant à « écrire du code dans votre terminal, votre ",[16,58,62],{"href":59,"rel":60,"title":61},"https://about.gitlab.com/fr-fr/blog/what-is-an-ide/",[],"Qu'est-ce qu'un IDE ?","IDE"," ou votre bureau ».",[12,65,66],{},"Au fil du temps, j'ai identifié ce qui fonctionne pour moi. Les assistants de codage basés sur l'IA sont véritablement révolutionnaires, mais ils ont besoin de votre instinct d'ingénieur pour les guider. Ils amplifient aussi bien les bonnes décisions que les mauvaises, c'est pourquoi la direction donnée est essentielle. Les outils continueront d'évoluer, mais voici ce qui a amélioré mon quotidien d'ingénieur jusqu'à présent.",[68,69,71],"h2",{"id":70},"un-workflow-dia-optimisé","Un workflow d'IA optimisé",[12,73,74],{},"Avant d'entrer dans le vif du sujet, il vaut la peine de montrer à quoi ressemble concrètement un workflow d'IA optimisé.",[12,76,77,81],{},[78,79,80],"strong",{},"La priorité me revient."," Au démarrage d'une session, l'IA charge mes sessions actives, les blocages non résolus, les directives en vigueur et les décisions récentes. Elle récupère ensuite mes tâches GitLab, mes merge requests actives et les epics suivis, en les présentant dans l'ordre de priorité que j'ai défini : les éléments en attente depuis longtemps (ceux qui passent entre les mailles du filet), les demandes de revue de mes collègues (pour ne pas les bloquer), les questions auxquelles je dois répondre, mes propres merge requests bloquées, puis tout le reste. Je ne passe plus de temps à déterminer ce que je dois faire ; le contexte vient à moi.",[12,83,84,87],{},[78,85,86],{},"Le paradigme de la concentration a changé."," Le développement logiciel exigeait traditionnellement des heures de concentration intense et ininterrompue pour accomplir une tâche significative. Ce n'est plus le cas. En l'espace de 15 ou 30 minutes, je peux demander ce qui se trouve en tête de file, laisser l'IA charger le contexte de cet élément (décisions antérieures, blocages, procédures pertinentes) et commencer à déléguer le codage et les tests. L'IA me met à niveau presque instantanément, sans que j'aie à reconstruire mentalement le contexte à partir de zéro.",[12,89,90,93,94,100],{},[78,91,92],{},"Il est possible de travailler sur plusieurs merge requests en parallèle."," J'utilise des arbres de travail ",[16,95,99],{"href":96,"rel":97,"title":98},"https://about.gitlab.com/fr-fr/blog/what-is-git/",[],"Qu'est-ce que Git ?","Git"," avec des bases de données de test isolées pour que les sessions d'IA travaillent simultanément sur plusieurs merge requests. Chaque arbre de travail dispose de sa propre session, de sa propre base de données, et un système de réservation empêche les sessions de se gêner mutuellement. L'IA exécute les tests, s'assure que le code fonctionne, et je vérifie l'exactitude du résultat.",[12,102,103,106],{},[78,104,105],{},"Les tâches récurrentes sont transformées en procédures."," L'IA gère les mises à jour de statut hebdomadaires d'un epic prioritaire que je suis : elle récupère l'état actuel depuis GitLab, le compare à celui de la semaine précédente pour calculer les deltas, et rédige la mise à jour avec les indicateurs de progression. La procédure est documentée dans mes directives afin que n'importe quelle session puisse l'exécuter de manière cohérente.",[12,108,109,112,113,118,119,124,125,131],{},[78,110,111],{},"L'efficacité des tokens est importante."," J'ai contribué à améliorer l'",[16,114,117],{"href":115,"rel":116},"https://docs.gitlab.com/api/rest/",[],"API REST et GraphQL"," de GitLab et le ",[16,120,123],{"href":121,"rel":122},"https://gitlab.com/vglafirov/opencode-gitlab-plugin",[],"plug-in OpenCode GitLab"," pour réduire la surcharge contextuelle, et j'ai construit un serveur local de workflow utilisant le ",[16,126,130],{"href":127,"rel":128,"title":129},"https://about.gitlab.com/fr-fr/topics/ai/model-context-protocol/",[],"Qu'est-ce que le Model Context Protocol ?","Model Context Protocol (MCP)"," qui encode les modèles courants. Au lieu que l'IA reconstitue à chaque fois la manière de procéder, elle appelle un outil optimisé qui gère la collecte de données, et laisse le raisonnement au LLM. Les réponses sont ainsi plus rapides, et la consommation de tokens reste maîtrisée.",[12,133,134,137],{},[78,135,136],{},"La délégation active est le modèle sous-jacent."," Je conserve le contexte principal et l'alignement stratégique pendant que l'IA exécute des tâches spécifiques. Avant de travailler sur une merge request, l'IA la revendique pour éviter les conflits, charge son historique depuis la mémoire et vérifie les directives pertinentes. Je reste responsable de la direction ; l'IA maintient la vélocité d'exécution.",[68,139,141],{"id":140},"rédigez-des-directives-précises","Rédigez des directives précises",[12,143,144],{},"Chaque session repart de zéro. Sans intervention de votre part, vous devrez réexpliquer les mêmes préférences, les mêmes conventions et les mêmes particularités de votre code source.",[12,146,147],{},"La solution réside dans des directives explicites et persistantes. Les outils d'IA agentiques ont commencé à s'aligner sur les fichiers de configuration AGENTS.md qui se chargent au démarrage. Vous avez besoin de directives, mais celles-ci doivent être spécifiques.",[12,149,150],{},"Une instruction vague comme « fais attention aux commentaires » ne fonctionne pas. L'IA en prendra note, puis fera ce qu'elle avait prévu de faire de toute façon. Privilégiez des directives précises :",[152,153,154],"blockquote",{},[12,155,156],{},"« Vérifie TOUJOURS que les identifiants utilisateur existent avant de publier des commentaires en leur nom. ARRÊTE-TOI et demande confirmation en cas de doute. »",[12,158,159],{},"Les mots en majuscules ne servent pas uniquement à mettre l'accent : ils servent à inciter l'IA à respecter davantage les instructions.",[12,161,162,165],{},[78,163,164],{},"Modèle à appliquer :"," lorsque l'outil d'IA commet une erreur, ne vous contentez pas de la corriger. Demandez-lui quelle directive aurait permis d'éviter cette erreur. Engagez ce dialogue, puis demandez-lui d'en prendre note pour la prochaine fois. Au fil du temps, vous constituez un ensemble d'instructions adaptées à votre workflow réel, et non à des bonnes pratiques hypothétiques.",[12,167,168,169,174,175,180],{},"Mon ",[16,170,173],{"href":171,"rel":172},"https://gitlab.com/ghavenga/agents-config",[],"dépôt dédié à la configuration des agents"," contenait auparavant plus d'une douzaine de fichiers de configuration spécialisés issus de cette démarche : directives de revue de code, workflows de merge request, procédures de revue de base de données et normes de rédaction de commentaires. Je répétais suffisamment souvent ces tâches pour qu'il soit judicieux de consigner des directives dans des fichiers et de laisser l'IA les exécuter de manière cohérente. Le système de mémoire que je décris plus loin dans cet article a allégé cette approche ; ces directives sont désormais stockées dans une mémoire consultable plutôt que dans des fichiers statiques. Le dépôt contient maintenant des exemples concrets et un ",[16,176,179],{"href":177,"rel":178},"https://gitlab.com/ghavenga/agents-config/-/blob/master/USAGE-GUIDE.md",[],"guide d'utilisation"," qui explique ma manière de travailler au quotidien.",[68,182,184],{"id":183},"les-sessions-parallèles-nécessitent-des-mécanismes-de-coordination","Les sessions parallèles nécessitent des mécanismes de coordination",[12,186,187],{},"Exécuter plusieurs sessions d'IA simultanément peut être efficace, à condition de bien les gérer. Trois terminaux, trois assistants, trois workflows parallèles. Mais sans coordination, vous rencontrerez probablement des problèmes bien connus :",[189,190,191,195,198,201,204],"ul",{},[192,193,194],"li",{},"Des sessions modifient les mêmes fichiers sans savoir que l'autre existe",[192,196,197],{},"Plusieurs sessions travaillent sur le même élément (en supposant que vous ayez un moyen de revendiquer le travail, ce qui n'est probablement pas encore le cas)",[192,199,200],{},"Des décisions contradictoires sont prises de manière isolée",[192,202,203],{},"Des sessions effacent le travail des autres, ou effectuent allègrement des commits avec leurs propres modifications dans des merge requests sans rapport",[192,205,206],{},"Des efforts sont dupliqués parce qu'aucune session ne sait ce que l'autre a fait",[12,208,209],{},"Si vous avez déjà fait de la programmation concurrente, vous reconnaîtrez ces problèmes classiques de coordination. Les solutions sont similaires : vous avez besoin de primitives pour revendiquer le travail, suivre l'état et partager le contexte.",[12,211,212],{},"Ma première solution consistait en des notes de travail sous forme de fichiers. L'approche fonctionnait, mais les fichiers ne pouvaient pas être consultés, n'étaient pas liés au travail qu'ils décrivaient et ne persistaient pas correctement d'un jour à l'autre. J'avais besoin de faire remonter automatiquement le contexte pertinent.",[12,214,215,216,221],{},"Cela m'a conduit à développer ",[16,217,220],{"href":218,"rel":219},"https://gitlab.com/ghavenga/opencode-memory",[],"opencode-memory",", un système de mémoire sémantique persistante. L'architecture reflète les solutions aux problèmes que je résolvais continuellement par directive : recherche hybride (mots-clés pour les termes exacts, sémantique pour la recherche approximative), coordination des sessions via la revendication/libération, et contexte de démarrage qui fait remonter automatiquement les directives critiques.",[12,223,224,225,230,231,237,238,244],{},"Le système a considérablement évolué depuis sa première itération. Il s'agit désormais d'un graphe de connaissances complet avec plus de 760 000 entités de code indexées, plus de 15 000 éléments de mémoire incluant des résumés de conversations, et 27 000 liens entre eux. Lorsque GitLab a annoncé ",[16,226,229],{"href":227,"rel":228},"https://docs.gitlab.com/orbit/",[],"GitLab Orbit",", un graphe de connaissances qui indexe l'ensemble de votre ",[16,232,236],{"href":233,"rel":234,"title":235},"https://about.gitlab.com/fr-fr/blog/what-is-sdlc/",[],"Qu'est-ce que le SDLC ?","cycle de développement logiciel (SDLC)",", il correspondait presque exactement à la direction que j'avais prise localement. GitLab Orbit répond à des questions transversales au SDLC comme « qu'est-ce qui échoue si je modifie ce service ? » en connectant le code, les merge requests et les ",[16,239,243],{"href":240,"rel":241,"title":242},"https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/",[],"Qu'est-ce qu'un pipeline CI/CD ?","pipelines CI/CD",". Mon module de mémoire indexait déjà mon code source localement pour permettre une consultation rapide ; plutôt que de réinventer une vue d'ensemble, j'ai intégré GitLab Orbit pour l'enrichir. La mémoire locale conserve le contexte au niveau de la session (décisions, blocages, procédures), et GitLab Orbit ajoute le graphe SDLC étendu de GitLab. L'un des principaux avantages est que, lorsque je mentionne une fonction dans une conversation, l'IA sait exactement où elle se trouve sans que j'aie à la chercher.",[12,246,247],{},"Les décisions antérieures remontent également automatiquement au démarrage d'une merge request. Les blocages persistent jusqu'à leur résolution explicite. Les procédures définies une fois sont disponibles indéfiniment. Les rappels s'activent automatiquement là où ils sont pertinents. Et le graphe combiné (ma mémoire locale associée aux données SDLC de GitLab Orbit) répond à ces questions bien plus efficacement qu'une simple recherche en texte brut.",[68,249,251],{"id":250},"vérifiez-avant-de-vous-lancer","Vérifiez avant de vous lancer",[12,253,254,255,258],{},"Aucune idée n'est unique. Si vous recherchez des systèmes de mémoire pour les assistants de codage d'IA, vous obtiendrez des dizaines d'approches. Quelqu'un a probablement déjà mis au point ce à quoi vous pensiez, dans un élan de productivité, trois semaines avant que vous y pensiez. Il existe même un paquet PyPI appelé ",[256,257,220],"code",{},", qui est très similaire à ce que j'ai développé, mais avec un backend de base de données vectorielle différent.",[12,260,261],{},"Construire ce dont vous avez besoin est désormais si simple que de nombreuses personnes arrivent indépendamment à des solutions similaires. Vous pouvez passer d'une idée à un prototype fonctionnel en une semaine.",[12,263,264],{},"Je vous recommande de vérifier si une solution existe déjà avant de lancer un nouveau projet. Si celle-ci résout presque votre problème, demandez-vous s'il ne vaudrait pas mieux y contribuer plutôt que de créer une nouvelle variante. Ce conseil est aussi vieux que le développement logiciel lui-même ; l'IA ne fait que le rendre cent fois plus pertinent.",[12,266,267,268,271],{},"Au départ, mon système de mémoire n'offrait guère plus que les solutions existantes. C'est seulement après des mois d'itération et une intégration poussée avec GitLab que je considère qu'il se justifie davantage. J'ai au moins contribué à améliorer le ",[16,269,123],{"href":121,"rel":270},[]," plutôt que de le dupliquer, car c'est là que mes modifications pouvaient aider le plus grand nombre de personnes.",[12,273,274],{},"La question qu'il convient de se poser est la suivante : ai-je pris la peine de vérifier si un outil existait déjà et résolvait ce problème, ou l'IA a-t-elle rendu le codage si facile que j'ai ignoré toute forme de vérification préalable ?",[68,276,278],{"id":277},"de-la-récupération-active-au-contexte-passif","De la récupération active au contexte passif",[12,280,281],{},"La recherche vectorielle en mémoire m'a immédiatement donné satisfaction. J'ai commencé à l'utiliser le jour même où je l'ai mise au point. Récupérer des détails utiles est devenu trivial. Le défi suivant était d'amener l'IA à savoir qu'un élément valait la peine d'être mémorisé implicitement, sans que je le lui demande à chaque fois.",[12,283,284],{},"J'avais fait des progrès : j'avais une mémoire qui utilisait efficacement des tokens pour des procédures spécifiques et un corpus croissant de souvenirs intégrés. Mais j'avais l'impression de simplement reconstruire AGENTS.md en y ajoutant des fonctionnalités sophistiquées. J'avais besoin d'un système plus intelligent.",[12,286,287],{},"La solution résidait dans l'injection proactive de contexte. Au lieu que l'IA appelle explicitement des outils de rappel, le système recherche désormais automatiquement les souvenirs pertinents avant chaque interaction. Lorsque je mentionne un numéro de merge request, les décisions antérieures pertinentes apparaissent dans le contexte sans que je le demande. Lorsque je suis sur le point de rédiger un commentaire, les consignes de rédaction s'affichent automatiquement. La plupart du temps, du moins. C'est encore un travail en cours, mais je l'affine un peu plus chaque jour.",[12,289,290],{},"Ce passage de la récupération active à la récupération passive a fait une réelle différence. Sur 30 jours, le système a atteint environ 91 % d'efficacité dans la remontée automatique du contexte pertinent. Les sessions avec injection proactive n'ont nécessité en moyenne aucun appel explicite de récupération, contre 17 sans elle. Ce n'est pas parfait ; il y a encore des moments où je dois demander à l'IA de se souvenir d'un élément ou de s'améliorer. Mais c'est un processus itératif, et il progresse.",[12,292,293],{},"Les autres échecs se sont révélés instructifs. Beaucoup se sont produits pendant que j'itérais sur le fonctionnement du chargement du contexte de démarrage. La solution a consisté à mettre en place une porte de démarrage : un déclencheur minimal dans le contexte de démarrage qui indique à l'IA de faire une pause, puis de charger les directives avant toute autre action. Même avec l'injection proactive, l'IA a parfois besoin qu'on lui dise de s'arrêter et de réfléchir d'abord.",[68,295,297],{"id":296},"ce-que-lia-ne-sait-toujours-pas-faire","Ce que l'IA ne sait toujours pas faire",[12,299,300],{},"L'IA peut exécuter des procédures de manière raisonnablement cohérente, à condition que ces procédures s'inscrivent dans un contexte. Elle peut améliorer ses propres instructions, si on lui demande d'y réfléchir. Elle peut assurer la coordination entre différentes sessions, si on lui fournit les éléments de base pour le faire.",[12,302,303],{},"Mais l'IA ne remarque pas les choses implicitement. Elle ne sent pas qu'une procédure est maladroite. Elle ne reconnaît pas que vous avez rencontré ce même problème trois fois cette semaine et ne dispose pas de cette capacité de reconnaissance de modèles qui s'acquiert après des années passées à déboguer des systèmes en production à 2 h du matin.",[12,305,306],{},"Le juste équilibre semble consister à utiliser l'IA pour éliminer le travail fastidieux, fournir le bon contexte au bon moment et surveiller ce que l'IA laisse passer. Vous assurez la supervision stratégique et la reconnaissance de modèles. L'IA assure une exécution infatigable et fait preuve d'enthousiasme pour les tâches que nous trouvions autrefois fastidieuses et chronophages. C'est extrêmement valorisant.",[12,308,309],{},"J'ai vu l'IA développer avec enthousiasme des fonctionnalités tout en introduisant des bogues de concurrence dans ses propres outils, se bloquant elle-même avec des opérations synchrones. Elle n'en avait aucune idée. Avec le recul, c'était un problème d'alignement. J'aurais pu planifier avec elle plus tôt pour garantir un bon modèle asynchrone. J'espérais qu'elle construirait un meilleur modèle dès le départ, mais j'étais optimiste. Il m'a suffi d'une seule redirection pour signaler la faille architecturale, et le problème a été résolu en quelques minutes.",[12,311,312],{},"C'est toujours le même schéma : l'humain identifie le problème, l'IA exécute la correction rapidement. J'aurais pu le faire moi-même, simplement pas aussi vite. L'IA ne peut pas encore détecter les méta-inefficacités, bien que je sois sûr que quelqu'un soit en train d'écrire un agent dédié à ce problème.",[68,314,316],{"id":315},"investissez-dans-vos-outils","Investissez dans vos outils",[12,318,319],{},"Travailler de cette façon implique d'accepter un changement constant. Mon quotidien a complètement changé, et à plusieurs reprises, en l'espace de quelques mois. Cette situation est comparable à la façon dont les workflows ont lentement évolué au fil des années, au début de ma carrière.",[12,321,322],{},"N'essayez pas de vous installer dans une « nouvelle normalité ». Elle changera. Les outils qui nous aident aujourd'hui pourraient être obsolètes la semaine prochaine au rythme où nous avançons.",[12,324,325,326,331,332,337],{},"Privilégiez plutôt l'amélioration continue de vos outils eux-mêmes. Le workflow qui vous aide à travailler plus vite devient alors un sujet d'optimisation. J'ai contribué à de nouveaux points de terminaison API pour GitLab, notamment les ",[16,327,330],{"href":328,"rel":329},"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/230537",[],"téléchargements de fichiers pour les groupes"," et les ",[16,333,336],{"href":334,"rel":335},"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/220801",[],"mutations GraphQL pour les workflows de merge request",", précisément parce que j'en avais besoin pour le développement assisté par l'IA.",[12,339,340],{},"C'est une méta-boucle : de meilleurs outils mènent à une plus grande productivité, ce qui crée plus de capacité pour améliorer les outils.",[68,342,344],{"id":343},"conclusion","Conclusion",[12,346,347],{},"Le code est désormais un produit banalisé. Nous ne sommes plus payés principalement pour l'écrire. Nous sommes payés pour savoir quel code devrait exister, pour reconnaître quand une approche est fondamentalement défaillante, pour repérer les inefficacités avant qu'elles ne deviennent des problèmes, et pour fournir la direction qui transforme une capacité brute en résultats utiles.",[12,349,350],{},"Les outils continueront d'évoluer, mais ce principe fondamental ne changera pas : l'IA amplifie le jugement humain. Elle ne devrait pas le remplacer, bien qu'elle essaie si vous la laissez faire, généralement au détriment de la qualité et de la stabilité du code. Le « vibe coding » peut vous emmener loin, mais même avec les revues d'IA les plus approfondies, il existe une assurance de qualité et une attention soigneuse à la conception que je n'ai pas encore vu l'IA fournir seule.",[12,352,353],{},"Plusieurs collègues chez GitLab ont commencé à utiliser des variantes de ce workflow, et les voir vivre ces mêmes déclics a validé mon ressenti. L'un d'eux m'a récemment écrit : « J'ai remarqué une véritable amélioration dans mes sessions depuis que j'utilise le plug-in », en référence au module opencode-memory. Les questions passent de « comment faire en sorte que l'IA fasse X » à « comment donner à l'IA le contexte dont elle a besoin pour faire X correctement ». C'est là le véritable résultat : non pas les outils eux-mêmes, mais la prise de conscience que le contexte constitue le goulot d'étranglement.",[12,355,356],{},"Plus vous devenez habile dans cet exercice, plus vous commencez à réaliser que vous êtes peut-être vous-même le goulot d'étranglement. Mais c'est parfois aussi l'indication que vos propres processus pourraient être encore améliorés. Je n'ai pas l'impression d'avoir atteint mon maximum, loin de là. Différentes tâches bénéficient d'approches différentes, même assistées par l'IA, et il reste encore beaucoup d'expérimentations à mener.",[12,358,359],{},"Une dernière remarque sur le rythme : le système de mémoire a enregistré 143 commits en moins d'un mois. Il est construit sur MCP, ce qui signifie qu'il fonctionne avec n'importe quel agent qui utilise ce protocole : pas seulement OpenCode, mais aussi Claude CLI, Cursor et d'autres. Au moment où vous lirez ceci, j'aurai probablement ajouté des fonctionnalités auxquelles je n'ai pas encore pensé. C'est la nature même du travail dans ce domaine à l'heure actuelle. Les outils évoluent plus vite que la documentation.",[12,361,362],{},[363,364,365,366,370,371,374],"em",{},"Les outils mentionnés dans cet article sont open source : ",[16,367,369],{"href":171,"rel":368},[],"agents-config"," pour les configurations des directives d'IA, et ",[16,372,220],{"href":218,"rel":373},[]," pour la mémoire de session persistante.",{"title":376,"searchDepth":377,"depth":377,"links":378},"",2,[379,380,381,382,383,384,385,386],{"id":70,"depth":377,"text":71},{"id":140,"depth":377,"text":141},{"id":183,"depth":377,"text":184},{"id":250,"depth":377,"text":251},{"id":277,"depth":377,"text":278},{"id":296,"depth":377,"text":297},{"id":315,"depth":377,"text":316},{"id":343,"depth":377,"text":344},"engineering","2026-09-14","Découvrez un retour d'expérience de l'itération sur les directives d'IA, la création d'un système de mémoire et ce que l'IA ne peut toujours pas remplacer dans le développement logiciel.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png",{},true,"/fr-fr/blog/building-an-ai-dev-workflow",{"title":398,"description":399},"Comment mettre en place un workflow de développement d'IA ?","Les enseignements tirés de l'itération sur les directives d'IA, la création d'un système de mémoire et ce que l'IA ne remplace pas encore dans le développement logiciel.","building-an-ai-dev-workflow","fr-fr/blog/building-an-ai-dev-workflow",[403],"AI","BlogPost","frx0LF0n1Ksq6UYkrimlCqFVFeHe0CqlI_PTMo27MbI",{"logo":407,"freeTrial":412,"sales":417,"login":422,"items":427,"search":758,"minimal":793,"duo":812,"switchNav":821,"pricingDeployment":832},{"config":408},{"href":409,"dataGaName":410,"dataGaLocation":411},"/fr-fr/","gitlab logo","header",{"text":413,"config":414},"Commencer un essai gratuit",{"href":415,"dataGaName":416,"dataGaLocation":411},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":418,"config":419},"Demander une démo",{"href":420,"dataGaName":421,"dataGaLocation":411},"/request-a-demo/","sales",{"text":423,"config":424},"Connexion",{"href":425,"dataGaName":426,"dataGaLocation":411},"https://gitlab.com/users/sign_in/","sign in",[428,514,602,607,682,736],{"text":429,"left":395,"config":430,"menu":432},"Plateforme",{"dataNavLevelOne":431},"platform",{"type":433,"link":434,"columns":438,"feature":503},"lists",{"text":435,"config":436},"Explorer la plateforme",{"href":437,"dataGaName":431,"dataGaLocation":411},"/fr-fr/platform/",[439,462,485],{"title":440,"items":441},"Exécution et workflows",[442,447,452,457],{"text":443,"config":444},"CI/CD",{"href":445,"dataGaLocation":411,"dataGaName":446},"/fr-fr/solutions/continuous-integration/","ci/cd",{"text":448,"config":449},"Gestion du code source",{"href":450,"dataGaLocation":411,"dataGaName":451},"/fr-fr/solutions/source-code-management/","source code management",{"text":453,"config":454},"Méthode de livraison selon les principes Agile",{"href":455,"dataGaLocation":411,"dataGaName":456},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":458,"config":459},"Gestion des artefacts",{"href":460,"dataGaLocation":411,"dataGaName":461},"/fr-fr/artifact-central/","artifact management",{"title":463,"items":464},"Sécurité et gouvernance",[465,470,475,480],{"text":466,"config":467},"Test de sécurité des applications",{"href":468,"dataGaLocation":411,"dataGaName":469},"/fr-fr/solutions/application-security-testing/","application security testing",{"text":471,"config":472},"Gouvernance et conformité",{"href":473,"dataGaLocation":411,"dataGaName":474},"/fr-fr/solutions/software-compliance/","governance and compliance",{"text":476,"config":477},"Gestion des secrets",{"href":478,"dataGaLocation":411,"dataGaName":479},"/fr-fr/gitlab-secrets-manager/","secrets management",{"text":481,"config":482},"Sécurité de la chaîne d'approvisionnement",{"href":483,"dataGaLocation":411,"dataGaName":484},"/fr-fr/solutions/supply-chain/","supply chain security",{"title":486,"items":487},"Contexte et IA",[488,493,498],{"text":489,"config":490},"Orchestration agentique",{"href":491,"dataGaLocation":411,"dataGaName":492},"/fr-fr/gitlab-duo-agent-platform/","agentic orchestration",{"text":494,"config":495},"Graphe de contexte",{"href":496,"dataGaLocation":411,"dataGaName":497},"/fr-fr/gitlab-orbit/","context graph",{"text":499,"config":500},"Visibilité et mesures",{"href":501,"dataGaLocation":411,"dataGaName":502},"/fr-fr/solutions/visibility-measurement/","visibility and measurement",{"config":504,"title":507,"text":508,"link":509},{"background":505,"textColor":506},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1790185102/o7dn32anqcb6z8dgd3as.jpg')","#000","Pourquoi utiliser GitLab","Une plateforme unique offrant une rapidité maîtrisée tout au long du cycle de développement logiciel.",{"text":510,"config":511},"En savoir plus",{"href":512,"dataGaName":513,"dataGaLocation":411},"/fr-fr/why-gitlab/","why gitlab",{"text":515,"left":395,"config":516,"menu":518},"Solutions",{"dataNavLevelOne":517},"solutions",{"type":433,"link":519,"columns":523,"feature":593},{"text":520,"config":521},"Voir toutes les solutions",{"href":522,"dataGaName":517,"dataGaLocation":411},"/fr-fr/solutions/",[524,542,560],{"title":525,"items":526},"Résultats",[527,532,537],{"text":528,"config":529},"Modernisation DevOps",{"href":530,"dataGaLocation":411,"dataGaName":531},"/fr-fr/assessments/devops-modernization-assessment/","devops modernization",{"text":533,"config":534},"Modernisation de la sécurité",{"href":535,"dataGaLocation":411,"dataGaName":536},"/fr-fr/assessments/security-modernization-assessment/","security modernization",{"text":538,"config":539},"Modernisation de l'IA",{"href":540,"dataGaLocation":411,"dataGaName":541},"/fr-fr/assessments/ai-modernization-assessment/","ai modernization",{"title":543,"items":544},"Par taille",[545,550,555],{"text":546,"config":547},"Entreprises",{"href":548,"dataGaLocation":411,"dataGaName":549},"/fr-fr/enterprise/","enterprise",{"text":551,"config":552},"PME",{"href":553,"dataGaLocation":411,"dataGaName":554},"/fr-fr/small-business/","small business",{"text":556,"config":557},"Start-up",{"href":558,"dataGaLocation":411,"dataGaName":559},"/fr-fr/solutions/startups/","startups",{"title":561,"items":562},"Secteurs",[563,568,573,578,583,588],{"text":564,"config":565},"Services financiers",{"href":566,"dataGaLocation":411,"dataGaName":567},"/fr-fr/solutions/finance/","financial services",{"text":569,"config":570},"Secteur public",{"href":571,"dataGaLocation":411,"dataGaName":572},"/fr-fr/solutions/public-sector/","public sector",{"text":574,"config":575},"Télécommunications",{"href":576,"dataGaLocation":411,"dataGaName":577},"/fr-fr/solutions/telecommunications/","telecommunications",{"text":579,"config":580},"Automobile",{"href":581,"dataGaLocation":411,"dataGaName":582},"/fr-fr/solutions/automotive/","automotive",{"text":584,"config":585},"Éducation",{"href":586,"dataGaLocation":411,"dataGaName":587},"/fr-fr/solutions/education/","education",{"text":589,"config":590},"Aérospatiale",{"href":591,"dataGaLocation":411,"dataGaName":592},"/fr-fr/solutions/aerospace/","aerospace",{"config":594,"title":595,"text":596,"link":597},{"background":505,"textColor":506},"GitLab Security Standard","Découvrez comment renforcer votre usine logicielle et permettre aux agents d'IA de gagner en autonomie sans sacrifier la sécurité.",{"text":598,"config":599},"Découvrir GitLab Security Standard",{"href":600,"dataGaName":601,"dataGaLocation":411},"/fr-fr/gitlab-security-standard/","gitlab security standard",{"text":603,"config":604},"Tarifs",{"href":605,"dataGaName":606,"dataGaLocation":411,"dataNavLevelOne":606},"/fr-fr/pricing/","pricing",{"text":608,"config":609,"menu":611},"Ressources",{"dataNavLevelOne":610},"resources",{"type":433,"link":612,"columns":616,"feature":673},{"text":613,"config":614},"Afficher toutes les ressources",{"href":615,"dataGaName":610,"dataGaLocation":411},"/fr-fr/resources/",[617,645],{"title":618,"items":619},"Découvrir",[620,625,630,635,640],{"text":621,"config":622},"Documentation",{"href":623,"dataGaName":624,"dataGaLocation":411},"https://docs.gitlab.com/","docs",{"text":626,"config":627},"GitLab University",{"href":628,"dataGaName":629,"dataGaLocation":411},"https://university.gitlab.com/","university",{"text":631,"config":632},"Démos",{"href":633,"dataGaName":634,"dataGaLocation":411},"/fr-fr/gitlab-technical-demo-series/","demo series",{"text":636,"config":637},"Centre de démos",{"href":638,"dataGaName":639,"dataGaLocation":411},"/fr-fr/demo-hub/","demo hub",{"text":641,"config":642},"Services",{"href":643,"dataGaName":644,"dataGaLocation":411},"/fr-fr/services/","services",{"title":646,"items":647},"Connecter",[648,653,658,663,668],{"text":649,"config":650},"Blog",{"href":651,"dataGaName":652,"dataGaLocation":411},"/fr-fr/blog/","blog",{"text":654,"config":655},"Communauté",{"href":656,"dataGaName":657,"dataGaLocation":411},"/community/","community",{"text":659,"config":660},"Clients",{"href":661,"dataGaName":662,"dataGaLocation":411},"/fr-fr/customers/","customers",{"text":664,"config":665},"Partenaires",{"href":666,"dataGaName":667,"dataGaLocation":411},"/fr-fr/partners/","partners",{"text":669,"config":670},"Événements",{"href":671,"dataGaName":672,"dataGaLocation":411},"/events/","events",{"config":674,"title":675,"text":676,"link":677},{"background":505,"textColor":506},"Nouveautés de GitLab","Découvrez les dernières fonctionnalités et améliorations.",{"text":678,"config":679},"Lire les articles les plus récents",{"href":680,"dataGaName":681,"dataGaLocation":411},"/fr-fr/whats-new/","whats new",{"text":683,"config":684,"menu":686},"Société",{"dataNavLevelOne":685},"company",{"type":433,"columns":687},[688],{"items":689},[690,695,701,706,711,716,721,726,731],{"text":691,"config":692},"À propos",{"href":693,"dataGaName":694,"dataGaLocation":411},"/fr-fr/company/","about",{"text":696,"config":697,"footerGa":700},"Carrières",{"href":698,"dataGaName":699,"dataGaLocation":411},"/jobs/","jobs",{"dataGaName":699},{"text":702,"config":703},"Presse",{"href":704,"dataGaName":705,"dataGaLocation":411},"/press/","press",{"text":707,"config":708},"Manuel",{"href":709,"dataGaName":710,"dataGaLocation":411},"https://handbook.gitlab.com/","handbook",{"text":712,"config":713},"Leadership",{"href":714,"dataGaName":715,"dataGaLocation":411},"/company/team/e-group/","leadership",{"text":717,"config":718},"Relations avec les investisseurs",{"href":719,"dataGaName":720,"dataGaLocation":411},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":722,"config":723},"Trust Center",{"href":724,"dataGaName":725,"dataGaLocation":411},"/fr-fr/security/","trust center",{"text":727,"config":728},"Centre pour la transparence de l'IA",{"href":729,"dataGaName":730,"dataGaLocation":411},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":732,"config":733},"Newsletter",{"href":734,"dataGaName":735,"dataGaLocation":411},"/company/contact/#contact-forms","newsletter",{"text":737,"config":738,"menu":739},"Nous contacter",{"dataNavLevelOne":685},{"type":433,"columns":740},[741],{"items":742},[743,748,753],{"text":744,"config":745},"Contacter l'équipe commerciale",{"href":746,"dataGaName":747,"dataGaLocation":411},"/fr-fr/sales/","talk to sales",{"text":749,"config":750},"Assistance GitLab",{"href":751,"dataGaName":752,"dataGaLocation":411},"https://support.gitlab.com/hc/en-us","support portal",{"text":754,"config":755},"Portail clients GitLab",{"href":756,"dataGaName":757,"dataGaLocation":411},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":759,"login":760,"suggestions":767},"Fermer",{"text":761,"link":762},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":763,"config":764},"GitLab.com",{"href":425,"dataGaName":765,"dataGaLocation":766},"search login","search",{"text":768,"default":769},"Suggestions",[770,774,778,780,785,790],{"text":771,"config":772},"GitLab Duo Agent Platform",{"href":491,"dataGaName":773,"dataGaLocation":766},"GitLab Duo Agent Platform",{"text":775,"config":776},"Suggestions de code (IA)",{"href":491,"dataGaName":777,"dataGaLocation":766},"Code Suggestions (AI)",{"text":443,"config":779},{"href":445,"dataGaName":443,"dataGaLocation":766},{"text":781,"config":782},"GitLab sur AWS",{"href":783,"dataGaName":784,"dataGaLocation":766},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":786,"config":787},"GitLab sur Google Cloud",{"href":788,"dataGaName":789,"dataGaLocation":766},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":507,"config":791},{"href":512,"dataGaName":792,"dataGaLocation":766},"Why GitLab?",{"freeTrial":794,"mobileIcon":799,"desktopIcon":804,"secondaryButton":807},{"text":795,"config":796},"Commencer votre essai gratuit",{"href":797,"dataGaName":416,"dataGaLocation":798},"https://gitlab.com/-/trials/new/","nav",{"altText":800,"config":801},"Icône GitLab",{"src":802,"dataGaName":803,"dataGaLocation":798},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":800,"config":805},{"src":806,"dataGaName":803,"dataGaLocation":798},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":808,"config":809},"Commencer",{"href":810,"dataGaName":811,"dataGaLocation":798},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":813,"mobileIcon":817,"desktopIcon":819},{"text":814,"config":815},"En savoir plus sur GitLab Duo",{"href":491,"dataGaName":816,"dataGaLocation":798},"gitlab duo",{"altText":800,"config":818},{"src":802,"dataGaName":803,"dataGaLocation":798},{"altText":800,"config":820},{"src":806,"dataGaName":803,"dataGaLocation":798},{"button":822,"mobileIcon":827,"desktopIcon":829},{"text":823,"config":824},"/switch",{"href":825,"dataGaName":826,"dataGaLocation":798},"#contact","switch",{"altText":800,"config":828},{"src":802,"dataGaName":803,"dataGaLocation":798},{"altText":800,"config":830},{"src":831,"dataGaName":803,"dataGaLocation":798},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":833,"mobileIcon":838,"desktopIcon":840},{"text":834,"config":835},"Retour aux tarifs",{"href":605,"dataGaName":836,"dataGaLocation":798,"icon":837},"back to pricing","GoBack",{"altText":800,"config":839},{"src":802,"dataGaName":803,"dataGaLocation":798},{"altText":800,"config":841},{"src":806,"dataGaName":803,"dataGaLocation":798},{"title":843,"button":844,"config":847},"GitLab Orbit est arrivé : la couche de contexte pour les agents d'IA.",{"text":510,"config":845},{"href":496,"dataGaName":846,"dataGaLocation":411},"orbit",{"layout":848,"disabled":392},"release",{"data":850},{"text":851,"source":852,"edit":858,"contribute":863,"config":868,"items":873,"minimal":1090},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence.",{"text":853,"config":854},"Afficher le code source de la page",{"href":855,"dataGaName":856,"dataGaLocation":857},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":859,"config":860},"Modifier cette page",{"href":861,"dataGaName":862,"dataGaLocation":857},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":864,"config":865},"Contribuer",{"href":866,"dataGaName":867,"dataGaLocation":857},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":869,"facebook":870,"youtube":871,"linkedin":872},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[874,919,975,1016,1057],{"title":603,"links":875,"subMenu":890},[876,880,885],{"text":877,"config":878},"Voir les forfaits",{"href":605,"dataGaName":879,"dataGaLocation":857},"view plans",{"text":881,"config":882},"GitLab Premium",{"href":883,"dataGaName":884,"dataGaLocation":857},"/fr-fr/pricing/premium/","why premium",{"text":886,"config":887},"GitLab Ultimate",{"href":888,"dataGaName":889,"dataGaLocation":857},"/fr-fr/pricing/ultimate/","why ultimate",[891],{"title":737,"links":892},[893,895,897,899,904,909,914],{"text":744,"config":894},{"href":746,"dataGaName":421,"dataGaLocation":857},{"text":749,"config":896},{"href":751,"dataGaName":752,"dataGaLocation":857},{"text":754,"config":898},{"href":756,"dataGaName":757,"dataGaLocation":857},{"text":900,"config":901},"Statut",{"href":902,"dataGaName":903,"dataGaLocation":857},"https://status.gitlab.com/","status",{"text":905,"config":906},"Conditions d'utilisation",{"href":907,"dataGaName":908,"dataGaLocation":857},"/terms/","terms of use",{"text":910,"config":911},"Politique de confidentialité",{"href":912,"dataGaName":913,"dataGaLocation":857},"/fr-fr/privacy/","privacy statement",{"text":915,"config":916},"Gestion des cookies",{"dataGaName":917,"dataGaLocation":857,"id":918,"isOneTrustButton":395},"cookie preferences","ot-sdk-btn",{"title":429,"links":920,"subMenu":933},[921,923,925,927,929,931],{"text":435,"config":922},{"href":437,"dataGaName":431,"dataGaLocation":857},{"text":489,"config":924},{"href":491,"dataGaName":492,"dataGaLocation":857},{"text":443,"config":926},{"href":445,"dataGaName":446,"dataGaLocation":857},{"text":494,"config":928},{"href":496,"dataGaName":497,"dataGaLocation":857},{"text":476,"config":930},{"href":478,"dataGaName":479,"dataGaLocation":857},{"text":507,"config":932},{"href":512,"dataGaName":513,"dataGaLocation":857},[934],{"title":935,"links":936},"Thèmes",[937,941,946,951,956,961,966,971],{"text":443,"config":938},{"href":939,"dataGaName":940,"dataGaLocation":857},"/fr-fr/topics/ci-cd/","cicd",{"text":942,"config":943},"GitOps",{"href":944,"dataGaName":945,"dataGaLocation":857},"/fr-fr/topics/gitops/","gitops",{"text":947,"config":948},"DevOps",{"href":949,"dataGaName":950,"dataGaLocation":857},"/fr-fr/topics/devops/","devops",{"text":952,"config":953},"Contrôle de version",{"href":954,"dataGaName":955,"dataGaLocation":857},"/fr-fr/topics/version-control/","version control",{"text":957,"config":958},"DevSecOps",{"href":959,"dataGaName":960,"dataGaLocation":857},"/fr-fr/topics/devsecops/","devsecops",{"text":962,"config":963},"Cloud-native",{"href":964,"dataGaName":965,"dataGaLocation":857},"/fr-fr/topics/cloud-native/","cloud native",{"text":967,"config":968},"IA pour la programmation",{"href":969,"dataGaName":970,"dataGaLocation":857},"/fr-fr/topics/devops/ai-for-coding/","ai for coding",{"text":49,"config":972},{"href":973,"dataGaName":974,"dataGaLocation":857},"/fr-fr/topics/agentic-ai/","agentic ai",{"title":515,"links":976},[977,979,981,983,985,987,989,991,993,995,997,999,1001,1004,1008,1012],{"text":528,"config":978},{"href":530,"dataGaName":531,"dataGaLocation":857},{"text":533,"config":980},{"href":535,"dataGaName":536,"dataGaLocation":857},{"text":538,"config":982},{"href":540,"dataGaName":541,"dataGaLocation":857},{"text":564,"config":984},{"href":566,"dataGaName":567,"dataGaLocation":857},{"text":569,"config":986},{"href":571,"dataGaName":572,"dataGaLocation":857},{"text":574,"config":988},{"href":576,"dataGaName":577,"dataGaLocation":857},{"text":579,"config":990},{"href":581,"dataGaName":582,"dataGaLocation":857},{"text":584,"config":992},{"href":586,"dataGaName":587,"dataGaLocation":857},{"text":589,"config":994},{"href":591,"dataGaName":592,"dataGaLocation":857},{"text":546,"config":996},{"href":548,"dataGaName":549,"dataGaLocation":857},{"text":551,"config":998},{"href":553,"dataGaName":554,"dataGaLocation":857},{"text":556,"config":1000},{"href":558,"dataGaName":559,"dataGaLocation":857},{"text":942,"config":1002},{"href":1003,"dataGaName":945,"dataGaLocation":857},"/fr-fr/solutions/gitops/",{"text":1005,"config":1006},"Analyse de la composition logicielle",{"href":483,"dataGaName":1007,"dataGaLocation":857},"software composition analysis",{"text":1009,"config":1010},"Gestion de la chaîne de valeur",{"href":501,"dataGaName":1011,"dataGaLocation":857},"value stream management",{"text":1013,"config":1014},"Toutes les solutions",{"href":522,"dataGaName":1015,"dataGaLocation":857},"all solutions",{"title":608,"links":1017},[1018,1023,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1053],{"text":1019,"config":1020},"Installation",{"href":1021,"dataGaName":1022,"dataGaLocation":857},"/fr-fr/install/","install",{"text":1024,"config":1025},"Guides de démarrage",{"href":1026,"dataGaName":1027,"dataGaLocation":857},"/fr-fr/get-started/","quick setup checklists",{"text":621,"config":1029},{"href":623,"dataGaName":624,"dataGaLocation":857},{"text":626,"config":1031},{"href":628,"dataGaName":629,"dataGaLocation":857},{"text":631,"config":1033},{"href":633,"dataGaName":634,"dataGaLocation":857},{"text":636,"config":1035},{"href":638,"dataGaName":639,"dataGaLocation":857},{"text":641,"config":1037},{"href":643,"dataGaName":644,"dataGaLocation":857},{"text":649,"config":1039},{"href":651,"dataGaName":652,"dataGaLocation":857},{"text":654,"config":1041},{"href":656,"dataGaName":657,"dataGaLocation":857},{"text":659,"config":1043},{"href":661,"dataGaName":662,"dataGaLocation":857},{"text":664,"config":1045},{"href":666,"dataGaName":667,"dataGaLocation":857},{"text":669,"config":1047},{"href":671,"dataGaName":672,"dataGaLocation":857},{"text":732,"config":1049},{"href":734,"dataGaName":735,"dataGaLocation":857},{"text":1051,"config":1052},"Nouveautés",{"href":680,"dataGaName":681,"dataGaLocation":857},{"text":1054,"config":1055},"Toutes les ressources",{"href":615,"dataGaName":1056,"dataGaLocation":857},"all resources",{"title":683,"links":1058},[1059,1061,1063,1065,1067,1069,1071,1073,1075,1080,1085],{"text":691,"config":1060},{"href":693,"dataGaName":685,"dataGaLocation":857},{"text":696,"config":1062},{"href":698,"dataGaName":699,"dataGaLocation":857},{"text":702,"config":1064},{"href":704,"dataGaName":705,"dataGaLocation":857},{"text":707,"config":1066},{"href":709,"dataGaName":710,"dataGaLocation":857},{"text":712,"config":1068},{"href":714,"dataGaName":715,"dataGaLocation":857},{"text":717,"config":1070},{"href":719,"dataGaName":720,"dataGaLocation":857},{"text":722,"config":1072},{"href":724,"dataGaName":725,"dataGaLocation":857},{"text":727,"config":1074},{"href":729,"dataGaName":730,"dataGaLocation":857},{"text":1076,"config":1077},"Développement durable",{"href":1078,"dataGaName":1079,"dataGaLocation":857},"/sustainability/","Sustainability",{"text":1081,"config":1082},"Diversité, inclusion et appartenance (DIB)",{"href":1083,"dataGaName":1084,"dataGaLocation":857},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1086,"config":1087},"Déclaration de transparence sur l'esclavage moderne",{"href":1088,"dataGaName":1089,"dataGaLocation":857},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1091},[1092,1094,1096],{"text":905,"config":1093},{"href":907,"dataGaName":908,"dataGaLocation":857},{"text":915,"config":1095},{"dataGaName":917,"dataGaLocation":857,"id":918,"isOneTrustButton":395},{"text":910,"config":1097},{"href":912,"dataGaName":913,"dataGaLocation":857},[1099],{"id":1100,"title":7,"body":391,"config":1101,"content":1103,"description":391,"extension":1106,"meta":1107,"navigation":395,"path":1108,"seo":1109,"stem":1110,"__hash__":1111},"blogAuthors/en-us/blog/authors/gregory-havenga.yml",{"template":1102},"BlogAuthor",{"name":7,"config":1104},{"headshot":1105},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1787156087/b14eliqrawxplb7bepnc.jpg","yml",{},"/en-us/blog/authors/gregory-havenga",{},"en-us/blog/authors/gregory-havenga","6r7Ew670dHi53monDFdtH8Ltf5eFfXQ9CYDGHwmQZDI",[1113,1122,1129],{"title":1114,"description":1115,"heroImage":1116,"category":387,"date":1117,"authors":1118,"slug":1121,"externalUrl":391},"Git a été pensé pour les humains, il est temps de l'adapter aux agents","Découvrez comment la gestion du code source de nouvelle génération de GitLab s'adapte aux agents, et pourquoi un nouveau backend doit répondre aux défis liés à la traçabilité et au cycle de vie.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773856365/gsx2c0vqlswox3ldmq88.jpg","2026-10-05",[1119,1120],"Kranthi Erusu","Jessica Taylor","gitlab-next-gen-scm",{"title":1123,"description":1124,"heroImage":393,"category":387,"date":1125,"authors":1126,"slug":1128,"externalUrl":391},"Programme Co-Create : développer GitLab avec nos utilisateurs","Comment nous avons collaboré avec les utilisateurs de GitLab pour développer des améliorations produit au cours du premier semestre de l'année 2026.","2026-09-29",[1127],"Isa Huerga","co-create-h1-2026",{"title":1130,"description":1131,"heroImage":1132,"category":387,"date":1133,"authors":1134,"slug":1136,"externalUrl":391},"Évitez les coûts associés au clonage complet par défaut de l'historique","Découvrez comment Git Clone Override Policy automatise les optimisations de clonages superficiels et partiels via un fichier TOML stocké dans le dépôt afin de réduire la charge et les coûts.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1777380633/y3bigk0mmmxshmbofrkc.png","2026-09-07",[1135],"Darwin Sanoy","git-clone-override-policy",{"header":1138,"text":1139,"button":1143,"disclaimer":1146},"Commencez votre essai gratuit\n\nde 30 jours\n",[1140,1141,1142],"Accédez à GitLab Duo Agent Platform","Essayez nos fonctionnalités les plus avancées","Automatisez les tâches complexes avec l'IA",{"text":413,"config":1144},{"href":1145,"dataGaName":416,"dataGaLocation":652},"https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/blog/","Aucune carte de crédit requise.",{"header":1148,"blurb":1149,"button":1150,"secondaryButton":1154},"Commencez à développer plus rapidement dès aujourd'hui","Découvrez ce que votre équipe peut accomplir avec la plateforme d'orchestration intelligente pour le DevSecOps.\n",{"text":413,"config":1151},{"href":1152,"dataGaName":416,"dataGaLocation":1153},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/","feature",{"text":744,"config":1155},{"href":746,"dataGaName":421,"dataGaLocation":1153},1791952270211]