Files
2025-11-30 09:05:34 +08:00

18 KiB

Spec

"Donner de la structure avant d'écrire le code" - Entièrement conforme au développement piloté par spécifications de Kiro

Contrairement aux outils traditionnels de génération de code, il réalise le développement piloté par spécifications de Kiro focalisé sur l'apport de structure au chaos du développement. À partir d'une saisie minimale d'exigences, il se développe progressivement des spécifications détaillées de niveau product manager à des conceptions implémentables, assurant une qualité cohérente du prototype à la production.

Utilisation

# Demander le Mode Spec à Claude (saisie minimale d'exigences)
"Créez un spec pour [description de fonctionnalité]"

# Développement étape par étape de Kiro :
# 1. Exigences simples → Génération automatique de user stories détaillées
# 2. Descriptions d'exigences structurées utilisant la notation EARS
# 3. Raffinement des spécifications par dialogue étape par étape
# 4. Génération de 3 fichiers indépendants :
#    - requirements.md : Définitions d'exigences utilisant la notation EARS
#    - design.md : Conception incluant diagrammes Mermaid et interfaces TypeScript
#    - tasks.md : Plan d'implémentation avec application automatique des bonnes pratiques

Résultats éprouvés (Historique de Kiro)

Application de partage de fichiers sécurisée en 2 jours

"Créez un spec pour un système de partage de fichiers (avec chiffrement)"
→ Application de partage de fichiers chiffrés de niveau production terminée en 2 jours
→ Application automatique des bonnes pratiques de sécurité
→ Aucune invite supplémentaire nécessaire

Développement de jeu en une nuit (Pour débutants)

"Créez un spec pour un jeu de puzzle 2D"
→ Développeur open source sans expérience en développement de jeu
→ Jeu terminé en une nuit
→ Kiro gère la logique d'implémentation, permettant aux développeurs de se concentrer sur la créativité

Prototype weekend→Production

"Créez un spec pour un système de gestion de produits de site e-commerce"
→ Du concept au prototype fonctionnel en un weekend
→ Qualité cohérente du prototype à la production
→ Approche structurée par développement piloté par spécifications

Exemples de base

# Créer un spec pour une nouvelle fonctionnalité (saisie minimale)
"Système d'avis produits
- Fonctionnalité de notation par étoiles
- Publication de commentaires
- Upload d'images"

# Créer un spec pour une fonctionnalité système
"Authentification utilisateur
- Support OAuth
- Authentification multi-facteurs"

# Créer un spec pour une fonctionnalité API
"API système de paiement
- Intégration Stripe
- Focus sécurité"

Collaboration avec Claude

# Spec de fonctionnalité complexe
"Créez un spec pour la fonctionnalité de chat incluant WebSocket, notifications temps réel et gestion d'historique"

# Spec de fonctionnalité d'intégration base de données
"Créez un spec pour la fonctionnalité de gestion d'inventaire de site e-commerce incluant ajout de produits, mises à jour d'inventaire et fonctionnalité d'alerte"

# Spec de fonctionnalité frontend
"Créez un spec pour un tableau de bord React incluant affichage de graphiques, filtrage et fonctionnalité d'export"

# Spec de fonctionnalité backend
"Créez un spec pour une API RESTful incluant authentification, validation et journalisation"

Fonctionnalités du Mode Spec

Flux de dialogue étape par étape

  • Reproduit entièrement la valeur originale de Kiro de discussion étape par étape
  • Raffine les spécifications de manière collaborative avec les utilisateurs à chaque phase
  • Génère des fichiers par résolution de questions, discussion d'options et processus d'approbation

Trois phases de développement interactif

  • Phase 1 : Découverte d'exigences → Discussion → Approbation → génération requirements.md
  • Phase 2 : Exploration de conception → Discussion → Approbation → génération design.md
  • Phase 3 : Planification d'implémentation → Discussion → Approbation → génération tasks.md

Développement de spécification dynamique

  • Résout les ambiguïtés d'exigences par le dialogue
  • Présente et discute les options techniques
  • Explique les compromis et confirme les décisions

Exemples détaillés

# Fonctionnalité système complexe
"Créez un spec pour un système de paiement en ligne incluant intégration Stripe, sécurité et gestion d'erreurs"

# Fonctionnalité frontend
"Créez un spec pour un composant React incluant gestion d'état, conception de propriétés et tests"

# Fonctionnalité backend
"Créez un spec pour une API GraphQL incluant conception de schéma, resolvers et authentification"

