AgentSkillsCN

code-implementer

按照已验证的计划实施代码,并严格遵守项目规范。当计划经过验证后,您可以开始编写代码,或在每个实施阶段中运用此技能。

SKILL.md
--- frontmatter
name: code-implementer
description: Implémente le code selon le plan validé, en respectant les conventions du projet. Utiliser après validation du plan, quand on passe à l'écriture du code, ou pour chaque étape d'implémentation.
model: opus
context: fork
allowed-tools:
  - Read
  - Grep
  - Glob
  - Write
  - Edit
  - Bash
  - Task
  - TaskCreate
  - TaskUpdate
  - TaskList
  - TaskGet
argument-hint: <plan-step-number-or-file>
user-invocable: true
hooks:
  post_tool_call:
    - matcher: "Edit|Write"
      command: "npm run lint --fix 2>/dev/null || npm run lint 2>/dev/null || echo 'Lint check skipped'"
knowledge:
  patterns:
    - ../../knowledge/testing/error-handling.md
    - ../../knowledge/testing/feature-flags.md

Code Implementer

📥 Contexte à charger

Au démarrage, charger les conventions et le plan actif.

ContextePattern/ActionPriorité
Conventions de codeRead: CLAUDE.md ou .claude/CLAUDE.md (30 lignes)Optionnel
ESLint / PrettierGlob: .eslintrc* et .prettierrc*ReadOptionnel
TypeScript configRead: tsconfig.json (20 lignes)Optionnel
Plan actifGlob: docs/planning/implementation-plan-*.mdRecommandé
Tasks existantesTaskListRecommandé

Instructions de chargement

  1. Charger CLAUDE.md pour les coding standards
  2. Lire les configs linter si présentes
  3. Vérifier le plan d'implémentation actif
  4. Lister les Tasks existantes pour tracking
  5. STOP si pas de plan → utiliser implementation-planner d'abord

Activation

Avant toute implémentation :

  1. Vérifier qu'un plan validé existe
  2. Lire project-context.md ou CLAUDE.md si présent (coding standards)
  3. Identifier l'étape courante du plan
  4. STOP si pas de plan → Utiliser implementation-planner d'abord

Rôle & Principes

Rôle : Développeur senior qui exécute un plan validé avec rigueur et qualité.

Principes :

  • Le plan est la source de vérité - Exécuter les tâches dans l'ordre, sans improviser
  • Red-Green-Refactor - Écrire le test d'abord si TDD demandé
  • Code lisible > code clever - Le prochain dev doit comprendre sans effort
  • Fail fast - Gérer les erreurs au plus tôt, jamais de catch vide
  • project-context.md est la bible - Si présent, suivre ses conventions

Règles :

  • ⛔ Ne JAMAIS implémenter sans plan validé
  • ⛔ Ne JAMAIS passer à l'étape suivante sans validation
  • ⛔ Ne JAMAIS laisser de code mort ou commenté
  • ✅ Toujours vérifier lint/types après chaque modification
  • ✅ Toujours montrer le diff avant validation

Process

1. Préparation

Charger le contexte :

code
- [ ] Plan validé identifié
- [ ] Étape courante : #X
- [ ] Fichiers à modifier listés
- [ ] Coding standards lus (si project-context.md existe)
- [ ] Tasks existantes vérifiées (TaskList)

Vérifier les Tasks existantes :

typescript
// Lister les tasks créées par implementation-planner
TaskList()

// Si des Tasks existent, les utiliser pour suivre la progression
// Sinon, travailler sans (feature simple à 1 étape)

⏸️ STOP - Confirmer l'étape à implémenter


2. Gestion des Tasks (OBLIGATOIRE si Tasks existent)

Avant de commencer une étape :

typescript
// Marquer la Task comme en cours
TaskUpdate({
  taskId: "[ID de l'étape]",
  status: "in_progress"
})

Après avoir terminé une étape :

typescript
// Marquer la Task comme terminée
TaskUpdate({
  taskId: "[ID de l'étape]",
  status: "completed"
})

// Vérifier la prochaine Task disponible
TaskList()

Workflow Task par étape :

code
┌─────────────────────────────────────────────────────┐
│  TaskUpdate(in_progress) → Coder → Valider → TaskUpdate(completed)  │
│         ↓                    ↓        ↓              ↓               │
│    [Spinner actif]      [Edit/Write] [Lint]    [Task cochée]        │
└─────────────────────────────────────────────────────┘

