GalRogozinski/sdd

Cette compétence doit être utilisée lorsque les utilisateurs souhaitent des conseils sur la méthodologie de développement piloté par les spécifications à l'aide de Spec-Kit de GitHub. Guidez les utilisateurs à travers les workflows de spécifications exécutables pour les nouveaux projets (greenfield) et les bases de code existantes (brownfield). Après qu'une commande SDD génère des artefacts, fournissez automatiquement des résumés structurés en 10 points avec suivi de l'état des fonctionnalités, permettant une gestion des fonctionnalités en langage naturel et maintenant l'engagement des utilisateurs tout au long du processus.

Qu'est-ce que sdd ?

Cette compétence implémente la méthodologie Spec-Driven Development (SDD) en utilisant le kit Spec-Kit de GitHub, une approche qui renverse le développement logiciel traditionnel en rendant les spécifications exécutables et en générant directement des implémentations fonctionnelles. Elle guide les utilisateurs à travers des workflows pour les nouveaux projets (greenfield) et les bases de code existantes (brownfield), en mettant l'accent sur le développement piloté par l'intention, la création de spécifications riches avec des critères d'acceptation au format Gherkin, et un raffinement en plusieurs étapes plutôt qu'une génération de code en un seul coup. La compétence est conçue pour les agents IA comme Claude Code, GitHub Copilot, et Cursor, et après chaque commande SDD, elle génère automatiquement des résumés structurés en 10 points qui incluent l'état des fonctionnalités, permettant une gestion naturelle et engageante des fonctionnalités en langage naturel. Elle assure que chaque histoire utilisateur soit accompagnée de scénarios Gherkin exécutables, avec des vérifications comportementales supplémentaires pour les cas impliquant une IA dans la boucle, garantissant que les spécifications restent testables et exploitables.

Compatible avec✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI✓OpenCode✓Windsurf
npx skills add https://github.com/GalRogozinski/skills/tree/HEAD/skills/sdd

Installed? Explore more Productivité et collaboration skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Compétence Développement Piloté par les Spécifications (SDD)

Guidez les utilisateurs à travers Spec-Kit de GitHub pour le Développement Piloté par les Spécifications - une méthodologie qui renverse le développement logiciel traditionnel en rendant les spécifications exécutables et en générant directement des implémentations fonctionnelles.

Philosophie Fondamentale

Le Développement Piloté par les Spécifications met l'accent sur :

  • Développement piloté par l'intention : Définir le "quoi" avant le "comment"
  • Création de spécifications riches : Utiliser des garde-fous et des principes d'organisation
  • Raffinement en plusieurs étapes : Pas de génération de code en un seul coup
  • Natif IA : Forte dépendance aux capacités avancées de l'IA

Souvenez-vous : C'est du développement natif IA. Les spécifications ne sont pas simplement de la documentation - ce sont des artefacts exécutables qui conduisent directement l'implémentation. L'agent IA les utilise pour générer du code fonctionnel correspondant à l'intention définie dans les spécifications.

Critères d'Acceptation : Format Gherkin (Requis)

Chaque histoire utilisateur dans chaque spec.md (ou specify.md) DOIT comporter des critères d'acceptation de style Gherkin, en plus de sa description en prose. Cela s'applique aussi bien aux projets greenfield que brownfield, pour chaque histoire utilisateur, que l'artefact ait été produit par /speckit.specify ou rédigé à la main pour un dépôt qui n'utilise pas le modèle généré par CLI. La prose décrit le sujet de l'histoire ; les scénarios Gherkin disent exactement comment la vérifier — c'est ce qui rend une spécification exécutable plutôt que descriptive.

Format — un bloc gherkin délimité directement sous chaque histoire utilisateur, 1 à 4 scénarios : le chemin heureux en premier, puis les cas limites/négatifs qui comptent pour cette histoire (pas tous les cas limites de la spécification — ceux-ci appartiennent à la section Cas Limites de la spécification ; seulement ceux spécifiques à cette histoire).

