Communitygithub.com

Apprentissage Continu v2.1

Système d'apprentissage par instincts qui observe les sessions via des hooks, crée des instincts atomiques avec score de confiance, et les fait évoluer en compétences, commandes ou agents. v2.1 ajoute les instincts par projet pour éviter la contamination croisée.

Qu'est-ce que Apprentissage Continu v2.1 ?

Ce système d'apprentissage continu transforme vos sessions Claude Code en connaissances réutilisables grâce à des « instincts » atomiques. Il capture automatiquement les modèles de comportement via des hooks qui s'exécutent à 100 % avant et après chaque appel d'outil, et les analyse en arrière-plan pour détecter les corrections utilisateur, les résolutions d'erreurs et les workflows répétés. Chaque instinct possède un score de confiance (de 0,3 « provisoire » à 0,9 « quasi certain ») qui évolue selon les preuves accumulées. La version 2.1 introduit un système de périmètre par projet : les instincts restent isolés dans leur projet (par exemple, React dans le projet React, Python dans le projet Python), tandis que les modèles universels comme « toujours valider les entrées » sont partagés globalement. Le système prend en charge Claude Code via des hooks déterministes, un observateur d'arrière-plan (nécessite Linux, macOS ou WSL2), et six commandes `/instinct-status`, `/evolve`, `/instinct-export`, `/instinct-import`, `/promote` et `/projects`.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/tree/main/skills/continuous-learning-v2

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Apprentissage Continu v2.1 - Architecture basée sur les instincts

Un système d'apprentissage avancé qui transforme vos sessions Claude Code en connaissances réutilisables via des « instincts » atomiques – de petits comportements appris avec un score de confiance.

v2.1 ajoute les instincts par projet — les motifs React restent dans votre projet React, les conventions Python restent dans votre projet Python, et les motifs universels (comme « toujours valider les entrées ») sont partagés globalement.

Quand activer

  • Mettre en place l'apprentissage automatique à partir des sessions Claude Code
  • Configurer l'extraction de comportements basée sur les instincts via des hooks
  • Régler les seuils de confiance pour les comportements appris
  • Examiner, exporter ou importer des bibliothèques d'instincts
  • Faire évoluer les instincts en compétences, commandes ou agents complets
  • Gérer les instincts par projet vs globaux
  • Promouvoir les instincts du projet vers le périmètre global

Nouveautés de la v2.1

Fonctionnalitév2.0v2.1
StockageGlobal (~/.claude/homunculus/)Par projet (${XDG_DATA_HOME:-~/.local/share}/ecc-homunculus/projects/<hash>/)
PérimètreTous les instincts s'appliquent partoutPar projet + global
DétectionAucuneURL git remote / chemin du dépôt
PromotionN/AProjet → global lorsque vu dans 2+ projets
Commandes4 (status/evolve/export/import)6 (+promote/projects)
Inter-projetsRisque de contaminationIsolé par défaut

Nouveautés de la v2 (vs v1)

Fonctionnalitév1v2
ObservationHook stop (fin de session)PreToolUse/PostToolUse (fiable à 100 %)
AnalyseContexte principalAgent d'arrière-plan (Haiku)
GranularitéCompétences complètesInstincts atomiques
ConfianceAucune0,3-0,9 pondéré
ÉvolutionDirecte vers compétenceInstincts -> cluster -> compétence/commande/agent
PartageAucunExport/Import d'instincts

Le modèle d'instinct

Un instinct est un petit comportement appris :

---
id: prefer-functional-style
déclencheur: "lors de l'écriture de nouvelles fonctions"
confiance: 0.7
domaine: "style-code"
source: "observation-session"
périmètre: projet
projet_id: "a1b2c3d4e5f6"
projet_nom: "my-react-app"
---

# Préférer le style fonctionnel

## Action
Utiliser des motifs fonctionnels plutôt que des classes lorsque c'est approprié.

## Preuves
- 5 instances de préférence pour les motifs fonctionnels observées
- L'utilisateur a corrigé une approche basée sur les classes pour une approche fonctionnelle le 2025-01-15

