devautofeature
Workflow complet de développement automatisé (mode non-interactif)
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Workflow complet de développement automatisé (mode non-interactif)
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Automatise les mises à jour de version des plugins avec détection automatique du type de version
Skill interne fournissant les scripts communs pour la création de branches. Ne pas appeler directement - utilisé par git:branch et git:worktree.
Création de branche Git avec workflow structuré
Création de worktree Git avec workflow structuré
Crée une Pull Request en mode Continuous Delivery avec workflow complet : QA, labels version (major/minor/patch), feature flags, code review automatique.
Skill interne fournissant les scripts communs pour la création de Pull Requests. Ne pas appeler directement - utilisé par git-pr et git-cd-pr.
| name | dev:auto:feature |
| description | Workflow complet de développement automatisé (mode non-interactif) |
| argument-hint | <issue-number> |
| model | sonnet |
| allowed-tools | ["Read","Write","Edit","Grep","Glob","Task","Bash"] |
| version | 1.0.0 |
| license | MIT |
IMPORTANT : Exécute ce workflow étape par étape :
Orchestrateur du workflow de développement en 10 phases SANS interaction utilisateur.
Exécution automatique complète : récupérer issue → phases 1-8 → cleanup → créer PR. Objectif : PR créée et prête pour review, CI passe.
Issue #$ARGUMENTS (spec récupérée automatiquement)
Ce workflow s'exécute automatiquement sans checkpoints utilisateur.
Pour un workflow interactif avec validation à chaque phase, utilise /dev:feature.
Exécuter /dev:auto:check-prerequisites pour vérifier que TOUS les prérequis sont présents.
Exit code 1 et arrêt si quelque chose manque.
🔄 Progression : TaskUpdate → tâche #0 en in_progress
⏱️ Démarrer le timer
Exécuter /dev:auto:check-prerequisites
Si la skill exit 1, arrêter immédiatement.
⏱️ Arrêter le timer
🔄 Progression : TaskUpdate → tâche #0 en completed
Affichage :
✅ Prérequis vérifiés
Tous les outils nécessaires sont présents :
✅ gh CLI authentifiée
✅ jq disponible
✅ git disponible
Lancement du workflow...
⏱️ Démarrer le timer
Déterminer le chemin :
issue_number=$ARGUMENTS
workflow_state_file=".claude/data/workflows/issue-${issue_number}-dev-workflow-state.json"
# Créer le répertoire s'il n'existe pas
mkdir -p ".claude/data/workflows"
Exécuter /dev:auto:fetch-issue $ARGUMENTS
Processus :
gh issue view${workflow_state_file}Si /dev:auto:fetch-issue échoue :
⏱️ Arrêter le timer
Affichage :
🔗 Issue GitHub récupérée
#123 : Description du feature
État : OPEN
Labels : enhancement
Lancement du workflow...
🤖 Mode automatique activé pour : {feature}
📂 Création du worktree...
Processus :
.worktrees/ s'il n'existe pas/dev:worktree create {feature-slug}.claude/data/workflows/issue-${issue_number}-dev-workflow-state.jsonSi création échoue : → FAIL HARD avec message d'erreur et exit code 1.
Le fichier .claude/data/workflows/issue-{issue_number}-dev-workflow-state.json a déjà été créé par Phase 0 avec les infos de l'issue.
Mettre à jour le fichier pour ajouter les infos du worktree :
{
"mode": "auto",
"issue": {
"number": {numéro},
"title": "{issue title}",
"description": "{issue body}",
"labels": "{issue labels}",
"state": "OPEN",
"fetchedAt": "{ISO timestamp}"
},
"feature": "{issue title}",
"status": "in_progress",
"startedAt": "{ISO timestamp}",
"currentPhase": 1,
"worktree": {
"name": "{feature-slug}",
"path": ".worktrees/{feature-slug}",
"branch": "feature/{feature-slug}",
"cleaned": false,
"branchDeleted": false
},
"autoConfig": {
"worktreeCreated": true,
"decisions": {},
"autoFixAttempts": {}
},
"timing": {
"totalDurationMs": null
},
"phases": {}
}
Utiliser TaskCreate pour chaque phase :
TaskCreate #0: Prérequis - Vérifier les outils
TaskCreate #1: Fetch - Récupérer l'issue GitHub
TaskCreate #2: Discover - Comprendre le besoin
TaskCreate #3: Explore - Explorer codebase
TaskCreate #4: Clarify - Heuristiques automatiques
TaskCreate #5: Design - Architecture (Pragmatic)
TaskCreate #6: Plan - Générer specs
TaskCreate #7: Code - Implémenter
TaskCreate #8: Review - Auto-fix × 3
TaskCreate #9: Cleanup - Nettoyer worktree
TaskCreate #10: Create PR - Créer la Pull Request
Important :
activeForm (ex: "Vérifiant les outils", "Récupérant l'issue GitHub")🤖 Workflow automatique : {feature}
🔵 0. Prérequis - Vérifier les outils ← En cours
⬜ 1. Fetch - Récupérer l'issue GitHub
⬜ 2. Discover - Comprendre le besoin
⬜ 3. Explore - Explorer codebase
⬜ 4. Clarify - Heuristiques automatiques
⬜ 5. Design - Architecture (Pragmatic)
⬜ 6. Plan - Générer specs
⬜ 7. Code - Implémenter
⬜ 8. Review - Auto-fix × 3
⬜ 9. Cleanup - Nettoyer worktree
⬜ 10. Create PR - Créer la Pull Request
⚠️ IMPORTANT : Chaque phase suit ce pattern :
TaskUpdate → tâche en in_progressTaskUpdate → tâche en completedAvant chaque phase :
TaskUpdate pour marquer la tâche comme in_progress{
"phases": {
"{N}": { "status": "in_progress", "startedAt": "{ISO timestamp}" }
}
}
Après chaque phase :
{
"phases": {
"{N}": {
"status": "completed",
"startedAt": "{ISO timestamp}",
"completedAt": "{ISO timestamp}",
"durationMs": {durée en millisecondes}
}
}
}
TaskUpdate pour marquer la tâche comme completedPattern illustré dans Phase 0 - À reproduire pour toutes les phases 1-10.
⏱️ Démarrer le timer
Exécuter /dev:auto:discover
Si /dev:auto:discover échoue (ambiguïté critique) :
⏱️ Arrêter le timer
Affichage :
✅ Phase 1 : Discover complétée (45s)
🔵 Phase 2 : Explore en cours
⏱️ Démarrer le timer
Exécuter /dev:auto:explore (exploration codebase sans interaction)
⏱️ Arrêter le timer
⏱️ Démarrer le timer
Exécuter /dev:auto:clarify (applique heuristiques, zéro question)
⏱️ Arrêter le timer
⏱️ Démarrer le timer
Exécuter /dev:auto:design (choisit Pragmatic Balance automatiquement)
⏱️ Arrêter le timer
⏱️ Démarrer le timer
Exécuter /dev:auto:plan (génération plan sans interaction)
⏱️ Arrêter le timer
⏱️ Démarrer le timer
Exécuter /dev:auto:code (implémente directement, pas d'approbation)
⏱️ Arrêter le timer
⏱️ Démarrer le timer
Exécuter /dev:auto:review (boucle auto-fix max 3 tentatives)
Si review échoue (PHPStan impossible) :
git reset --hard HEAD@{0}
/dev:worktree remove {feature-name}
status: "failed"⏱️ Arrêter le timer
Si succès :
⏱️ Calculer le temps total :
.claude/data/workflows/issue-${issue_number}-dev-workflow-state.jsontotalDurationMs = somme de tous les durationMs des phasestiming.totalDurationMs⏱️ Démarrer le timer
Nettoyage automatique du worktree :
🧹 Nettoyage du worktree...
/dev:worktree remove {feature-name} automatiquement{
"status": "in_progress",
"completedAt": "{ISO timestamp}",
"worktree": {
"cleaned": true,
"branchDeleted": false,
"cleanedAt": "{ISO timestamp}"
}
}
⏱️ Arrêter le timer
Affichage :
✅ Phase 9 : Cleanup complétée (5s)
🔵 Phase 10 : Create PR en cours
⏱️ Démarrer le timer
Récupérer la branche-base et le projet depuis .env.claude (ou valeurs par défaut) :
MAIN_BRANCH=${MAIN_BRANCH:-main}
PROJECT=${PROJECT:-}
Exécuter /git:pr avec les paramètres du workflow automatique :
/git:pr $MAIN_BRANCH $PROJECT --no-interaction
Paramètres :
$MAIN_BRANCH : branche de base (depuis .env.claude MAIN_BRANCH ou "main")$PROJECT : projet GitHub (depuis .env.claude PROJECT ou vide)--no-interaction : mode automatique, passer confirmationsSi /git:pr échoue (ex: branche inexistante, GitHub unreachable) :
⏱️ Arrêter le timer
Nettoyage du workflow state :
# Supprimer le fichier de workflow state
rm -f ".claude/data/workflows/issue-${issue_number}-dev-workflow-state.json"
Affichage final :
✅ SUCCÈS - Workflow terminé
🎉 Feature prête pour Pull Request
✅ CI PASSE (PHPStan niveau 9, tests)
📂 Worktree nettoyé
🔗 PR créée : https://github.com/...#<pr-number>
Affichage du récapitulatif des temps (voir section "Récapitulatif final")
Deux systèmes complémentaires :
Task Management System : Les tâches sont automatiquement mises à jour, TaskList peut être consulté
Affichage manuel avec timings : À chaque transition de phase, afficher le statut mis à jour avec timing :
🤖 Workflow automatique : {feature}
✅ 0. Prérequis - Vérifier les outils (1s)
✅ 1. Fetch - Récupérer l'issue GitHub (2s)
✅ 2. Discover - Comprendre le besoin (45s)
✅ 3. Explore - Explorer codebase (2m 30s)
✅ 4. Clarify - Heuristiques automatiques (20s)
🔵 5. Design - Architecture (Pragmatic) ← En cours
⬜ 6. Plan - Générer specs
⬜ 7. Code - Implémenter
⬜ 8. Review - Auto-fix × 3
⬜ 9. Cleanup - Nettoyer worktree
⬜ 10. Create PR - Créer la Pull Request
Note : Le task system ne gère pas les timings, donc l'affichage manuel reste nécessaire pour montrer les durées.
Pas d'arrêt : exécution continue jusqu'à fin ou échec.
Formater les durées de manière lisible :
< 60s → {X}s (ex: 45s)< 60min → {X}m {Y}s (ex: 2m 30s)>= 60min → {X}h {Y}m (ex: 1h 15m)À la fin du workflow (après phase 7, avant cleanup), afficher :
⏱️ Récapitulatif des temps
Phase 0. Prérequis : 1s
Phase 1. Fetch : 2s
Phase 2. Discover : 45s
Phase 3. Explore : 2m 30s
Phase 4. Clarify : 20s
Phase 5. Design : 1m 15s
Phase 6. Plan : 50s
Phase 7. Code : 8m 20s
Phase 8. Review : 2m 45s
Phase 9. Cleanup : 5s
Phase 10. Create PR: 10s
────────────────────────────
Total : 17m 23s
Mettre à jour .claude/data/workflows/issue-{issue_number}-dev-workflow-state.json :
{
"status": "failed",
"failedAt": "{ISO timestamp}",
"failurePhase": {numéro},
"failureReason": "Description de l'erreur",
"errors": ["error1", "error2"]
}
git reset --hard HEAD@{0}
/dev:worktree remove {feature-name}
Mettre à jour workflow state avec cleaned: true, branchDeleted: true, rollback: true.
❌ ÉCHEC du workflow automatique
Raison : {failureReason}
Phase échouée : {failurePhase}
Erreurs :
{liste des erreurs}
Le worktree a été nettoyé et la branche supprimée.
Utilise /dev:feature pour un workflow interactif.
Exit code: 1
/git:pr.claude/data/workflows/issue-{issue_number}-dev-workflow-state.json après chaque phaseDescription : "Ajouter auth"
→ Trop vague (OAuth? Basic? JWT?)
Action : FAIL dans discover
Message : "Description trop ambiguë pour mode auto.
Précise : OAuth? Basic Auth? JWT?
Ou utilise /dev:feature pour mode interactif."
Exit code: 1
Nom feature : "oauth-auth"
Worktree .worktrees/oauth-auth existe déjà
Action : Suffixe automatique
→ .worktrees/oauth-auth-2
Et logger warning dans workflow state
Vérifier avec git show-ref refs/heads/feature/{name}.
Si existe → FAIL dans initialisation.
| Aspect | /dev:feature | /dev:auto:feature |
|---|---|---|
| Input | Description texte libre | Numéro issue GitHub |
| Interaction | 5 checkpoints | 0 checkpoint |
| Worktree | Optionnel | OBLIGATOIRE |
| Phase 3 | Questions utilisateur | Heuristiques |
| Phase 4 | Choix utilisateur | Auto Pragmatic |
| Phase 6 | Approbation requise | Immédiat |
| Phase 7 | Fix now/later/proceed | Auto-fix × 3 |
| Phase 8 | Proposer nettoyage | Cleanup auto |
| Phase 9 | Manuel : /git:pr | Auto : /git:pr + params |
| Erreurs | Demander aide | Rollback auto |
| Objectif | Collaboration | Automation |