NeuralOS
GuideIntermediate

Écris la spec, pas le code · développement piloté par spécification avec GitHub Spec Kit

Il y a un schéma que presque tous ceux qui construisent avec l'IA répètent : au début tu lui parles, du code apparaît, ça marche, c'est magique. Mais vers la cinquième ou sixième fonctionnalité, la magie se brise — tu demandes un petit changement et autre chose se casse, tu lui expliques pour la troisième fois comment marche le login \"parce qu'elle a oublié\", et tu ouvres le projet le lendemain sans te rappeler pourquoi la moitié des fichiers existe. Le vrai problème n'est pas que l'IA soit bête : c'est qu'elle n'a pas de mémoire de l'intention et devine différemment chaque fois qu'elle comble un trou. Le Spec-Driven Development inverse l'ordre du vibe coding : avant que l'IA écrive une ligne, tu écris la spec —ce que l'app doit faire, dans tes mots— et ce document devient l'unique source de vérité à partir de laquelle l'agent génère plan → tâches → code, avec tes checkpoints entre chaque étape. Dans ce guide tu verras l'outil qui l'installe comme des commandes à l'intérieur de ton propre agent (GitHub Spec Kit, gratuit et open source), le flux réel en 4 phases, les commandes exactes, et un seul prompt maître pour démarrer n'importe quel projet spec-first sans devenir programmeur.

Jul 19, 202614 min
Pour qui est-ce ?
Pour celui qui construit avec l'IA à coups de "fais-moi ça" et finit avec un Frankenstein : chaque fonctionnalité rustinée sur la précédente, personne —ni toi ni l'IA— ne se rappelle ce que l'app est censée faire, et chaque changement casse quelque chose de lointain. Si tu as senti que l'IA va à toute vitesse mais nulle part de précis, c'est pour toi. Pas besoin d'être programmeur : il faut apprendre à écrire la spec (la spécification) et laisser l'agent faire le reste. Ça marche avec Claude Code, Copilot, Cursor, Gemini et 30+ autres agents.

Le moment · quand "dis-lui ce que tu veux" ne suffit plus

Au début, le vibe coding est magique. Tu parles à l'IA, un écran apparaît, ça marche, tu applaudis. Mais arrive un point —presque toujours vers la cinquième ou sixième fonctionnalité— où la magie se brise. Tu demandes un petit changement et autre chose que tu n'as pas touché se casse. Tu expliques pour la troisième fois comment le login doit fonctionner "parce qu'elle a oublié". Tu ouvres le projet le lendemain et même toi tu ne sais pas pourquoi la moitié des fichiers existe. C'est le moment : quand la conversation cesse de suffire comme source de vérité, et qu'il te faut quelque chose de plus solide qu'un chat à la mémoire de poisson rouge.

Le Spec-Driven Development (développement piloté par spécification, ou SDD) naît exactement là. L'idée est si simple qu'elle en est presque vexante : avant que l'IA écrive une ligne de code, tu écris ce que l'app doit faire — clair, ordonné et sauvegardé dans un fichier. Ce document, la spec, devient l'unique source de vérité. Et l'agent génère, à partir d'elle, un plan → une liste de tâches → le code. Dans cet ordre. Avec tes points de contrôle entre chaque étape.

L'analogie · le plan avant les briques
Personne ne construit une maison en disant au maçon "commence par ce coin-là et on verra bien". D'abord il y a un plan : où vont les murs, la tuyauterie, les fenêtres. Le maçon est excellent pour poser des briques —comme ton IA est excellente pour écrire du code— mais sans plan, chacun improvise et la maison sort de travers. Le vibe coding, c'est construire sans plan. Le SDD, c'est dessiner le plan d'abord. Et ici le plan n'est pas un PDF mort : il est exécutable — l'agent le lit et construit directement à partir de lui.

La douleur · d'où sort le Frankenstein

Le problème n'est pas que l'IA soit bête. C'est que l'IA n'a pas de mémoire de l'intention. À chaque message elle prend la meilleure décision pour ce message-là, sans une image complète de ce que tu construis ni pourquoi. Toi, tu as cette image dans la tête — mais la tête n'est pas un document que l'agent peut lire. Alors l'IA comble les trous en devinant, et devine différemment chaque fois. Une fois le panier enregistre les taxes, une autre fois non. Une fois l'utilisateur peut modifier son profil, une autre fois la fonctionnalité disparaît dans un refactor. Personne n'a menti : simplement il n'a jamais existé de contrat disant ce qui est correct.