Scénario : <nom court et spécifique — pas "chemin heureux">
  Étant donné <la précondition / l'état de départ>
  Quand <l'action unique de l'acteur>
  Alors <le résultat observable et testable>
  Et <résultat supplémentaire, si nécessaire>

Scénario : <le cas limite/négatif pour cette histoire>
  Étant donné <précondition>
  Quand <action>
  Alors <résultat — ce qui ne devrait PAS se produire est un Alors valide>

Règles d'écriture :

  • Un Quand par scénario. Plusieurs actions signifient plusieurs scénarios — cela permet à chaque scénario de correspondre à un test.
  • Alors doit être observable, pas interne : "l'utilisateur voit un toast de confirmation", pas "l'état se met à jour correctement." Si vous ne pouvez pas dire comment quelqu'un le vérifierait, ce n'est pas prêt.
  • Réutilisez le vocabulaire de la spécification. Les étapes Étant donné/Quand/Alors doivent utiliser les mêmes noms que l'histoire utilisateur et les exigences fonctionnelles (noms d'actifs, types de transactions, noms de champs) — pas de paraphrase.
  • Ne reformulez pas les exigences fonctionnelles en Gherkin. Les critères d'acceptation vérifient l'histoire ; les EF sont tracées séparément. Un chevauchement est acceptable, mais la duplication de chaque EF en tant que scénario ne l'est pas.
  • Numérotez les scénarios pour la traçabilité lorsqu'une histoire en a plus d'un : Scénario : CA-1 — ..., Scénario : CA-2 — ... (facultatif pour les histoires à un seul scénario).

Lors du résumé (le modèle à 10 points, "Ce qui a été généré"), signalez le nombre de scénarios en plus des nombres d'histoires utilisateur/critères de succès, par exemple "5 histoires utilisateur (11 scénarios Gherkin), 8 critères de succès." Si une histoire utilisateur manque de critères d'acceptation, signalez-le sous "🔍 Éléments Importants à Réviser" avant de passer à /speckit.plan — les plans construits sur des histoires sans critères d'acceptation ont tendance à sous-spécifier les tests.

CA Comportementaux : uniquement pour les histoires avec IA dans la boucle

Gherkin suppose qu'une seule exécution décide du succès/échec. Cela ne fonctionne plus lorsque la sortie d'un modèle décide du résultat : une exécution réussie d'une histoire non déterministe ne prouve presque rien. Pour ces histoires, ajoutez un bloc CA Comportementaux sous le bloc Gherkin.

Générez-le uniquement lorsque le résultat observable de l'histoire dépend de la sortie d'un modèle. Exemples : un prompt, un prompt système, une mission, un fichier de compétence ou une description d'outil change ; un modèle choisit l'action, juge ou tranche quelque chose, ou rédige le texte destiné à l'utilisateur ; le modèle ou ses paramètres changent. Ne le générez pas pour du code déterministe, le rendu UI de données stockées, la tuyauterie, ou une histoire où un appel de modèle est présent mais sa sortie n'est pas vérifiée. En cas de doute, posez une question ; n'ajoutez pas le bloc de manière spéculative. Une spécification sans histoires avec IA dans la boucle n'a pas de CA Comportementaux du tout, et pas de placeholder vide non plus.

Format : un bloc par histoire qualifiée, directement après son Gherkin.

