Kit de développement open source basé sur les spécifications, hébergé sur GitHub, qui guide les assistants de codage IA pour générer du code de haute qualité grâce à des spécifications et des plans structurés.

MITShellspec-kitgithub 42.4k Last Updated: October 23, 2025

Présentation détaillée du projet GitHub Spec Kit

Aperçu du projet

GitHub Spec Kit est une boîte à outils de développement piloté par les spécifications (Spec-Driven Development, SDD) open source, développée par GitHub. Elle offre un flux de travail structuré aux assistants de codage IA, transformant le modèle de développement traditionnel "coder d'abord, documenter ensuite" en privilégiant la rédaction de spécifications détaillées avant la génération de code.

Adresse du projet: https://github.com/github/spec-kit

Philosophie fondamentale

Qu'est-ce que le développement piloté par les spécifications ?

Le développement piloté par les spécifications est une méthodologie de développement logiciel centrée sur les spécifications. Ses principes fondamentaux sont les suivants :

  • Priorité aux spécifications: Créer des documents de spécifications produit (DSP) détaillés et des plans d'implémentation technique avant de commencer le codage.
  • La spécification est la vérité: La spécification devient la source unique de vérité du projet.
  • Évolution dynamique: Les spécifications ne sont pas des documents statiques, mais des "documents vivants" qui évoluent avec le projet.

Pourquoi avons-nous besoin de Spec Kit ?

Lors de l'utilisation d'assistants de codage IA (tels que Claude Code, GitHub Copilot, Gemini CLI), des problèmes courants se posent :

  1. Des entrées ambiguës conduisent à des sorties erronées: Les assistants IA ne peuvent générer du code qu'à partir des invites, manquant d'une compréhension globale du projet.
  2. Codage hypothétique: L'IA peut faire des suppositions qui ne correspondent pas aux exigences réelles.
  3. Manque de contraintes architecturales: Le code généré peut ne pas correspondre à l'architecture système existante.
  4. Qualité incohérente: Sans normes unifiées, la qualité du code est inégale.

Spec Kit résout ces problèmes en fournissant un cadre structuré, garantissant que les assistants IA peuvent comprendre précisément l'intention du projet et générer du code de haute qualité.

Composants clés

1. Specify CLI

Specify CLI est un outil en ligne de commande basé sur Python, utilisé pour initialiser rapidement l'échafaudage SDD d'un projet.

Méthodes d'installation:

# Installation avec uvx (recommandé)
uvx --from git+https://github.com/github/spec-kit.git specify init <NOM_DU_PROJET>

# Ou installation persistante
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git

Fonctionnalités principales:

  • Vérifie les outils installés (git, claude, gemini, code, cursor-agent, etc.)
  • Télécharge automatiquement les fichiers de modèle adaptés
  • Initialise la structure SDD du projet
  • Prend en charge plusieurs assistants de codage IA

Exemples d'utilisation:

# Initialise un nouveau projet et spécifie l'assistant IA
specify init mon-projet --ai claude
specify init mon-projet --ai copilot
specify init mon-projet --ai gemini

# Initialise dans le répertoire actuel
specify init . --ai claude
specify init --here --ai copilot

# Fusionne de force dans un répertoire non vide
specify init . --force --ai claude

# Saute l'initialisation git
specify init mon-projet --ai gemini --no-git

2. Modèles et scripts auxiliaires

Spec Kit fournit un système de modèles complet, comprenant :

Constitution.md (Charte du projet)

Les principes fondamentaux et les lignes directrices non négociables du projet, par exemple :

  • Exigences en matière de méthodes de test
  • Conventions architecturales
  • Normes de style de code
  • Choix de la pile technologique

C'est un outil puissant qui aide les organisations à établir une "pile technologique opinionated".

Modèles de spécifications

Définit la structure du contenu que les documents de spécifications doivent inclure.

Modèles de plans techniques

Prescrit le format et les éléments essentiels des plans d'implémentation technique.

Modèles de décomposition des tâches

Décompose les grandes fonctionnalités en petites tâches exécutables.

Scripts auxiliaires

Situés dans les dossiers powershell ou bash, ils sont utilisés pour assurer l'application cohérente de l'échafaudage SDD.

Flux de travail

Spec Kit suit un processus de développement en quatre étapes :

Étape 1: Définir les spécifications (/specify)

Utilisez la commande /specify pour fournir une description de haut niveau du projet, en vous concentrant sur "quoi faire" et "pourquoi le faire", plutôt que sur les détails techniques.

Exemple:

