| name | devops:cd-pr |
| description | Crée une Pull Request en mode Continuous Delivery avec workflow complet : QA, labels version (major/minor/patch), feature flags, code review automatique.
|
| allowed-tools | ["Bash","Read","Write","TaskCreate","TaskUpdate","TaskList","AskUserQuestion"] |
| model | sonnet |
| version | 1.0.0 |
| license | MIT |
DevOps CD PR Skill (Continuous Delivery)
Instructions à Exécuter
IMPORTANT : Exécute ce workflow étape par étape :
Usage
/devops:cd-pr [branche-base] [milestone] [projet] [--no-interaction] [--delete] [--no-review]
Configuration
CORE_SCRIPTS="${CLAUDE_PLUGIN_ROOT}/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 :
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
activeForm (ex: "Chargeant config", "Appliquant labels CD")
- Ne créer la tâche #14 que si plugin review installé ET
--no-review absent
- Chaque tâche doit être marquée
in_progress puis completed
Étapes
-
Charger configuration depuis .env.claude :
- Parser les variables
MAIN_BRANCH et PROJECT
-
Confirmation initiale :
- Si
--no-interaction : passer toutes les confirmations
- Sinon : résumer paramètres (dont mode CD) et demander confirmation
-
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 titre PR via $PR_SCRIPTS/generate_pr_title.sh :
TITLE=$($PR_SCRIPTS/generate_pr_title.sh)
EXIT_CODE=$?
- Exit 0 → titre prêt (issue extraite du nom de branche)
- Exit 2 →
AskUserQuestion "Cette PR est-elle liée à une issue ?" avec options :
- "Oui, numéro : ___" → relancer avec
--issue <N>
- "Non" → relancer avec
--no-issue
- Générer ensuite la description PR intelligente
-
Push et créer PR ($SCRIPTS_DIR/create_pr.sh)
-
Copier labels depuis issue liée ($SCRIPTS_DIR/copy_issue_labels.sh)
-
Appliquer labels CD ($SCRIPTS_DIR/apply_cd_labels.sh)
-
Assigner milestone ($CORE_SCRIPTS/assign_milestone.py)
-
Assigner projet GitHub ($CORE_SCRIPTS/assign_project.py)
-
Code review automatique (si plugin review installé)
-
Nettoyage branche locale ($CORE_SCRIPTS/cleanup_branch.sh)
Labels CD (Continuous Delivery)
Ordre de détection du type de version :
BREAKING CHANGE ou !: dans commits -> version:major
- Labels de l'issue liée :
- Patterns minor :
enhancement, feature, feat, nouvelle, new
- Patterns patch :
bug, fix, bugfix, correction, patch
- Nom de branche :
feat/*, feature/* -> minor / fix/*, hotfix/* -> patch
- Premier commit :
feat: -> minor / fix: -> patch
- Si indéterminé ->
AskUserQuestion
Feature flag :
- Détecté si fichiers
.twig modifiés contiennent Feature:Flag ou Feature/Flag
- Applique le label
Feature flag
Code Review
Si plugin review installé, lance 4 agents en parallèle :
code-reviewer - Conformité CLAUDE.md
silent-failure-hunter - Erreurs silencieuses
test-analyzer - Couverture tests
git-history-reviewer - Contexte historique
Agrège résultats (score >= 80) dans commentaire PR.
Options
| Flag | Description |
|---|
--no-interaction | Mode automatique : passer confirmations, utiliser defaults |
--delete | Supprimer branche LOCALE uniquement après création PR |
--no-review | Désactiver code review automatique |
Règles critiques
INTERDICTION ABSOLUE :
- Ne JAMAIS exécuter
git push origin --delete <branche> ou git push -d origin <branche>
- Ne JAMAIS supprimer la branche remote (fermerait automatiquement la PR)
- Le flag
--delete ne concerne QUE la branche locale
Error Handling
- Template absent -> ARRÊT
- QA échouée -> ARRÊT
- Version non déterminée ->
AskUserQuestion (non bloquant)
- Milestone/projet non trouvé -> WARNING (non bloquant)