117 lines
3.0 KiB
Markdown
117 lines
3.0 KiB
Markdown
---
|
|
name: running-quality-gate
|
|
description: Executes all quality checks (format, lint, tests, i18n, coverage). Use before commits, PRs, or releases to ensure quality standards
|
|
allowed-tools: Read, Grep, Glob, Bash
|
|
---
|
|
|
|
# Porte de Qualité
|
|
|
|
Exécute vérifications de qualité pour garantir standards avant commit/merge/release.
|
|
|
|
## Table des matières
|
|
|
|
- [Quand utiliser](#quand-utiliser)
|
|
- [Standards obligatoires](#standards-obligatoires)
|
|
- [Scripts npm](#scripts-npm)
|
|
- [Workflow séquentiel](#workflow-séquentiel)
|
|
- [Gestion des échecs](#gestion-des-échecs)
|
|
- [Checklist avant commit](#checklist-avant-commit)
|
|
- [En cas de doute](#en-cas-de-doute)
|
|
|
|
## Quand utiliser
|
|
|
|
- Avant créer commit
|
|
- Avant créer PR
|
|
- Avant merger vers main
|
|
- Avant release
|
|
- En CI/CD pipeline
|
|
|
|
## Standards obligatoires
|
|
|
|
**MUST PASS :**
|
|
|
|
1. Formatage code (Prettier)
|
|
2. Linting (ESLint)
|
|
3. Tests unitaires (Jest)
|
|
4. Couverture ≥ 80% (Branches, Functions, Lines, Statements)
|
|
5. i18n synchronisé (fr.json, en.json, es.json)
|
|
|
|
**Recommandés :**
|
|
|
|
- Pas d'erreurs console
|
|
- Dead code vérifié
|
|
- Audit sécurité (`npm audit`)
|
|
|
|
## Scripts npm
|
|
|
|
Trouve et utilise :
|
|
|
|
- `npm run format:check` - Vérifier formatage
|
|
- `npm run format` - Formater automatiquement
|
|
- `npm run lint` - Linter
|
|
- `npm run lint:fix` - Auto-fix linting
|
|
- `npm test` ou `npm run verify` - Tests + coverage
|
|
- `npm run i18n:compare` - Synchronisation traductions
|
|
- `npm run dead-code` - Détection code mort
|
|
|
|
## Workflow séquentiel
|
|
|
|
1. **Format :** `npm run format:check`
|
|
- Si ✗ : `npm run format` → commit changements
|
|
2. **Lint :** `npm run lint`
|
|
- Si ✗ : `npm run lint:fix` ou corrige manuellement
|
|
3. **Tests :** `npm test`
|
|
- Si ✗ : Identifier/corriger test échoué
|
|
4. **Coverage :** Vérifier rapport (≥ 80%)
|
|
- Si < 80% : Ajouter tests manquants
|
|
5. **i18n :** `npm run i18n:compare`
|
|
- Si désynchronisé : Ajouter clés manquantes
|
|
6. **Optionnels :** dead-code, audit
|
|
|
|
**Total : < 2 min**
|
|
|
|
## Gestion des échecs
|
|
|
|
| Problème | Solution |
|
|
| ----------------- | ------------------------- |
|
|
| Format échoue | `npm run format` → commit |
|
|
| Lint auto-fixable | `npm run lint:fix` |
|
|
| Tests échouent | Debug test, corriger code |
|
|
| Coverage < 80% | Ajouter tests critiques |
|
|
| i18n désyncé | Ajouter clés manquantes |
|
|
|
|
## Checklist avant commit
|
|
|
|
- [ ] format:check ✅
|
|
- [ ] lint ✅
|
|
- [ ] tests ✅ (pas de .skip)
|
|
- [ ] coverage ≥ 80%
|
|
- [ ] i18n synchronisé
|
|
- [ ] console clean (pas de console.log)
|
|
- [ ] Code logiquement correct
|
|
- [ ] Commit message descriptif
|
|
|
|
## En cas de doute
|
|
|
|
**Règles absolues :**
|
|
|
|
1. Lancer TOUS les scripts avant commit
|
|
2. Ne JAMAIS bypass vérifications
|
|
3. Corriger erreurs une par une
|
|
4. Re-lancer quality gate jusqu'à 100% pass
|
|
5. CI/CD doit être vert avant merge
|
|
|
|
**Exécution rapide :**
|
|
|
|
```bash
|
|
npm run format:check && npm run lint && npm test
|
|
```
|
|
|
|
**Références :**
|
|
|
|
- Scripts npm (package.json)
|
|
- ESLint config (eslint.config.js)
|
|
- Prettier config (.prettierrc)
|
|
- Jest config (jest.config.cjs)
|
|
- CI/CD (.gitlab-ci.yml or .github/workflows)
|