# Fonctionnalité DevOps
"Créez un spec pour un pipeline CI/CD incluant automatisation de tests, déploiement et surveillance"

Flux de dialogue phase par phase

Phase 1 : Découverte et discussion des exigences

1. Expansion automatique à partir de saisie minimale (Style Kiro)

Utilisateur : "Système de gestion d'utilisateurs
- Fonctionnalité de connexion
- Édition de profil
- Permissions administrateur"

Claude : "Je vais générer des user stories détaillées à partir de vos exigences.
Cette compréhension est-elle correcte ?

User stories générées automatiquement :
- Inscription et authentification utilisateur (compatible OAuth)
- Gestion de profil (avatar, paramètres)
- Gestion des permissions (RBAC)
- Fonctionnalité de réinitialisation de mot de passe
- Journaux d'audit de sécurité

J'ai ajouté quelques détails que vous n'avez pas mentionnés. Autre chose nécessaire ?"

2. Description d'exigences structurées utilisant la notation EARS

Claude : "Laissez-moi structurer ceci en utilisant la notation EARS :

Voici les exigences au format EARS :

WHEN un utilisateur tente de se connecter
GIVEN il saisit la bonne adresse email et mot de passe
THEN le système shall confirmer l'authentification
AND rediriger vers le tableau de bord en cas de succès

WHILE un utilisateur est sur l'écran d'édition de profil
THE SYSTEM SHALL effectuer une validation temps réel
AND afficher un aperçu des changements

WHERE l'accès est tenté à une fonctionnalité nécessitant des privilèges administrateur
IS when le système shall vérifier les niveaux de permission
AND refuser l'accès si insuffisant"

3. Complétion automatique des cas limites et exigences de sécurité

Claude : "Suivant les bonnes pratiques, j'ai aussi pensé à ceci :

Exigences de sécurité (auto-ajoutées) :
- Protection force brute
- Gestion de session et timeouts
- Protection CSRF et XSS
- Règles de force de mot de passe

Cas limites (auto-détectés) :
- Gestion de connexions multiples
- Verrouillage de compte
- Cohérence des données pendant migration
- Gestion trafic élevé

Cela vous semble-t-il correct ?"

5. Complétion et approbation Phase 1

Claude : "Phase exigences terminée.
Dois-je créer requirements.md ?"
→ "Oui" → génère requirements.md

Phase 2 : Exploration et discussion de conception

1. Analyse de base de code + Proposition de conception automatique (Style Kiro)

Claude : "Après analyse de votre base de code, voici mon architecture recommandée :

Résultats d'analyse de base de code :
- Authentification : JWT + Express.js (v4.18.x)
- Base de données : PostgreSQL (v14+)
- Frontend : React + TypeScript (v18+)
- Patterns existants : Pattern Repository, séparation couche service

Architecture recommandée Kiro :
- Conforme Clean Architecture
- Éléments Domain-Driven Design
- Application partielle pattern CQRS
- Bonnes pratiques de sécurité automatisées

Devons-nous procéder avec cette conception ?"

2. Conception visuelle avec diagrammes Mermaid

Claude : "J'ai automatiquement généré une conception système utilisant les diagrammes Mermaid :

Diagramme d'architecture généré automatiquement :

graph TB
    Client[Client React] --> API[Express API Gateway]
    API --> Auth[Service Auth]
    API --> User[Service Utilisateur]
    API --> Profile[Service Profil]

    Auth --> AuthDB[(Base Auth)]
    User --> UserDB[(Base Utilisateur)]
    Profile --> ProfileDB[(Base Profil)]

    Auth --> JWT[Service JWT]
    Auth --> OAuth[Fournisseur OAuth]
Dois-je également générer un diagramme de flux de données ?"

3. Génération automatique d'interfaces TypeScript

Claude : "Je vais automatiquement générer les interfaces TypeScript basées sur la conception :

Interfaces TypeScript générées automatiquement :

// Entités de domaine
interface User {
  readonly id: UserId;
  readonly email: Email;
  readonly profile: UserProfile;
  readonly auth: AuthSettings;
  readonly permissions: Permission[];
  readonly createdAt: Date;
  readonly updatedAt: Date;
}

interface UserProfile {
  readonly displayName: string;
  readonly avatar: AvatarUrl;
  readonly preferences: UserPreferences;
}

interface AuthSettings {
  readonly passwordHash: PasswordHash;
  readonly mfaEnabled: boolean;
  readonly lastLoginAt: Date;
  readonly failedAttempts: number;
}

