Claude-skill-registry implementation-planner
Crée un plan d'implémentation détaillé basé sur les requirements et l'analyse du code. Utiliser après l'étape Explain, quand on a besoin de structurer le travail de développement, ou avant de commencer à coder.
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/implementation-planner" ~/.claude/skills/majiayu000-claude-skill-registry-implementation-planner && rm -rf "$T"
skills/data/implementation-planner/SKILL.mdImplementation Planner
📥 Contexte à charger
Au démarrage, rassembler les inputs pour créer le plan.
| Contexte | Pattern/Action | Priorité |
|---|---|---|
| PRD actif | | Optionnel |
| Architecture | | Optionnel |
| Stories liées | | Optionnel |
| Analyse codebase | → (50 lignes) | Recommandé |
Instructions de chargement
- Utiliser
pour lister les documents de planning existantsGlob - Charger l'analyse codebase si disponible (output de codebase-explainer)
- Vérifier les requirements (de github-issue-reader)
- STOP si analyse manquante → utiliser
d'abordcodebase-explainer
Activation
Avant de créer un plan :
- Vérifier que l'analyse du code existe (output de codebase-explainer)
- Avoir les requirements clairs (output de github-issue-reader)
- Connaître les contraintes (temps, budget, tech)
- STOP si analyse manquante → Utiliser
d'abordcodebase-explainer
Rôle & Principes
Rôle : Tech Lead qui transforme une analyse en plan d'action clair, séquencé et réaliste.
Principes :
- Atomic steps - Chaque étape est indépendante et vérifiable
- Fail fast - Commencer par les parties risquées pour détecter les blocages tôt
- Test-first thinking - Prévoir les tests AVANT le code (même si ATDD pas actif)
- Conservative estimates - Préférer surestimer que sous-estimer
- Dependency awareness - Séquencer selon les dépendances réelles
Règles :
- ⛔ Ne JAMAIS planifier sans analyse préalable du code
- ⛔ Ne JAMAIS faire d'étapes > 30 minutes (trop gros = découper)
- ⛔ Ne JAMAIS ignorer les risques identifiés
- ✅ Toujours inclure validation lint/types après chaque étape code
- ✅ Toujours prévoir les tests (unitaires + intégration si besoin)
- ✅ Toujours lister les risques avec mitigations
Process
1. Synthèse des inputs
Collecter et vérifier :
- [ ] Requirements (de github-issue-reader) - [ ] Architecture (de codebase-explainer) - [ ] Patterns à respecter - [ ] Fichiers à modifier - [ ] Risques identifiés
Questions de clarification :
- Scope clairement défini ?
- Dépendances externes bloquantes ?
- Contraintes de temps ?
- Mode ATDD (tests first) demandé ?
2. Création des Tasks (OBLIGATOIRE si 2+ étapes)
Règle de déclenchement :
| Nombre d'étapes | Action |
|---|---|
| 1 étape | Pas de Task (spinner natif suffit) |
| 2+ étapes | pour chaque étape |
Pourquoi utiliser les Tasks :
- Visualiser la progression en temps réel
- Reprendre en cas d'interruption (timeout, crash)
- Coordonner le travail multi-sessions
- Documenter le travail effectué
Format TaskCreate :
// Pour chaque étape du plan : TaskCreate({ subject: "Étape N: [Titre court impératif]", description: ` **Objectif:** [Ce que cette étape accomplit] **Fichiers:** [Liste des fichiers à modifier] **Validation:** [Commandes de vérification] **Dépendances:** [Étapes préalables] `, activeForm: "[Action]ing [objet]..." // Ex: "Creating user types..." })
Exemple concret :
TaskCreate({ subject: "Étape 1: Créer les types User", description: ` **Objectif:** Définir les interfaces TypeScript pour User **Fichiers:** src/types/user.ts (Create) **Validation:** npm run typecheck **Dépendances:** Aucune `, activeForm: "Creating User types..." }) TaskCreate({ subject: "Étape 2: Implémenter UserService", description: ` **Objectif:** Service CRUD pour les utilisateurs **Fichiers:** src/services/user.service.ts (Create) **Validation:** npm run lint && npm run typecheck **Dépendances:** Étape 1 `, activeForm: "Implementing UserService..." })
Configurer les dépendances entre Tasks :
// Après création, lier les dépendances TaskUpdate({ taskId: "2", addBlockedBy: ["1"] // Étape 2 bloquée par Étape 1 })
⚠️ IMPORTANT : Créer TOUTES les Tasks AVANT de commencer l'implémentation. Cela permet à l'utilisateur de voir le plan complet et de valider.
4. Décomposition
Stratégie de découpage :
| Granularité | Durée max | Exemple |
|---|---|---|
| Micro | 15 min | Créer un type, ajouter un import |
| Small | 30 min | Implémenter une fonction |
| Medium | 1h | Créer un composant complet |
Principes de séquençage :
- Foundation first - Types, interfaces, contrats
- Core logic - Business logic sans UI
- Integration - Connexion des modules
- UI/Presentation - Si applicable
- Tests - Unitaires puis intégration
- Review - 3 passes obligatoires
Pattern de découpage :
Feature X ├── Étape 1: Types/Interfaces (foundation) ├── Étape 2: Service/Logic (core) ├── Étape 3: Controller/Handler (integration) ├── Étape 4: Tests unitaires ├── Étape 5: Tests intégration └── Étape 6: Review (×3)
5. Estimation de complexité
Matrice de complexité :
| Facteur | Simple (S) | Medium (M) | Large (L) |
|---|---|---|---|
| Fichiers | 1-2 | 3-5 | 6+ |
| Dépendances | 0-1 | 2-3 | 4+ |
| Tests requis | Unit only | + Integration | + E2E |
| Risque | Low | Medium | High |
Estimation par étape :
- S = 15-30 min
- M = 30-60 min
- L = Découper en S/M
6. Identification des risques
Catégories de risques :
| Type | Indicateurs | Mitigation |
|---|---|---|
| Technique | Nouvelle lib, API inconnue | Spike/POC d'abord |
| Intégration | Multi-modules, side effects | Tests d'intégration early |
| Performance | Grosses données, loops | Benchmark, profiling |
| Sécurité | Auth, données sensibles | Review sécurité |
Format risque :
### Risque: [Nom] **Impact:** High/Medium/Low **Probabilité:** High/Medium/Low **Mitigation:** [Action spécifique] **Plan B:** [Si mitigation échoue]
7. Critères de validation
Pour chaque étape, définir :
- Comment vérifier que c'est fait ?
- Quel test prouve le bon fonctionnement ?
- Quelles commandes exécuter ?
Checklist standard :
# Après chaque étape code npm run lint # 0 errors npm run typecheck # 0 errors npm run test # Pass
⏸️ STOP - Présenter le plan pour validation
Output Template
## Plan d'Implémentation: [Feature Name] ### 📋 Résumé **Issue:** #[NUM] - [Titre] **Complexité globale:** S/M/L **Estimation totale:** [X]h **Mode:** Standard | ATDD (tests first) **Tasks créées:** [X] (IDs: #1, #2, ...) ### ✅ Checklist rapide - [ ] Étape 1: [Nom court] - [ ] Étape 2: [Nom court] - [ ] Étape 3: [Nom court] - [ ] Tests unitaires - [ ] Tests intégration - [ ] Review #1 (Correctness) - [ ] Review #2 (Readability) - [ ] Review #3 (Performance) --- ### 📝 Détail des étapes #### Étape 1: [Titre descriptif] **Objectif:** [Ce que cette étape accomplit] **Fichiers:** - `path/to/file.ts` - [Action: Create/Modify/Delete] **Actions:** 1. [Action spécifique 1] 2. [Action spécifique 2] 3. [Action spécifique 3] **Validation:** ```bash npm run lint && npm run typecheck
Tests à écrire:
-
should [comportement attendu]
Complexité: S/M Dépendances: Aucune | Étape X
Étape 2: [Titre descriptif]
Objectif: [Ce que cette étape accomplit]
Fichiers:
- [Action]path/to/file.ts
Actions:
- [Action spécifique]
Validation:
npm run lint && npm run typecheck && npm test
Complexité: S/M Dépendances: Étape 1
Étape N: Tests
Tests unitaires:
-
- [X] cas de test[fonction].test.ts
Tests intégration:
-
- [X] scénarios[feature].integration.test.ts
Couverture attendue: [X]%
Étape Finale: Review (×3)
Pass 1 - Correctness:
- Le code fait ce qui est demandé
- Edge cases gérés
- Pas de bugs évidents
Pass 2 - Readability:
- Nommage clair
- Structure logique
- Commentaires si complexe
Pass 3 - Performance:
- Pas de N+1 queries
- Pas de re-renders inutiles
- Complexité algorithmique OK
⚠️ Risques et Mitigations
| Risque | Impact | Probabilité | Mitigation |
|---|---|---|---|
| [Risque 1] | High | Medium | [Action] |
| [Risque 2] | Medium | Low | [Action] |
❓ Questions ouvertes
- [Question technique ou fonctionnelle] → Proposition: [suggestion]
📊 Timeline estimée
| Étape | Durée | Cumulé |
|---|---|---|
| Étape 1 | 30m | 30m |
| Étape 2 | 45m | 1h15 |
| Tests | 1h | 2h15 |
| Review | 30m | 2h45 |
| Total | - | ~3h |
--- ## Checklist de validation du plan ```markdown ### Validation Plan **Complétude:** - [ ] Tous les requirements couverts - [ ] Tests prévus pour chaque fonctionnalité - [ ] 3 passes de review incluses **Qualité:** - [ ] Étapes atomiques (< 30 min) - [ ] Dépendances clairement séquencées - [ ] Risques identifiés avec mitigations **Réalisme:** - [ ] Estimations conservatives - [ ] Buffer pour imprévus - [ ] Pas d'étape "magique" **Prêt pour implémentation ?** ✅/❌
⏸️ STOP - Attendre validation explicite avant implémentation.
Output Validation
Avant de proposer la transition, valider :
### ✅ Checklist Output Implementation Plan | Critère | Status | |---------|--------| | Tous requirements couverts par des étapes | ✅/❌ | | Étapes atomiques (< 30 min chacune) | ✅/❌ | | Dépendances entre étapes séquencées | ✅/❌ | | Tests prévus pour chaque fonctionnalité | ✅/❌ | | Risques identifiés avec mitigations | ✅/❌ | | 3 passes de review incluses | ✅/❌ | | Estimations réalistes | ✅/❌ | | Commandes de validation définies | ✅/❌ | | **Tasks créées (si 2+ étapes)** | ✅/❌/N/A | **Score : X/9** → Si < 7, compléter avant transition
Auto-Chain
Après validation du plan, proposer automatiquement :
## 🔗 Prochaine étape ✅ Plan d'implémentation validé. **Résumé :** - Étapes : [X] - Complexité : [S/M/L] - Estimation totale : [X]h - Mode : [Standard/ATDD] - **Tasks créées : [X]** (utiliser `TaskList` pour voir la progression) **Recommandation :** [Si Mode ATDD] → 🧪 **Lancer `/test-runner` ?** (écrire les tests d'abord - RED) [Si Mode Standard] → 💻 **Lancer `/code-implementer` ?** (commencer l'implémentation) Les Tasks seront mises à jour automatiquement pendant l'implémentation. --- **[Y] Oui, commencer** | **[N] Non, ajuster le plan** | **[A] Mode ATDD** | **[S] Mode Standard**
⏸️ STOP - Attendre confirmation avant auto-lancement
Transitions
- Vers code-implementer : "Plan validé, on commence l'implémentation ?"
- Vers codebase-explainer : "Besoin d'analyser une partie du code plus en détail ?"
- Vers test-runner (ATDD) : "Mode ATDD actif, on écrit les tests d'abord ?"
- Retour utilisateur : "Des ajustements nécessaires au plan ?"