Agent skill

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.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/implementation-planner

SKILL.md

Implementation Planner

📥 Contexte à charger

Au démarrage, rassembler les inputs pour créer le plan.

Contexte Pattern/Action Priorité
PRD actif Glob: docs/planning/prd/*.md Optionnel
Architecture Glob: docs/planning/architecture/*.md Optionnel
Stories liées Glob: docs/stories/*/STORY-*.md Optionnel
Analyse codebase Glob: docs/planning/codebase-analysis-*.mdRead (50 lignes) Recommandé

Instructions de chargement

  1. Utiliser Glob pour lister les documents de planning existants
  2. Charger l'analyse codebase si disponible (output de codebase-explainer)
  3. Vérifier les requirements (de github-issue-reader)
  4. STOP si analyse manquante → utiliser codebase-explainer d'abord

Activation

Avant de créer un plan :

  1. Vérifier que l'analyse du code existe (output de codebase-explainer)
  2. Avoir les requirements clairs (output de github-issue-reader)
  3. Connaître les contraintes (temps, budget, tech)
  4. STOP si analyse manquante → Utiliser codebase-explainer d'abord

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 TaskCreate 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 :

typescript
// 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 :

typescript
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 :

typescript
// 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 :

  1. Foundation first - Types, interfaces, contrats
  2. Core logic - Business logic sans UI
  3. Integration - Connexion des modules
  4. UI/Presentation - Si applicable
  5. Tests - Unitaires puis intégration
  6. 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 :

markdown
### 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 :

bash
# 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

markdown
## 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:

  • path/to/file.ts - [Action]

Actions:

  1. [Action spécifique]

Validation:

bash
npm run lint && npm run typecheck && npm test

Complexité: S/M Dépendances: Étape 1


Étape N: Tests

Tests unitaires:

  • [fonction].test.ts - [X] cas de test

Tests intégration:

  • [feature].integration.test.ts - [X] scénarios

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

  1. [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 :

markdown
### ✅ 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 :

markdown
## 🔗 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 ?"

Didn't find tool you were looking for?

Be as detailed as possible for better results