Files
gh-atournayre-claude-market…/commands/make.md
2025-11-29 17:59:04 +08:00

5.6 KiB

allowed-tools, argument-hint, description, model
allowed-tools argument-hint description model
Bash,Read,SlashCommand <tâche> 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" 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ôleurmake:controller
  • Entity/Entitémake:entity
  • Form/Formulairemake:form
  • Command/Commandemake:command
  • Votermake:voter
  • Event Subscribermake:subscriber
  • Service/Repositorymake:service ou make:repository
  • Test/Testsmake:test ou make:functional-test
  • Fixturemake:fixtures
  • CRUDmake:crud
  • Authenticationmake:auth
  • Registrationmake:registration-form
  • Reset Passwordmake:reset-password
  • Migrationmake:migration

Makers courants

# 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

# 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é

# 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)

# 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

## 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