Pourquoi ça arrive (et pourquoi ça empire avec le temps)
Le chat est linéaire et il oublie. À 200 lignes de conversation, ce que tu as décidé au début est déjà sorti de la fenêtre de contexte. L'IA reconstruit ton intention à partir des dernières miettes — et chaque reconstruction s'éloigne un peu de l'original, comme une photocopie de photocopie. Plus le projet est grand, plus ça se dégrade. C'est pour ça que le vibe coding semble incroyable au jour 1 et désespérant au jour 20 : ce n'est pas que l'IA empire, c'est que le contexte s'évapore et qu'il n'y a jamais eu d'ancre hors du chat.

Que se passe-t-il si tu ne répares pas ça ? Ce n'est pas l'apocalypse — c'est un accident lent. Tu finis avec une app qui presque fonctionne, impossible à expliquer à quelqu'un d'autre (ou à l'IA de la semaine prochaine), où chaque correctif a sa propre probabilité de casser autre chose. Et ces probabilités ne pardonnent pas : dans un blog de cette même série on a raconté les maths des 27 % — un agent qui réussit à 85 % à chaque étape ne complète un flux de huit étapes que 27 % du temps (0,85⁸), parce que les réussites se multiplient, elles ne s'additionnent pas. Construire à l'aveugle enchaîne des étapes fragiles exactement de la même façon. La spec est ce qui brise cette chaîne de fragilité : elle donne à l'IA un point fixe contre lequel vérifier chaque étape, au lieu de laisser chacune dépendre de la bonne fortune de la précédente.

La solution · tu inverses l'ordre (spec d'abord, code ensuite)

Dans le vibe coding le flux est : tu parles → code → (parfois) tu documentes. Dans le SDD il s'inverse complètement : tu spécifies → tu planifies → tu génères des tâches → code. La documentation cesse d'être le reste oublié de la fin et devient le point de départ. Et ce n'est pas de la bureaucratie : chaque phase est un artefact que l'agent génère presque seul à partir du précédent, avec un checkpoint à toi pour approuver avant de continuer. Toi tu diriges ; l'IA exécute.

L'analogie · le scénario avant le tournage
Un film ne se tourne pas en improvisant scène par scène. D'abord il y a un scénario (ce qui se passe), puis un plan de tournage (comment et dans quel ordre on filme), puis le découpage technique (les tâches du jour), et alors seulement on allume la caméra. Si tu changes le scénario, tout le reste change en cascade — de façon ordonnée. Le SDD c'est ça : la spec est ton scénario, le plan est le plan de tournage, les tâches sont le découpage, et le code est le tournage. L'IA est une équipe de production brillante qui a enfin un scénario.

L'outil · GitHub Spec Kit

Tu n'as pas à inventer ce flux à la main. GitHub Spec Kit est un kit d'outils open source —de GitHub, gratuit, licence MIT— qui installe le SDD comme une série de commandes à l'intérieur de ton agent d'IA. Toi tu écris la spec en langage naturel ; lui te donne la structure, les checkpoints et les commandes pour que l'IA la transforme en app. C'est l'un des outils d'IA qui a le plus vite grandi : 122 000 étoiles sur GitHub, et sa dernière version stable, la v0.13.0, est sortie le 17 juillet 2026. Il intègre 30+ agents — Claude Code, GitHub Copilot, Cursor, Gemini CLI et celui que tu utilises.

github/spec-kit
REPO

Le kit officiel de GitHub pour le Spec-Driven Development. Installe un flux de commandes (constitution → specify → plan → tasks → implement) à l'intérieur de ton agent d'IA, pour que tu construises à partir d'une spécification exécutable au lieu d'improviser. Model-agnostic : fonctionne avec 30+ agents.

PythonMITView on GitHub
Model-agnostic, comme la philosophie de cette série
Spec Kit ne t'attache pas à un modèle. La spec est ce qui a de la valeur et c'est du texte brut — elle vit en dehors de l'agent. Si demain tu passes de Claude à Gemini, ou de Copilot à Cursor, ta spec reste valide et le nouvel agent construit à partir d'elle. Le contrat survit au fournisseur. C'est exactement le principe qu'on répète dans toute la bibliothèque : ce que tu organises (contexte, mémoire, spec) est à toi ; le modèle est interchangeable.

Installation · deux commandes et tu es dedans

Spec Kit s'installe avec uv, le gestionnaire de paquets Python moderne (rapide, sans drame). Si tu n'as pas uv, tu l'installes d'abord — une ligne. Ensuite tu installes le CLI de Spec Kit de façon persistante, et tu initialises ton projet en choisissant ton agent. Ne t'effraie pas du terminal : ce sont littéralement ces commandes, dans l'ordre, et tu n'y retouches pas pour le vrai travail (celui-ci se passe dans le chat de ton IA).

