analyst:clarify
Lever les ambiguïtés avant design - Phase 2 (mode interactif ou heuristiques automatiques)
- License 许可
- MIT
- 最近更新
- 2026-03-02
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- analyst:clarify
- model
- sonnet
- license
- MIT
- version
- 1.0.0
- description
- Lever les ambiguïtés avant design - Phase 2 (mode interactif ou heuristiques automatiques)
- allowed-tools
- [ "AskUserQuestion", "Read", "Grep", "Glob", "Task" ]
03 SKILL.md 正文
Lever les ambiguïtés (Phase 2)
Instructions à Exécuter
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.
Instructions
1. Lire le contexte
- Lire
.claude/data/.dev-workflow-state.jsonpour la feature et les findings de l'exploration - Si le fichier n'existe pas ou phase 1 non complétée, rediriger vers
/analyst:explore(en mode automatique : exit avec erreur code 1)
2. Analyser les zones d'ombre
Identifier les aspects sous-spécifiés dans les catégories suivantes :
Edge cases
- Que se passe-t-il si X est vide/null ?
- Comment gérer les cas limites ?
Gestion d'erreurs
- Quelles erreurs peuvent survenir ?
- Comment les communiquer à l'utilisateur ?
Points d'intégration
- Comment cette feature interagit avec l'existant ?
- Y a-t-il des dépendances circulaires à éviter ?
Rétrocompatibilité
- Cette feature impacte-t-elle des fonctionnalités existantes ?
- Y a-t-il des migrations de données nécessaires ?
Performance
- Y a-t-il des contraintes de performance ?
- Faut-il penser au caching ?
Sécurité
- Quelles autorisations sont nécessaires ?
- Y a-t-il des données sensibles à protéger ?
3. Résoudre les ambiguïtés
Mode interactif
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.
Mode automatique (zéro AskUserQuestion)
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 |
4. Documenter les décisions
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"
}
}
}
}
Règles
- Ne PAS proposer d'architecture à ce stade
- Ne PAS faire de suppositions en mode interactif - poser des questions
- En mode automatique : zéro AskUserQuestion, heuristiques appliquées directement
- Documenter TOUTES les décisions prises
- Utiliser les patterns existants détectés en Phase 1
Prochaine étape
Clarifications complètes
Prochaine étape : /architect:design pour proposer des architectures
04 同仓库更多 Skills
twig:make-component
Génère un Twig Component Symfony UX (classe PHP + template Twig)
tester:ui-test
Teste automatiquement une interface utilisateur dans Chrome : navigation, clics, validation visuelle, tests fonctionnels, responsive, comportement et debug. Génère un rapport détaillé avec screenshots et optionnellement un GIF du parcours.
symfony:voter
Genere un Voter de securite Symfony pour le controle d'acces granulaire
symfony:message
Genere un Message Symfony Messenger avec son Handler pour traitement asynchrone
symfony:mailer
Genere un email Symfony (TemplatedEmail ou Notification) avec template Twig
symfony:form
Genere un FormType Symfony avec contraintes de validation et options