DOC
Boucle mémoire cross-session avec Lovecraft
Capture, distribue et surface les learnings de session via Obsidian vault
Boucle mémoire cross-session avec Lovecraft
Contexte
Après chaque session Claude, les apprentissages (lessons, patterns, décisions) disparaissent. Lovecraft en mode memory capture ces learnings dans un vault Obsidian opérationnel et les réinjecte automatiquement dans CLAUDE.md pour les sessions futures. Zero manual work — tout est orchestré.
Prérequis
- Obsidian installé localement (optionnel mais recommandé pour navigation)
- Vault Obsidian créé ou à créer :
docs/.obsidian/ - Fichier MEMORY.md à la racine du projet (créé automatiquement)
- Plugin
lovecraft (47)+obsidian-vault (39)+shuri (01)installés - Hook optionnel dans
~/.claude/settings.json(auto-trigger à la fin de session)
Étapes
1. Phase d’apprentissage (en session)
Pendant votre session Claude, notez vos learnings dans MEMORY.md (racine) ou lancez :
lovecraft memory capture
Format MEMORY.md (libre, mais avec frontmatter) :
# MEMORY — portfolio-saas
## Lessons
### Leptos Router injecte un <main> qui casse les hauteurs CSS
```yaml
category: lesson
subcategory: architecture
severity: major
tags: [leptos, css, layout]
Leptos Router enveloppe automatiquement dans <main> sans height: 100%.
Toute chaîne basée sur html, body { height: 100% } casse.
Fix : main { height: 100% } en global.
Patterns
Typer les params d’URL en deux étapes
category: pattern
subcategory: typescript
tags: [next, routing]
Étape 1 : extraire en string. Étape 2 : valider via Zod. Évite coercition implicite + donne messages d’erreur lisibles.
### 2. Capture (fin de session)
```bash
lovecraft memory capture
Ce qui se passe :
- Lovecraft lit MEMORY.md
- Délègue à
obsidian-vault (39)pour structurer et stocker - Chaque bloc
### [Titre]devient une entrée dansdocs/_memory/<categorie>/<slug>.md - Wikilinks générées automatiquement entre entries connexes
- MEMORY.md nettoyé (ou archivé)
Affichage attendu :
🧠 Lovecraft — Memory Capture
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Lisant MEMORY.md...
✅ 3 lessons détectées
✅ 2 patterns détectés
✅ 1 decision détectée
Créant les entries vault...
📝 docs/_memory/lessons/leptos-router-main.md
📝 docs/_memory/patterns/url-param-typing.md
📝 docs/_memory/decisions/orm-choice.md
Wikilinks créées :
→ "Leptos Router" ↔ "CSS Layout"
→ "TypeScript" ↔ "API Design"
✅ Capture complétée (3 entries)
3. Distribution (optionnel, avant prochaine session)
lovecraft memory distribute
Ce qui se passe :
- Lovecraft lit le vault Obsidian (
docs/_memory/) - Délègue à
shuri (01)en modesync - Remet à jour le bloc
<!-- vault:begin --> ... <!-- vault:end -->dans CLAUDE.md - Priorise les 5 learnings les plus pertinents pour la session suivante
Affichage attendu :
🔄 Lovecraft — Memory Distribute
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Lisant vault Obsidian...
✅ 47 entries trouvées
Sélectionnant les plus pertinentes pour CLAUDE.md...
✅ Leptos Router CSS (tag: layout, relevance: 95%)
✅ URL param typing (tag: api, relevance: 88%)
✅ ORM choice (tag: arch, relevance: 72%)
Mettant à jour CLAUDE.md...
📝 Bloc vault:begin...vault:end remplacé
✅ Distribution complétée
4. Surface (début de session)
Lors de la prochaine session, godspeed (00) ou lovecraft memory surface expose un résumé :
lovecraft memory surface
Affichage (injecté en contexte par godspeed) :
📚 Knowledge Vault — 3 learnings pertinents
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. [Architecture] Leptos Router injecte <main> sans height
→ Fix : main { height: 100% } en global CSS
Depuis : 2026-04-10
2. [TypeScript] Typer params d'URL en deux étapes
→ Zod schema pour validation, meilleur error reporting
Depuis : 2026-04-09
3. [Decision] ORM choisi : Diesel (Rust) pour perf
→ Non-blocking async + compile-time safety
Depuis : 2026-04-08
Exemple de sortie
Arborescence créée dans docs/_memory/ :
docs/_memory/
├── _HOME.md # MOC (Map of Content)
├── lessons/
│ ├── leptos-router-main.md # Entry complète
│ ├── css-layout-chain.md
│ └── ...
├── patterns/
│ ├── url-param-typing.md
│ └── ...
├── decisions/
│ ├── orm-choice-diesel.md
│ └── ...
└── tags/
├── leptos.md # Index par tag
└── typescript.md
Structure d’une entry :
---
title: Leptos Router injecte un <main> problématique
category: lesson
subcategory: architecture
severity: major
tags: [leptos, css, layout]
created: 2026-04-10
updated: 2026-04-10
related: [[CSS Layout Chain]], [[Routing Best Practices]]
---
# Leptos Router injecte un <main> sans height
Le router Leptos enveloppe automatiquement les routes...
Variantes
- Variante A : Capture manuelle sans session —
lovecraft memory capturefonctionne anytime, même hors Claude - Variante B : Vault complète (init + full) —
lovecraft fullcrée un vault Obsidian complet depuis zéro si absent - Variante C : Harmonize (détecte + migre) —
lovecraft harmonizedétecte l’état du vault (vide/partiel/dérivé) et propose un plan de migration intelligent
Agents enchaînés
Flux automatisé :
[Fin de session Claude]
↓
lovecraft memory capture
↓ délègue à
obsidian-vault (39)
↓ crée/met à jour
docs/_memory/<categorie>/
↓
[Avant prochaine session, optionnel]
lovecraft memory distribute
↓ délègue à
shuri (01) mode=sync
↓ met à jour
CLAUDE.md (vault:begin...vault:end)
↓
[Début session suivante]
godspeed (00) + lovecraft memory surface
↓ expose en contexte
Résumé 5 learnings prioritaires
Troubleshooting
| Symptôme | Cause probable | Résolution |
|---|---|---|
| ”MEMORY.md not found” | Fichier jamais créé | Créez manuellement à la racine avec le template ou lancez lovecraft init |
| Vault Obsidian absent | docs/.obsidian/ manquant | Lovecraft le crée automatiquement, sinon lovecraft init |
| Wikilinks cassées dans vault | Noms de fichiers ou liens mal générés | Lovecraft corrige automatiquement, sinon relancez lovecraft harmonize |
| CLAUDE.md bloc vault:begin non trouvé | Bloc jamais créé ou mal formaté | Lovecraft le crée automatiquement la première fois ou shuri (01) sync le remet en place |
Voir aussi
./01-bruce-from-scratch.md— Contexte initial du projet (utilise memory surface)./03-lovecraft-memory-loop.md— Cette fiche (boucle complète)agents/orchestrators/47-lovecraft.md— Documentation complète de Lovecraftagents/_shared/memory-protocol.md— Spécification du protocole mémoireagents/orchestrators/39-obsidian-vault.md— Agent de gestion du vault Obsidianagents/docs/01-shuri.md— Agent de synchronisation (distribue via Shuri)