bash
# 1) Si tu n'as pas uv (le gestionnaire de paquets Python), installe-le :
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2) Installe le CLI de Spec Kit de façon persistante (en figeant la version stable) :
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@v0.13.0

# 3) Regarde quels agents tu peux choisir (la valeur exacte pour le flag --integration) :
specify integration list

# 4) Initialise ton projet en choisissant ton agent (ici, Copilot en exemple) :
specify init mi-proyecto --integration copilot

# 5) Vérifie s'il y a une version plus récente (ne modifie rien, lit seulement) :
specify self check
Le flag `--integration` est celui qui choisit ton agent
Dans specify init mi-proyecto --integration copilot, la valeur après --integration est ton outil. Spec Kit apporte 30+ intégrations et les change entre les versions, donc au lieu de mémoriser le nom exact, lance d'abord specify integration list et choisis dans cette liste celui que tu utilises (Copilot, Cursor, Gemini, Claude Code, etc.) — c'est comme demander le menu avant de commander, comme ça tu ne commandes jamais un plat qui n'existe pas. Cette commande init crée le dossier avec les commandes /speckit.* déjà câblées dans ton agent ; à partir de là, tout le travail se passe en parlant à l'IA, pas dans le terminal.

Le protocole · les commandes de Spec Kit, dans l'ordre

Une fois initialisé, Spec Kit te donne une série de slash commands que tu écris à l'intérieur de ton agent. Elles ne sont pas magiques : chacune demande à l'IA de générer l'artefact suivant du flux. L'ordre importe — c'est une cascade où chaque étape s'appuie sur la précédente. Voici les vraies, telles qu'elles arrivent dans la v0.13.0 :

Les commandes de Spec Kit (ce que fait chacune)
`/speckit.constitution` — définit les principes inviolables de ton projet : des règles que l'IA ne doit JAMAIS enfreindre (ex. "toujours valider l'entrée de l'utilisateur", "pas de données sensibles dans les logs"). C'est la constitution qui gouverne tout le reste.
`/speckit.specify` — la spec : ce que tu veux construire, en langage naturel. Exigences et récits utilisateurs. Le cœur de tout.
`/speckit.clarify` (optionnel) — l'IA te pose des questions sur ce qui est resté ambigu dans ta spec, AVANT de planifier. Elle referme les trous tôt.
`/speckit.plan` — le plan technique : l'IA propose la stack, l'architecture et comment elle va construire la spec. Toi tu approuves ou tu corriges.
`/speckit.tasks` — décompose le plan en une liste de tâches actionnables, ordonnées et concrètes. Le découpage technique.
`/speckit.analyze` (optionnel) — vérifie que spec, plan et tâches soient cohérents entre eux avant de construire. Chasse les contradictions.
`/speckit.checklist` — génère des checklists de qualité sur mesure pour valider que les exigences sont remplies.
`/speckit.implement` — exécute toutes les tâches et construit l'app selon le plan. C'est ici qu'on allume enfin la caméra.
L'ordre n'est pas décoratif
Sauter la constitution ou la spec et lancer directement /speckit.implement, c'est revenir au vibe coding avec des étapes en plus. La cascade fonctionne parce que chaque artefact restreint le suivant : la constitution borne le plan, le plan borne les tâches, les tâches bornent le code. Si tu brises la chaîne, l'IA se remet à deviner. La discipline est dans le respect des checkpoints, pas dans le fait d'avoir les commandes.

Le flux réel · 4 phases avec tes points de contrôle

Mis bout à bout, voici à quoi ressemble un projet du début à la fin. Remarque qu'à chaque frontière toi tu revois et tu approuves avant que l'IA avance. C'est ça l'astuce : ce n'est pas que l'IA travaille seule sans frein, c'est qu'elle travaille seule entre des checkpoints que tu contrôles.

