Développeur : Suivi Continu des Anomalies
Déclencheur
Exécuter à la FIN de chaque itération de codage significative OU lorsque l'utilisateur le le demande explicitement. Ne PAS exécuter en cours de tâche — attendre un point d'arrêt naturel.
Cette compétence est chargée par défaut au début de la session. Elle est sûre et non destructive :
elle écrit uniquement dans knowledge/issues/open/ et knowledge/issues/INDEX.md.
Algorithme
Phase 1 — Analyser la conversation en cours
Passez en revue la conversation actuelle pour rechercher ces types de signaux :
| Signal | Exemples | Priorité |
|---|---|---|
| Erreur corrigée | "PowerShell a mal interprété {{ }}", "ngx-translate v18 n'a pas de forRoot()" | ÉLEVÉE |
| Découverte d'API | "linkedSignal nécessite Node ≥22", "provideZonelessChangeDetection() est stable dans Angular 22" | ÉLEVÉE |
| Solution de contournement trouvée | "Utiliser create_file au lieu de Set-Content pour les templates" | MOYENNE |
| Motif répété | La même erreur s'est produite 2 fois ou plus dans cette seule session | ÉLEVÉE |
| Particularité du projet | "Ce monorepo utilise npm workspaces", "Le .gitignore exclut .github/" | MOYENNE |
| Limitation de l'outil | "Copilot n'expose pas usage.prompt_tokens directement" | FAIBLE |
| Préférence de l'utilisateur | "Préfère les commandes séparées par ; plutôt que &&" | MOYENNE |
Phase 2 — Recouper avec le registre des anomalies
- Lire
knowledge/issues/INDEX.md— obtenir tous les ID, titres, catégories d'anomalies existants - Pour chaque signal de la Phase 1, tenter de le faire correspondre aux anomalies existantes :
- Correspondance par chevauchement de mots-clés (titre + description)
- Correspondance par catégorie + modèle d'erreur similaire
- Utiliser
grep_searchsurknowledge/issues/open/pour du contenu connexe
Phase 3 — Créer ou Mettre à Jour les Anomalies
NOUVELLE anomalie (aucune correspondance trouvée)
Générer un ID : ISSUE-AAAAMMJJ-XXXX où XXXX = les 4 premiers caractères hex d'un UUID
PowerShell : [guid]::NewGuid().ToString().Substring(0, 4)
Exemple : ISSUE-20260624-a1b2
Créer knowledge/issues/open/ISSUE-AAAAMMJJ-XXXX.md en utilisant TEMPLATE.md
Définir occurrences=1, certitude=faible, statut=ouverte
Définir created_by sur "developer" (ou identifiant actuel de l'agent)
Insérer une nouvelle ligne dans INDEX.md → Tableau des anomalies ouvertes
Si vous avez des données de jeton de session, les ajouter facultativement à la section Preuve
Les ID sont basés sur UUID — pas besoin de lire INDEX.md en premier. Risque de collision nul entre plusieurs développeurs travaillant simultanément.
MISE À JOUR d'une anomalie existante (correspondance trouvée)
Incrémenter les occurrences de 1
Mettre à jour last_seen à la date du jour
Ajouter les informations de la session en cours au tableau sessions
Réévaluer la certitude :
- 1 occurrence → faible
- 2 occurrences → moyenne
- 3+ occurrences → élevée
Mettre à jour le fichier d'anomalie dans open/ en utilisant replace_string_in_file
Mettre à jour les comptes et les données de lignes dans INDEX.md
Conflits de fusion dans INDEX.md
Si deux développeurs ajoutent des lignes à INDEX.md simultanément, un conflit de fusion Git se produira sur le corps du tableau. Résolution : conserver TOUTES les lignes des deux branches ; recompter les répertoires pour mettre à jour les nombres du Résumé.
Rapport
Produire un tableau récapitulatif :
## Rapport du Développeur — AAAA-MM-JJ
| Action | ID | Titre | Catégorie | Détail |
|--------|----|-------|-----------|--------|
| 🆕 Nouvelle | ISSUE-001 | ... | ... | Créée dans open/ |
| 📈 Mise à jour | ISSUE-002 | ... | ... | 1→2 occurrences, certitude faible→moyenne |
Règles Importantes
-
NE JAMAIS promouvoir d'anomalies. La promotion est la responsabilité de la compétence
ai-engineer. Votre seule sortie est les fichiers d'anomalies dansopen/et les mises à jour deINDEX.md. -
NE JAMAIS modifier les compétences ou les fichiers de mémoire. Vous êtes un observateur en lecture seule de
.github/skills/et/memories/. Ne pas les toucher. -
NE JAMAIS créer une anomalie pour quelque chose que le modèle sait déjà — si c'est une connaissance courante (ex. "utiliser
constplutôt quevar"), l'ignorer complètement. -
Garder les fichiers d'anomalies concis — le format TEMPLATE.md est le maximum, pas le minimum. Ne pas écrire de longs discours.
-
Isolation des sessions — le tableau
sessionsdans le frontmatter stocke les UUID de session. Utilisersession_store_sqlpour trouver l'UUID de session actuel si disponible, sinon utiliser un identifiant basé sur la date. -
Toujours renseigner
created_by— le définir sur le nom de l'agent ou l'identifiant de session afin queai-engineerpuisse retracer l'origine des anomalies lors de la révision.
Transfert à l'Ingénieur IA
Lorsqu'une anomalie atteint certitude: élevée (3 occurrences et plus), la compétence
ai-engineer gère la promotion. La compétence developer ne décide PAS quoi promouvoir
ou où — elle enregistre uniquement la force du signal. Exécuter la compétence ai-engineer en
sous-agent lorsque l'utilisateur demande à organiser les connaissances, nettoyer les anomalies,
ou promouvoir des modèles.
Référence des Chemins de Fichiers
| Ressource | Chemin |
|---|---|
| Index du registre des anomalies | knowledge/issues/INDEX.md |
| Modèle d'anomalie | knowledge/issues/TEMPLATE.md |
| Anomalies ouvertes | knowledge/issues/open/ISSUE-XXX.md |
| Anomalies promues | knowledge/issues/promoted/ISSUE-XXX.md |
| Anomalies écartées | knowledge/issues/discarded/ISSUE-XXX.md |