54 points par xguru 2025-09-15 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Spec-Driven Development : une approche qui élève la spécification (spec), autrefois simple outil d’assistance dans le développement traditionnel, au rang de spécification exécutable, afin de générer directement une implémentation fonctionnelle à partir de celle-ci
    • Elle rompt avec une pratique centrée sur le code pour définir d’abord le quoi et le pourquoi, puis préciser ensuite le comment, en mettant l’accent sur un développement centré sur l’intention
    • L’idée clé est de produire des livrables cohérents à partir des spécifications et d’automatiser les tâches répétitives afin de permettre aux développeurs de se concentrer sur les problèmes produit
  • Spec Kit est un ensemble d’outils qui aide à transformer ces spécifications en livrables exécutables afin d’automatiser l’implémentation
  • Après l’installation, on décrit le quoi/pourquoi avec /specify, on déclare la stack/l’architecture avec /plan, puis on génère les unités de travail avec /tasks
  • L’objectif est d’aider les organisations à se détourner de l’écriture de code commun non différenciant pour se concentrer sur les scénarios produit, dans le cadre d’un framework expérimental qui cherche à améliorer à la fois la qualité et la vitesse grâce à une approche pilotée par les spécifications

Philosophie centrale : Core philosophy

  • Un état d’esprit spec-first fondé sur le développement centré sur l’intention, où l’on met d’abord en avant le quoi avant de détailler le comment
  • La rédaction de spécifications riches intégrant des garde-fous et des principes organisationnels, avec un processus de raffinement en plusieurs étapes plutôt qu’une génération de code ponctuelle
  • Une approche qui s’appuie activement sur la capacité d’interprétation des modèles d’IA avancés pour transformer les spécifications en résultats exécutables

Processus piloté par les spécifications avec Spec Kit

  • Spec Kit place la spécification au centre du processus d’ingénierie pour piloter l’implémentation, les checklists et la décomposition des tâches, tandis que les développeurs jouent surtout un rôle de pilotage
    • Les agents de code prennent en charge l’essentiel du travail de rédaction
  • Le processus se compose de 4 étapes, chacune avec des points de contrôle clairs, et l’on ne passe pas à l’étape suivante tant que le travail en cours n’est pas entièrement validé
  • Étape Specify : lorsqu’on fournit une description de haut niveau, l’agent de code génère une spécification détaillée, axée non pas sur la stack technique mais sur le parcours utilisateur, l’expérience et les indicateurs de réussite
    • Elle cartographie qui sont les utilisateurs, quels problèmes sont résolus, comment ils interagissent et quels résultats sont importants
    • Il s’agit d’un artefact vivant qui évolue au fil de l’apprentissage sur les utilisateurs
  • Étape Plan : lorsqu’on fournit la stack souhaitée, l’architecture et les contraintes, l’agent de code produit un plan technique complet
    • Il inclut les technologies standards de l’entreprise, l’intégration avec les systèmes legacy, la conformité, les objectifs de performance, etc.
    • On peut demander plusieurs variantes de plan pour les comparer, et intégrer directement des patterns d’architecture en fournissant de la documentation interne
  • Étape Tasks : à partir de la spécification et du plan, l’agent de code décompose le travail en petits blocs révisables
    • Chaque tâche peut être implémentée et testée indépendamment, et elle est conçue pour que l’IA puisse la valider et en assurer le suivi
    • Par exemple, au lieu de « construire l’authentification », on aura « créer un endpoint d’inscription utilisateur avec validation du format de l’e-mail »
  • Étape Implement : l’agent de code traite les tâches une par une ou en parallèle, pendant que les développeurs examinent des changements ciblés
    • La spécification indique ce qu’il faut construire, le plan comment le construire, et les tâches sur quoi travailler
  • À chaque étape, les développeurs réfléchissent et affinent, en jouant un rôle de validation pour vérifier si la spécification capture bien l’intention, si le plan tient compte des contraintes réelles et s’il manque des éléments ou des cas limites

Comment utiliser Spec Kit dans un workflow agentique

  • Spec Kit fonctionne avec des agents de code comme GitHub Copilot, Claude Code, Gemini CLI et guide ces agents via une série simple de commandes pour générer des artefacts
    • Cela transforme des prompts ambigus en intentions claires, exécutables de manière fiable
  • Après l’initialisation du projet, une invite de haut niveau fournie via la commande /specify permet à l’agent de code de générer la spécification complète, centrée sur le « quoi » et le « pourquoi » du projet
  • Avec la commande /plan, une orientation technique de haut niveau permet à l’agent de code de générer un plan détaillé respectant l’architecture et les contraintes
  • Avec la commande /tasks, la spécification et le plan sont décomposés en une liste de tâches exécutables, que l’agent de code utilise ensuite pour implémenter les exigences du projet

Phases de développement : Development phases

  • Étape 0-to-1 (greenfield) : prise en charge d’un flux génération de la spécification → planification → création d’une application de niveau production à partir d’exigences de haut niveau
  • Étape d’exploration créative : accent mis sur un processus d’expérimentation par implémentations parallèles de différentes stacks/architectures et de patterns UX
  • Étape d’amélioration progressive (brownfield) : développement évolutif itératif autour de l’ajout de fonctionnalités, de la modernisation du legacy et de l’adaptation des processus

Trois scénarios où cette approche fonctionne bien

  • Greenfield (zero-to-one) : au démarrage d’un nouveau projet, on ne se lance pas immédiatement dans le code ; on prépare d’abord la spécification et le plan pour garantir que l’IA construit bien ce qui est voulu, avec des résultats sur mesure plutôt qu’une solution générique fondée sur des patterns courants
  • Travail fonctionnel sur un système existant (N-to-N+1) : lorsqu’on ajoute une fonctionnalité à une codebase complexe, la spécification clarifie comment la nouvelle fonctionnalité interagit avec le système existant, et le plan encode les contraintes d’architecture pour générer un code qui semble natif
    • Cela rend le développement continu plus rapide et plus sûr, même si des techniques avancées de context engineering peuvent être nécessaires
  • Modernisation du legacy : lorsqu’on reconstruit un système legacy dont l’intention initiale s’est perdue, le processus Spec Kit permet de capturer la logique métier essentielle dans une spécification moderne, puis de planifier une architecture neuve afin que l’IA puisse reconstruire le système sans dette technique

Prerequisites

  • Linux/macOS ou WSL2 sur Windows requis
  • Choix de l’agent d’IA parmi Claude Code, GitHub Copilot, Gemini CLI, Cursor

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.