Le flux en 4 phases, avec ton rôle dans chacune
Phase 1 · Constitution. Tu lances /speckit.constitution et tu définis les règles d'or du projet. Checkpoint : tu lis et tu confirmes que ces principes sont les bons. Ça s'écrit une fois, ça gouverne toujours.
Phase 2 · Spécifier (et clarifier). Tu lances /speckit.specify et tu décris quoi construire. Puis /speckit.clarify pour que l'IA referme les ambiguïtés en te questionnant. Checkpoint : la spec dit EXACTEMENT ce que tu veux, sans trous.
Phase 3 · Planifier et décomposer. /speckit.plan donne le plan technique ; /speckit.tasks le transforme en tâches ; /speckit.analyze vérifie que tout soit cohérent. Checkpoint : tu approuves la stack et les tâches avant qu'une ligne de code soit écrite.
Phase 4 · Implémenter. /speckit.implement construit. L'IA exécute les tâches une à une contre la spec. Checkpoint : tu utilises /speckit.checklist pour valider que ce qui a été construit remplit les exigences.
L'analogie · tu es le réalisateur, pas le cadreur
Dans une bonne production, le réalisateur ne tient pas la caméra ni le marteau. Il lit le scénario, approuve le plan, revoit chaque scène filmée et dit "celle-là oui, celle-là on la refait". Avec le SDD tu fais ça : tu n'écris pas de code ni ne bataille avec la syntaxe — tu approuves des artefacts aux checkpoints. Toute la puissance de l'IA, avec ton jugement aux points qui comptent. Cet équilibre, c'est ce que les gens cherchent quand ils disent "je veux que l'IA travaille seule mais sans perdre le contrôle".

L'habitude · quand écrire une spec et quand ne pas le faire

Le SDD n'est pas pour tout. Un changement d'une ligne, un bouton de couleur, un texte — pour ça tu parles normalement à l'IA et c'est réglé. Écrire une spec pour ça, ce serait comme demander un plan d'architecte pour accrocher un cadre. La bonne habitude, c'est de reconnaître le seuil : au moment où une tâche touche plus d'un fichier, comporte des règles métier, ou que tu vas y revenir la semaine prochaine — là oui, spec d'abord. Et à partir de là, chaque grande nouvelle fonctionnalité naît d'une spec, pas d'une impulsion.

Le moment exact où ça s'active
La règle pratique : si tu te surprends à expliquer la même chose à l'IA pour la deuxième fois, ou si tu ouvres le projet et ne te rappelles pas pourquoi un fichier existe — c'est ton rappel qu'il a manqué une spec. Ne te flagelle pas : écris la spec maintenant, même si le code existe déjà. Spec Kit sert autant pour les projets neufs (greenfield) que pour remettre de l'ordre dans un qui est déjà un beau bazar (brownfield).

Le prompt maître · démarrer un projet spec-first

Voici l'unique prompt que tu dois mémoriser. C'est celui que tu donnes à ton IA (avec Spec Kit déjà initialisé) pour bien démarrer dès la première minute : il lui demande de d'abord fixer la constitution, puis de construire la spec avec toi en posant les questions manquantes, et de ne pas écrire de code tant que tu n'as pas approuvé. Copie-le, remplis les [crochets], et colle-le à ton agent en démarrant n'importe quel projet sérieux.

Colle-le à ton IA · démarrer un projet piloté par spectexto
On va construire ce projet avec le Spec-Driven Development en utilisant GitHub Spec Kit, qui est déjà initialisé. N'écris PAS de code pour l'instant. Suis ce flux avec moi, en t'arrêtant à chaque checkpoint pour que j'approuve avant d'avancer.

Mon projet est : [décris ce que tu veux construire et pour qui, en 3-5 phrases].
Ce qu'il ne doit PAS faire / mes limites : [ex. ne pas enregistrer de cartes bancaires, fonctionner sur mobile, pas de données sensibles dans les logs].