Propriétés :

  • Atomique — un déclencheur, une action
  • Pondéré par la confiance — 0,3 = provisoire, 0,9 = quasi certain
  • Étiqueté par domaine — style-code, test, git, débogage, workflow, etc.
  • Basé sur des preuves — suit les observations qui l'ont créé
  • Conscient du périmètre — projet (par défaut) ou global

Comment ça marche

Activité de session (dans un dépôt git)
      |
      | Les hooks capturent les invites + l'utilisation d'outils (fiable à 100 %)
      | + détection du contexte projet (git remote / chemin du dépôt)
      v
+---------------------------------------------+
|  projects/<hash-projet>/observations.jsonl   |
|   (invites, appels d'outils, résultats, projet) |
+---------------------------------------------+
      |
      | L'agent observateur lit (arrière-plan, Haiku)
      v
+---------------------------------------------+
|          DÉTECTION DE MOTIFS                |
|   * Corrections de l'utilisateur -> instinct  |
|   * Résolutions d'erreurs -> instinct         |
|   * Workflows répétés -> instinct             |
|   * Décision de périmètre : projet ou global ?|
+---------------------------------------------+
      |
      | Crée/met à jour
      v
+---------------------------------------------+
|  projects/<hash-projet>/instincts/personal/  |
|   * prefer-functional.yaml (0.7) [projet]   |
|   * use-react-hooks.yaml (0.9) [projet]     |
+---------------------------------------------+
|  instincts/personal/  (GLOBAL)               |
|   * always-validate-input.yaml (0.85) [global]|
|   * grep-before-edit.yaml (0.6) [global]     |
+---------------------------------------------+
      |
      | /evolve regroupe + /promote
      v
+---------------------------------------------+
|  projects/<hash>/evolved/ (par projet)       |
|  evolved/ (global)                           |
|   * commands/new-feature.md                  |
|   * skills/testing-workflow.md               |
|   * agents/refactor-specialist.md            |
+---------------------------------------------+

Détection de projet

Le système détecte automatiquement votre projet actuel :

  1. Variable d'env CLAUDE_PROJECT_DIR (priorité la plus élevée) — honoré comme remplacement explicite même si le répertoire n'est pas un dépôt git (haché par son chemin absolu)
  2. git remote get-url origin — haché pour créer un ID de projet portable (le même dépôt sur différentes machines obtient le même ID)
  3. git rev-parse --show-toplevel — solution de repli utilisant le chemin du dépôt (spécifique à la machine)
  4. Solution de repli globale — si aucun projet n'est détecté, les instincts vont dans le périmètre global

Chaque projet reçoit un ID haché de 12 caractères (ex. a1b2c3d4e5f6). Un fichier de registre à ${XDG_DATA_HOME:-~/.local/share}/ecc-homunculus/projects.json mappe les IDs aux noms lisibles par l'homme.

Répertoire de données

Apprentissage-Continu-v2 stocke les données d'observation en dehors de ~/.claude pour que la protection des chemins sensibles de Claude Code ne bloque pas les écritures d'instincts en arrière-plan :

  1. CLV2_HOMUNCULUS_DIR lorsqu'il est défini avec un chemin absolu
  2. $XDG_DATA_HOME/ecc-homunculus
  3. $HOME/.local/share/ecc-homunculus

Les utilisateurs existants avec des données dans ~/.claude/homunculus peuvent migrer une fois :

bash skills/continuous-learning-v2/scripts/migrate-homunculus.sh

Démarrage rapide

1. Activer les hooks d'observation

Si installé en tant que plugin (recommandé) :

Aucun bloc settings.json supplémentaire n'est nécessaire. Claude Code v2.1+ charge automatiquement le plugin hooks/hooks.json, et observe.sh y est déjà enregistré.

Si vous avez déjà copié observe.sh dans ~/.claude/settings.json, supprimez ce bloc PreToolUse / PostToolUse en double. La duplication du hook du plugin provoque une double exécution et des erreurs de résolution ${CLAUDE_PLUGIN_ROOT} car cette variable n'est disponible que dans les entrées hooks/hooks.json gérées par le plugin.

Si installé manuellement dans ~/.claude/skills, ajoutez ceci à votre ~/.claude/settings.json :

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "*",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh"
      }]
    }],
    "PostToolUse": [{
      "matcher": "*",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh"
      }]
    }]
  }
}