/specify 
Construire une application de gestion de tâches, Taskify, qui prend en charge :
- L'authentification utilisateur
- La collaboration en temps réel
- Le support mobile
- La création de projets et l'attribution de tâches
- Le suivi de la progression avec un tableau Kanban

L'assistant de codage IA générera un document de spécifications produit (DSP) complet, comprenant :

  • La motivation et les objectifs du projet
  • La description des fonctionnalités principales
  • Les user stories
  • Les exigences non fonctionnelles
  • Les critères d'acceptation

Étape 2: Élaborer le plan technique (/plan)

Utilisez la commande /plan pour fournir une orientation technique de haut niveau, l'IA générera un plan d'implémentation technique détaillé.

Exemple:

/plan
Utiliser React + TypeScript pour le frontend
Node.js pour le backend
Base de données PostgreSQL

Le plan technique généré comprend :

  • La conception de l'architecture système
  • Les raisons du choix de la pile technologique
  • La conception du modèle de données
  • La conception de l'API
  • Les considérations de sécurité
  • Les stratégies d'optimisation des performances

Étape 3: Décomposition des tâches (/tasks)

/tasks

Décompose le plan technique en petites tâches exécutables, chaque tâche comprenant :

  • Une description de la tâche
  • Les dépendances
  • Les livrables attendus
  • Les conditions d'acceptation

Étape 4: Implémentation (/implement)

/implement

L'assistant de codage IA génère le code en fonction des spécifications, du plan et de la liste des tâches, et suit les principes du développement piloté par les tests (TDD).

Fonctionnalités principales

1. Compatibilité multi-assistants IA

Spec Kit prend en charge plusieurs assistants de codage IA majeurs :

  • Claude Code (Anthropic)
  • GitHub Copilot
  • Cursor
  • Gemini CLI (Google)
  • Windsurf
  • Qwen Code
  • OpenCode
  • Codex
  • Et bien d'autres...

2. Intégration du développement piloté par les tests

Prise en charge intégrée du TDD, garantissant :

  • Que chaque fonctionnalité a des tests correspondants
  • La priorité à l'utilisation de tests en environnement réel plutôt que de mocks
  • Que les tests de contrat doivent être terminés avant l'implémentation

3. Liste de contrôle de révision et d'acceptation

Chaque étape a des critères d'acceptation clairs, notamment :

  • Les spécifications sont-elles complètes ?
  • Le plan technique est-il réalisable ?
  • Les tâches sont-elles exécutables indépendamment ?
  • Le code passe-t-il tous les tests ?

4. Mécanisme d'optimisation itérative

Prend en charge les modifications à n'importe quelle étape :

  • Les spécifications ne sont pas claires ? Mettez à jour les spécifications.
  • L'architecture doit être ajustée ? Modifiez le plan technique.
  • La tâche est trop grande ? Redécomposez-la.

Scénarios d'application

1. Projets greenfield (Zero-to-One)

Nouveaux projets démarrés de zéro, évitant les solutions génériques générées par l'IA grâce à une planification préalable.

2. Extension de fonctionnalités (N-to-N+1)

Ajouter de nouvelles fonctionnalités à des systèmes complexes existants, c'est le scénario d'application le plus puissant de Spec Kit :

  • Définir clairement comment la nouvelle fonctionnalité interagit avec le système existant
  • Les contraintes architecturales de codage garantissent la cohérence du style de code
  • Faire en sorte que le nouveau code ressemble à une fonctionnalité native plutôt qu'à un "patch"

3. Modernisation des systèmes hérités

Lors de la refactorisation de systèmes hérités :

  • Capturer la logique métier essentielle dans des spécifications modernes
  • Concevoir une toute nouvelle architecture
  • Laisser l'IA reconstruire le système à partir de zéro, sans dette technique

Exemple de structure de projet

Structure de projet après initialisation avec Specify CLI :

mon-projet/
├── .specify/              # Configuration et modèles Spec Kit
│   ├── templates/         # Modèles de spécifications, plans, tâches
│   ├── scripts/           # Scripts auxiliaires
│   └── config.json        # Fichier de configuration
├── constitution.md        # Charte du projet
├── spec.md                # Document de spécifications produit
├── plan.md                # Plan d'implémentation technique
├── tasks/                 # Liste des tâches
│   ├── task-001.md
│   ├── task-002.md
│   └── ...
└── src/                   # Répertoire du code source

Cas pratique: Projet Taskify

Spec Kit fournit un exemple de projet complet, Taskify, qui montre comment utiliser le développement piloté par les spécifications pour construire un outil de gestion de projet de style Kanban.

