first commit

This commit is contained in:
2026-07-21 16:50:58 +02:00
commit 256599626e
407 changed files with 30489 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
# Contribuer à Ben-to
## Workflow
1. Ouvrir ou **référencer une issue** GitHub (comportement attendu, contexte, critères dacceptation).
2. Créer une branche depuis `main` : `feat/issue-123-courte-description`, `fix/issue-123-…`, etc.
3. Implémenter en respectant la structure **feature-first** (`packages/features/*`, `packages/shared/*`) et les règles du dépôt (`.cursor/rules/`).
4. **Scénarios Gherkin** (`specs/features/*.feature`) : tout tag `@int-*` doit apparaître dans un fichier `*.int.test.ts` correspondant (voir `npm run check:gherkin-scenarios`).
5. **Imports explicites** : pas de fichier barrel `packages/**/src/index.ts` ; utiliser les sous-chemins documentés dans les `package.json` `exports` et les alias Vite (`@ben-to/.../domain`, etc.).
6. Avant la PR : `npm run check:quality` et `npm run test:ci`.
7. **Issue GitHub** : la laisser **ouverte** jusquau merge de la PR. Inclure dans le **message de commit** (recommandé, dernière ligne) `Closes #N` / `Fixes #N` pour que GitHub ferme lissue automatiquement au merge ; éviter de fermer lissue manuellement avant la fusion.
### Hook pre-commit (tests unitaires)
Après `npm install`, Husky installe un hook qui exécute `vitest related` sur les fichiers `.ts` / `.tsx` stagés (projet **unit** uniquement).
Contournement exceptionnel (hotfix documenté en PR) : `git commit --no-verify`.
## Qualité et couverture
- Les seuils de couverture Vitest sappliquent aux sources sous `packages/features/**` et `packages/shared/**` (voir `vitest.config.ts`). Le front web est couvert par les **e2e**, **Axe** et **Lighthouse**.
- La CI publie un **commentaire de synthèse** sur les PR (couverture, audit npm, Axe, Lighthouse, timings navigation).
## GitHub
- Activez **Code scanning** avec CodeQL si vous voulez les résultats SARIF dans longlet Sécurité ; puis retirez `upload: false` dans `.github/workflows/security.yml` (voir [docs/CODE_SCANNING.md](docs/CODE_SCANNING.md)).
- Protégez la branche `main` : CI obligatoire, revues si vous travaillez en équipe.
## Mobile Android
Les commandes `mobile:*` se lancent depuis la **racine** du monorepo (voir [README.md](README.md)). La CI exécute `assembleDebug` pour détecter les régressions Gradle/Capacitor.