| name | code-quality |
| description | Exécute les vérifications de qualité du code (format:check, ESLint, Jest) avant chaque commit selon les standards du projet leapmultix |
Code Quality Gate
Garantit code respecte standards avant commit (format, lint, tests).
Quand utiliser
- TOUJOURS avant chaque commit
- Avant créer PR
- Après modification JavaScript/CSS
- À la demande
Workflow OBLIGATOIRE (séquence)
Formatage (CRITIQUE) :
npm run format:check # Si ✗ → npm run formatLinting :
npm run lint # Si ✗ → npm run lint:fixTests :
npm testCouverture (recommandé) :
npm run test:coverage
Ou tout-en-un : npm run verify (lint + test + coverage)
Standards essentiels
JavaScript :
- Pas variables inutilisées (supprime ou eslint-disable avec justification)
- Pas catch blocks vides (logger erreur)
- Utiliser security-utils pour DOM (
appendSanitizedHTML(),setSafeMessage()) - Complexité cognitive < 15 (découpe fonctions complexes)
CSS :
- Notation couleur moderne :
rgb(255 255 255 / 0.9)pasrgba(...)
Sécurité :
- Jamais
innerHTMLdonnées externes (utiliser security-utils) - Scripts externes:
crossorigin="anonymous" - Integrity hashes bibliothèques (pas analytics, auto-update)
- Valider entrées externes
ESLint suppressions
Ligne : // eslint-disable-next-line rule -- Justification
Bloc : /* eslint-disable rule */ ... /* eslint-enable rule */
Règle : Toujours justifier avec -- pourquoi sécurisé/intentionnel.
Scripts disponibles
npm test- Testsnpm run test:watch- Mode watchnpm run test:coverage- Couverturenpm run verify:dead-code- Code mortnpm run analyze:*- Globals, jsdoc, dependencies
Configuration
eslint.config.js- Règles ESLint.prettierrc- Formatage.stylelintrc.json- CSSjest.config.cjs- Tests
Conventions commit
- Impératif : "Fix", "Add", "Refactor"
- Concis, descriptif
- Jamais mentionner AI/assistants
Checklist
- format:check passe
- lint passe
- tests passent
- coverage acceptable
- Pas console.log oubliés
- Pas variables inutilisées
- security-utils pour DOM
- Message descriptif
- Pas secrets/API keys
En cas de doute
Règles absolues :
npm run format:checkTOUJOURS d'abord- Ne JAMAIS committer si échec
- Ne JAMAIS désactiver sans justification
- Exécuter localement AVANT pusher
Workflow minimal :
npm run format:check && npm run lint && npm test
Workflow complet :
npm run verify
Fichiers clés :
- CLAUDE.md - Conventions
- eslint.config.js - Règles
- security-utils.js - DOM sécurisé