2. Initialiser la structure de répertoires

Le système crée les répertoires automatiquement lors de la première utilisation, mais vous pouvez aussi les créer manuellement :

# Répertoires globaux
mkdir -p "${XDG_DATA_HOME:-$HOME/.local/share}/ecc-homunculus"/{instincts/{personal,inherited},evolved/{agents,skills,commands},projects}

# Les répertoires de projet sont créés automatiquement lors de la première exécution du hook dans un dépôt git

3. Utiliser les commandes d'instinct

/instinct-status     # Afficher les instincts appris (projet + global)
/evolve              # Regrouper les instincts associés en compétences/commandes
/instinct-export     # Exporter les instincts vers un fichier
/instinct-import     # Importer des instincts depuis d'autres sources
/promote             # Promouvoir les instincts du projet vers le périmètre global
/projects            # Lister tous les projets connus et leurs compteurs d'instincts

Commandes

CommandeDescription
/instinct-statusAfficher tous les instincts (par projet + globaux) avec leur confiance
/evolveRegrouper les instincts associés en compétences/commandes, suggérer des promotions
/instinct-exportExporter les instincts (filtrable par périmètre/domaine)
/instinct-import <fichier>Importer des instincts avec contrôle de périmètre
/promote [id]Promouvoir les instincts du projet vers le périmètre global
/projectsLister tous les projets connus et leurs compteurs d'instincts

Configuration

Modifiez config.json pour contrôler l'observateur d'arrière-plan :

{
  "version": "2.1",
  "observer": {
    "enabled": false,
    "run_interval_minutes": 5,
    "min_observations_to_analyze": 20
  }
}
CléPar défautDescription
observer.enabledfalseActiver l'agent observateur d'arrière-plan
observer.run_interval_minutes5Fréquence d'analyse des observations par l'observateur
observer.min_observations_to_analyze20Nombre minimum d'observations avant le déclenchement de l'analyse

Les autres comportements (capture d'observations, seuils d'instincts, périmètres de projet, critères de promotion) sont configurés via les valeurs par défaut du code dans instinct-cli.py et observe.sh.

Support de la plateforme pour l'observateur

