bump
Automatise les mises à jour de version des plugins avec détection automatique du type de version
SKILL.md
| Name | bump |
| Description | Automatise les mises à jour de version des plugins avec détection automatique du type de version |
name: bump description: Automatise les mises à jour de version des plugins avec détection automatique du type de version model: haiku allowed-tools: [Read, Edit, Bash, Glob, Grep, TaskCreate, TaskUpdate, TaskList, AskUserQuestion] version: 2.0.0 license: MIT
Bump Version Plugin
Mettre à jour automatiquement la version d'un ou plusieurs plugins avec détection automatique du type de version.
IMPORTANT : Task Management System obligatoire
RÈGLE CRITIQUE : Chaque étape DOIT être trackée via TaskCreate/TaskUpdate.
- Créer la tâche AVANT de commencer l'étape
- Marquer
in_progressau début - Marquer
completedUNIQUEMENT quand l'étape est 100% terminée - NE JAMAIS sauter une étape
RÈGLE ANTI-OUBLI : Vérification avant completed
INTERDICTION de marquer une tâche completed sans avoir :
- Exécuté CHAQUE sous-étape listée (4.1, 4.2, 4.3... pas juste certaines)
- Vérifié la sous-checklist
🔒 AVANT DE MARQUER COMPLETEDde l'étape - Lu les fichiers cibles pour confirmer que la modification est bien faite
Si une sous-étape semble "non applicable" : tu DOIS quand même lire le fichier cible pour le vérifier. Ne JAMAIS supposer qu'une étape est inapplicable sans preuve.
Instructions à Exécuter
Étape 1 : Créer TOUTES les tâches du workflow
OBLIGATOIRE : Utilise TaskCreate pour créer ces 6 tâches dans cet ordre exact :
TaskCreate #1: "Détecter les plugins modifiés"
- activeForm: "Detecting modified plugins"
- description: "git diff pour identifier plugins avec modifications"
TaskCreate #2: "Sélectionner les plugins à bumper"
- activeForm: "Selecting plugins to bump"
- description: "AskUserQuestion pour sélection utilisateur"
TaskCreate #3: "Mettre à jour fichiers du plugin"
- activeForm: "Updating plugin files"
- description: "plugin.json + CHANGELOG.md + README.md du plugin"
TaskCreate #4: "Mettre à jour fichiers du marketplace"
- activeForm: "Updating marketplace files"
- description: "README.md global + CHANGELOG.md global + marketplace.json + PR template"
TaskCreate #5: "Mettre à jour dépendances et documentation"
- activeForm: "Updating dependencies and docs"
- description: "DEPENDENCIES.json + rebuild VitePress (npm run build)"
TaskCreate #6: "Vérifier et afficher résumé"
- activeForm: "Verifying final result"
- description: "Lister tous les fichiers modifiés + prochaine étape"
Après création : Affiche TaskList pour confirmer que les 6 tâches existent.
Étape 2 : Détecter les plugins modifiés
TaskUpdate : Tâche #1 → in_progress
Exécute en parallèle :
git diff --name-only HEAD
git diff --staged --name-only
Traitement :
- Combine les deux listes
- Filtre pour extraire les noms de plugins (premier répertoire)
- Ignore :
.claude/, fichiers à la racine - Compte les fichiers par plugin
TaskUpdate : Tâche #1 → completed
Étape 3 : Sélection interactive
TaskUpdate : Tâche #2 → in_progress
Utilise AskUserQuestion :
{
"questions": [{
"question": "Quels plugins veux-tu bumper ?",
"header": "Plugins",
"multiSelect": true,
"options": [
{"label": "Tous les plugins modifiés (N plugins) (Recommended)", "description": "Bumper automatiquement tous"},
{"label": "{plugin} (N fichiers)", "description": "Version actuelle : X.Y.Z"}
]
}]
}
TaskUpdate : Tâche #2 → completed
Étape 4 : Mettre à jour fichiers du plugin
TaskUpdate : Tâche #3 → in_progress
Pour CHAQUE plugin sélectionné, dans cet ordre :
4.1 Détecter le type de version
git diff --staged --name-only --diff-filter=A | grep "^{plugin}/"
Règles :
- Nouveaux agents (
agents/*.md) → MINOR - Nouveaux skills (
skills/*/) → MINOR - Nouveau plugin (pas dans marketplace.json) → MINOR
- Sinon → PATCH
4.2 Calculer la nouvelle version
Lis {plugin}/.claude-plugin/plugin.json et calcule :
- PATCH :
1.2.3→1.2.4 - MINOR :
1.2.3→1.3.0
4.3 Analyser les changements
git diff {plugin}/
git diff --staged {plugin}/
Catégorise en : Added, Changed, Fixed, Removed
4.4 Mettre à jour plugin.json
"version": "NOUVELLE_VERSION"
4.5 Mettre à jour CHANGELOG du plugin
Ajoute en haut (après le titre) :
## [NOUVELLE_VERSION] - YYYY-MM-DD
### Added
- ...
### Changed
- ...
4.6 Mettre à jour README du plugin (si nouveaux agents/skills)
OBLIGATOIRE si MINOR : Lis {plugin}/README.md avec Read et mets à jour :
- Ajouter la nouvelle commande/skill dans le tableau "Slash Commands" ou équivalent
- Ajouter les nouveaux agents dans la section agents si elle existe
- Mettre à jour la structure du plugin (arborescence
tree) - Ajouter une section usage/exemples pour les nouvelles fonctionnalités
Si le README ne contient pas de section pertinente, en ajouter une.
🔒 AVANT DE MARQUER COMPLETED - Vérifie ces points :
-
{plugin}/.claude-plugin/plugin.json→ version mise à jour (Read pour vérifier) -
{plugin}/CHANGELOG.md→ nouvelle entrée en haut du fichier (Read pour vérifier) -
{plugin}/README.md→ nouvelles commandes/agents/structure documentés (Read pour vérifier) - Si MINOR et aucune modif README → ERREUR, tu as oublié quelque chose
TaskUpdate : Tâche #3 → completed
Étape 5 : Mettre à jour fichiers du marketplace
TaskUpdate : Tâche #4 → in_progress
5.1 Mettre à jour README.md global
OBLIGATOIRE : Lis README.md avec Read. Trouve le tableau des plugins et mets à jour la ligne du plugin :
| 📝 **{Plugin}** | NOUVELLE_VERSION | Description mise à jour | [README](...) |
5.2 Mettre à jour CHANGELOG.md global
OBLIGATOIRE : Lis CHANGELOG.md avec Read. Vérifie si section du jour existe :
## [YYYY.MM.DD] - YYYY-MM-DD
Si non, crée-la après ## [Unreleased].
Ajoute :
### Plugins Updated
- **{plugin} vNOUVELLE_VERSION** - Résumé des changements
- Détail changement 1
- Détail changement 2
- Dépôt : [{plugin}/CHANGELOG.md]({plugin}/CHANGELOG.md)
5.3 Mettre à jour marketplace.json (si nouveau plugin)
OBLIGATOIRE : Lis .claude-plugin/marketplace.json avec Read. Si le plugin n'existe pas :
{
"name": "{plugin}",
"source": "./{plugin}",
"description": "..."
}
Si le plugin existe déjà, vérifier que sa description est à jour.
5.4 Synchroniser README.md et marketplace.json
Vérifie la cohérence :
- Plugins dans README mais pas marketplace → ajouter
- Plugins dans marketplace mais pas README → ajouter
- Ordre alphabétique dans les deux fichiers
5.5 Mettre à jour la documentation .env.claude (si applicable)
Condition : Vérifie si les fichiers modifiés du plugin contiennent des références à .env.claude :
git diff {plugin}/ | grep -i "env\.claude\|MAIN_BRANCH\|WORKTREE_DIR\|REPO\|PROJECT"
Si des variables .env.claude sont ajoutées ou modifiées dans les skills :
- Lis
docs/guide/env-claude.mdavec Read - Vérifie que chaque variable utilisée dans les skills modifiés est documentée dans la page
- Pour chaque variable manquante ou obsolète :
- Ajouter la variable dans la section "Variables disponibles" avec le même format que les existantes
- Ajouter le skill dans le tableau "Skills qui l'utilisent" de la variable
- Vérifier que les exemples sont cohérents avec les changements
Si aucune référence .env.claude détectée : passer cette sous-étape.
5.6 Mettre à jour le template PR
Met à jour .github/PULL_REQUEST_TEMPLATE/default.md avec la liste des plugins :
- Liste tous les dossiers contenant un
plugin.json:
find . -name "plugin.json" -path "*/.claude-plugin/*" | sed 's|^\./||' | sed 's|/.claude-plugin/plugin.json||' | grep -v "^templates/" | sort
- Génère la section "Plugin(s) concerné(s)" avec checkboxes :
## Plugin(s) concerné(s)
<!-- Coche les plugins impactés -->
- [ ] {plugin1}
- [ ] {plugin2}
...
- Remplace la section existante dans le template (entre
## Plugin(s) concerné(s)et## Checklist)
🔒 AVANT DE MARQUER COMPLETED - Vérifie ces points :
-
README.mdglobal → ligne du plugin mise à jour avec nouvelle version (Read pour vérifier) -
CHANGELOG.mdglobal → entrée du jour avec résumé du plugin (Read pour vérifier) -
.claude-plugin/marketplace.json→ plugin présent avec description à jour (Read pour vérifier) -
docs/guide/env-claude.md→ variables.env.claudeà jour si applicable (Read pour vérifier) -
.github/PULL_REQUEST_TEMPLATE/default.md→ liste plugins synchronisée (Read pour vérifier)
TaskUpdate : Tâche #4 → completed
Étape 6 : Mettre à jour dépendances et documentation
TaskUpdate : Tâche #5 → in_progress
6.1 DEPENDENCIES.json
Si {plugin}/DEPENDENCIES.json n'existe pas, scanner et créer :
{
"version": "1.0",
"critical": {},
"optional": {},
"packages": {"npm": {}}
}
6.2 Rebuild VitePress
OBLIGATOIRE - TOUJOURS EXÉCUTER, SANS EXCEPTION :
cd docs && npm run build
Vérifie que la commande s'exécute sans erreur. Si erreur, corriger avant de continuer.
6.3 Vérifier les fichiers générés
git status --short docs/
Les fichiers docs/plugins/{plugin}.md et docs/commands/index.md doivent être modifiés.
Si nouveaux agents ajoutés, docs/agents/index.md doit aussi être modifié.
🔒 AVANT DE MARQUER COMPLETED - Vérifie ces points :
-
{plugin}/DEPENDENCIES.json→ existe (Read pour vérifier) -
cd docs && npm run build→ exécuté avec succès (0 erreurs) -
git status --short docs/→ au moinsdocs/plugins/{plugin}.mdetdocs/commands/index.mdmodifiés - Si nouveaux agents →
docs/agents/index.mdaussi modifié
TaskUpdate : Tâche #5 → completed
Étape 7 : Vérification et résumé final
TaskUpdate : Tâche #6 → in_progress
Affiche le résumé complet :
✅ Plugin {plugin} : v{OLD} → v{NEW} ({TYPE})
Type : {PATCH|MINOR}
Raison : {description}
Fichiers modifiés :
✓ {plugin}/.claude-plugin/plugin.json
✓ {plugin}/CHANGELOG.md
✓ {plugin}/README.md (si applicable)
✓ README.md
✓ CHANGELOG.md
✓ .claude-plugin/marketplace.json (si nouveau)
✓ .github/PULL_REQUEST_TEMPLATE/default.md
✓ docs/plugins/{plugin}.md
✓ docs/commands/index.md
Prochaine étape : /git:commit
TaskUpdate : Tâche #6 → completed
Checklist de validation finale
OBLIGATOIRE : Avant de terminer, vérifie chaque fichier individuellement avec git diff --name-only et confirme que TOUS ces fichiers apparaissent dans la liste des modifiés :
Fichiers du plugin (par plugin bumpé)
-
{plugin}/.claude-plugin/plugin.json→ version incrémentée -
{plugin}/CHANGELOG.md→ nouvelle entrée datée du jour -
{plugin}/README.md→ à jour si MINOR (nouveaux skills/agents documentés)
Fichiers du marketplace (toujours)
-
README.md→ tableau des plugins avec nouvelle version -
CHANGELOG.md→ entrée du jour avec résumé plugin -
.claude-plugin/marketplace.json→ description à jour (si nouveau plugin) -
docs/guide/env-claude.md→ variables.env.claudeà jour (si nouvelles variables détectées) -
.github/PULL_REQUEST_TEMPLATE/default.md→ liste plugins synchronisée
Documentation générée (toujours)
-
docs/plugins/{plugin}.md→ régénéré via VitePress -
docs/commands/index.md→ régénéré via VitePress -
docs/agents/index.md→ régénéré si nouveaux agents
Tâches
- Tâche #1 completed : Plugins détectés
- Tâche #2 completed : Sélection faite
- Tâche #3 completed : Fichiers plugin mis à jour
- Tâche #4 completed : Fichiers marketplace mis à jour
- Tâche #5 completed : Dépendances + VitePress rebuild
- Tâche #6 completed : Résumé affiché
Si un fichier manque dans git diff --name-only, STOP : tu as oublié une étape.
Règles de versioning
- MINOR (X.Y.0 → X.Y+1.0) : Nouveaux agents, skills, ou nouveau plugin
- PATCH (X.Y.Z → X.Y.Z+1) : Modifications, corrections, refactoring, documentation
Relevant Files
{plugin}/.claude-plugin/plugin.json{plugin}/CHANGELOG.md{plugin}/README.mdREADME.mdCHANGELOG.md.claude-plugin/marketplace.json{plugin}/DEPENDENCIES.jsondocs/plugins/{plugin}.mddocs/commands/index.mddocs/guide/env-claude.md.github/PULL_REQUEST_TEMPLATE/default.md