ÉTAPE 1 — CONSTITUTION. Avant tout, lance /speckit.constitution et propose les principes inviolables de ce projet (sécurité, validation des entrées, cohérence, ce qui s'applique). Montre-les-moi et attends mon feu vert.

ÉTAPE 2 — SPEC. Ensuite lance /speckit.specify et rédige la spécification à partir de ma description : exigences claires et récits utilisateurs. Puis lance /speckit.clarify et pose-moi TOUTES les questions nécessaires pour éliminer les ambiguïtés — ne devine pas, questionne-moi. Ne continue pas tant que je n'ai pas dit que la spec est correcte.

ÉTAPE 3 — PLAN ET TÂCHES. Une fois la spec approuvée, lance /speckit.plan et propose la stack et l'architecture (explique-moi en clair pourquoi tu as choisi chaque chose). Puis /speckit.tasks pour le découpage, et /speckit.analyze pour vérifier que spec, plan et tâches ne se contredisent pas. Montre-moi tout et attends mon approbation.

ÉTAPE 4 — IMPLÉMENTER. Seulement quand je l'autorise, lance /speckit.implement et construis. À la fin, génère une /speckit.checklist pour valider que ce qui a été construit remplit la spec.

Règle d'or tout au long du processus : la spec est l'unique source de vérité. Si quelque chose dans le code s'écarte de la spec, la spec gagne — ou tu me préviens pour qu'on la mette à jour ensemble. Ne change jamais le comportement en silence.
Le détail qui fait la différence
La phrase "ne devine pas, questionne-moi" à l'Étape 2 est la plus importante de tout le prompt. C'est ce qui transforme l'IA de comble-trous en collaboratrice. La plupart des bugs de vibe coding naissent d'une supposition silencieuse que tu n'as jamais remise en question. /speckit.clarify existe justement pour ça : mettre ces suppositions en lumière avant qu'elles deviennent du code.

Les chemins les plus faciles · ce que tu fais par chat et ce que tu fais par commande

Pour que tu ne te perdes pas : presque tout se passe en parlant à ton IA. Le terminal, tu le touches une seule fois (installer et initialiser). Les /speckit.* tu les écris dans le chat de ton agent, comme n'importe quel autre message. Et la spec tu l'écris dans tes mots — pas en code. Voici la répartition :

Répartition des tâches
Par terminal (une seule fois) : installer uv, installer specify-cli, voir les agents avec specify integration list, lancer specify init mi-proyecto --integration <ton-agent>, et specify self check pour vérifier que tu es à jour. C'est fini — tu ne retournes plus au terminal.
Par chat avec ton IA (le vrai travail) : toutes les commandes /speckit.constitution, /speckit.specify, /speckit.plan, /speckit.tasks, /speckit.implement. Tu les écris comme des messages normaux.
Dans tes mots (ce que tu apportes toi) : la description du projet, les réponses aux questions de /speckit.clarify, et les approbations à chaque checkpoint. Zéro code de ta part.
Sauvegarde la spec dans git : la spec et la constitution sont des fichiers texte. Commite-les. Ce sont l'actif le plus précieux du projet — plus que le code, qui peut être régénéré à partir d'eux.
Ne confonds pas rapide et dirigé
Le SDD paraît plus lent au début — tu es en train d'"écrire des documents" au lieu de voir du code à l'instant. C'est une illusion. Ce temps investi dans la spec t'épargne les cinq rounds de "non, ce n'était pas ça" qui viennent après dans le vibe coding. Tu vas plus lentement au kilomètre 1 et beaucoup plus vite —et sans crashs— à partir du kilomètre 2. La vraie vitesse n'est pas le code par minute, c'est l'app terminée et correcte par semaine.

D'où ça vient (l'évolution de cette série)

Si tu as suivi la bibliothèque, ça ne te semble pas nouveau — c'est la marche suivante. Le protocole C-A-R t'a appris à séparer construire d'auditer pour ne pas envoyer de bugs. La ressource sur le système de design t'a appris à fixer les règles visuelles avant le premier écran. Les deux partagent une même idée : décide le contrat avant d'exécuter. Le SDD porte cette idée à sa forme la plus pure : la spec est le contrat, et c'est l'unique source de vérité pour toute l'app — design, logique, comportement. Tu passes de "organise ton contexte" à "écris le contrat et laisse l'IA le remplir".

Dans NeuralOS, tu construis déjà contre un contrat
Il y a une doctrine qui gouverne comment se construit NeuralOS par l'intérieur, et c'est exactement cette philosophie : le frontend est la source de vérité. Le design et l'interface définissent le contrat — ce qui doit exister et comment ça se comporte — et le backend ne fait que remplir ce contrat ; jamais il n'invente de son côté. C'est du SDD appliqué à un produit réel : on spécifie d'abord ce que l'utilisateur voit et attend, et tout le reste se construit pour le remplir. Quand tu parles au chat orchestrateur de NeuralOS pour construire ton app, cette discipline de contrat-d'abord est celle qui travaille invisible en dessous pour que ce que tu demandes soit ce que tu obtiens — sans que tu aies à monter toi-même la cascade de commandes.
Le protocole C-A-R · construire sans bugs
Le grand frère de cette ressource : sépare construire d'auditer. La spec te dit QUOI construire ; le C-A-R t'assure que ce qui est construit est bien fait.
Crée ton système de design AVANT de construire
La même idée appliquée au design : fixe le contrat visuel avant le premier écran. La spec et le système de design sont deux faces du même principe.
#spec-driven-development#spec-kit#github#vibe-coding#prompt#arquitectura
Ready to build?

Start building in
under 3 minutes

Join 4,200+ builders. No credit card. Build your first app with AI in minutes.