L'observateur d'arrière-plan nécessite WSL2, Linux ou macOS. Sous Windows natif (Git Bash / MSYS2), il démarre et signale un succès, mais le processus est tué lorsque le hook qui l'a lancé se termine et que son objet Job se ferme, donc aucune analyse n'est jamais exécutée — activer observer.enabled: true dans ce cas est effectivement une opération nulle (voir le problème #2489).

observe.sh détecte cela lors de l'appel du hook suivant et écrit un avertissement explicatif dans observer-start.log une fois que l'observateur a échoué à survivre plusieurs fois de suite.

Variable d'envPar défautDescription
ECC_OBSERVER_NOSURVIVE_WARN_AFTER3Nombre d'échecs de survie consécutifs avant que l'avertissement ne soit enregistré

Structure des fichiers

${XDG_DATA_HOME:-~/.local/share}/ecc-homunculus/
+-- identity.json           # Votre profil, niveau technique
+-- projects.json           # Registre : hash de projet -> nom/chemin/remote
+-- observations.jsonl      # Observations globales (solution de repli)
+-- instincts/
|   +-- personal/           # Instincts auto-appris globaux
|   +-- inherited/          # Instincts importés globaux
+-- evolved/
|   +-- agents/             # Agents générés globaux
|   +-- skills/             # Compétences générées globales
|   +-- commands/           # Commandes générées globales
+-- projects/
    +-- a1b2c3d4e5f6/       # Hash du projet (depuis l'URL git remote)
    |   +-- project.json    # Miroir des métadonnées par projet (id/nom/racine/remote)
    |   +-- observations.jsonl
    |   +-- observations.archive/
    |   +-- instincts/
    |   |   +-- personal/   # Auto-appris spécifique au projet
    |   |   +-- inherited/  # Importé spécifique au projet
    |   +-- evolved/
    |       +-- skills/
    |       +-- commands/
    |       +-- agents/
    +-- f6e5d4c3b2a1/       # Un autre projet
        +-- ...

Guide de décision de périmètre

Type de motifPérimètreExemples
Conventions de langage/frameworkprojet« Utiliser les hooks React », « Suivre les motifs Django REST »
Préférences de structure de fichiersprojet« Tests dans __tests__/ », « Composants dans src/components/ »
Style de codeprojet« Utiliser le style fonctionnel », « Préférer les dataclasses »
Stratégies de gestion d'erreursprojet« Utiliser le type Result pour les erreurs »
Pratiques de sécuritéglobal« Valider les entrées utilisateur », « Sanitiser le SQL »
Bonnes pratiques généralesglobal« Écrire les tests d'abord », « Toujours gérer les erreurs »
Préférences de workflow d'outilsglobal« Grep avant Éditer », « Lire avant Écrire »
Pratiques Gitglobal« Commits conventionnels », « Petits commits ciblés »

Promotion d'instinct (Projet -> Global)

Lorsqu'un même instinct apparaît dans plusieurs projets avec une confiance élevée, il est candidat à la promotion vers le périmètre global.

Critères de promotion automatique :

  • Même ID d'instinct dans 2+ projets
  • Confiance moyenne >= 0,8

Comment promouvoir :

# Promouvoir un instinct spécifique
python3 instinct-cli.py promote prefer-explicit-errors

# Promouvoir automatiquement tous les instincts qualifiés
python3 instinct-cli.py promote

# Prévisualiser sans modifications
python3 instinct-cli.py promote --dry-run

La commande /evolve suggère également des candidats à la promotion.

Score de confiance

La confiance évolue au fil du temps :

ScoreSignificationComportement
0,3ProvisoireSuggéré mais pas appliqué
0,5ModéréAppliqué lorsque pertinent
0,7FortApprouvé automatiquement pour application
0,9Quasi certainComportement fondamental

La confiance augmente lorsque :

  • Le motif est observé à plusieurs reprises
  • L'utilisateur ne corrige pas le comportement suggéré
  • Des instincts similaires d'autres sources sont en accord

La confiance diminue lorsque :

  • L'utilisateur corrige explicitement le comportement
  • Le motif n'est pas observé pendant des périodes prolongées
  • Des preuves contradictoires apparaissent

Pourquoi les hooks plutôt que les compétences pour l'observation ?

« La v1 reposait sur les compétences pour observer. Les compétences sont probabilistes — elles se déclenchent ~50-80 % du temps selon le jugement de Claude. »

Les hooks se déclenchent 100 % du temps, de manière déterministe. Cela signifie :

  • Chaque appel d'outil est observé
  • Aucun motif n'est manqué
  • L'apprentissage est complet

Rétrocompatibilité

v2.1 est entièrement compatible avec v2.0 et v1 :

  • Les instincts globaux existants peuvent être migrés depuis ~/.claude/homunculus/instincts/ avec scripts/migrate-homunculus.sh
  • Les compétences ~/.claude/skills/learned/ de v1 fonctionnent toujours
  • Le hook stop continue de fonctionner (mais alimente désormais également v2)
  • Migration progressive : exécutez les deux en parallèle

Confidentialité

  • Les observations restent locales sur votre machine
  • Les instincts par projet sont isolés par projet
  • Seuls les instincts (motifs) peuvent être exportés — pas les observations brutes
  • Aucun code réel ni contenu de conversation n'est partagé
  • Vous contrôlez ce qui est exporté et promu

Associé

  • ECC-Tools GitHub App - Générer des instincts à partir de l'historique du dépôt
  • Homunculus - Projet communautaire qui a inspiré l'architecture v2 basée sur les instincts (observations atomiques, score de confiance, pipeline d'évolution des instincts)
  • The Longform Guide - Section sur l'apprentissage continu

Apprentissage par instincts : enseigner à Claude vos motifs, un projet à la fois.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

Skills associés