Lever les ambiguïtés avant design - Phase 2 (mode interactif ou heuristiques automatiques)
IMPORTANT : Exécute ce workflow étape par étape :
Phase 2 du workflow de développement : identifier et résoudre toutes les ambiguïtés avant de designer l'architecture.
.claude/data/.dev-workflow-state.json pour la feature et les findings de l'exploration/analyst:explore
(en mode automatique : exit avec erreur code 1)Identifier les aspects sous-spécifiés dans les catégories suivantes :
Utiliser AskUserQuestion pour présenter les questions de manière organisée.
CRITIQUE : Ne PAS passer à la phase suivante avant d'avoir toutes les réponses.
Appliquer cette table de décision :
| Catégorie | Heuristique par défaut |
|---|---|
| Edge cases | Valeur null/vide → Exception métier explicite (InvalideXXX ou {NomEntité}Invalide) |
| Gestion erreurs | Exceptions métier typées (héritant d'une base commune) + logging PSR-3 niveau ERROR |
| Intégration | Réutiliser patterns existants détectés en Phase 1 (patterns de repository, services, DTOs) |
| Rétrocompatibilité | Préserver API publique (pas de breaking changes), créer nouvelle méthode si needed |
| Performance | Pas de cache prématuré sauf si liste > 1000 items (sinon trop de complexité) |
| Sécurité | TOUJOURS valider inputs (whitelist si possible), échapper outputs selon context |
Mettre à jour le workflow state avec les réponses ou les décisions appliquées :
{
"currentPhase": 2,
"phases": {
"2": {
"status": "completed",
"completedAt": "{ISO timestamp}",
"durationMs": "{durée}",
"autoDecisions": {
"edgeCases": "Exception métier InvalideXXX pour valeurs null/vides",
"errorHandling": "Exceptions typées héritant de DomainException + logging PSR-3 ERROR",
"integration": "Réutilisation patterns existants Phase 1",
"compatibility": "Préservation API publique, nouvelle méthode si breaking",
"performance": "Pas de cache prématuré sauf liste > 1000 items",
"security": "Validation inputs (whitelist), échappement outputs"
}
}
}
}
Clarifications complètes
Prochaine étape : /architect:design pour proposer des architectures