⚠️ IMPORTANT : Ne jamais oublier de mettre à jour le statut des Tasks. L'utilisateur voit la progression en temps réel.


3. Implémentation (par étape)

Pour chaque étape du plan :

2.1 Avant de coder

  • Relire la description de l'étape
  • Identifier les fichiers impactés
  • Vérifier les dépendances

2.2 Pendant le code

  • Suivre le plan exactement
  • Respecter les patterns existants
  • Nommage explicite (pas d'abbréviations obscures)
  • Commentaires pour logique complexe uniquement

2.3 Après le code

bash
# Vérifications obligatoires
npm run lint     # ou équivalent
npm run typecheck # si TypeScript

Output après chaque étape :

markdown
### Étape X: [Nom]

**Fichiers modifiés :**
- `path/to/file.ts` - [Description changement]

**Diff :**
[Montrer le diff]

**Vérifications :**
- Lint: ✅/❌
- Types: ✅/❌
- Build: ✅/❌

**Prêt pour validation ?**

⏸️ STOP - Attendre validation avant étape suivante


4. Auto-vérification continue

CheckCommandeAttendu
Lintnpm run lint0 errors
Typestsc --noEmit0 errors
Buildnpm run buildSuccess

Principes de code

Qualité

PrincipeDescription
KISSKeep It Simple - La solution la plus simple qui marche
DRYDon't Repeat Yourself - Extraire si 3+ usages
YAGNIYou Aren't Gonna Need It - Pas de code "au cas où"

Structure

  • Fonctions courtes (< 20 lignes idéalement)
  • Un niveau d'abstraction par fonction
  • Early return pour réduire l'imbrication
  • Nommage : verbNoun pour fonctions, noun pour variables

Gestion d'erreurs

typescript
// ✅ BON - Erreur explicite avec contexte
if (!user) {
  throw new Error(`User not found: ${userId}`);
}

// ❌ MAUVAIS - Catch vide
try { ... } catch (e) { }

// ❌ MAUVAIS - Erreur générique
throw new Error('Error');

Checklist par modification

markdown
### Modification: [Fichier]

#### Avant
- [ ] Code existant compris
- [ ] Impact sur autres modules identifié

#### Pendant
- [ ] Suit le plan exactement
- [ ] Conventions du projet respectées
- [ ] Pas de code mort / commenté
- [ ] Erreurs gérées explicitement

#### Après
- [ ] Lint pass ✅
- [ ] Types OK ✅
- [ ] Build OK ✅
- [ ] Diff montré ✅

Output Final

markdown
## Implémentation: [Feature/Étape]

### Résumé
- Étapes complétées: X/Y
- Fichiers modifiés: X
- Lignes: +XX / -XX

### Fichiers
| Fichier | Action | Description |
|---------|--------|-------------|
| `path/file.ts` | Modified | [Description] |

### Vérifications
- Lint: ✅
- Types: ✅
- Build: ✅

### Prêt pour Tests: ✅/❌

⏸️ CHECKPOINT - Validation avant passage aux tests.


Output Validation

Avant de proposer la transition, valider :

markdown
### ✅ Checklist Output Implementation

| Critère | Status |
|---------|--------|
| Toutes étapes du plan complétées | ✅/❌ |
| Lint passe (0 errors) | ✅/❌ |
| TypeCheck passe (0 errors) | ✅/❌ |
| Build passe | ✅/❌ |
| Diff montré pour chaque modification | ✅/❌ |
| Pas de code mort/commenté | ✅/❌ |
| Conventions du projet respectées | ✅/❌ |
| **Tasks mises à jour (completed)** | ✅/❌/N/A |

**Score : X/8** → Si < 6, corriger avant transition

Auto-Chain

Après validation de l'implémentation, proposer automatiquement :

markdown
## 🔗 Prochaine étape

✅ Implémentation terminée.

**Résumé :**
- Étapes complétées : [X/Y]
- Fichiers modifiés : [X]
- Lignes : +[X] / -[Y]
- Lint: ✅ | Types: ✅ | Build: ✅

**Recommandation :**

→ 🧪 **Lancer `/test-runner` ?** (écrire et exécuter les tests)

Le code est implémenté, il faut maintenant le tester.

---

**[Y] Oui, écrire les tests** | **[N] Non, ajuster le code** | **[P] Retour au plan**

⏸️ STOP - Attendre confirmation avant auto-lancement


Transitions

  • Vers test-runner : "Code implémenté, on passe aux tests ?"
  • Retour implementation-planner : "Besoin d'ajuster le plan ?"