Contribuer
Workflow git
main ← production stable, protégée
└── dev ← intégration, CI obligatoire
└── feat/ma-feature ← branche de travail
└── fix/mon-bugfix
└── docs/ma-page
- Créez votre branche depuis
dev - Développez avec le cycle TDD (voir ci-dessous)
- Ouvrez une PR vers
dev - CI doit passer (unit + build + docs)
- Merge vers
mainuniquement pour les releases
Commits conventionnels
Format : <type>(<scope>): <description>
| Type | Usage |
|---|---|
feat | Nouvelle fonctionnalité |
fix | Correction de bug |
docs | Documentation uniquement |
refactor | Refactoring sans changement de comportement |
test | Ajout ou modification de tests |
chore | Maintenance, dépendances, config |
ci | Pipeline CI/CD |
Exemples :
feat(import): add Trade Republic CSV parser
fix(budget): prevent division by zero when totalIncomeExpected is 0
docs(api): document processImportCSV pipeline
refactor(analytics): extract aggregateByMonth helper
Protocole TDD obligatoire
Tout code d'implémentation doit avoir un test rouge préalable :
1. RED → écrire le test, vérifier qu'il échoue pour la bonne raison
2. GREEN → code minimal qui fait passer le test
3. REFACTOR → améliorer sans casser, relancer les tests
npm run test:watch # mode watch pendant le développement
npm test # avant de pousser
npm run type-check # vérification TypeScript
ADR — Décisions techniques
Toute décision significative (choix de librairie, nouveau pattern, changement d'architecture) doit être documentée dans un ADR avant l'implémentation :
# Template disponible dans :
docs-site/docs/adr/_template.md
# Créer un ADR
cp docs-site/docs/adr/_template.md docs-site/docs/adr/adr-00N-titre.md
# → Éditer, puis ajouter dans docs-site/sidebars.ts et docs-site/docs/adr/intro.md
Ajouter une page de documentation
- Créez le fichier dans la section appropriée (
docs-site/docs/<section>/) - Ajoutez l'entrée dans
docs-site/sidebars.ts - Vérifiez le build :
npm run docs:build(0 lien cassé, 0 orpheline) - Pour les composants UI : générez les props via
npm run docs:generate-props
Schéma DB — migrations
Tout changement de schéma Prisma doit passer par une migration versionnée :
# Modifier prisma/schema.prisma
# Puis :
npm run db:migrate # crée une migration dans prisma/migrations/
⚠️ Ne jamais modifier manuellement la base de données ou utiliser db push en production.
Règles qualité
- Pas de
anyTypeScript explicite — utiliserunknown+ type guard - Pas de
console.logde debug dans le code commité - Pas de
@ts-ignoresans commentaire explicatif Floatinterdit pour les montants — toujoursDecimal- Nouveaux composants UI → page de documentation dans
docs-site/docs/design-system/components/
Voir aussi
- CLAUDE.md — règles complètes du projet
- Architecture technique
- ADR — Introduction