Initial commit
This commit is contained in:
12
.claude-plugin/plugin.json
Normal file
12
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"name": "leapmultix-skill-running-quality-gate",
|
||||||
|
"description": "Skill running-quality-gate from LeapMultix",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": {
|
||||||
|
"name": "Julien LE SAUX",
|
||||||
|
"email": "contact@jls42.org"
|
||||||
|
},
|
||||||
|
"skills": [
|
||||||
|
"./skills"
|
||||||
|
]
|
||||||
|
}
|
||||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# leapmultix-skill-running-quality-gate
|
||||||
|
|
||||||
|
Skill running-quality-gate from LeapMultix
|
||||||
45
plugin.lock.json
Normal file
45
plugin.lock.json
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"$schema": "internal://schemas/plugin.lock.v1.json",
|
||||||
|
"pluginId": "gh:jls42/leapmultix:leapmultix-marketplace/skills/running-quality-gate",
|
||||||
|
"normalized": {
|
||||||
|
"repo": null,
|
||||||
|
"ref": "refs/tags/v20251128.0",
|
||||||
|
"commit": "be98896d2ca7584a35156f13961f6806121e6feb",
|
||||||
|
"treeHash": "8eac4f912ab9397c2bfae5d5d3da4699105aec8188bfc3c63e29d67500e1f964",
|
||||||
|
"generatedAt": "2025-11-28T10:19:14.543089Z",
|
||||||
|
"toolVersion": "publish_plugins.py@0.2.0"
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"remote": "git@github.com:zhongweili/42plugin-data.git",
|
||||||
|
"branch": "master",
|
||||||
|
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
|
||||||
|
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
|
||||||
|
},
|
||||||
|
"manifest": {
|
||||||
|
"name": "leapmultix-skill-running-quality-gate",
|
||||||
|
"description": "Skill running-quality-gate from LeapMultix",
|
||||||
|
"version": "1.0.0"
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"path": "README.md",
|
||||||
|
"sha256": "33be6a48fdf96a9c6da33697173091febc087e1725e02ecbcea7551ef578144d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": ".claude-plugin/plugin.json",
|
||||||
|
"sha256": "d6f4ff6440ad75f4ce1a6b7711d3601c1963d67453238580b190fcba82b6b225"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "skills/running-quality-gate/SKILL.md",
|
||||||
|
"sha256": "6e5f19bc6eb2698159939c93a6bd63d4a2d665a7dfc64d2f60b7f8835ed78c97"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dirSha256": "8eac4f912ab9397c2bfae5d5d3da4699105aec8188bfc3c63e29d67500e1f964"
|
||||||
|
},
|
||||||
|
"security": {
|
||||||
|
"scannedAt": null,
|
||||||
|
"scannerVersion": null,
|
||||||
|
"flags": []
|
||||||
|
}
|
||||||
|
}
|
||||||
116
skills/running-quality-gate/SKILL.md
Normal file
116
skills/running-quality-gate/SKILL.md
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
---
|
||||||
|
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)
|
||||||
Reference in New Issue
Block a user