// Cas d'usage
interface UserRepository {
  findById(id: UserId): Promise<User | null>;
  findByEmail(email: Email): Promise<User | null>;
  save(user: User): Promise<void>;
}

interface AuthenticationService {
  authenticate(credentials: LoginCredentials): Promise<AuthResult>;
  refreshToken(token: RefreshToken): Promise<AccessToken>;
}
Devons-nous procéder avec cette conception d'interface ?"

4. Complétion et approbation Phase 2


Claude : "La Phase de Conception est terminée.
Puis-je générer design.md ?"
→ "Procéder" → génération design.md

Phase 3 : Planification et discussion d'implémentation

1. Application automatique des bonnes pratiques (Style Kiro)


Claude : "J'ai généré un plan d'implémentation avec application automatique des bonnes pratiques de Kiro :

Stratégie d'implémentation générée automatiquement :

1. Développement sécurité-d'abord
   - Incorporation automatique des contre-mesures OWASP Top 10
   - Implémentation automatique du chiffrement et hachage
   - Génération automatique de tests de sécurité

2. Enforcement d'architecture propre
   - Implémentation automatique de séparation de couches
   - Application automatique d'inversion de dépendance
   - Enforcement de conception testable

3. Optimisation performance
   - Implémentation automatique de stratégie de cache
   - Optimisation base de données
   - Utilisation du traitement asynchrone

Devons-nous procéder avec cette approche ?"

2. Paramétrage automatique de points de contrôle qualité


Claude : "J'ai automatiquement défini des points de contrôle qualité pour chaque phase d'implémentation :

Processus d'assurance qualité automatique :

Phase 3a : Implémentation backend

- [ ] Scan sécurité (SAST/DAST)
- [ ] Test spécification API (conforme OpenAPI)
- [ ] Test performance (charge/réponse)
- [ ] Scan vulnérabilités (dépendances/CVE)

Phase 3b : Implémentation frontend

- [ ] Test accessibilité (WCAG 2.1 AA)
- [ ] Test compatibilité navigateur
- [ ] Vérification design responsive
- [ ] Confirmation headers sécurité

Phase 3c : Intégration/Déploiement

- [ ] Suite de tests E2E
- [ ] Configuration pipeline CI/CD
- [ ] Configuration surveillance/journalisation
- [ ] Audit sécurité environnement production

Tous seront exécutés automatiquement. Y a-t-il des standards qualité supplémentaires ?"

3. Analyse automatique des dépendances et atténuation des risques


Claude : "J'ai automatiquement analysé l'ordre d'implémentation et les mesures d'atténuation des risques :

Ordre d'implémentation optimisé :

Semaine 1 : Infrastructure et fondation sécurité

- Conception base de données et création schéma
- Fondation authentification (JWT + gestion session)
- Implémentation middleware sécurité
- Points terminaison API de base

Semaine 2 : Implémentation fonctionnalité centrale

- Fonctionnalité gestion utilisateurs
- Fonctionnalité gestion profil
- Système gestion permissions
- Validation et gestion d'erreurs

Semaine 3 : Fonctionnalités avancées et optimisation

- Implémentation authentification multi-facteurs
- Fonctionnalité journaux d'audit
- Optimisation performance
- Intégration frontend

Mesures d'atténuation des risques automatiquement détectées :

- Authentification multi-facteurs : Déploiement graduel (SMS→authentification app)
- Gestion session : Configuration cluster Redis
- Trafic élevé : Limitation débit + utilisation CDN
- Cohérence données : Gestion transaction renforcée

Ce plan est-il acceptable ?"

4. Complétion et approbation Phase 3

Claude : "La Phase de Planification d'Implémentation est terminée.
Puis-je générer tasks.md ?"
→ "Procéder" → génération tasks.md

Fonctionnalités spécifiques à Kiro

Notation EARS (Easy Approach to Requirements Syntax)

# Patterns de notation EARS standard Kiro

WHEN [situation/déclencheur]
GIVEN [précondition]
THEN [comportement système]
AND [comportement supplémentaire]

WHILE [état/processus]
THE SYSTEM SHALL [comportement obligatoire]
AND [comportement lié]

WHERE [fonction/composant]
IS [condition/état]
THE SYSTEM SHALL [comportement correspondant]