Fonctionnalités:

  • 5 utilisateurs prédéfinis, connexion sans mot de passe
  • Gestion multi-projets
  • Vue tableau Kanban
  • Gestion des tâches par glisser-déposer
  • Attribution des tâches et suivi de l'état
  • Fonctionnalité de commentaires (ne peut modifier/supprimer que ses propres commentaires)
  • Mise en évidence des tâches de l'utilisateur actuel

Processus de développement:

  1. Utiliser la commande /specify pour décrire les exigences de Taskify
  2. L'IA génère des spécifications produit détaillées
  3. Utiliser /speckit.clarify pour clarifier les détails
  4. Utiliser /plan pour générer le plan d'implémentation technique
  5. Vérifier la liste de contrôle de révision et d'acceptation
  6. Générer et exécuter les tâches

Avantages et valeur

Valeur pour les développeurs

  1. Réduction des incertitudes: Des spécifications claires éliminent l'ambiguïté.
  2. Amélioration de la qualité: Un processus structuré garantit la qualité du code.
  3. Facilité de collaboration: Les spécifications deviennent un langage commun pour la communication d'équipe.
  4. Facilité de maintenance: La documentation et le code évoluent de concert.

Valeur pour les équipes

  1. Normes unifiées: Établir des normes d'équipe via la Constitution.
  2. Capitalisation des connaissances: Les spécifications et les plans deviennent des actifs réutilisables.
  3. Réduction des retouches: La planification préalable réduit les problèmes en phase d'implémentation.
  4. Traçabilité: Un enregistrement clair des décisions.

Valeur pour les assistants IA

  1. Compréhension du contexte: Des spécifications complètes fournissent un contexte suffisant.
  2. Guidage par les contraintes: Le plan technique fournit des contraintes architecturales.
  3. Concentration sur les tâches: Des tâches granulaires permettent à l'IA d'être plus ciblée.
  4. Assurance qualité: Les critères d'acceptation intégrés guident la génération de code.

Limites et considérations

1. Courbe d'apprentissage

Pour les petits projets simples, cela peut sembler trop lourd ; il faut peser le rapport coût-bénéfice.

2. Nature expérimentale

Spec Kit est encore en phase expérimentale, l'équipe GitHub a clairement indiqué que de nombreuses questions restent à résoudre.

3. Flexibilité des modèles

Les modèles intégrés sont basés sur les meilleures pratiques de l'équipe GitHub, mais peuvent nécessiter des ajustements en fonction des besoins de l'organisation.

4. Intégration de projets existants

Actuellement, il est principalement destiné aux nouveaux projets, le support pour les projets existants est encore en exploration.

Communauté et écosystème

Projets connexes

  • SpecLang: Projet de recherche de GitHub en 2023, explorant les spécifications en langage naturel comme source principale de génération de code.
  • AWS Kiro: IDE "piloté par agent" d'AWS, permettant à l'IA de construire directement des logiciels à partir de spécifications.
  • Codeplain: Projet de startup utilisant un langage de spécification dédié, Plain.
  • Tessl: Plateforme offrant un cadre et un registre pilotés par les spécifications.

Retours de la communauté

Principaux points de discussion de la communauté concernant Spec Kit :

  1. Exigences de standardisation: Les utilisateurs souhaitent établir un cadre partagé pour éviter la fragmentation du développement assisté par l'IA.
  2. Collaboration inter-équipes: Suggestions de prendre en charge le partage des spécifications et des artefacts entre les dépôts.
  3. Génération automatique: Espoir de pouvoir générer automatiquement la Constitution à partir de bases de code existantes.
  4. Support des projets existants: Appel à un meilleur support pour l'intégration des projets déjà développés.

Obtenir de l'aide

Résumé

GitHub Spec Kit représente une direction importante pour le développement logiciel assisté par l'IA : passer du "codage improvisé" (Vibe Coding) à une "construction planifiée". En fournissant un cadre structuré de développement piloté par les spécifications, il aide les développeurs et les assistants IA à établir un mode de collaboration plus efficace.

Bien qu'encore en phase expérimentale, Spec Kit a déjà démontré sa valeur dans le développement de projets complexes. Avec l'amélioration continue de l'outil et la contribution soutenue de la communauté, le développement piloté par les spécifications est susceptible de devenir une pratique d'ingénierie logicielle importante à l'ère de l'IA.


Licence: Licence MIT

Dernière version: Veuillez visiter https://github.com/github/spec-kit/releases pour obtenir la dernière version publiée.

Star History Chart