This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
# Agents pour le système JDR Ecryme (FoundryVTT)
|
||||
|
||||
Ce fichier documente les commandes et workflows pour les agents (automatisations, scripts, outils externes) utilisés dans le développement et la maintenance du système Ecryme pour FoundryVTT.
|
||||
|
||||
## Commandes de développement
|
||||
|
||||
### Linting et validation
|
||||
```bash
|
||||
# Vérification du code TypeScript
|
||||
npm run lint
|
||||
|
||||
# Vérification des types
|
||||
npm run typecheck
|
||||
|
||||
# Construction du projet
|
||||
npm run build
|
||||
```
|
||||
|
||||
### Tests
|
||||
```bash
|
||||
# Exécution des tests unitaires
|
||||
npm test
|
||||
|
||||
# Exécution des tests avec couverture
|
||||
npm run test:coverage
|
||||
```
|
||||
|
||||
### Déploiement
|
||||
```bash
|
||||
# Construction pour la production
|
||||
npm run build:prod
|
||||
|
||||
# Génération du package pour FoundryVTT
|
||||
npm run package
|
||||
```
|
||||
|
||||
## Workflows recommandés
|
||||
|
||||
### Avant de soumettre une PR
|
||||
1. Exécuter les tests unitaires
|
||||
2. Vérifier le linting (`npm run lint`)
|
||||
3. Vérifier les types (`npm run typecheck`)
|
||||
4. Construire le projet (`npm run build`)
|
||||
5. Tester manuellement dans FoundryVTT avec les scénarios de test fournis dans `/test-scenarios/`
|
||||
|
||||
### Pour ajouter une nouvelle fonctionnalité
|
||||
1. Créer une branche `feature/<nom-de-la-fonctionnalité>`
|
||||
2. Ajouter les tests dans `/tests/`
|
||||
3. Implémenter la fonctionnalité
|
||||
4. Mettre à jour la documentation dans `/docs/` si nécessaire
|
||||
5. Soumettre une PR avec une description claire des changements
|
||||
|
||||
## Structure du projet
|
||||
```
|
||||
/
|
||||
├── src/ # Code source principal
|
||||
│ ├── module/ # Définition du module FoundryVTT
|
||||
│ ├── systems/ # Systèmes de règles spécifiques à Ecryme
|
||||
│ ├── actors/ # Logique des acteurs (PJs, PNJs, créatures)
|
||||
│ ├── items/ # Logique des objets (armes, sorts, équipements)
|
||||
│ └── utils/ # Utilitaires partagés
|
||||
├── tests/ # Tests unitaires et d'intégration
|
||||
├── docs/ # Documentation technique et utilisateur
|
||||
├── templates/ # Templates Handlebar pour les feuilles de personnage
|
||||
└── test-scenarios/ # Scénarios de test pour FoundryVTT
|
||||
```
|
||||
|
||||
## Conventions de codage
|
||||
- **TypeScript strict** : Toujours utiliser les types les plus précis possibles
|
||||
- **Noms de fichiers** :
|
||||
- PascalCase pour les classes (`CharacterSheet.ts`)
|
||||
- kebab-case pour les templates (`character-sheet.hbs`)
|
||||
- camelCase pour les utilitaires (`diceRoller.ts`)
|
||||
- **Tests** :
|
||||
- Un fichier de test par fichier source (`characterSheet.test.ts`)
|
||||
- Couverture minimale de 80% requise pour les PR
|
||||
|
||||
## Outils spécifiques à FoundryVTT
|
||||
|
||||
### Génération des templates
|
||||
```bash
|
||||
# Recompiler les templates Handlebar après modification
|
||||
npm run build:templates
|
||||
```
|
||||
|
||||
### Validation des données
|
||||
```bash
|
||||
# Valider la structure des données contre le schéma
|
||||
npm run validate:schema
|
||||
```
|
||||
|
||||
### Déploiement pour test local
|
||||
```bash
|
||||
# Lier le module en développement à FoundryVTT (nécessite le module "Module Developer")
|
||||
npx foundryvtt-link
|
||||
```
|
||||
|
||||
## Dépannage
|
||||
|
||||
### Problèmes courants
|
||||
1. **Les changements ne s'affichent pas dans Foundry** :
|
||||
- Vérifier que le module est bien lié (`npm run link`)
|
||||
- Redémarrer FoundryVTT
|
||||
- Vider le cache du navigateur (Ctrl+F5)
|
||||
|
||||
2. **Erreurs de type dans les templates** :
|
||||
- Exécuter `npm run validate:templates`
|
||||
- Vérifier les annotations JSDoc dans les fichiers `.ts`
|
||||
|
||||
3. **Problèmes de performance** :
|
||||
- Utiliser le profiler de Foundry (F12 > Performance)
|
||||
- Vérifier les boucles dans les templates Handlebar
|
||||
|
||||
## Ressources utiles
|
||||
- [Documentation FoundryVTT](https://foundryvtt.com/article/api/)
|
||||
- [Guide des systèmes personnalisés](https://foundryvtt.com/article/system-development/)
|
||||
- [Référence Handlebar](https://handlebarsjs.com/guide/)
|
||||
- [TypeScript pour Foundry](https://github.com/League-of-Foundry-Developers/foundry-vtt-types)
|
||||
|
||||
## Contribution
|
||||
Les contributions sont les bienvenues ! Veuillez :
|
||||
1. Ouvrir une issue pour discuter des changements majeurs
|
||||
2. Suivre les conventions de codage ci-dessus
|
||||
3. Inclure des tests pour les nouvelles fonctionnalités
|
||||
4. Mettre à jour la documentation si nécessaire
|
||||
Reference in New Issue
Block a user