Initial commit
This commit is contained in:
196
skills/helping-with-commits/SKILL.md
Normal file
196
skills/helping-with-commits/SKILL.md
Normal file
@@ -0,0 +1,196 @@
|
||||
---
|
||||
name: helping-with-commits
|
||||
description: Automates Git commit creation with conventional messages. Use when user wants to commit changes with automatic diff analysis
|
||||
allowed-tools: Read, Grep, Glob, Bash
|
||||
---
|
||||
|
||||
# Commit Helper
|
||||
|
||||
Automatise la création de commits Git avec messages conformes Conventional Commits.
|
||||
|
||||
## Table des matières
|
||||
|
||||
- [Quand utiliser ce Skill](#quand-utiliser-ce-skill)
|
||||
- [Convention Conventional Commits](#convention-conventional-commits)
|
||||
- [Workflow de création](#workflow-de-création)
|
||||
- [Exemples](#exemples)
|
||||
- [Cas d'usage](#cas-dusage)
|
||||
- [Gestion erreurs](#gestion-erreurs)
|
||||
- [Checklist avant commit](#checklist-avant-commit)
|
||||
- [En cas de doute](#en-cas-de-doute)
|
||||
|
||||
## Quand utiliser ce Skill
|
||||
|
||||
- Utilisateur demande de "commit" ou "committer"
|
||||
- Après feature, fix, ou refactoring terminé
|
||||
- Avant de créer une Pull Request
|
||||
|
||||
## Convention Conventional Commits
|
||||
|
||||
### Format
|
||||
|
||||
```
|
||||
<type>(<scope>): <description>
|
||||
```
|
||||
|
||||
**Types :** feat, fix, refactor, perf, test, docs, style, chore, ci
|
||||
|
||||
**Scopes leapmultix :** arcade, i18n, ui, a11y, perf, pwa, test, deps
|
||||
|
||||
**Description :**
|
||||
|
||||
- Verbe impératif minuscule (add, fix, update, remove)
|
||||
- Pas de majuscule, pas de point
|
||||
- Max 72 caractères
|
||||
- Spécifique (pas "update code")
|
||||
|
||||
## Workflow de création
|
||||
|
||||
### 1. Analyser état Git
|
||||
|
||||
```bash
|
||||
git status
|
||||
git diff --staged
|
||||
git diff
|
||||
git log --oneline -5 # Style existant
|
||||
```
|
||||
|
||||
### 2. Déterminer type et scope
|
||||
|
||||
**Type :**
|
||||
|
||||
- Nouveaux fichiers/fonctions → feat
|
||||
- Corrections bugs → fix
|
||||
- Restructuration → refactor
|
||||
- Tests uniquement → test
|
||||
- package.json → chore(deps)
|
||||
|
||||
**Scope :**
|
||||
|
||||
- Examine chemins fichiers
|
||||
- Identifie domaine principal
|
||||
- Omets si générique/multiple
|
||||
|
||||
### 3. Générer description
|
||||
|
||||
- Verbe impératif minuscule
|
||||
- QUOI pas COMMENT
|
||||
- Spécifique < 72 chars
|
||||
|
||||
### 4. Valider qualité
|
||||
|
||||
```bash
|
||||
npm run format:check # Si échec → format
|
||||
npm run lint # Si échec → lint:fix
|
||||
npm test
|
||||
npm run i18n:compare # Si i18n modifié
|
||||
```
|
||||
|
||||
### 5. Créer commit
|
||||
|
||||
```bash
|
||||
git add <files>
|
||||
git commit -m "type(scope): description"
|
||||
```
|
||||
|
||||
**Avec body si nécessaire :**
|
||||
|
||||
```bash
|
||||
git commit -m "$(cat <<'EOF'
|
||||
type(scope): description
|
||||
|
||||
Optional body explaining details.
|
||||
EOF
|
||||
)"
|
||||
```
|
||||
|
||||
## Exemples
|
||||
|
||||
**Bons :**
|
||||
|
||||
```
|
||||
feat(arcade): add power-up system to Multimiam
|
||||
fix(arcade): correct collision detection
|
||||
refactor(arcade): extract rendering logic
|
||||
chore(deps): update jest to 29.7.0
|
||||
feat(i18n): add Spanish translations
|
||||
```
|
||||
|
||||
**Mauvais :**
|
||||
|
||||
```
|
||||
fix: bug fixes # Trop vague
|
||||
Add new feature # Pas de type
|
||||
feat: added feature # Pas impératif
|
||||
```
|
||||
|
||||
## Cas d'usage
|
||||
|
||||
### Multiples fichiers, même feature
|
||||
|
||||
Un seul commit avec tous les fichiers.
|
||||
|
||||
### Multiples types (feat + fix + refactor)
|
||||
|
||||
Créer PLUSIEURS commits séparés. Chaque commit = 1 objectif.
|
||||
|
||||
### i18n modifié
|
||||
|
||||
```bash
|
||||
npm run i18n:compare # Vérifie sync
|
||||
# Puis commit
|
||||
```
|
||||
|
||||
### Dépendances
|
||||
|
||||
```bash
|
||||
chore(deps): add playwright
|
||||
chore(deps): update jest to 29.7.0
|
||||
fix(deps): update minimatch (CVE-2022-3517)
|
||||
```
|
||||
|
||||
## Gestion erreurs
|
||||
|
||||
### Tests échouent
|
||||
|
||||
NE PAS committer ! Fix d'abord ou WIP avec `--no-verify` (précaution).
|
||||
|
||||
### Lint/Format échoue
|
||||
|
||||
```bash
|
||||
npm run lint:fix
|
||||
npm run format
|
||||
git add .
|
||||
# Puis commit
|
||||
```
|
||||
|
||||
## Checklist avant commit
|
||||
|
||||
- [ ] Type correct (feat/fix/refactor/test/chore/docs/style/perf/ci)
|
||||
- [ ] Scope pertinent (ou vide)
|
||||
- [ ] Description impérative < 72 chars
|
||||
- [ ] `npm run format:check` passe
|
||||
- [ ] `npm run lint` passe
|
||||
- [ ] `npm test` passe
|
||||
- [ ] `npm run i18n:compare` si i18n
|
||||
- [ ] Pas secrets/keys
|
||||
|
||||
## En cas de doute
|
||||
|
||||
**Source :** CLAUDE.md et `git log` (exemples)
|
||||
|
||||
**Règles absolues :**
|
||||
|
||||
1. Vérifier qualité avant commit
|
||||
2. Conventional Commits obligatoire
|
||||
3. Jamais commit si tests échouent (sauf WIP)
|
||||
4. Jamais secrets/keys
|
||||
5. Jamais mentionner l'IA (pas de 'Generated with Claude' ou 'Co-Authored-By: Claude')
|
||||
|
||||
**Workflow :**
|
||||
|
||||
```bash
|
||||
npm run verify
|
||||
git add <files>
|
||||
git commit -m "type(scope): description"
|
||||
```
|
||||
Reference in New Issue
Block a user