Claude Code Plugins

Community-maintained marketplace

Feedback
4
0

Génère tous les fichiers pour une entité complète (orchestrateur)

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name framework:make:all
description Génère tous les fichiers pour une entité complète (orchestrateur)
license MIT
version 1.0.0

Framework Make All Skill

Description

Orchestrateur qui génère tous les fichiers nécessaires pour une entité complète en appelant séquentiellement toutes les skills du framework.

Cette skill crée une stack complète respectant les principes Elegant Objects et DDD pour une entité donnée.

Usage

Use skill framework:make:all

Vous serez invité à fournir :
- Le nom de l'entité (ex: Product, User, Order)
- Les propriétés avec leurs types (optionnel)

Dépendances

Cette skill orchestre l'appel de toutes les autres skills :

  1. framework:make:contracts (si pas déjà présents)
  2. framework:make:entity
  3. framework:make:out
  4. framework:make:invalide
  5. framework:make:urls
  6. framework:make:collection
  7. framework:make:factory
  8. framework:make:story

Variables requises

  • {EntityName} - Nom de l'entité en PascalCase (ex: Utilisateur, Product)
  • {properties} - Liste des propriétés avec types (optionnel, array)

Outputs

Tous les fichiers générés par les 8 skills :

Contracts (si non existants)

  • src/Contracts/OutInterface.php
  • src/Contracts/InvalideInterface.php
  • src/Contracts/HasUrlsInterface.php
  • src/Contracts/OutDataInterface.php
  • src/Contracts/InvalideDataInterface.php
  • src/Contracts/UrlsDataInterface.php
  • src/Contracts/Story/StoryInterface.php
  • src/Contracts/Doctrine/DoctrineMigrationInterface.php

Core

  • src/Entity/{EntityName}.php
  • src/Repository/{EntityName}Repository.php
  • src/Repository/{EntityName}RepositoryInterface.php

Patterns

  • src/Out/{EntityName}Out.php
  • src/Invalide/{EntityName}Invalide.php

Avancé

  • src/Urls/{EntityName}Urls.php
  • src/MessageHandler/{EntityName}UrlsMessage.php
  • src/MessageHandler/{EntityName}UrlsMessageHandler.php
  • src/Collection/{EntityName}Collection.php

Tests

  • src/Factory/{EntityName}Factory.php
  • src/Story/{EntityName}Story.php
  • src/Story/AppStory.php (updated)

Workflow

  1. Demander le nom de l'entité (EntityName)
  2. Demander les propriétés (optionnel)
  3. Vérifier si src/Contracts/ existe
    • Si non : exécuter framework:make:contracts
  4. Exécuter séquentiellement :
    1. framework:make:entity (avec EntityName et properties)
    2. framework:make:out (avec EntityName)
    3. framework:make:invalide (avec EntityName)
    4. framework:make:urls (avec EntityName)
    5. framework:make:collection (avec EntityName)
    6. framework:make:factory (avec EntityName et properties)
    7. framework:make:story (avec EntityName)
  5. Afficher le résumé de tous les fichiers créés
  6. Afficher les prochaines étapes recommandées

Ordre d'exécution (critique)

L'ordre d'appel des skills est important car il respecte les dépendances :

Phase 1 - Fondation
└── make:contracts (si besoin)

Phase 2 - Core
└── make:entity (dépend de: contracts)

Phase 3 - Patterns (parallélisables mais dépendent de entity)
├── make:out (dépend de: entity)
└── make:invalide (dépend de: entity)

Phase 4 - Avancé (dépendent de entity + repository)
├── make:urls (dépend de: entity, repository)
└── make:collection (dépend de: entity)

Phase 5 - Tests (dépendent de entity)
├── make:factory (dépend de: entity)
└── make:story (dépend de: entity, factory)

Exemple

Use skill framework:make:all

# Saisies utilisateur :
EntityName: Product
Properties:
  - name: string
  - description: string
  - price: float
  - stock: int
  - isActive: bool

# Résultat :
✓ Phase 1 - Fondation
  ✓ Contracts déjà présents

✓ Phase 2 - Core
  ✓ src/Entity/Product.php
  ✓ src/Repository/ProductRepository.php
  ✓ src/Repository/ProductRepositoryInterface.php

✓ Phase 3 - Patterns
  ✓ src/Out/ProductOut.php
  ✓ src/Invalide/ProductInvalide.php

✓ Phase 4 - Avancé
  ✓ src/Urls/ProductUrls.php
  ✓ src/MessageHandler/ProductUrlsMessage.php
  ✓ src/MessageHandler/ProductUrlsMessageHandler.php
  ✓ src/Collection/ProductCollection.php

✓ Phase 5 - Tests
  ✓ src/Factory/ProductFactory.php
  ✓ src/Story/ProductStory.php
  ✓ src/Story/AppStory.php (updated)

📊 Total: 15 fichiers créés

📝 Prochaines étapes recommandées:
1. Créer la migration Doctrine: php bin/console make:migration
2. Exécuter la migration: php bin/console doctrine:migrations:migrate
3. Enrichir ProductInvalide avec exceptions métier
4. Enrichir ProductUrls avec méthodes d'URLs
5. Enrichir ProductOut avec propriétés exposées
6. Enrichir ProductCollection avec méthodes métier (si besoin)
7. Enrichir ProductFactory avec méthodes custom (si besoin)
8. Enrichir ProductStory avec scénarios de test
9. Lancer les tests: php bin/phpunit

Validation après génération

La skill doit vérifier que tous les fichiers ont été créés correctement :

  1. Vérifier existence de tous les fichiers
  2. Vérifier que les imports sont corrects
  3. Vérifier que les namespaces sont cohérents
  4. Vérifier que AppStory a été mis à jour

Gestion des erreurs

Si une skill échoue :

  1. Afficher l'erreur clairement
  2. Indiquer quelle skill a échoué
  3. Proposer de corriger manuellement
  4. Ne pas continuer avec les skills suivantes si une skill critique échoue

Options avancées (futur)

Potentiellement ajouter des flags :

  • --skip-tests : ne pas générer Factory et Story
  • --skip-urls : ne pas générer Urls + handlers
  • --minimal : générer uniquement Entity + Repository + Out
  • --api-only : générer pour API (Entity + Repository + Out + Collection)

Notes

  • Cette skill est un orchestrateur, elle ne contient pas de templates
  • Elle appelle séquentiellement toutes les autres skills
  • L'ordre d'exécution est critique et respecte les dépendances
  • Idéale pour démarrer rapidement avec une nouvelle entité
  • Génère une stack complète Elegant Objects + DDD