Communitygithub.com

Apprentissage continu v2.1 - Architecture basée sur les instinc…

Système d'apprentissage basé sur les instincts qui observe les sessions via des hooks, crée des instincts atomiques avec un score de confiance, et les transforme en compétences, commandes ou agents. v2.1 ajoute les instincts limités au projet pour éviter la contamination entre projets.

Qu'est-ce que Apprentissage continu v2.1 - Architecture basée sur les instinc… ?

Ce système d'apprentissage continu permet à Claude Code d'apprendre de vos habitudes de travail en observant les sessions via des hooks, puis en créant des 'instincts' atomiques (petits comportements appris) avec un score de confiance. La version 2.1 introduit la notion de portée projet : les instincts sont automatiquement associés au projet où ils ont été observés, évitant ainsi la contamination entre projets. Par exemple, les motifs React restent dans votre projet React, tandis que les motifs universels comme 'toujours valider les entrées' peuvent être partagés globalement. Le système utilise un arrière-plan pour analyser les observations, créer des instincts, et les regrouper en compétences, commandes ou agents. Il prend en charge l'export/import d'instincts, la promotion d'instincts du niveau projet au niveau global, et la configuration de l'observateur. Compatible avec WSL2, Linux, macOS, et fonctionne via des hooks hautement fiables (100% des appels d'outils) plutôt que des compétences probabilistes.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/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 limités au 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

  • Mise en place de l'apprentissage automatique à partir des sessions Claude Code
  • Configuration de l'extraction de comportements basée sur les instincts via des hooks
  • Réglage des seuils de confiance pour les comportements appris
  • Révision, exportation ou importation de bibliothèques d'instincts
  • Transformation d'instincts en compétences, commandes ou agents complets
  • Gestion des instincts limités au projet vs instincts globaux
  • Promotion d'instincts du projet vers la portée globale

Nouveautés de la v2.1

Fonctionnalitév2.0v2.1
StockageGlobal (~/.claude/homunculus/)Limité au projet (${XDG_DATA_HOME:-~/.local/share}/ecc-homunculus/projects/<hash>/)
PortéeTous les instincts s'appliquent partoutLimité au projet + global
DétectionAucuneURL git distante / chemin du dépôt
PromotionN/AProjet → global lorsqu'observé dans 2+ projets
Commandes4 (status/evolve/export/import)6 (+promote/projects)
Contamination inter-projetsRisqueIsolé par défaut

Nouveautés de la v2 (vs v1)

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

Le modèle 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: "code-style"
source: "session-observation"
portée: projet
project_id: "a1b2c3d4e5f6"
nom_projet: "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 d'une 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 confiance – 0,3 = provisoire, 0,9 = presque certain
  • Étiqueté par domaine – code-style, test, git, débogage, flux de travail, etc.
  • Basé sur des preuves – suit les observations qui l'ont créé
  • Conscient de la portée – projet (par défaut) ou global

Comment ça fonctionne

Activité de session (dans un dépôt git)
      |
      | Les hooks capturent les invites + utilisation d'outils (100% fiable)
      | + détectent le contexte du 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 utilisateur -> instinct      |
|   * Résolutions d'erreurs -> instinct        |
|   * Flux de travail répétés -> instinct      |
|   * Décision de portée : 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 clustérise + /promote
      v
+---------------------------------------------+
|  projects/<hash>/evolved/ (limité au 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'environnement CLAUDE_PROJECT_DIR (priorité la plus élevée) – honorée comme une substitution explicite même lorsque 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 à la portée globale

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

Répertoire de données

Continuous-learning-v2 stocke les données d'observation en dehors de ~/.claude afin 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 sur 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

S'il est installé comme 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 précédemment copié observe.sh dans ~/.claude/settings.json, supprimez ce bloc PreToolUse / PostToolUse dupliqué. La duplication du hook plugin provoque une double exécution et des erreurs de résolution de ${CLAUDE_PLUGIN_ROOT} car cette variable n'est disponible que dans les entrées hooks/hooks.json gérées par le plugin.

S'il est 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 lorsque le hook est exécuté pour la première fois dans un dépôt git

3. Utiliser les commandes Instinct

/instinct-status     # Afficher les instincts appris (projet + global)
/evolve              # Clusteriser les instincts liés en compétences/commandes
/instinct-export     # Exporter les instincts vers un fichier
/instinct-import     # Importer les instincts d'autres personnes
/promote             # Promouvoir les instincts du projet vers la portée globale
/projects            # Lister tous les projets connus et leurs comptes d'instincts

Commandes

CommandeDescription
/instinct-statusAfficher tous les instincts (limités au projet + globaux) avec confiance
/evolveClusteriser les instincts liés en compétences/commandes, suggérer des promotions
/instinct-exportExporter les instincts (filtrable par portée/domaine)
/instinct-import <fichier>Importer des instincts avec contrôle de la portée
/promote [id]Promouvoir les instincts du projet vers la portée globale
/projectsLister tous les projets connus et leurs comptes 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_minutes5À quelle fréquence l'observateur analyse les observations
observer.min_observations_to_analyze20Nombre minimum d'observations avant exécution de l'analyse

Les autres comportements (capture d'observation, seuils d'instinct, portée du 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 plateforme de l'observateur

L'observateur d'arrière-plan nécessite WSL2, Linux ou macOS. Sur Windows natif (Git Bash / MSYS2), il démarre et signale un succès, mais le processus est tué lorsque le hook déclencheur se termine et que son objet Job se ferme, donc aucune analyse n'est jamais exécutée – définir observer.enabled: true y est effectivement une opération vide (voir issue #2489).

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

Variable d'environnementPar défautDescription
ECC_OBSERVER_NOSURVIVE_WARN_AFTER3Non-survies consécutives avant que l'avertissement soit enregistré

Structure de fichiers

${XDG_DATA_HOME:-~/.local/share}/ecc-homunculus/
+-- identity.json           # Votre profil, niveau technique
+-- projects.json           # Registre : hachage projet -> nom/chemin/distant
+-- observations.jsonl      # Observations globales (solution de repli)
+-- instincts/
|   +-- personal/           # Instincts globaux auto-appris
|   +-- inherited/          # Instincts globaux importés
+-- evolved/
|   +-- agents/             # Agents globaux générés
|   +-- skills/             # Compétences globales générées
|   +-- commands/           # Commandes globales générées
+-- projects/
    +-- a1b2c3d4e5f6/       # Hachage du projet (depuis l'URL git distante)
    |   +-- project.json    # Miroir des métadonnées par projet (id/nom/racine/distant)
    |   +-- 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 portée

Type de motifPortéeExemples
Conventions de langage/cadreprojet"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", "Nettoyer le SQL"
Meilleures pratiques généralesglobal"Écrire les tests d'abord", "Toujours gérer les erreurs"
Préférences de flux de travail d'outilsglobal"Grep avant Édition", "Lire avant Écrire"
Pratiques Gitglobal"Commits conventionnels", "Petits commits ciblés"

Promotion d'instinct (Projet -> Global)

Lorsque le même instinct apparaît dans plusieurs projets avec une confiance élevée, il est candidat à la promotion vers la portée globale.

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 éligibles
python3 instinct-cli.py promote

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

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

Score de confiance

La confiance évolue avec le temps :

ScoreSignificationComportement
0,3ProvisoireSuggéré mais non imposé
0,5ModéréAppliqué lorsque pertinent
0,7FortAuto-approuvé pour application
0,9Presque certainComportement de base

La confiance augmente lorsque :

  • Le motif est observé de manière répétée
  • L'utilisateur ne corrige pas le comportement suggéré
  • Des instincts similaires provenant 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 ?

« 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/ existantes de v1 fonctionnent toujours
  • Le hook de fin s'exécute toujours (mais alimente maintenant aussi v2)
  • Migration progressive : exécutez les deux en parallèle

Confidentialité

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

Liens associés

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

Apprentissage basé sur les instincts : enseigner vos motifs à Claude, 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/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

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.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

Skills associés