Packaging WordPress auto après modification de code PHP/CSS/JS/HTML. Détecte plugin (Plugin Name:) ou thème (Theme Name:). Flow : détecter → bumper → zipper → vérifier.
From codebloomnpx claudepluginhub vendeesign/codebloom --plugin codebloomThis skill uses the workspace's default tool permissions.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Ce skill s'active :
Le zip est TOUJOURS généré automatiquement après une modification ou un ajout de code. Ne JAMAIS demander "Tu veux le zip ?" — le faire directement.
| Type | Détection |
|---|---|
| Plugin | Fichier PHP contenant Plugin Name: dans le header |
| Thème | style.css contenant Theme Name: dans le header |
Chercher d'abord à la racine. Si rien trouvé → chercher dans les sous-dossiers directs (1 niveau).
Le slug détermine le nom du dossier racine dans le zip. Un mauvais slug = deux plugins sur le site WordPress.
Déterminer le slug dans cet ordre de priorité :
Text Domain: dans le header du fichier principal (source la plus fiable)adn-tag.php → adn-tag)RÈGLE ABSOLUE : le slug dans le zip doit être identique à celui déjà installé sur le site WordPress. Ne JAMAIS inventer, transformer ou dériver un slug autrement (pas de conversion . → -, pas de slugification du nom du plugin, etc.).
RÈGLE STRUCTURE : le dossier racine dans le zip doit toujours être {slug}/. Ne JAMAIS changer la structure interne du zip (pas de dossier racine renommé, pas de fichiers déplacés, pas de réorganisation). Un changement de structure = double plugin dans WordPress à l'activation.
| Structure | Détection | Dossier source |
|---|---|---|
| Racine | Le fichier principal est à la racine du projet | . (racine) |
| Sous-dossier | Le fichier principal est dans un sous-dossier | Le sous-dossier |
Afficher avant de continuer :
Type : Plugin / Thème
Slug : {slug}
Source : {chemin du dossier source}
Chercher la version dans le fichier principal détecté à l'étape 1.
| Type de changement | Bump | Exemple |
|---|---|---|
| Nouvelle feature / fonctionnalité | minor (0.X.0) | 1.2.3 → 1.3.0 |
| Correction / refactoring / nettoyage | patch (0.0.X) | 1.2.3 → 1.2.4 |
| Breaking change explicite | major (X.0.0) | 1.2.3 → 2.0.0 |
| Demande directe de l'utilisateur | demander | patch / minor / major / custom |
Règles semver :
Quand le bump est auto-déterminé : afficher la version choisie et enchaîner directement.
Mettre à jour seulement les fichiers qui existent :
| Type | Fichiers | Champ |
|---|---|---|
| Plugin | PHP principal | Version: dans le header |
| Plugin | readme.txt | Stable tag: |
| Plugin | PHP principal ou includes | define('..._VERSION', '...') ou const VERSION = '...' |
| Thème | style.css | Version: dans le header |
| Thème | functions.php | define('..._VERSION', '...') ou const VERSION = '...' |
| Thème | readme.txt (si existe) | Stable tag: |
{slug}.zip dans le dossier courant et le dossier parent (s'il existe){slug}-*.zip)Utiliser le script wp-pack.js du plugin. Ne JAMAIS écrire de commande zip/PowerShell inline, et ne JAMAIS créer de script temporaire (build-zip.sh, package.ps1, etc.).
node "${CLAUDE_PLUGIN_ROOT}/hooks/wp-pack.js" --source "{chemin_dossier_source}" --slug "{slug}" --output "{chemin_output}/{slug}.zip"
Arguments :
--source : chemin absolu du dossier contenant le code plugin/thème (racine ou sous-dossier)--slug : le slug détecté à l'étape 1b (détermine le nom du dossier racine dans le zip)--output : chemin absolu du zip de sortieEmplacement du zip :
{source}/{slug}.zip{parent}/{slug}.zipLe script gère automatiquement :
Compress-Archive via fichier .ps1 temporaire (pas de problème d'échappement)zip{slug}/ comme racine.git, node_modules, *.md, .claude/, plans/, *.zip, etc. (liste complète dans le script)readme.txt est toujours inclus (ce n'est pas un .md)Lister le contenu résumé et vérifier :
style.css).git/, node_modules/, .env)Type : Plugin / Thème
Slug : {slug}
Version : {version} (depuis {ancienne-version})
Zip : {slug}.zip ({taille})
Fichiers : {nombre} fichiers
vendor/ (Composer)composer.json existe avec une section autoload → vendor/ est inclus automatiquementvendor/ n'existe pas mais composer.json a un autoload → signaler : "vendor/ manquant — lancer composer install --no-dev"package.json contient des scripts build, compile, ou dist → signaler : "Build step détecté — vérifier que les assets sont à jour"languages/)readme.txtwp-pack.js — ne JAMAIS écrire de commandes zip/PowerShell inline, ne JAMAIS créer de scripts (build-zip.sh, package.ps1, etc.)/push. Raison : forcer le cache-busting CSS/JS côté WordPressreadme.txt, LICENSE, ou autres fichiers manquants