Claude-skill-registry git-cd-pr
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/git-cd-pr" ~/.claude/skills/majiayu000-claude-skill-registry-git-cd-pr && rm -rf "$T"
skills/data/git-cd-pr/SKILL.mdGit CD PR Skill (Continuous Delivery)
Instructions à Exécuter
IMPORTANT : Exécute ce workflow étape par étape :
Usage
/git:pr --cd [branche-base] [milestone] [projet] [--no-interaction] [--delete] [--no-review]
Configuration
CORE_SCRIPTS="${CLAUDE_PLUGIN_ROOT}/skills/git-pr-core/scripts" SCRIPTS_DIR="${CLAUDE_PLUGIN_ROOT}/skills/git-cd-pr/scripts" PR_TEMPLATE_PATH=".github/PULL_REQUEST_TEMPLATE/cd_pull_request_template.md" ENV_FILE_PATH=".env.claude"
Workflow
Initialisation
Créer les tâches du workflow :
Utiliser
TaskCreate pour chaque étape :
TaskCreate #1: Charger config .env.claude TaskCreate #2: Confirmation initiale (si --no-interaction absent) TaskCreate #3: Vérifier scopes GitHub TaskCreate #4: Vérifier template PR CD TaskCreate #5: Lancer QA intelligente TaskCreate #6: Analyser changements git TaskCreate #7: Confirmer branche de base TaskCreate #8: Générer description PR TaskCreate #9: Push et créer PR TaskCreate #10: Copier labels depuis issue liée TaskCreate #11: Appliquer labels CD (version + feature flag) TaskCreate #12: Assigner milestone TaskCreate #13: Assigner projet GitHub TaskCreate #14: Code review automatique (si plugin installé) TaskCreate #15: Nettoyage branche locale
Important :
- Utiliser
(ex: "Chargeant config", "Appliquant labels CD")activeForm - Ne créer la tâche #14 que si plugin review installé ET
absent--no-review - Chaque tâche doit être marquée
puisin_progresscompleted
Pattern d'exécution pour chaque étape :
→ tâche enTaskUpdatein_progress- Exécuter l'étape
→ tâche enTaskUpdatecompleted
Étapes
-
Charger configuration depuis
:.env.claude- Vérifier si le fichier
existe à la racine du projet.env.claude - Si oui, parser les variables (format
) :KEY=VALUE
: branche de base par défautMAIN_BRANCH
: projet GitHub par défautPROJECT
- Pour chaque paramètre manquant dans les arguments :
- Utiliser la variable d'env correspondante si elle existe
- Ignorer
si absent (comportement standard).env.claude
- Vérifier si le fichier
-
Confirmation initiale :
- Si flag
présent :--no-interaction- Passer toutes les confirmations
- Utiliser les valeurs pré-remplies (arguments +
) sans validation.env.claude - Continuer directement à l'étape 3
- Sinon :
- Confirmer à l'utilisateur que la skill
est lancéegit:cd-pr - Résumer tous les paramètres reçus :
- Mode : Continuous Delivery (
)--cd - Branche de base (si fournie)
- Milestone (si fourni)
- Projet (si fourni)
- Flags :
,--delete
(si présents)--no-review
- Mode : Continuous Delivery (
- Demander confirmation explicite avant de continuer
- Confirmer à l'utilisateur que la skill
- Si flag
-
Vérifier scopes GitHub (
)$CORE_SCRIPTS/check_scopes.sh -
Vérifier template PR CD (
)$CORE_SCRIPTS/verify_pr_template.sh -
Lancer QA intelligente (
)$CORE_SCRIPTS/smart_qa.sh -
Analyser changements git (
)$CORE_SCRIPTS/analyze_changes.sh -
Confirmer branche de base (ou
)AskUserQuestion -
Générer description PR intelligente
-
Push et créer PR avec titre Conventional Commits (
)scripts/create_pr.sh -
Copier labels depuis issue liée (
)scripts/copy_issue_labels.sh -
Appliquer labels CD (
)scripts/apply_cd_labels.sh -
Assigner milestone (
- voir git-pr-core/SKILL.md pour usage)$CORE_SCRIPTS/assign_milestone.py -
Assigner projet GitHub (
- voir git-pr-core/SKILL.md pour usage)$CORE_SCRIPTS/assign_project.py -
Code review automatique (si plugin review installé)
-
Nettoyage branche locale (
- branche remote préservée)$CORE_SCRIPTS/cleanup_branch.sh
Labels CD (Continuous Delivery)
Ordre de détection du type de version :
ouBREAKING CHANGE
dans commits →!:version:major- Labels de l'issue liée (insensible casse, ignore emojis) :
- Patterns minor :
,enhancement
,feature
,feat
,nouvellenew - Patterns patch :
,bug
,fix
,bugfix
,correctionpatch
- Patterns minor :
- Nom de branche :
,feat/*
→ minor /feature/*
,fix/*
→ patchhotfix/* - Premier commit de la branche :
→ minor /feat:
→ patchfix: - Si indéterminé →
:AskUserQuestion"Cette PR est une nouvelle fonctionnalité (minor) ou une correction (patch) ?"
Feature flag :
- Détecté si fichiers
modifiés contiennent.twig
ouFeature:FlagFeature/Flag - Applique le label
🚩 Feature flag
Création labels : Si labels absents, ils sont créés automatiquement avec couleurs appropriées.
Code Review
Si plugin
review installé, lance 4 agents en parallèle :
- Conformité CLAUDE.mdcode-reviewer
- Erreurs silencieusessilent-failure-hunter
- Couverture teststest-analyzer
- Contexte historiquegit-history-reviewer
Agrège résultats (score >= 80) dans commentaire PR.
Options
| Flag | Description |
|---|---|
| Mode automatique : passer confirmations, utiliser defaults |
| Supprimer branche LOCALE uniquement après création PR (JAMAIS la branche remote) |
| Désactiver code review automatique |
References
- Template review - Format commentaire et agents
- Todos template - TaskCreate, TaskUpdate, TaskList et génération description
Task Management
Progression du workflow :
- 15 tâches créées à l'initialisation (ou 14 si
ou pas de plugin review)--no-review - Chaque étape suit le pattern :
→ exécution →in_progresscompleted - Utiliser
pour voir la progression globaleTaskList - Les tâches permettent à l'utilisateur de suivre l'avancement de la création de PR CD
Règles critiques
⚠️ INTERDICTION ABSOLUE :
- Ne JAMAIS exécuter
ougit push origin --delete <branche>git push -d origin <branche> - Ne JAMAIS supprimer la branche remote (fermerait automatiquement la PR)
- Le flag
ne concerne QUE la branche locale--delete
Error Handling
- Template absent → ARRÊT
- QA échouée → ARRÊT
- Version non déterminée →
(non bloquant)AskUserQuestion - Milestone/projet non trouvé → WARNING (non bloquant)