**CA Comportementaux** (IA dans la boucle : <ce que le modèle décide>)
- **Cas :** <N> cas dans `<chemin vers l'ensemble de cas>`, à partir de <échecs réels / traces / transcriptions> ; entrées synthétiques uniquement pour combler les lacunes, jamais de sorties attendues synthétiques
- **Exécutions :** k = <k> par cas (≈ 3 / taux d'échec attendu ; 20–30 si inconnu)
- **Seuil de réussite :** <métrique> ≥ <seuil> sur k, bat le baseline de plus que le bruit (comparaison par paires contre la version actuelle)
- **Correcteur :** vérification de code | juge LLM (binaire, un par mode d'échec) | humain ; un juge nomme également sa validation : TPR/TNR ≥ 0,9 (seuil 0,8) sur des étiquettes humaines retenues, ou "NON VALIDÉ" dit clairement
- **Commande :** `<une commande qui l'exécute et affiche le taux de réussite, le coût et la latence>`

Règles :

  • Seule une véritable exécution du modèle compte. Un mock, une simulation par mot-clé ou un score prédit n'est pas un résultat. Si elle ne peut pas être exécutée (coût, clés), dites que l'histoire est NON ÉVALUÉE. Ne falsifiez pas un nombre.
  • Préférez un correcteur de code. Utilisez un juge uniquement pour ce que le code ne peut pas vérifier.
  • Gherkin s'applique toujours. Les scénarios Gherkin couvrent la coque déterministe (artefacts écrits, gardes tenus). Les CA Comportementaux couvrent le comportement du modèle.
  • plan.md porte l'évaluation : l'emplacement de l'ensemble de cas, la commande d'exécution, le coût par exécution, et quand elle s'exécute (par PR, ou avant fusion uniquement si c'est coûteux).

Lors du résumé, comptez-les séparément, par exemple "5 histoires utilisateur (11 scénarios Gherkin, 2 avec CA Comportementaux)". Signalez sous "Éléments Importants à Réviser" toute histoire avec IA dans la boucle qui manque du bloc, et tout juge marqué NON VALIDÉ.

Arbre de Décision Rapide

S'agit-il d'un nouveau projet (greenfield) ?

→ Voir Workflow Greenfield pour le processus complet en 6 étapes

S'agit-il d'une base de code existante (brownfield) ?

→ Voir Workflow Brownfield pour des conseils de rétro-ingénierie et d'intégration

Besoin d'aide à l'installation ?

→ Voir Guide d'Installation pour la configuration et le dépannage

Démarrage Rapide de l'Installation

Recommandé (Persistant) :

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

Utilisation Unique :

uvx --from git+https://github.com/github/spec-kit.git specify init <NOM_DU_PROJET>

Vérification :

specify check

Pour des options d'installation détaillées, le dépannage et les variables d'environnement, voir Guide d'Installation.

Agents IA Supportés

Fonctionne avec :

  • ✅ Claude Code
  • ✅ GitHub Copilot
  • ✅ Gemini CLI
  • ✅ Cursor
  • ✅ Qwen Code
  • ✅ opencode
  • ✅ Windsurf
  • ✅ Kilo Code
  • ✅ Auggie CLI
  • ✅ CodeBuddy CLI
  • ✅ Roo Code
  • ✅ Codex CLI
  • ✅ Amp
  • ⚠️ Amazon Q Developer CLI (ne supporte pas les arguments personnalisés pour les commandes slash)

Résumé d'Artefacts et Boucle de Rétroaction

WORKFLOW CRITIQUE : Après que toute commande SDD génère ou modifie des artefacts, suivez automatiquement cette boucle de rétroaction pour maintenir l'engagement de l'utilisateur :

Après Chaque Commande Terminée

  1. Détecter les Changements d'Artefacts

    • Identifiez quels artefacts ont été créés ou modifiés :
      • constitution.md (principes du projet)
      • spec.md (spécification des exigences)
      • plan.md (plan d'implémentation technique)
      • tasks.md (répartition des tâches actionnables)
      • Rapports d'analyse des workflows brownfield
  2. Lire et Résumer

    • Lisez le(s) artefact(s) concerné(s)
    • Extrayez les informations clés :
      • Pour constitution.md : Principes fondamentaux, normes de codage, contraintes
      • Pour spec.md : Exigences principales, histoires utilisateur (avec leurs critères d'acceptation Gherkin), critères de succès
      • Pour plan.md : Choix de stack technique, décisions d'architecture, jalons
      • Pour tasks.md : Nombre de tâches, catégories de tâches principales, dépendances
      • Pour les rapports d'analyse : Patterns actuels, dette technique, points d'intégration
  3. Présenter un Résumé Structuré (Utilisez le Modèle à 10 Points Ci-Dessous)

    • Montrez ce qui a été généré et pourquoi
    • Mettez en évidence les décisions les plus importantes avec leur justification
    • Incluez des indicateurs de qualité et des points d'attention
    • Gardez le résumé ciblé et actionnable
    • Utilisez des titres clairs pour chaque section
  4. Inclure l'État des Fonctionnalités (Approche Hybride)

    • Ligne d'état brève dans chaque résumé
    • État détaillé sur demande avec /speckit.status
    • Voir la section "Suivi de l'État des Fonctionnalités" ci-dessous
  5. Offrir des Options de Rétroaction

    • Option A : "Ça a l'air bien, passer à l'étape suivante"
    • Option B : "Je voudrais modifier [section spécifique]"
    • Option C : "Régénérer avec ces modifications : [saisie utilisateur]"
    • Option D : "Expliquer pourquoi [décision spécifique] a été prise"

Modèle de Résumé à 10 Points

Utilisez ce format structuré APRÈS toute commande SDD terminée :

## ✅ [Nom de la Commande] Terminée - Voici Ce Qui Vient de se Passer

### 🎯 Décisions Clés Prises (Top 3)
1. [Décision] - **Justification :** [Pourquoi cela a été choisi]
2. [Décision] - **Justification :** [Pourquoi cela a été choisi]
3. [Décision] - **Justification :** [Pourquoi cela a été choisi]

### 📋 Ce Qui a Été Généré
- [Artefact 1] : [Brève description du contenu]
- [Artefact 2] : [Brève description du contenu]

### 🔍 Éléments Importants à Réviser (Top 3)
1. [Élément critique à vérifier et pourquoi c'est important]
2. [Détail important à vérifier et impact potentiel]
3. [Cas limite à considérer et comment il affecte la conception]

### ⚠️ Attention (Top 2)
- [Problème potentiel ou piège] - **Comment l'éviter :** [Conseil]
- [Erreur courante] - **Comment l'éviter :** [Conseil]

### 🔄 Ce Que Cela Permet Ensuite (2 Options)
- **Option 1 :** [Prochaine étape] - Idéal si : [Condition]
- **Option 2 :** [Étape alternative] - Idéal si : [Condition]

📊 **État de la Fonctionnalité :** [Nom de la Fonctionnalité Actuelle] ([Étape]) → Suivante : [Prochaine Fonctionnalité]
   Progression : [●●●○○] [X]% | Terminées : [N] sur [Total] fonctionnalités | Dépendances : [Statut]

**Vos options :** [A] Continuer [B] Modifier [C] Expliquer plus [D] Afficher l'état complet

Exemple : Résumé Amélioré Après `/speckit.specify`

```

✅ Specify Terminée - Voici Ce Qui Vient de se Passer

🎯 Décisions Clés Prises

  1. Authentification : jetons JWT - Justification : Architecture sans état, évolutivité horizontale, standard de l'industrie
  2. Exigences de mot de passe : 12+ caractères avec complexité - Justification : Équilibre entre sécurité (recommandations NIST) et convivialité
  3. Délai d'expiration de session : 24 heures - Justification : Standard pour les applications web, équilibre entre sécurité et commodité utilisateur

📋 Ce Qui a Été Généré

  • `.speckit/features/user-auth/specify.md` : Exigences complètes avec 5 histoires utilisateur (12 scénarios de critères d'acceptation Gherkin), 8 critères de succès, 3 cas limites

🔍 Éléments Importants à Réviser

  1. Flux de réinitialisation de mot de passe - Vérifiez que les exigences de messagerie correspondent à votre infrastructure (serveur SMTP, modèles)
  2. Authentification multifacteur - Actuellement marquée comme "amélioration future" ; peut être nécessaire pour le MVP
  3. Limitation de débit - Fixée à 5 tentatives de connexion par 15 min ; vérifiez si cela correspond à votre politique de sécurité

⚠️ Attention

  • Dépendance au service de messagerie non spécifiée - Comment l'éviter : Ajoutez le service de messagerie aux dépendances de plan.md
  • Conformité RGPD pour les données utilisateur - Comment l'éviter : Révisez les exigences de conservation des données et de suppression des utilisateurs

🔄 Ce Que Cela Permet Ensuite

  • Option 1 : Exécuter `/speckit.plan` pour concevoir l'implémentation technique - Idéal si : Les exigences semblent bonnes
  • Option 2 : Modifier specify.md - Idéal si : Vous devez ajuster les exigences ou ajouter des fonctionnalités

📊 État de la Fonctionnalité : user-authentication (Spécifiée) → Suivante : profile-management Progression : [●●○○○] 40% | Terminées : 1 sur 5 fonctionnalités | Dépendances : database-setup ✅

Vos options : [A] Continuer vers la planification [B] Modifier les exigences [C] Expliquer le choix JWT [D] Afficher l'état complet ```

Quand Sauter le Résumé

Ne sautez l'étape de résumé que lorsque :

  • L'utilisateur demande explicitement "ignorer les résumés" ou "exécuter toutes les étapes automatiquement"
  • Réexécution d'une commande sans changement d'artefacts
  • La commande échoue ou produit des erreurs (dépanner à la place)

Avantages de Ce Workflow

  • Élimine le sentiment de "boîte noire" : Explications claires de ce qui a été généré et pourquoi
  • Permet une rétroaction précoce : Repérez les malentendus avant l'implémentation
  • Maintient l'agilité : Révision rapide avec un format structuré, pas de longs processus d'approbation
  • Instaure la confiance : L'utilisateur voit le raisonnement et les décisions de l'IA avec leur justification
  • Fournit du contexte : L'état des fonctionnalités maintient l'utilisateur orienté dans l'ensemble du projet

Suivi de l'État des Fonctionnalités

Approche Hybride

Après chaque commande SDD, incluez une ligne d'état brève de la fonctionnalité dans le résumé. Fournissez un état détaillé sur demande avec /speckit.status.

Format de Ligne d'État Brève

Incluez ceci à la fin de chaque résumé :

📊 **État de la Fonctionnalité :** [Nom de la Fonctionnalité Actuelle] ([Étape]) → Suivante : [Nom de la Prochaine Fonctionnalité]
   Progression : [●●●○○] [X]% | Terminées : [N] sur [Total] fonctionnalités | Dépendances : [Dep] ✅/⏸️

Valeurs d'étape :

  • Spécification (20% terminée)
  • Planification (40% terminée)
  • Tâches (60% terminée)
  • En Cours (80% terminée)
  • Terminée (100% terminée)

Indicateur de progression :

  • Utilisez des cercles pleins (●) pour les étapes terminées
  • Utilisez des cercles vides (○) pour les étapes en attente
  • Calculez le pourcentage en fonction de l'étape

Tableau de Bord d'État Détaillé

Lorsque l'utilisateur demande l'état complet (option D) ou exécute /speckit.status, affichez :

📊 Tableau de Bord de l'État des Fonctionnalités du Projet

🎯 FONCTIONNALITÉ ACTUELLE
├─ [nom-fonctionnalité] ([Étape] - [X]% terminée)
│  ├─ ✅ Exigences spécifiées
│  ├─ 🔄 Plan d'implémentation en cours
│  ├─ ⏸️  Tâches non démarrées
│  └─ ⏸️  Implémentation non démarrée
│  Bloqueurs : [Aucun | Description]
│  Dépendances : [nom-fonctionnalité] ✅

✅ FONCTIONNALITÉS TERMINÉES ([N])
├─ [fonctionnalité-1] (100% terminée)
└─ [fonctionnalité-2] (100% terminée)

📋 FONCTIONNALITÉS À VENIR ([N])
├─ [fonctionnalité-3] (dépend de : [fonctionnalité-actuelle])
└─ [fonctionnalité-4] (dépend de : [fonctionnalité-3])

⚠️  FONCTIONNALITÉS BLOQUÉES

...

Skills associés