125 lines
4.0 KiB
Markdown
125 lines
4.0 KiB
Markdown
# 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 |