Skip to content

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 dans docs/_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 mode sync
  • 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 sessionlovecraft memory capture fonctionne anytime, même hors Claude
  • Variante B : Vault complète (init + full)lovecraft full crée un vault Obsidian complet depuis zéro si absent
  • Variante C : Harmonize (détecte + migre)lovecraft harmonize dé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ômeCause probableRésolution
”MEMORY.md not found”Fichier jamais crééCréez manuellement à la racine avec le template ou lancez lovecraft init
Vault Obsidian absentdocs/.obsidian/ manquantLovecraft le crée automatiquement, sinon lovecraft init
Wikilinks cassées dans vaultNoms de fichiers ou liens mal générésLovecraft 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 Lovecraft
  • agents/_shared/memory-protocol.md — Spécification du protocole mémoire
  • agents/orchestrators/39-obsidian-vault.md — Agent de gestion du vault Obsidian
  • agents/docs/01-shuri.md — Agent de synchronisation (distribue via Shuri)