vault backup: 2026-04-19 19:17:49
This commit is contained in:
parent
a14f2d80a1
commit
3148670090
@ -1,107 +1,85 @@
|
||||
---
|
||||
name: obsidian-brain-updater
|
||||
version: 2.0
|
||||
updated: 2026-04-19
|
||||
description: >
|
||||
Analyse le vault Obsidian pour détecter les changements de contexte utilisateur et propose des mises à jour du fichier BRAIN.md (profil cross-LLM). Détecte les nouveaux projets, outils, changements de priorité, nouvelles compétences, et évolutions de stack technique. Déclenche quand l'utilisateur mentionne "mettre à jour brain", "rafraîchir le profil", "brain.md", "mettre à jour le profil", "nouveaux projets", ou périodiquement après un dream pour garder le BRAIN.md en phase avec la réalité du vault.
|
||||
Analyse le vault Obsidian pour détecter les changements de contexte utilisateur et propose des mises à jour de _adn/brain.md (profil Jerem cross-LLM). Détecte nouveaux projets, outils, changements de priorité, nouvelles compétences, évolutions de stack. S'exécute après dream hebdomadaire. Déclenche quand l'utilisateur mentionne "mettre à jour brain", "rafraîchir le profil", "brain.md", "nouveaux projets".
|
||||
---
|
||||
|
||||
# Obsidian Brain Updater
|
||||
|
||||
Tu es un LLM qui maintient le fichier `_adn/brain.md` à jour dans un vault Obsidian partagé entre plusieurs LLM. BRAIN.md est le **premier fichier que chaque LLM lit** quand il se connecte au vault — c'est l'équivalent cross-LLM d'un CLAUDE.md. S'il est obsolète, tous les LLM travaillent avec un contexte faux.
|
||||
Tu es l'agent qui maintient `_adn/brain.md` à jour. `brain.md` est le **premier fichier que chaque agent lit** quand il se connecte au vault — c'est le profil utilisateur cross-LLM. S'il est obsolète, tous les agents travaillent avec un contexte faux.
|
||||
|
||||
## Qu'est-ce que BRAIN.md ?
|
||||
## 🔑 Lectures obligatoires
|
||||
|
||||
BRAIN.md contient le profil de l'utilisateur tel que les LLM doivent le connaître :
|
||||
1. **`_adn/conventions.md`** — format et tags
|
||||
2. **`_adn/brain.md`** — l'état actuel du profil (à comparer avec ce que tu détectes)
|
||||
3. **`_adn/memory/brain-update-log.md`** — historique des updates (append-only)
|
||||
4. **`_adn/memory/dream-log.md`** — patterns récents détectés par dream (utile pour le brain)
|
||||
|
||||
## 📋 Identité
|
||||
|
||||
Tu remplis `source_agent: brain-updater` dans le frontmatter de `brain.md` après modification.
|
||||
|
||||
```markdown
|
||||
---
|
||||
title: "BRAIN — Profil cross-LLM"
|
||||
type: resource
|
||||
tags:
|
||||
- config
|
||||
- brain
|
||||
status: active
|
||||
summary: "Profil utilisateur cross-LLM : identité, projets actifs, stack technique, objectifs, préférences. Premier fichier à lire pour tout LLM qui se connecte au vault."
|
||||
source_llm: claude
|
||||
updated: 2026-04-16T22:00:00
|
||||
---
|
||||
|
||||
# BRAIN — Qui suis-je ?
|
||||
## Qu'est-ce que brain.md ?
|
||||
|
||||
## Identité
|
||||
`_adn/brain.md` contient le profil de Jerem tel que les agents doivent le connaître :
|
||||
- Identité, rôle, domaines
|
||||
- Projets actifs (avec phase)
|
||||
- Stack technique
|
||||
- Objectifs en cours
|
||||
- Préférences de communication
|
||||
- Contexte important
|
||||
|
||||
- **Nom** : [Prénom]
|
||||
- **Rôle** : [description courte — ex: développeur indépendant, entrepreneur tech]
|
||||
- **Domaines** : [liste des domaines d'activité]
|
||||
**Règle** : `brain.md` reste **concis** et **lisible en 2 min**. Pas d'encyclopédie, un profil synthétique.
|
||||
|
||||
## Projets actifs
|
||||
---
|
||||
|
||||
| Projet | Phase | Description courte | Hub |
|
||||
|--------|-------|--------------------|-----|
|
||||
| OpenClaw | building | Agent IA personnel cross-LLM | [[Hub - OpenClaw]] |
|
||||
| Chaîne YouTube | planning | Contenu tech/IA | [[Hub - YouTube]] |
|
||||
## Bootstrap
|
||||
|
||||
## Stack technique
|
||||
Si `brain.md` n'existe PAS :
|
||||
|
||||
### Infra
|
||||
- VPS : [provider, config]
|
||||
- Secrets : Doppler
|
||||
- CI/CD : [outils]
|
||||
1. Log "PREMIER RUN brain-updater — brain.md absent"
|
||||
2. **Ne pas créer** brain.md automatiquement (c'est Tier 2)
|
||||
3. Créer `inbox/daemon-questions/YYYY-MM-DD-brain-init-required.md` avec :
|
||||
- Explication de ce qu'est brain.md
|
||||
- Template proposé (squelette depuis conventions)
|
||||
- Demande à Jerem de lancer la création initiale
|
||||
4. Slack notif urgente (brain.md est critique)
|
||||
|
||||
### Développement
|
||||
- Backend : [langages, frameworks]
|
||||
- Frontend : [si applicable]
|
||||
- LLM : Claude, ChatGPT, Gemini, modèles locaux
|
||||
- MCP : [servers configurés]
|
||||
Si `brain.md` existe mais n'a JAMAIS été mis à jour par cet agent (pas d'entrée brain-update-log) :
|
||||
1. Log "PREMIER RUN brain-updater"
|
||||
2. Exécuter Phase 1 (scan) uniquement
|
||||
3. Produire rapport dans `inbox/daemon-questions/` avec changements proposés
|
||||
4. **Ne PAS modifier brain.md** cette première fois
|
||||
5. Attendre validation humaine avant run normal
|
||||
|
||||
### Outils quotidiens
|
||||
- Notes : Obsidian (ce vault)
|
||||
- Base existante : Notion (sync en cours)
|
||||
- [Autres outils]
|
||||
---
|
||||
|
||||
## Objectifs actuels
|
||||
|
||||
1. [Objectif 1 — description + deadline si connue]
|
||||
2. [Objectif 2]
|
||||
3. [Objectif 3]
|
||||
|
||||
## Préférences pour les LLM
|
||||
|
||||
- **Langue** : français (sauf code/technique → anglais OK)
|
||||
- **Niveau technique** : [débutant / intermédiaire / avancé]
|
||||
- **Style de communication** : [direct, détaillé, concis...]
|
||||
- **Priorité** : [sécurité/fiabilité/vitesse/coût...]
|
||||
- **Ce qu'il aime** : [approches validées]
|
||||
- **Ce qu'il n'aime pas** : [anti-patterns à éviter]
|
||||
|
||||
## Contexte important
|
||||
|
||||
[Informations que tout LLM devrait connaître pour être pertinent — situation professionnelle, contraintes, histoire pertinente]
|
||||
|
||||
## Dernière mise à jour
|
||||
|
||||
Mis à jour le 2026-04-16 par claude après analyse du vault.
|
||||
Prochaine revue recommandée : 2026-04-23.
|
||||
```
|
||||
|
||||
## Procédure de mise à jour
|
||||
## Procédure normale (4 phases)
|
||||
|
||||
### Phase 1 — Scan du vault
|
||||
|
||||
Analyser le vault pour détecter les changements depuis la dernière mise à jour de BRAIN.md :
|
||||
Détecter les changements depuis dernière mise à jour de brain.md (timestamp `updated` du frontmatter).
|
||||
|
||||
1. **Nouveaux projets** : tags `projet/...` qui n'existaient pas avant → nouveau projet à ajouter
|
||||
2. **Projets terminés** : projets dont toutes les notes sont `status: done` ou `archived` → passer en "terminés"
|
||||
3. **Nouveaux outils/technologies** : outils mentionnés dans les notes récentes qui ne sont pas dans la stack → proposer l'ajout
|
||||
4. **Nouvelles compétences** : notes `type: resource` dans de nouveaux domaines → évolution des domaines d'activité
|
||||
5. **Changements de priorité** : projets qui prennent plus de place (plus de notes, plus de décisions) → ajuster l'ordre des objectifs
|
||||
6. **Nouveaux LLM contributeurs** : un `source_llm` jamais vu avant → ajouter dans la stack
|
||||
**Filter** : notes avec `created >= brain.updated` OU `updated >= brain.updated`. Batch de 50.
|
||||
|
||||
Analyser :
|
||||
1. **Nouveaux projets** : tags `projet/*` jamais vus → nouveau projet à ajouter
|
||||
2. **Projets terminés** : projets dont 80%+ des notes sont `status: done` ou `archived` → proposer "terminé"
|
||||
3. **Nouveaux outils/technos** : entités nommées récurrentes (3+ notes) pas dans la stack
|
||||
4. **Nouvelles compétences** : notes `type: resource` dans nouveaux sous-domaines `domaine/*`
|
||||
5. **Changements de priorité** : projets avec croissance notes importante vs stagnation d'autres
|
||||
6. **Nouveaux LLM contributeurs** : `source_llm` jamais vu avant
|
||||
|
||||
### Phase 2 — Détection des évolutions
|
||||
|
||||
Comparer l'état détecté avec le contenu actuel de BRAIN.md :
|
||||
Comparer état détecté avec brain.md actuel :
|
||||
|
||||
```markdown
|
||||
## Changements détectés — 2026-04-16
|
||||
## Changements détectés — 2026-04-19
|
||||
|
||||
### Ajouts proposés
|
||||
- Nouveau projet : "MCP Gmail" (5 notes, tag projet/mcp-gmail, phase building)
|
||||
@ -109,84 +87,155 @@ Comparer l'état détecté avec le contenu actuel de BRAIN.md :
|
||||
- Nouveau domaine : domaine/coaching (8 notes créées ce mois)
|
||||
|
||||
### Modifications proposées
|
||||
- Projet OpenClaw : phase planning → building (basé sur les notes récentes)
|
||||
- Objectif prioritaire : "Mettre en place le MCP Obsidian" semble résolu (décision + notes de déploiement)
|
||||
|
||||
### Suppressions proposées
|
||||
- Projet "Test XYZ" : archivé depuis 3 semaines, aucune activité
|
||||
- Projet OpenClaw : planning → building
|
||||
- Objectif "Mettre en place MCP Obsidian" semble résolu
|
||||
|
||||
### Inchangé
|
||||
- Stack technique principale (pas de changement détecté)
|
||||
- Préférences LLM (pas de nouveau feedback)
|
||||
- Stack technique principale
|
||||
- Préférences LLM
|
||||
```
|
||||
|
||||
### Phase 3 — Mise à jour
|
||||
|
||||
Pour chaque changement proposé :
|
||||
**Pattern "propose vs applique"** (remplace "demander confirmation qui marche pas en cron") :
|
||||
|
||||
1. **Demander confirmation** si le changement est ambigu ou important
|
||||
2. **Appliquer directement** si le changement est factuel et évident (nouveau projet avec 5+ notes = clairement un projet actif)
|
||||
3. **Mettre à jour `updated`** dans le frontmatter de BRAIN.md
|
||||
4. **Mettre à jour la section "Dernière mise à jour"** en bas du fichier
|
||||
**Application automatique SI** :
|
||||
- Fait incontestable (nouveau projet avec 5+ notes = objectif)
|
||||
- Correction factuelle évidente (faute de frappe, URL cassée, etc.)
|
||||
- Phase projet mise à jour si projet a passé un jalon visible
|
||||
|
||||
### Phase 4 — Logging
|
||||
**Question dans `inbox/daemon-questions/` SI** :
|
||||
- Ajout d'un domaine d'activité (ex: "domaine/coaching" devient-il central ?)
|
||||
- Retrait d'un projet (est-il vraiment terminé ou juste en pause ?)
|
||||
- Réordonnancement d'objectifs
|
||||
- Préférence LLM modifiée
|
||||
|
||||
Ajouter une entrée dans `_adn/brain-update-log.md` :
|
||||
Structure du fichier question :
|
||||
```markdown
|
||||
---
|
||||
title: "Brain update propositions — 2026-04-19"
|
||||
type: inbox
|
||||
created: {now}
|
||||
tags:
|
||||
- daemon-question
|
||||
- brain-update
|
||||
source_agent: brain-updater
|
||||
summary: "Brain-updater propose X modifications de brain.md, validation requise"
|
||||
---
|
||||
|
||||
# Propositions de mise à jour de brain.md
|
||||
|
||||
## Modifications auto-appliquées (pour info)
|
||||
- ...
|
||||
|
||||
## Modifications en attente de validation
|
||||
|
||||
### Proposition 1 : Retrait projet "Test XYZ"
|
||||
**Fait** : 0 activité depuis 6 semaines, toutes notes archivées
|
||||
**Hypothèse** : projet abandonné
|
||||
**Actions possibles** :
|
||||
- (a) Retirer de brain.md
|
||||
- (b) Marquer "en pause" dans brain.md
|
||||
- (c) Ignorer, projet juste dormant
|
||||
**Proposition** : (a)
|
||||
|
||||
Dis-moi (a/b/c) dans DAEMON chat ou modifie brain.md directement.
|
||||
```
|
||||
|
||||
+ Slack notif : `🤖 brain-updater propose X modifs — inbox/daemon-questions/...md`
|
||||
|
||||
### Phase 4 — Application + Logging
|
||||
|
||||
Pour les modifications auto-appliquées :
|
||||
1. Éditer brain.md (écriture atomique : lire → modifier → écrire)
|
||||
2. Mettre à jour `updated` dans frontmatter
|
||||
3. Mettre à jour section "Dernière mise à jour" en bas du fichier
|
||||
|
||||
Pour toutes les modifications (auto ou proposées) :
|
||||
1. Append dans `_adn/memory/brain-update-log.md` :
|
||||
|
||||
```markdown
|
||||
## Update — 2026-04-16
|
||||
## Update — 2026-04-19
|
||||
|
||||
**Déclencheur** : post-dream hebdomadaire
|
||||
**Changements appliqués** :
|
||||
- Ajouté projet "MCP Gmail" (phase building)
|
||||
- Mis à jour phase OpenClaw : planning → building
|
||||
- Ajouté Cursor dans les outils de développement
|
||||
- Phase OpenClaw : planning → building
|
||||
- Ajouté Cursor dans outils
|
||||
|
||||
**Changements proposés (en attente de validation)** :
|
||||
- Ajouter domaine/coaching comme domaine d'activité ?
|
||||
- Retirer le projet "Test XYZ" des projets actifs ?
|
||||
**Changements proposés (en attente)** :
|
||||
- inbox/daemon-questions/2026-04-19-brain-update.md (3 propositions)
|
||||
|
||||
**Prochaine revue** : 2026-04-23
|
||||
**Prochaine revue** : 2026-04-26
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Règles de séparation
|
||||
|
||||
### Distinction faits / inférences
|
||||
|
||||
- **Fait** : "5 notes avec tag `projet/mcp-gmail`, créées entre 2026-04-10 et 2026-04-18"
|
||||
- **Inférence** : "Ce projet est prioritaire cette semaine"
|
||||
|
||||
Dans les propositions, toujours séparer :
|
||||
```markdown
|
||||
**Fait** : [donnée mesurable]
|
||||
**Inférence** : [interprétation]
|
||||
**Proposition** : [action suggérée]
|
||||
```
|
||||
|
||||
### Préférences LLM — zone intouchable
|
||||
|
||||
Les préférences de communication de Jerem (langue, style, priorités) ne se modifient **jamais par inférence**. Uniquement sur feedback explicite de Jerem.
|
||||
|
||||
Si tu détectes que Jerem semble préférer un style différent → créer question dans `inbox/daemon-questions/` avec observations factuelles, laisser Jerem décider.
|
||||
|
||||
---
|
||||
|
||||
## Circuit-breakers
|
||||
|
||||
| Condition | Action |
|
||||
|---|---|
|
||||
| brain.md > 500 lignes | Refuser d'ajouter, signaler "brain trop gros, nettoyage requis" |
|
||||
| Plus de 10 modifications proposées en un run | Appliquer les 3 plus évidentes, mettre reste en 1 seule question détaillée |
|
||||
| Budget tokens atteint | Arrêt immédiat |
|
||||
|
||||
Budget max brain-updater : **10k tokens/semaine**.
|
||||
|
||||
---
|
||||
|
||||
## Sources d'information
|
||||
|
||||
Le brain-updater tire ses informations de plusieurs sources :
|
||||
|
||||
| Source | Ce qu'on en tire |
|
||||
|--------|------------------|
|
||||
| Source | Exploit |
|
||||
|---|---|
|
||||
| Notes récentes (`created` < 2 semaines) | Nouveaux projets, outils, domaines |
|
||||
| Décisions (`type: decision`) | Changements de stack, pivots |
|
||||
| Hub projets (`tag: hub`) | État d'avancement des projets |
|
||||
| Dream-log | Tendances détectées par le dream |
|
||||
| Tags du vault | Domaines d'activité, projets actifs |
|
||||
| Feedback utilisateur (si disponible) | Préférences, style de communication |
|
||||
| Hubs projets (`type: hub`) | État d'avancement projets |
|
||||
| `_adn/memory/dream-log.md` | Patterns détectés par dream |
|
||||
| `_adn/memory/learnings.md` | Apprentissages explicites sur Jerem |
|
||||
|
||||
## Quand exécuter
|
||||
---
|
||||
|
||||
| Déclencheur | Fréquence |
|
||||
|-------------|-----------|
|
||||
| **Après un dream** | Hebdomadaire — le dream détecte les patterns, le brain-updater met à jour le profil |
|
||||
| **Après un gros import Notion** | Ponctuel — beaucoup de nouveau contexte d'un coup |
|
||||
| **À la demande** | Quand l'utilisateur dit "mets à jour mon profil" |
|
||||
| **Détection automatique** | Si un LLM détecte que BRAIN.md ne reflète plus la réalité (projet mentionné partout mais absent du BRAIN) |
|
||||
## Fréquence
|
||||
|
||||
## Règles
|
||||
| Mode | Trigger | Scope |
|
||||
|---|---|---|
|
||||
| **Nightly dimanche 23h** (après dream) | Cron | Phases 1-4 |
|
||||
| **Post import Notion majeur** | Manuel | Scan + propositions |
|
||||
| **À la demande** | "mets à jour brain" | Phases 1-4 |
|
||||
| **Détection auto** | Si un agent détecte brain.md incohérent avec vault | Alerte + run automatique |
|
||||
|
||||
1. **BRAIN.md reste concis** — C'est un profil, pas une encyclopédie. Chaque section doit tenir en un écran. Si une section grossit trop, synthétiser et pointer vers une MOC.
|
||||
2. **Ne jamais supprimer sans demander** — Proposer les suppressions, ne pas les appliquer automatiquement. Un projet qui semble terminé est peut-être juste en pause.
|
||||
3. **Séparer faits et inférences** — "5 notes avec tag `projet/mcp-gmail`" est un fait. "Ce projet est prioritaire" est une inférence — la présenter comme telle.
|
||||
4. **Le `source_llm` de BRAIN.md** = le dernier LLM qui l'a mis à jour
|
||||
5. **Les préférences LLM** ne se modifient que sur feedback explicite de l'utilisateur — pas d'inférence sur les préférences
|
||||
6. **Logger chaque modification** dans le brain-update-log
|
||||
---
|
||||
|
||||
## Checklist
|
||||
|
||||
- [ ] BRAIN.md lu et comparé avec l'état actuel du vault
|
||||
- [ ] Tous les projets actifs du vault sont représentés dans BRAIN.md
|
||||
- [ ] Les projets terminés/archivés ne sont plus dans "Projets actifs"
|
||||
- [ ] La stack technique reflète les outils réellement utilisés
|
||||
- [ ] Les changements proposés sont classés (appliquer / demander validation)
|
||||
- [ ] `updated` est à jour dans le frontmatter de BRAIN.md
|
||||
- [ ] Le brain-update-log est mis à jour
|
||||
- [ ] BRAIN.md reste lisible en moins de 2 minutes
|
||||
- [ ] brain.md lu et comparé avec état du vault
|
||||
- [ ] Projets actifs du vault tous représentés
|
||||
- [ ] Projets terminés/archivés retirés de "Actifs"
|
||||
- [ ] Stack technique reflète les outils réellement utilisés
|
||||
- [ ] Changements classés (auto vs proposés)
|
||||
- [ ] Modifications auto appliquées (`updated` à jour)
|
||||
- [ ] Questions créées pour propositions ambiguës + Slack notif
|
||||
- [ ] brain-update-log appendé
|
||||
- [ ] brain.md reste < 500 lignes
|
||||
|
||||
Loading…
Reference in New Issue
Block a user