Fonctionnalités de génération automatique

  • Diagrammes Mermaid : Génération automatique de diagrammes d'architecture et flux de données
  • Interfaces TypeScript : Création automatique de définitions de types basées sur conception
  • Bonnes pratiques : Incorporation automatique de mesures sécurité et performance
  • Points contrôle qualité : Définition automatique de standards qualité spécifiques aux phases

Intégration Hooks

  • Vérifications qualité automatiques à la sauvegarde fichier
  • Application automatique de standards de code
  • Exécution automatique de scans sécurité
  • Vérification automatique des contre-mesures OWASP Top 10

Assurance qualité Prototype→Production

  • Conception cohérente par approche structurée
  • Enforcement du développement sécurité-d'abord
  • Application automatique d'architecture évolutive
  • Intégration de gestion qualité continue

Remarques

Portée d'application

  • Le Mode Spec est optimisé pour l'implémentation de fonctionnalités
  • Utilisez le format d'implémentation normal pour corrections simples ou petites modifications
  • Recommandé pour développement nouvelles fonctionnalités ou modifications complexes

Assurance qualité

  • Clarification des critères de complétion à chaque étape
  • Révision conception avant implémentation
  • Standards qualité complets incluant tests et accessibilité

Notes opérationnelles

  • Résoudre ambiguïtés exigences avant phase conception
  • Générer tâches implémentation après complétion conception
  • Mettre l'accent sur processus approbation à chaque étape

Phrases déclencheuses et contrôles

Contrôle flux de travail étape par étape

Déclencheurs de démarrage

  • "Créez un spec pour [nom fonctionnalité]"
  • "Je veux développer [nom fonctionnalité] en utilisant développement piloté par spécifications"
  • "Concevez [nom fonctionnalité] à partir de spécifications"

Contrôle progression phase

  • "Procéder" : Compléter phase actuelle, générer fichier, passer à phase suivante
  • "Réviser" : Ajuster ou améliorer contenu dans phase actuelle
  • "Redémarrer" : Redémarrer phase actuelle depuis le début
  • "Expliquer en détail" : Fournir explications plus détaillées ou options
  • "Ignorer" : Ignorer phase actuelle et passer à suivante (non recommandé)

Timing génération fichier

Complétion Phase 1 → "Procéder" → génération requirements.md
Complétion Phase 2 → "Procéder" → génération design.md
Complétion Phase 3 → "Procéder" → génération tasks.md

Exemple d'exécution (Flux étape par étape)

# Exemple d'usage
Utilisateur : "Créez un spec pour un système de gestion d'utilisateurs"

# Phase 1 : Découverte exigences
Claude : [Commence confirmation et discussion exigences]
Utilisateur : [Répond, discute, fait révisions]
Claude : "La Phase Exigences est terminée. Puis-je procéder ?"
Utilisateur : "Procéder"
→ génération requirements.md

# Phase 2 : Exploration conception
Claude : [Commence proposition et discussion conception]
Utilisateur : [Discute sélection technologie et architecture]
Claude : "La Phase Conception est terminée. Puis-je procéder ?"
Utilisateur : "Procéder"
→ génération design.md

# Phase 3 : Planification implémentation
Claude : [Commence discussion plan implémentation]
Utilisateur : [Discute priorités, risques et effort]
Claude : "La Phase Implémentation est terminée. Puis-je procéder ?"
Utilisateur : "Procéder"
→ génération tasks.md

# Complétion
Claude : "La préparation du développement piloté par spécifications est terminée. Vous pouvez commencer l'implémentation."

Différences avec /plan

Fonctionnalité /plan /spec
Cible Plan d'implémentation général Développement piloté par spécifications de fonctionnalité
Format de sortie Document de plan unique 3 fichiers indépendants (requirements.md, design.md, tasks.md)
Définition exigences Organisation exigences de base Critères d'acceptation détaillés utilisant notation EARS
Conception Focalisée sélection technologie Basée analyse base de code
Implémentation Décomposition tâches générale Séquence consciente dépendances
Assurance qualité Stratégie test de base Exigences qualité complètes (tests, accessibilité, performance)
Synchronisation Plan statique Mises à jour spec dynamiques

Cas d'usage recommandés

Recommandé pour usage spec

  • Développement nouvelles fonctionnalités
  • Modifications fonctionnalités complexes
  • Conception API
  • Conception base de données
  • Implémentation UI/UX

Recommandé pour usage plan

  • Conception système globale
  • Construction infrastructure
  • Refactorisation
  • Sélection technologie
  • Changements architecture