bump

Automatise les mises à jour de version des plugins avec détection automatique du type de version

8 stars

Best use case

bump is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Automatise les mises à jour de version des plugins avec détection automatique du type de version

Teams using bump should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/bump/SKILL.md --create-dirs "https://raw.githubusercontent.com/atournayre/claude-marketplace/main/.claude/skills/bump/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/bump/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How bump Compares

Feature / AgentbumpStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Automatise les mises à jour de version des plugins avec détection automatique du type de version

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 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_progress` au début
- Marquer `completed` UNIQUEMENT 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 :
1. Exécuté CHAQUE sous-étape listée (4.1, 4.2, 4.3... pas juste certaines)
2. Vérifié la sous-checklist `🔒 AVANT DE MARQUER COMPLETED` de l'étape
3. 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 :
```bash
git diff --name-only HEAD
git diff --staged --name-only
```

**Traitement** :
1. Combine les deux listes
2. Filtre pour extraire les noms de plugins (premier répertoire)
3. Ignore : `.claude/`, fichiers à la racine
4. Compte les fichiers par plugin

**TaskUpdate : Tâche #1 → `completed`**

---

### Étape 3 : Sélection interactive

**TaskUpdate : Tâche #2 → `in_progress`**

Utilise `AskUserQuestion` :
```json
{
  "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

```bash
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

```bash
git diff {plugin}/
git diff --staged {plugin}/
```

Catégorise en : Added, Changed, Fixed, Removed

#### 4.4 Mettre à jour plugin.json

```json
"version": "NOUVELLE_VERSION"
```

#### 4.5 Mettre à jour CHANGELOG du plugin

Ajoute en haut (après le titre) :
```markdown
## [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 :
```markdown
| 📝 **{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 :
```markdown
## [YYYY.MM.DD] - YYYY-MM-DD
```

Si non, crée-la après `## [Unreleased]`.

Ajoute :
```markdown
### 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 :
```json
{
  "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` :
```bash
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** :
1. Lis `docs/guide/env-claude.md` avec Read
2. Vérifie que chaque variable utilisée dans les skills modifiés est documentée dans la page
3. 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
4. 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 :

1. Liste tous les dossiers contenant un `plugin.json` :
```bash
find . -name "plugin.json" -path "*/.claude-plugin/*" | sed 's|^\./||' | sed 's|/.claude-plugin/plugin.json||' | grep -v "^templates/" | sort
```

2. Génère la section "Plugin(s) concerné(s)" avec checkboxes :
```markdown
## Plugin(s) concerné(s)

<!-- Coche les plugins impactés -->

- [ ] {plugin1}
- [ ] {plugin2}
...
```

3. Remplace la section existante dans le template (entre `## Plugin(s) concerné(s)` et `## Checklist`)

**🔒 AVANT DE MARQUER COMPLETED - Vérifie ces points :**
- [ ] `README.md` global → ligne du plugin mise à jour avec nouvelle version (Read pour vérifier)
- [ ] `CHANGELOG.md` global → 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 :
```json
{
  "version": "1.0",
  "critical": {},
  "optional": {},
  "packages": {"npm": {}}
}
```

#### 6.2 Rebuild VitePress

**OBLIGATOIRE - TOUJOURS EXÉCUTER, SANS EXCEPTION** :
```bash
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

```bash
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 moins `docs/plugins/{plugin}.md` et `docs/commands/index.md` modifiés
- [ ] Si nouveaux agents → `docs/agents/index.md` aussi 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.md`
- `README.md`
- `CHANGELOG.md`
- `.claude-plugin/marketplace.json`
- `{plugin}/DEPENDENCIES.json`
- `docs/plugins/{plugin}.md`
- `docs/commands/index.md`
- `docs/guide/env-claude.md`
- `.github/PULL_REQUEST_TEMPLATE/default.md`

Related Skills

fix-grammar

8
from atournayre/claude-marketplace

Fix grammar and spelling errors in one or multiple files while preserving formatting

symfony-framework

8
from atournayre/claude-marketplace

Comprehensive Symfony 6.4 development skill for web applications, APIs, and microservices.

symfony:make

8
from atournayre/claude-marketplace

Cherche si il existe un maker Symfony pour faire la tache demandée et l'utilise si il existe. Si aucun maker n'existe alors utilise la slash command "/prepare"

phpstan-resolver

8
from atournayre/claude-marketplace

Résout automatiquement les erreurs PHPStan en analysant et corrigeant les problèmes de types. Boucle jusqu'à zéro erreur ou stagnation.

elegant-objects

8
from atournayre/claude-marketplace

Vérifie la conformité du code PHP aux principes Elegant Objects de Yegor Bugayenko. Analyse un fichier spécifique ou tous les fichiers modifiés dans la branche.

prompt:validate

8
from atournayre/claude-marketplace

Vérifie la checklist avant exécution et liste les oublis

prompt:transform

8
from atournayre/claude-marketplace

Transforme un prompt en prompt exécutable compatible avec le Task Management System (TaskCreate/TaskUpdate/TaskList)

prompt:team

8
from atournayre/claude-marketplace

Orchestre une équipe d'agents spécialisés pour les tâches complexes. Auto-détecte le type, compose l'équipe, coordonne les phases analyse → challenge → implémentation → QA.

prompt:start

8
from atournayre/claude-marketplace

Démarre un développement avec un starter léger puis active le mode plan

apex

8
from atournayre/claude-marketplace

Systematic implementation using APEX methodology (Analyze-Plan-Execute-eXamine) with parallel agents, self-validation, and optional adversarial review. Use when implementing features, fixing bugs, or making code changes that benefit from structured workflow.

fix-errors

8
from atournayre/claude-marketplace

Fix all ESLint and TypeScript errors with parallel processing using snipper agents

prompt-creator

8
from atournayre/claude-marketplace

Expert prompt engineering for creating effective prompts for Claude, GPT, and other LLMs. Use when writing system prompts, user prompts, few-shot examples, or optimizing existing prompts for better performance.