/apex - Autonomous Development Workflow
INSTRUCTIONS D'EXÉCUTION
Quand ce skill est invoqué, suivre ces étapes dans l'ordre :
Étape 0 : Parser les arguments et initialiser
Parser la commande pour extraire :
-
Flags : --auto , --review , --tests , --resume
-
Feature description : tout le reste après les flags
Exemple : "/apex --auto --tests Ajouter un dark mode" → flags: { auto: true, review: false, tests: true, resume: false } → feature: "Ajouter un dark mode"
Déterminer le mode :
-
Si --auto : mode autonome (pas de confirmation entre étapes)
-
Sinon : mode interactif (confirmation avec AskUserQuestion avant chaque étape)
-
En mode autonome : --review et --tests contrôlent si ces étapes sont exécutées
-
En mode interactif : toutes les étapes sont proposées
Créer la todo list avec TodoWrite :
- [pending] Vérifications git et création branche
- [pending] Analyse du codebase
- [pending] Planification de l'implémentation
- [pending] Implémentation du code
- [pending] Validation (build/lint/types)
- [pending] Code review (si activé)
- [pending] Correction des issues (si nécessaire)
- [pending] Écriture des tests (si activé)
- [pending] Vérification des tests (si activé)
- [pending] Création de la Pull Request
Afficher le header :
🚀 APEX - Autonomous Development Workflow ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Feature: {feature_description} Mode: {Interactif | Autonome} {flags actifs}
Étape 1 : Init Branch
Marquer todo 1 comme in_progress
-
Vérifier qu'on est dans un repo git : git rev-parse --git-dir
-
Vérifier le working tree : git status --porcelain
-
Si non vide → demander à l'utilisateur : commit/stash/abort
-
Identifier la branche principale : chercher main , master , ou develop
-
Pull les dernières modifications : git checkout {main} && git pull
-
Générer le nom de branche :
-
Extraire mots-clés de la feature → kebab-case
-
Préfixer avec feature/
-
Limiter à 50 caractères
-
Créer la branche : git checkout -b feature/{nom}
-
Créer le dossier .apex/ pour les artefacts du workflow
Marquer todo 1 comme completed
Étape 2 : Analyze Code (Agent Explore)
Marquer todo 2 comme in_progress
En mode interactif : demander confirmation avec AskUserQuestion avant de lancer
Utiliser l'outil Task avec subagent_type: "Explore" :
Prompt: Explore ce codebase pour comprendre comment implémenter la feature suivante : "{feature_description}"
Analyse demandée :
- Structure générale du projet (dossiers, architecture)
- Patterns utilisés (state management, routing, styling, etc.)
- Fichiers pertinents pour cette feature (avec chemins)
- Conventions de code observées (naming, structure)
- Technologies et frameworks détectés
Retourne un rapport structuré avec ces informations.
Stocker le résultat pour l'étape suivante.
Marquer todo 2 comme completed
Étape 3 : Plan Feature (Agent Plan)
Marquer todo 3 comme in_progress
En mode interactif : demander confirmation avec AskUserQuestion
Utiliser l'outil Task avec subagent_type: "Plan" :
Prompt: En te basant sur l'analyse ci-dessous, crée un plan d'implémentation pour : "{feature_description}"
Analyse du codebase : {résultat_étape_2}
Le plan doit inclure :
- Stratégie d'implémentation
- Liste des fichiers à créer (avec chemins complets)
- Liste des fichiers à modifier (avec changements spécifiques)
- Séquence d'implémentation ordonnée
- Points d'attention et risques
Écrire le plan dans .apex/plan.md
Marquer todo 3 comme completed
Étape 4 : Execute (Implémentation)
Marquer todo 4 comme in_progress
En mode interactif : demander confirmation avec AskUserQuestion
Lire .apex/plan.md et pour chaque tâche du plan :
-
Lire le fichier concerné (si modification)
-
Implémenter le changement
-
Commit atomique avec message conventionnel : git commit -m "type(scope): description
Co-Authored-By: Claude <noreply@anthropic.com>"
Types de commit :
-
feat : nouvelle fonctionnalité
-
fix : correction de bug
-
refactor : refactoring
-
test : tests
-
docs : documentation
Marquer todo 4 comme completed
Étape 5 : Validate
Marquer todo 5 comme in_progress
Détecter le type de projet en cherchant :
-
package.json → Node.js
-
Cargo.toml → Rust
-
go.mod → Go
-
pyproject.toml / requirements.txt → Python
Pour Node.js, lire package.json et identifier :
-
Package manager : pnpm-lock.yaml → pnpm, yarn.lock → yarn, sinon npm
-
Scripts disponibles : build , lint , typecheck , type-check , tsc
Exécuter les validations disponibles :
Projet Build Lint Types
Node.js {pm} run build
{pm} run lint
{pm} run typecheck ou tsc --noEmit
Rust cargo build
cargo clippy
(inclus)
Go go build ./...
go vet ./...
(inclus)
Python
ruff check .
mypy .
Si erreur :
-
Parser le message d'erreur
-
Corriger le fichier concerné
-
Commit : fix(scope): resolve {type} error
-
Retry (max 3 fois)
Si pas de scripts de validation : noter et continuer
Marquer todo 5 comme completed
Étape 6 : Review (si activé)
Skip si mode --auto sans --review
Marquer todo 6 comme in_progress
En mode interactif : demander confirmation avec AskUserQuestion
Obtenir le diff complet : git diff main...HEAD
Effectuer une code review en analysant :
-
Bugs : erreurs logiques, edge cases
-
Security : injections, XSS, données exposées
-
Performance : N+1, renders inutiles
-
Conventions : respect des patterns du projet
Catégoriser les issues :
-
🔴 Critical : doit être corrigé (bloquant)
-
🟡 Warning : devrait être corrigé
-
🔵 Suggestion : amélioration optionnelle
Écrire le rapport dans .apex/review.md
Marquer todo 6 comme completed
Étape 7 : Fix Issues (si nécessaire)
Skip si pas d'issues Critical/Warning dans review.md
Marquer todo 7 comme in_progress
-
Lire .apex/review.md
-
Pour chaque issue Critical et Warning :
-
Localiser le fichier et la ligne
-
Appliquer la correction
-
Commit : fix(scope): resolve review issue {id}
-
Re-exécuter l'étape 5 (Validate)
Marquer todo 7 comme completed
Étape 8 : Add Tests (si activé)
Skip si mode --auto sans --tests
Marquer todo 8 comme in_progress
En mode interactif : demander confirmation avec AskUserQuestion
Détecter le framework de test :
-
jest.config.* ou "jest" dans package.json → Jest
-
vitest.config.* → Vitest
-
pytest.ini ou pyproject.toml avec pytest → Pytest
-
*_test.go existants → Go testing
-
Cargo.toml → Rust tests
Trouver des exemples de tests existants pour référence de style
Écrire les tests :
-
Tests unitaires pour les nouvelles fonctions
-
Tests des edge cases (null, empty, erreurs)
-
Placer dans le bon dossier selon les conventions du projet
Commit : test(scope): add tests for {feature}
Marquer todo 8 comme completed
Étape 9 : Verify Tests (si activé)
Skip si étape 8 skippée
Marquer todo 9 comme in_progress
Exécuter les tests :
-
Jest/Vitest : {pm} test ou npx jest
-
Pytest : pytest
-
Go : go test ./...
-
Rust : cargo test
Si échec :
-
Analyser si le bug est dans le code ou le test
-
Corriger
-
Commit : fix(test): correct {test_name}
-
Retry (max 3 fois)
Marquer todo 9 comme completed
Étape 10 : Create PR
Marquer todo 10 comme in_progress
Push la branche :
git push -u origin feature/{nom}
Générer le titre : {type}: {description courte en anglais}
Générer le body :
Summary
{Description de la feature}
Changes
{Liste des changements extraite des commits}
Testing
- Build passes
- Lint passes
- Type check passes
- Unit tests pass
🤖 Generated with Claude Code using /apex
Créer la PR :
gh pr create --title "{titre}" --body "{body}"
Afficher le résultat :
🎉 Pipeline complete! PR: {url}
Marquer todo 10 comme completed
GESTION DES ERREURS
Mode interactif
À chaque erreur, utiliser AskUserQuestion :
options: ["Retry", "Skip cette étape", "Abort le workflow"]
Mode autonome
-
Retry automatique (max 2 fois)
-
Si échec persistant → demander à l'utilisateur avec AskUserQuestion
Erreurs bloquantes (toujours abort)
-
Pas un repo git
-
Pas de remote origin
-
Push échoue (permissions)
GESTION DU FLAG --resume
Si --resume est présent :
-
Vérifier si une branche feature/* existe localement
-
Checkout cette branche
-
Analyser l'état :
-
.apex/plan.md existe → étape 3 complétée
-
.apex/review.md existe → étape 6 complétée
-
Compter les commits depuis main → estimer progression
-
Reprendre à l'étape suivante
CONVENTIONS
Structure des artefacts
.apex/ ├── plan.md # Plan d'implémentation (étape 3) └── review.md # Rapport de review (étape 6)
Nommage des branches
feature/{mots-clés-kebab-case} (max 50 chars)
Format des commits
type(scope): description en anglais
Co-Authored-By: Claude <noreply@anthropic.com>
QUICK REFERENCE
Mode Commande Review Tests
Interactif complet /apex {feature}
✓ ✓
Autonome minimal /apex --auto {feature}
✗ ✗
Autonome + review /apex --auto --review {feature}
✓ ✗
Autonome + tests /apex --auto --tests {feature}
✗ ✓
Autonome complet /apex --auto --review --tests {feature}
✓ ✓
Reprendre /apex --resume
Référence détaillée
Pour plus de détails sur chaque étape : references/workflow.md