Initial commit
This commit is contained in:
5
commands/doc/load.md
Normal file
5
commands/doc/load.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
description: Charge la documentation Symfony depuis son site web dans des fichiers markdown locaux
|
||||
---
|
||||
|
||||
You must use the Skill tool to invoke the "doc-loader" skill with "symfony" as argument.
|
||||
155
commands/doc/question.md
Normal file
155
commands/doc/question.md
Normal file
@@ -0,0 +1,155 @@
|
||||
---
|
||||
allowed-tools: [Read, Grep, Glob, Bash]
|
||||
description: Interroger la documentation Symfony locale pour répondre à une question
|
||||
argument-hint: <question>
|
||||
model: claude-sonnet-4-5-20250929
|
||||
---
|
||||
|
||||
# Interrogation de la Documentation Symfony
|
||||
|
||||
Répondre à une question technique sur Symfony en utilisant la documentation locale présente dans `docs/symfony/`.
|
||||
|
||||
## Purpose
|
||||
Fournir des réponses précises et contextualisées aux questions Symfony en s'appuyant sur la documentation officielle stockée localement, sans nécessiter d'accès web.
|
||||
|
||||
## Variables
|
||||
- QUESTION: La question technique posée par l'utilisateur
|
||||
- DOCS_PATH: `docs/symfony/` - Chemin vers la documentation locale
|
||||
- SEARCH_KEYWORDS: Mots-clés extraits de la question pour la recherche
|
||||
|
||||
## Relevant Files
|
||||
- `docs/symfony/` - Documentation Symfony locale
|
||||
- `docs/symfony/README.md` - Index de la documentation chargée
|
||||
|
||||
## Workflow
|
||||
|
||||
### Étape 1: Vérification de la documentation locale
|
||||
- Vérifier l'existence de `docs/symfony/`
|
||||
- Si le répertoire n'existe pas ou est vide :
|
||||
- Informer l'utilisateur
|
||||
- Suggérer d'exécuter `/load:doc:symfony` pour charger la documentation
|
||||
- Arrêter l'exécution avec message explicite
|
||||
- Si la documentation existe :
|
||||
- Lire `docs/symfony/README.md` pour connaître le contenu disponible
|
||||
- Continuer vers l'étape 2
|
||||
|
||||
### Étape 2: Analyse de la question
|
||||
- Extraire les mots-clés principaux de QUESTION
|
||||
- Identifier le contexte technique (composant, feature, concept)
|
||||
- Exemples de mots-clés :
|
||||
- "routing" → chercher dans routing.md, controller.md
|
||||
- "doctrine" → chercher dans doctrine.md, database.md
|
||||
- "form" → chercher dans forms.md, validation.md
|
||||
- "security" → chercher dans security.md, authentication.md
|
||||
|
||||
### Étape 3: Recherche dans la documentation
|
||||
- Utiliser Grep pour rechercher les mots-clés dans `docs/symfony/`
|
||||
- Paramètres de recherche :
|
||||
- Case insensitive (`-i`)
|
||||
- Afficher le contexte (3 lignes avant/après avec `-C 3`)
|
||||
- Limiter les résultats pertinents
|
||||
- Lire les fichiers markdown pertinents identifiés
|
||||
- Si aucun résultat :
|
||||
- Élargir la recherche avec des termes associés
|
||||
- Suggérer des termes de recherche alternatifs
|
||||
|
||||
### Étape 4: Analyse et synthèse
|
||||
- Extraire les sections pertinentes de la documentation
|
||||
- Organiser les informations par ordre de pertinence
|
||||
- Identifier :
|
||||
- Concept principal
|
||||
- Exemples de code
|
||||
- Bonnes pratiques
|
||||
- Warnings et notes importantes
|
||||
- Liens vers documentation connexe
|
||||
|
||||
### Étape 5: Construction de la réponse
|
||||
- Réponse structurée en format bullet points
|
||||
- Inclure :
|
||||
- Explication concise du concept
|
||||
- Exemples de code si disponibles
|
||||
- Références aux fichiers de documentation sources
|
||||
- Liens internes vers sections connexes
|
||||
- Format markdown enrichi avec :
|
||||
- Blocs de code PHP/YAML/Twig selon contexte
|
||||
- Sections info/warning si pertinent
|
||||
- Liste hiérarchique pour les étapes
|
||||
|
||||
### Étape 6: Rapport final avec timing
|
||||
- Présenter la réponse formatée
|
||||
- Calculer et afficher la durée totale
|
||||
- Afficher le timestamp de fin
|
||||
|
||||
## Report Format
|
||||
```markdown
|
||||
## 📚 Réponse : [Sujet principal]
|
||||
|
||||
### Concept
|
||||
- Explication principale
|
||||
- Points clés
|
||||
|
||||
### Exemple de Code
|
||||
[Bloc de code si disponible]
|
||||
|
||||
### Documentation de Référence
|
||||
- 📄 `docs/symfony/[fichier].md` - [Section]
|
||||
- 📄 Autres fichiers pertinents
|
||||
|
||||
### Voir Aussi
|
||||
- Concepts connexes
|
||||
- Autres commandes utiles
|
||||
```
|
||||
|
||||
## Error Handling
|
||||
- **Documentation manquante** : Message clair + suggestion `/load:doc:symfony`
|
||||
- **Aucun résultat trouvé** : Suggérer termes alternatifs ou reformulation
|
||||
- **Question trop vague** : Demander précisions avec exemples
|
||||
- **Fichiers corrompus** : Signaler et suggérer rechargement
|
||||
|
||||
## Examples
|
||||
|
||||
### Exemple 1 - Question simple
|
||||
```bash
|
||||
/symfony:doc:question "Comment créer une route ?"
|
||||
```
|
||||
**Résultat attendu** :
|
||||
- Recherche dans routing.md, controller.md
|
||||
- Exemples d'annotations/attributs PHP 8
|
||||
- Exemples YAML
|
||||
- Références aux fichiers sources
|
||||
|
||||
### Exemple 2 - Question sur composant
|
||||
```bash
|
||||
/symfony:doc:question "Comment utiliser les formulaires avec validation ?"
|
||||
```
|
||||
**Résultat attendu** :
|
||||
- Recherche forms.md, validation.md
|
||||
- Exemples de FormType
|
||||
- Contraintes de validation
|
||||
- Intégration Doctrine
|
||||
|
||||
### Exemple 3 - Question avancée
|
||||
```bash
|
||||
/symfony:doc:question "Quelle est la différence entre les voters et les guards ?"
|
||||
```
|
||||
**Résultat attendu** :
|
||||
- Recherche security.md, voters.md, guard.md
|
||||
- Comparaison conceptuelle
|
||||
- Cas d'usage appropriés
|
||||
- Exemples des deux approches
|
||||
|
||||
## Best Practices
|
||||
- Toujours vérifier la présence de la documentation avant recherche
|
||||
- Privilégier la précision sur l'exhaustivité
|
||||
- Citer les sources (fichiers markdown consultés)
|
||||
- Fournir des exemples de code concrets
|
||||
- Suggérer des commandes connexes si pertinent
|
||||
- Garder les réponses concises mais complètes
|
||||
- **Afficher le timing au début et à la fin**
|
||||
- **Calculer précisément la durée d'exécution**
|
||||
|
||||
## Notes
|
||||
- Cette commande fonctionne 100% offline une fois la documentation chargée
|
||||
- La documentation doit être rafraîchie périodiquement avec `/load:doc:symfony`
|
||||
- Supporte toutes les versions de Symfony présentes dans `docs/symfony/`
|
||||
- Peut être étendue pour supporter d'autres frameworks avec le même pattern
|
||||
182
commands/make.md
Normal file
182
commands/make.md
Normal file
@@ -0,0 +1,182 @@
|
||||
---
|
||||
allowed-tools: Bash,Read,SlashCommand
|
||||
argument-hint: <tâche>
|
||||
description: Cherche si il existe un maker Symfony pour faire la tache demandée et l'utilise si il existe. Si aucun maker n'existe alors utilise la slash command "/prepare"
|
||||
model: claude-sonnet-4-5-20250929
|
||||
---
|
||||
|
||||
# Symfony Maker - Générateur Intelligent
|
||||
|
||||
Recherche et utilise automatiquement les makers Symfony disponibles pour la tâche demandée. Si aucun maker approprié n'existe, génère un plan d'implémentation via `/prepare`.
|
||||
|
||||
## Purpose
|
||||
Automatiser la création de code Symfony en utilisant les makers officiels lorsque disponibles, avec fallback vers la planification manuelle.
|
||||
|
||||
## Variables
|
||||
- TASK: Description de la tâche à réaliser (ex: "créer un controller", "ajouter une entité")
|
||||
- MAKER_COMMAND: Commande maker Symfony identifiée (ex: make:controller, make:entity)
|
||||
- MAKER_ARGS: Arguments à passer au maker
|
||||
|
||||
## Instructions
|
||||
Vous êtes un assistant Symfony expert qui :
|
||||
- Identifie le maker Symfony approprié pour chaque tâche
|
||||
- Vérifie la disponibilité du maker dans le projet
|
||||
- Exécute le maker avec les bons arguments
|
||||
- Génère un plan alternatif si aucun maker n'existe
|
||||
- Valide la création et suggère les étapes suivantes
|
||||
|
||||
## Relevant Files
|
||||
- `bin/console` - Console Symfony
|
||||
- `config/packages/maker.yaml` - Configuration Maker Bundle
|
||||
- `composer.json` - Dépendances incluant symfony/maker-bundle
|
||||
|
||||
## Workflow
|
||||
|
||||
### Étape 1: Analyse de la tâche
|
||||
- Parser la description de la tâche fournie
|
||||
- Identifier les mots-clés Symfony (controller, entity, form, command, etc.)
|
||||
- Déterminer le maker Symfony potentiel
|
||||
|
||||
### Étape 2: Vérification de l'environnement
|
||||
- Vérifier la présence de `bin/console`
|
||||
- Lister les makers disponibles : `bin/console list make`
|
||||
- Confirmer que symfony/maker-bundle est installé
|
||||
|
||||
### Étape 3: Décision et exécution
|
||||
**Si un maker existe :**
|
||||
- Construire la commande maker avec arguments appropriés
|
||||
- Demander confirmation à l'utilisateur si des paramètres sont requis
|
||||
- Exécuter le maker via Bash
|
||||
- Valider la création des fichiers
|
||||
|
||||
**Si aucun maker n'existe :**
|
||||
- Informer l'utilisateur qu'aucun maker n'est disponible
|
||||
- Utiliser SlashCommand pour exécuter `/prepare [TASK]`
|
||||
- Transmettre la description complète de la tâche
|
||||
|
||||
### Étape 4: Rapport final
|
||||
- Résumer les fichiers créés ou le plan généré
|
||||
- Suggérer les prochaines étapes (tests, configuration, etc.)
|
||||
- Afficher le timing de fin et la durée
|
||||
|
||||
## Expertise
|
||||
|
||||
### Mapping Tâche → Maker
|
||||
- **Controller/Contrôleur** → `make:controller`
|
||||
- **Entity/Entité** → `make:entity`
|
||||
- **Form/Formulaire** → `make:form`
|
||||
- **Command/Commande** → `make:command`
|
||||
- **Voter** → `make:voter`
|
||||
- **Event Subscriber** → `make:subscriber`
|
||||
- **Service/Repository** → `make:service` ou `make:repository`
|
||||
- **Test/Tests** → `make:test` ou `make:functional-test`
|
||||
- **Fixture** → `make:fixtures`
|
||||
- **CRUD** → `make:crud`
|
||||
- **Authentication** → `make:auth`
|
||||
- **Registration** → `make:registration-form`
|
||||
- **Reset Password** → `make:reset-password`
|
||||
- **Migration** → `make:migration`
|
||||
|
||||
### Makers courants
|
||||
```bash
|
||||
# Vérifier tous les makers disponibles
|
||||
bin/console list make
|
||||
|
||||
# Makers les plus utilisés
|
||||
make:controller # Créer un controller
|
||||
make:entity # Créer/modifier une entité
|
||||
make:form # Créer un FormType
|
||||
make:crud # Générer CRUD complet
|
||||
make:command # Créer une commande console
|
||||
make:subscriber # Créer un event subscriber
|
||||
make:voter # Créer un voter de sécurité
|
||||
make:test # Créer un test unitaire
|
||||
make:migration # Générer migration DB
|
||||
make:fixtures # Créer des fixtures
|
||||
```
|
||||
|
||||
## Examples
|
||||
|
||||
### Exemple 1: Créer un controller
|
||||
```bash
|
||||
# Input
|
||||
/symfony:make "créer un controller pour gérer les utilisateurs"
|
||||
|
||||
# Sortie attendue
|
||||
Analyse: création d'un controller
|
||||
Maker identifié: make:controller
|
||||
|
||||
Exécution:
|
||||
$ bin/console make:controller UserController
|
||||
|
||||
✅ Controller créé: src/Controller/UserController.php
|
||||
|
||||
Prochaines étapes:
|
||||
- Ajouter les routes dans les annotations
|
||||
- Créer les templates Twig associés
|
||||
- Écrire les tests fonctionnels
|
||||
```
|
||||
|
||||
### Exemple 2: Créer une entité
|
||||
```bash
|
||||
# Input
|
||||
/symfony:make "ajouter une entité Product avec nom et prix"
|
||||
|
||||
# Sortie attendue
|
||||
Analyse: création d'une entité
|
||||
Maker identifié: make:entity
|
||||
|
||||
Exécution:
|
||||
$ bin/console make:entity Product
|
||||
|
||||
[Interactive] Ajout des champs:
|
||||
- name (string, 255)
|
||||
- price (decimal, 10,2)
|
||||
|
||||
✅ Entité créée: src/Entity/Product.php
|
||||
✅ Repository créé: src/Repository/ProductRepository.php
|
||||
|
||||
Prochaines étapes:
|
||||
- Générer la migration: bin/console make:migration
|
||||
- Exécuter la migration: bin/console doctrine:migrations:migrate
|
||||
- Créer les fixtures de test
|
||||
```
|
||||
|
||||
### Exemple 3: Tâche sans maker (fallback)
|
||||
```bash
|
||||
# Input
|
||||
/symfony:make "implémenter un système de cache Redis personnalisé"
|
||||
|
||||
# Sortie attendue
|
||||
Analyse: système de cache Redis personnalisé
|
||||
Aucun maker Symfony disponible pour cette tâche
|
||||
|
||||
Génération du plan d'implémentation...
|
||||
[Exécution de /prepare "implémenter un système de cache Redis personnalisé"]
|
||||
```
|
||||
|
||||
## Report
|
||||
|
||||
### Format du rapport
|
||||
```markdown
|
||||
## Analyse de la tâche
|
||||
- Tâche demandée: [TASK]
|
||||
- Maker identifié: [MAKER_COMMAND ou "Aucun"]
|
||||
|
||||
## Exécution
|
||||
[Commandes exécutées ou plan généré]
|
||||
|
||||
## Fichiers créés
|
||||
- [Liste des fichiers]
|
||||
|
||||
## Prochaines étapes
|
||||
- [Suggestions]
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
- Toujours vérifier la disponibilité du maker avant exécution
|
||||
- Fournir le contexte complet au `/prepare` en cas de fallback
|
||||
- Suggérer les commandes de migration si entité créée
|
||||
- Proposer la création de tests associés
|
||||
- Documenter les fichiers générés
|
||||
- Afficher le timing au début et à la fin
|
||||
Reference in New Issue
Block a user