# Framework:make:contracts

> Génère les interfaces de contrats pour une architecture Elegant Objects

- Skill: `atournayre/framework-make-contracts` (Agent Skill, multi-file: 10 files)
- Install (CLI): `npx skillmds@latest add atournayre/framework-make-contracts`
- Raw SKILL.md: https://api.skillmd.com/api/skills/atournayre/framework-make-contracts/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: atournayre (https://skillmd.com/u/atournayre)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/atournayre/framework-make-contracts

---


# Framework Make Contracts Skill

## Instructions à Exécuter

**IMPORTANT : Exécute ce workflow étape par étape :**


## Description
Génère l'ensemble des interfaces de contrats nécessaires pour une architecture respectant les principes Elegant Objects et DDD.

Ces interfaces servent de fondation pour toutes les autres skills du framework.

## Usage
```
Use skill framework:make:contracts
```

## Templates
- `OutInterface.php` - Interface pour objets de sortie (DTO)
- `InvalideInterface.php` - Interface pour exceptions métier
- `HasUrlsInterface.php` - Interface pour objets ayant des URLs
- `OutDataInterface.php` - Interface pour data classes de sortie
- `InvalideDataInterface.php` - Interface pour data classes d'invalidation
- `UrlsDataInterface.php` - Interface pour data classes d'URLs
- `Story/StoryInterface.php` - Interface pour stories de tests
- `Doctrine/DoctrineMigrationInterface.php` - Interface pour migrations Doctrine

## Variables requises
Aucune - Ces interfaces sont génériques et ne nécessitent pas de paramètres.

## Dépendances
Aucune - C'est la première skill à exécuter (Niveau 0 - Fondation).

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

## Workflow

1. Vérifier si le répertoire `src/Contracts/` existe
2. Créer la structure de répertoires si nécessaire :
   - `src/Contracts/`
   - `src/Contracts/Story/`
   - `src/Contracts/Doctrine/`
3. Copier tous les templates d'interfaces depuis `framework/skills/make-contracts/templates/Contracts/` vers `src/Contracts/`
4. Afficher la liste des fichiers créés

## Notes
- Ces interfaces n'ont pas besoin d'être modifiées pour chaque projet
- Elles doivent être créées une seule fois par projet
- Toutes les autres skills du framework dépendent de ces interfaces

