CM - Système de Mémoire CASS
Mémoire procédurale pour agents IA de codage. Transforme des sessions dispersées en mémoire persistante et inter-agents. Utilise une architecture cognitive à trois couches qui reflète le développement de l'expertise humaine.
Pourquoi Cela Existe
Les agents IA de codage accumulent des connaissances précieuses, mais elles sont :
- Piégées dans les sessions - Le contexte est perdu à la fin de la session
- Spécifiques à un agent - Claude ne sait pas ce que Cursor a appris
- Non structurées - Les journaux bruts ne sont pas des conseils actionnables
- Sujettes à l'effondrement - La résuméisation naïve perd des détails critiques
Vous avez résolu le même bogue d'authentification trois fois ce mois-ci avec différents agents. Chaque fois, vous avez recommencé de zéro.
CM résout ce problème avec l'apprentissage inter-agents : un patron découvert dans Cursor est immédiatement disponible pour Claude Code.
Architecture Cognitive à Trois Couches
┌─────────────────────────────────────────────────────────────────────┐
│ MÉMOIRE ÉPISODIQUE (cass) │
│ Journaux bruts de session de tous les agents — la « vérité terrain »│
│ Claude Code │ Codex │ Cursor │ Aider │ PI │ Gemini │ ChatGPT │ ...│
└───────────────────────────┬─────────────────────────────────────────┘
│ recherche cass
▼
┌─────────────────────────────────────────────────────────────────────┐
│ MÉMOIRE DE TRAVAIL (Journal) │
│ Résumés de session structurés : réalisations, décisions, etc. │
└───────────────────────────┬─────────────────────────────────────────┘
│ refléter + organiser (automatisé)
▼
┌─────────────────────────────────────────────────────────────────────┐
│ MÉMOIRE PROCÉDURALE (Playbook) │
│ Règles distillées avec suivi de confiance et décroissance │
└─────────────────────────────────────────────────────────────────────┘
Les sessions de chaque agent alimentent la mémoire partagée. Un patron découvert dans Cursor automatiquement aide Claude Code lors de la session suivante.
La Commande Dont Vous Avez Besoin
cm context "<votre tâche>" --json
Exécutez ceci avant de commencer toute tâche non triviale. Retourne :
- relevantBullets - Règles du playbook notées par pertinence
- antiPatterns - Ce qui a déjà causé des problèmes
- historySnippets - Sessions passées (les vôtres et celles d'autres agents)
- suggestedCassQueries - Recherches d'investigation plus approfondies
Filtrer l'Historique par Source
historySnippets[].origin.kind est "local" ou "remote". Les résultats distants incluent origin.host :
{
"historySnippets": [
{
"source_path": "~/.claude/sessions/session-001.jsonl",
"origin": { "kind": "local" }
},
{
"source_path": "/home/user/.codex/sessions/session.jsonl",
"origin": { "kind": "remote", "host": "workstation" }
}
]
}
Système de Décroissance de Confiance
Les règles ne sont pas immortelles. La confiance décroît sans revalidation :
| Mécanisme | Effet |
|---|---|
| Demi-vie de 90 jours | La confiance diminue de moitié tous les 90 jours sans retour |
| Multiplicateur 4x pour les nuisances | Une erreur compte 4× plus qu'un succès |
| Progression de maturité | candidat → établi → prouvé |
Visualisation de la Décroissance du Score
Score initial : 10.0 (10 marques utiles aujourd'hui)
Après 90 jours (demi-vie) : 5.0
Après 180 jours : 2.5
Après 270 jours : 1.25
Après 365 jours : 0.78
Formule du Score Effectif
scoreEffectif = utileDécru - (4 × nuisibleDécru)
// Où facteurDeDécroissance = 0.5 ^ (joursDepuisLeRetour / 90)
Machine d'État de Maturité
┌──────────┐ ┌─────────────┐ ┌────────┐
│ candidat │──────▶│ établi │───▶│ prouvé │
└──────────┘ └─────────────┘ └────────┘
│ │ │
│ │ (nuisible >25%) │
│ ▼ │
│ ┌─────────────┐ │
└────────────▶│ déprécié │◀─────────┘
└─────────────┘
Règles de Transition :
| Transition | Critères |
|---|---|
candidat → établi | 3+ utiles, ratio nuisible <25% |
établi → prouvé | 10+ utiles, ratio nuisible <10% |
quelconque → déprécié | Ratio nuisible >25% OU dépréciation explicite |
Apprentissage des Anti-Patrons
Les mauvaises règles ne sont pas simplement supprimées. Elles deviennent des avertissements :
"Mettre en cache les jetons d'authentification pour les performances"
↓ (3 marques nuisibles)
"PIÈGE : Ne pas mettre en cache les jetons d'authentification sans validation d'expiration"
Lorsqu'une règle est marquée nuisible plusieurs fois (ratio nuisible >50% avec 3+ marques), elle est automatiquement inversée en anti-patron.
Pipeline ACE (Comment les Règles Sont Créées)
Générateur → Reflecteur → Validateur → Conservateur
| Étape | Rôle | LLM ? |
|---|---|---|
| Générateur | Hydratation du contexte de pré-tâche (cm context) | Non |
| Reflecteur | Extraction des patrons des sessions (cm reflect) | Oui |
| Validateur | Porte de preuve contre l'historique cass | Oui |
| Conservateur | Fusion delta déterministe | Non |
Critique : Le Conservateur n'a PAS de LLM pour éviter l'effondrement du contexte dû à la dérive itérative. Les LLM proposent des patrons ; la logique déterministe les gère.
Validation Scientifique
Avant qu'une règle n'entre dans votre playbook, elle est validée contre l'historique cass :
Règle proposée : "Toujours vérifier l'expiration du jeton avant le débogage d'authentification"
↓
Porte de preuve : Rechercher dans cass les sessions où cela s'applique
↓
Résultat : 5 sessions trouvées, 4 résultats positifs → ACCEPTÉ
Les règles sans preuve historique sont marquées comme candidates jusqu'à preuve du contraire.
Référence des Commandes
Récupération de Contexte (Flux de Travail Principal)
# LA COMMANDE PRINCIPALE - exécuter avant les tâches non triviales
cm context "implémenter l'authentification utilisateur" --json
# Limiter les résultats pour le budget de jetons
cm context "corriger le bogue" --json --limit 5 --no-history
# Avec filtre d'espace de travail
cm context "refactoriser" --json --workspace /chemin/vers/projet
# Explication auto-documentée
cm quickstart --json
# État du système
cm doctor --json
cm doctor --fix # Correction automatique des problèmes
# Trouver des règles similaires
cm similar "bonnes pratiques de gestion des erreurs"
Gestion du Playbook
cm playbook list # Toutes les règles
cm playbook get b-8f3a2c # Détails de la règle
cm playbook add "Toujours exécuter les tests d'abord" # Ajouter une règle
cm playbook add --file rules.json # Ajout par lot depuis un fichier
cm playbook add --file rules.json --session /chemin/session.jsonl # Suivi de source
cm playbook remove b-xyz --reason "Obsolète" # Supprimer
cm playbook export > backup.yaml # Exporter
cm playbook import shared.yaml # Importer
cm playbook bootstrap react # Appliquer un starter à un existant
cm top 10 # Règles les plus efficaces
cm stale --days 60 # Règles sans retour récent
cm why b-8f3a2c # Provenance de la règle
cm stats --json # Métriques de santé du playbook
Apprentissage et Retour d'Information
# Retour manuel
cm mark b-8f3a2c --helpful
cm mark b-xyz789 --harmful --reason "A causé une régression"
cm undo b-xyz789 # Annuler le retour
# Résultats de session (positionnels : statut, règles)
cm outcome success b-8f3a2c,b-def456
cm outcome failure b-x7k9p1 --summary "L'approche d'authentification a échoué"
cm outcome-apply # Appliquer au playbook
# Réflexion (généralement automatisée)
cm reflect --days 7 --json
cm reflect --session /chemin/vers/session.jsonl # Session unique
cm reflect --workspace /chemin/vers/projet # Projet spécifique
# Validation
cm validate "Toujours vérifier null avant de déréférencer"
# Auditer les sessions par rapport aux règles
cm audit --days 30
# Déprécier définitivement
cm forget b-xyz789 --reason "Remplacé par un meilleur patron"
Intégration (Natif Agent)
Construction de playbook sans coût en utilisant votre agent existant :
cm onboard status # Vérifier la progression
cm onboard gaps # Lacunes par catégorie
cm onboard sample --fill-gaps # Sessions priorisées
cm onboard sample --agent claude --days 14 # Filtrer par agent/temps
cm onboard sample --workspace /chemin/projet # Filtrer par espace de travail
cm onboard sample --include-processed # Ré-analyser les sessions
cm onboard read /chemin/session.jsonl --template # Contexte enrichi
cm onboard mark-done /chemin/session.jsonl # Marquer comme traité
cm onboard reset # Recommencer
Trauma Guard (Système de Sécurité)
cm trauma list # Patrons actifs
cm trauma add "DROP TABLE" --description "Suppression massive" --severity critique
cm trauma heal t-abc --reason "Migration intentionnelle"
cm trauma remove t-abc
cm trauma scan --days 30 # Rechercher des traumatismes
cm trauma import shared-traumas.yaml
cm guard --install # Hook Claude Code
cm guard --git # Hook de pré-commit Git
cm guard --install --git # Les deux
cm guard --status # Vérifier l'installation
Commandes Système
cm init # Initialiser
cm init --starter typescript # Avec modèle
cm init --force # Réinitialiser (crée une sauvegarde)
cm starters # Lister les modèles
cm serve --port 3001 # Serveur MCP
cm usage # Statistiques de coût LLM
cm privacy status # Paramètres de confidentialité
cm privacy enable # Activer l'enrichissement inter-agents
cm privacy disable # Désactiver l'enrichissement
cm project --format agents.md # Exporter pour AGENTS.md
Playbooks de Démarrage
Commencer avec un playbook vide est intimidant. Les starters fournissent des bonnes pratiques organisées :
cm starters # Lister les disponibles
cm init --starter typescript # Initialiser avec un starter
cm playbook bootstrap react # Appliquer à un playbook existant
Starters Intégrés
| Starter | Focus | Règles |
|---|---|---|
| general | Bonnes pratiques universelles | 5 |
| typescript | Patrons TypeScript/Node.js | 4 |
| react | Développement React/Next.js | 4 |
| python | Python/FastAPI/Django | 4 |
| node | Services Node.js/Express | 4 |
| rust | Patrons de services Rust | 4 |
Starters Personnalisés
Créez des fichiers YAML dans ~/.cass-memory/starters/ :
# ~/.cass-memory/starters/django.yaml
nom: django
description: Bonnes pratiques pour le framework web Django
balles:
- contenu: "Toujours utiliser l'ORM de Django pour les opérations de base de données"
catégorie: base_de_données
maturité: établi
tags: [django, orm]
Retour d'Information Intégré (Pendant le Travail)
Laissez des retours dans les commentaires de code. Analysés pendant la réflexion :
// [cass: helpful b-8f3a2c] - cette règle m'a sauvé d'un cul-de-sac
// [cass: harmful b-x7k9p1] - ce conseil était erroné pour notre cas d'usage
Protocole Agent
1. DÉPART : cm context "<tâche>" --json
2. TRAVAIL : Référencer les IDs de règle en les suivant (ex : "En suivant b-8f3a2c...")
3. RETOUR : Laisser des commentaires intégrés quand les règles aident/nuisent
4. FIN : Terminez simplement. L'apprentissage se fait automatiquement.
Vous n'avez PAS besoin de :
- Exécuter
cm reflect(l'automatisation s'en charge) - Exécuter
cm markmanuellement (utilisez les commentaires intégrés) - Ajouter manuellement des règles au playbook
Catégories d'Analyse des Lacunes
| Catégorie | Mots-clés |
|---|---|
débogage | erreur, correction, bogue, trace, pile |
test | test, simulacre, assertion, attendre, jest |
architecture | conception, patron, module, abstraction |
flux_de_travail | tâche, CI/CD, déploiement |
documentation | commentaire, README, documentation API |
intégration | API, HTTP, JSON, point de terminaison |
collaboration | révision, PR, équipe |
git | branche, fusionner, commit |
sécurité | auth, jeton, chiffrer, permission |
performance | optimiser, cache, profil |
Seuils de Statut de Catégorie :
| Statut | Nombre de Règles | Priorité |
|---|---|---|
critique | 0 règles | Élevée |
sous-représenté | 1-2 règles | Moyenne |
adéquat | 3-10 règles | Faible |
bien-couvert | 11+ règles | Aucune |
Trauma Guard : Système de Sécurité
Le principe du « poêle chaud » — apprendre des incidents passés et prévenir leur récurrence.
Comment Ça Marche
Historique des Sessions Registre de Traumatismes Garde au Moment de l'Exécution
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────────────────────┐
│ rm -rf /* (oups)│ ──────▶ │ Patron : rm -rf │ ──────▶ │ BLOQUÉ : Cette commande │
│ "désolé, j'ai │ scan │ Sévérité : FATAL │ hook │ correspond à un patron de │
│ fait une erreur│ │ Session : abc123 │ │ traumatisme │
│ ..." │ └─────────────────┘ └─────────────────────────────────┘
└─────────────────┘
Patrons de Perte Intégrés (20+)
| Catégorie | Exemples |
|---|---|
| Système de fichiers | rm -rf /, rm -rf ~, suppressions récursives |
| Base de données | DROP DATABASE, TRUNCATE, DELETE FROM sans WHERE |
| Git | git push --force vers main/master, git reset --hard |
| Infrastructure | terraform destroy -auto-approve, kubectl delete namespace |
| Cloud | aws s3 rm --recursive, CloudFormation destructeur |
Stockage des Patrons
| Portée | Emplacement | Objectif |
|---|---|---|
| Globale | ~/.cass-memory/traumas.jsonl | Patrons personnels |
| Projet | .cass/traumas.jsonl | Commit dans le dépôt pour l'équipe |
Cycle de Vie des Patrons
- Actif : Bloque les commandes correspondantes
- Guéri : Contourné temporairement (avec raison et horodatage)
- Supprimé : Retiré (peut être rajouté)
Serveur MCP
Exécutez en tant que serveur MCP pour l'intégration avec l'agent :
# Local uniquement (recommandé)
cm serve --port 3001
# Avec jeton d'authentification (pour non-loopback)
MCP_HTTP_TOKEN="<aléatoire>" cm serve --host 0.0.0.0 --port 3001
Outils Exposés
| Outil | ... |
|---|
[...tronqué pour la traduction]