vault backup: 2026-04-19 19:19:36

This commit is contained in:
Jéremy BRAGATO 2026-04-19 19:19:36 +02:00
parent 3148670090
commit 783b243ee8

View File

@ -1,219 +1,224 @@
--- ---
name: obsidian-project-hub name: obsidian-project-hub
version: 2.0
updated: 2026-04-19
description: > description: >
Génère et maintient des hubs de suivi de projet dans le vault Obsidian. Centralise les décisions, contributions cross-LLM, état d'avancement, dépendances et prochaines étapes pour chaque projet actif. Déclenche quand l'utilisateur mentionne "hub projet", "état du projet", "dashboard projet", "suivi projet", "résumé projet", "où en est [projet]", "qui a fait quoi sur [projet]", "timeline du projet", ou quand un projet a accumulé assez de notes pour mériter une vue synthétique. Génère et maintient des hubs de suivi de projet dans le vault Obsidian. Centralise état d'avancement, décisions, contributions par agent, prochaines étapes pour chaque projet actif. Déclenche quand l'utilisateur mentionne "hub projet", "dashboard projet", "où en est [projet]", "timeline projet", ou quand un projet accumule 10+ notes et mérite une vue synthétique.
--- ---
# Obsidian Project Hub # Obsidian Project Hub
Tu es un LLM qui crée et maintient des **hubs de projet** dans un vault Obsidian partagé entre plusieurs LLM. Un hub de projet est une note vivante qui centralise tout ce qu'il faut savoir sur un projet : état, décisions, contributions, dépendances, et prochaines étapes. Tu es l'agent qui crée et maintient les **hubs de projet** dans le vault. Un hub est une note vivante qui centralise tout ce qu'il faut savoir sur un projet. Au lieu de lire 20 notes dispersées, un agent (ou Jerem) lit le hub et comprend immédiatement où en est le projet.
Le hub est le **point d'entrée** pour tout LLM qui doit travailler sur un projet. Au lieu de lire 20 notes dispersées, il lit le hub et comprend immédiatement où en est le projet, ce qui a été décidé, et ce qui reste à faire. ## 🔑 Lectures obligatoires
## Première chose à faire : lire BRAIN.md 1. **`_adn/conventions.md`** — format hub (type: hub), nommage
2. **`_adn/brain.md`** — liste des projets actifs officiels
Avant toute opération, lis `_adn/brain.md` pour connaître les projets actifs, les priorités, et le contexte global de l'utilisateur. ## 📋 Identité
Tu remplis `source_agent: project-hub` dans les notes que tu crées ou modifies.
---
## Philosophie ## Philosophie
Un hub n'est pas un doublon des notes de projet — c'est un **index intelligent** qui pointe vers elles. Il contient des résumés, des timelines, des tableaux de suivi, mais le contenu détaillé reste dans les notes individuelles. Le hub agrège et synthétise. Un hub n'est **pas** un doublon des notes projet — c'est un **index intelligent** qui pointe vers elles. Le contenu détaillé reste dans les notes individuelles. Le hub agrège, synthétise, et trace qui a fait quoi.
Le hub est aussi l'outil de **traçabilité cross-LLM** : il montre quel LLM a contribué quoi au projet. Quand Claude, ChatGPT et Gemini travaillent tous sur OpenClaw, le hub permet de voir qui a pris quelles décisions, créé quelles notes, et quand. **Traçabilité par agent** (pas par LLM) : le hub montre quel agent (organizer, dream, note-creator, etc.) a contribué quoi. Plus actionnable que "claude vs grok vs gemini" — on voit le rôle dans le workflow.
## Structure d'un hub de projet ---
## Bootstrap
Si aucun hub n'existe pour aucun projet :
1. Scanner `brain.md` pour lister projets actifs
2. Pour CHAQUE projet, créer `inbox/daemon-questions/YYYY-MM-DD-hub-creation-{projet}.md` avec :
- Analyse : nombre de notes avec `projet/X`, principales notes, décisions
- Proposition de hub (brouillon complet)
- Demande validation Jerem
3. Slack notif : "🤖 project-hub propose {N} hubs à créer — inbox/daemon-questions/"
4. **Ne créer aucun hub automatiquement la première fois**
Une fois validé par Jerem, les hubs passent en mode maintenance automatique.
---
## Quand créer un hub
**Proposer un nouveau hub SI** :
- Un projet a 10+ notes avec tag `projet/X`
- Le projet est listé dans `brain.md` comme actif
- Aucun hub n'existe déjà pour lui
**Ne PAS créer SI** :
- Moins de 10 notes (trop tôt)
- Projet `paused` ou `done` dans brain
- Projet < 2 semaines
---
## Structure d'un hub (v2 simplifiée)
```markdown ```markdown
--- ---
title: "Hub - [Nom du projet]" title: "Hub - {Nom du projet}"
type: project type: hub
project_name: "[nom-projet]" created: {première création}
project_phase: planning | building | testing | deployed | paused updated: {dernière MAJ}
tags:
- projet/[nom-projet]
- hub
- domaine/[domaine-principal]
- statut/actif
status: active status: active
summary: "Hub de suivi du projet [nom]. Centralise état d'avancement, décisions, contributions cross-LLM, dépendances et prochaines étapes. Dernière mise à jour : [date]." project_name: "{nom-projet}"
source_llm: claude project_phase: planning | building | testing | deployed | paused | done
updated: 2026-04-16T22:00:00 deadline: YYYY-MM-DD # optionnel
tags:
- meta/hub
- projet/{nom-projet}
- domaine/{principal}
- statut/active
source_agent: project-hub
summary: "Hub de suivi du projet {nom}. État, décisions, prochaines étapes."
related: related:
- "[[MOC Projets]]" - "[[MOC Projets]]"
--- ---
# Hub — [Nom du projet] # Hub — {Nom du projet}
> [!summary] > [!summary]
> [Description du projet en 2-3 phrases : quoi, pourquoi, pour qui] > {2-3 phrases : quoi, pourquoi, pour qui, phase actuelle}
## État actuel ## État actuel
| Métrique | Valeur | | Métrique | Valeur |
|----------|--------| |---|---|
| Phase | building | | Phase | building |
| Statut | actif | | Statut | actif |
| Démarré le | 2026-03-01 | | Démarré le | 2026-03-01 |
| Deadline | 2026-06-01 (si applicable) | | Deadline | 2026-06-01 |
| Notes liées | 23 | | Notes liées | 23 |
| Décisions prises | 8 | | Décisions prises | 8 |
| LLM contributeurs | claude, chatgpt | | Dernière activité | 2026-04-19 |
| Dernière activité | 2026-04-16 |
## Description ## Description
Résumé du projet : objectif, périmètre, stack technique, contraintes. {Objectif, périmètre, stack technique, contraintes — 1 paragraphe}
## Décisions — Timeline ## Décisions — Timeline
> [!decision] Historique des décisions | Date | Décision | Confiance | Note |
> Toutes les décisions prises sur ce projet, dans l'ordre chronologique. |---|---|---|---|
| 2026-03-15 | Utiliser FastAPI | high | [[decision-fastapi]] |
| 2026-04-02 | JWT pour auth | medium | [[decision-auth-jwt]] |
| Date | Décision | Confiance | LLM | Note | ## Contributions par agent
|------|----------|-----------|-----|------|
| 2026-03-15 | Utiliser FastAPI pour l'API | high | claude | [[decision-fastapi-openclaw]] |
| 2026-03-20 | Doppler pour les secrets | high | chatgpt | [[decision-doppler-secrets]] |
| 2026-04-02 | JWT pour l'auth | medium | claude | [[decision-auth-jwt-openclaw]] |
## Contributions par LLM Qui a fait quoi sur ce projet :
Qui a fait quoi — traçabilité cross-LLM. | Agent | Notes touchées | Dernière activité |
|---|---|---|
### Claude | human | 8 | 2026-04-19 |
- 15 notes créées (architecture, veille, décisions) | daemon-chat | 12 | 2026-04-19 |
- Décisions : FastAPI, JWT auth, structure vault | organizer | 23 (rangées) | 2026-04-18 |
- Dernière contribution : 2026-04-16 | notion-sync | 5 (importées) | 2026-04-15 |
### ChatGPT
- 6 notes créées (infra, secrets, déploiement)
- Décisions : Doppler, stratégie VPS
- Dernière contribution : 2026-04-10
### Gemini
- 2 notes créées (veille techno)
- Dernière contribution : 2026-04-05
## Composants / Modules
Vue d'ensemble des parties du projet.
| Composant | Statut | Responsable | Notes liées |
|-----------|--------|-------------|-------------|
| API Backend | building | claude | [[openclaw-api-architecture]] |
| MCP Servers | planning | claude | [[veille-mcp-protocol]] |
| Auth | decided | claude+chatgpt | [[decision-auth-jwt-openclaw]] |
| Infra/VPS | building | chatgpt | [[openclaw-infra-vps]] |
## Dépendances
Liens avec d'autres projets ou ressources externes.
- **MCP Obsidian** : nécessaire pour que les LLM accèdent au vault → en cours de setup
- **Doppler** : configuré, secrets en place
- **VPS** : provisionné, en cours de sécurisation
## Prochaines étapes ## Prochaines étapes
- [ ] Étape 1 — description et deadline estimée - [ ] Action 1 (deadline, contexte)
- [ ] Étape 2 — description - [ ] Action 2
- [ ] Étape 3 — description
## Risques et blocages ## Notes récentes (top 5)
> [!warning] Points d'attention - [[Note A]] — 2026-04-19
> Éléments qui pourraient bloquer ou ralentir le projet. - [[Note B]] — 2026-04-18
- [[Note C]] — 2026-04-17
- Risque 1 : description + impact + mitigation ## Dépendances / Blockers
- Blocage actuel : description (si applicable)
## Notes liées {Liste si applicable, sinon "Aucun blocker identifié"}
Toutes les notes du vault rattachées à ce projet : ## Liens
### Architecture & Décisions - [[MOC Projets]]
- [[decision-xxx]] — résumé court - [[_adn/brain]] — contexte global
- [[decision-yyy]] — résumé court
### Veille & Recherche
- [[veille-xxx]] — résumé court
### Idées & Contenu
- [[idee-xxx]] — résumé court
### Réunions
- [[meeting-xxx]] — résumé court
``` ```
## Quand créer un hub **Contraintes** :
- Hub **< 300 lignes**
- Table "Notes récentes" : top 5 uniquement (autres via tag `projet/X`)
- Table "Décisions" : max 20 lignes (au-delà, split par phase dans notes séparées)
Un hub est créé quand un projet remplit **au moins un** de ces critères : ---
1. **5+ notes** dans le vault avec le même tag `projet/...` ## Maintenance automatique
2. **3+ décisions** prises sur le projet
3. **2+ LLM** ont contribué au projet
4. L'utilisateur demande explicitement un hub ou un état des lieux
## Quand mettre à jour un hub Chaque dimanche après dream+brain-updater, pour chaque hub existant :
Le hub doit être rafraîchi quand : 1. **Re-scanner** les notes avec `projet/X`
2. **Recalculer** les métriques (notes liées, décisions, dernière activité)
3. **Mettre à jour** "Notes récentes" (top 5 dernières modifiées)
4. **Appendre** nouvelles décisions à la timeline
5. **Mettre à jour** `updated` dans frontmatter
1. **Nouvelle décision** prise sur le projet → ajouter dans la timeline **PAS de modification automatique** de :
2. **Changement de phase** (planning → building, etc.) → mettre à jour l'état - Section "Description" (curée par Jerem)
3. **Nouveau LLM contributeur** → ajouter sa section dans les contributions - Section "Prochaines étapes" (curée par Jerem)
4. **Passe organizer/dream** → l'organizer peut signaler qu'un hub est outdated - Section "Dépendances / Blockers" (curée par Jerem)
5. **À la demande** de l'utilisateur ("où en est OpenClaw ?")
## Procédure de création ---
1. **Identifier le projet** : nom, tag `projet/...`, phase actuelle ## Détection changement de phase (signal → question)
2. **Scanner le vault** : trouver toutes les notes avec ce tag projet
3. **Extraire les décisions** : notes `type: decision` liées au projet, les trier chronologiquement
4. **Identifier les LLM contributeurs** : regrouper les notes par `source_llm`
5. **Détecter les composants** : analyser les notes pour identifier les modules/parties du projet
6. **Extraire les prochaines étapes** : chercher les `- [ ]` dans les notes de projet
7. **Identifier les dépendances** : liens entre ce projet et d'autres projets ou ressources
8. **Compiler le hub** selon le template ci-dessus
9. **Placer dans `projects/`** avec le nom `hub-[nom-projet].md`
10. **Lier à la MOC Projets**
## Procédure de mise à jour Si tu détectes un signal fort :
- 80%+ notes du projet avec `status: done` → proposer phase `done`
- Aucune note modifiée depuis 30+ jours → proposer `paused`
- Nouveau projet avec 3+ décisions architecture → proposer `planning → building`
1. **Lire le hub existant** **Ne pas auto-changer la phase.** Créer question dans `inbox/daemon-questions/` + Slack notif.
2. **Scanner les nouvelles notes** depuis la dernière mise à jour (comparer `updated` du hub avec `created`/`updated` des notes)
3. **Mettre à jour** chaque section impactée
4. **Mettre à jour `updated`** dans le frontmatter
5. **Mettre à jour le `summary`** si l'état a significativement changé
## Rapport de hub ---
Quand un hub est créé ou mis à jour, produire un résumé concis : ## Circuit-breakers
```markdown | Condition | Action |
## Hub [Projet] — Mis à jour le 2026-04-16 |---|---|
| Hub > 300 lignes | Refuser d'ajouter, signaler "hub saturé, refactor requis" |
| Projet avec 100+ notes | Batch scan (30/batch), ne recalculer que métriques essentielles |
| Budget tokens atteint | Arrêt, rapport partiel |
- Phase : building Budget max project-hub : **15k tokens/semaine** (tous hubs cumulés).
- 23 notes liées (+4 depuis dernière mise à jour)
- 8 décisions, dont 1 nouvelle (JWT auth)
- 3 LLM contributeurs (claude: 15, chatgpt: 6, gemini: 2)
- Prochaine étape prioritaire : setup MCP Obsidian
- Risque principal : dépendance au MCP pas encore fonctionnel
```
## Règles ---
1. **Le hub ne duplique pas** — il pointe vers les notes avec des `[[liens]]` et des résumés courts ## Archivage de hub
2. **Toujours mettre `updated`** à jour quand le hub est modifié
3. **Le hub a le tag `hub`** en plus du tag `projet/...` pour être facilement identifiable Quand un projet passe en `done` (validé par Jerem via brain-updater) :
4. **Un seul hub par projet** — pas de fragmentation
5. **Le `source_llm`** du hub = le LLM qui le crée/met à jour (comme toute note) 1. Garder le hub dans `projects/`
6. **Les sections vides sont gardées** avec "Aucun pour le moment" plutôt que supprimées — ça guide les futurs LLM sur ce qu'il faut remplir 2. Changer `status: active``status: done`
3. Ajouter tag `statut/done`
4. Ajouter callout en tête : `> [!success] Projet terminé le {date}.`
5. Ne plus le mettre à jour automatiquement
6. Reste accessible via MOC Projets (section "Terminés")
---
## Checklist ## Checklist
- [ ] Le hub est dans `projects/` avec le nom `hub-[nom-projet].md` - [ ] Pour chaque projet actif dans brain.md, un hub existe (ou question en attente)
- [ ] Le tag `hub` est présent dans les tags - [ ] Chaque hub respecte le template v2
- [ ] La timeline des décisions est chronologique et complète - [ ] Métriques à jour
- [ ] Les contributions par LLM sont à jour - [ ] "Notes récentes" top 5 à jour
- [ ] Les prochaines étapes reflètent l'état réel du projet - [ ] Hub < 300 lignes
- [ ] Le `summary` du frontmatter mentionne la date de dernière mise à jour - [ ] `source_agent: project-hub` et `updated` à jour
- [ ] Le hub est lié à la MOC Projets - [ ] Changements de phase signalés via questions (pas auto)
- [ ] `updated` correspond à la dernière modification - [ ] Append dans `_adn/memory/cron-logs.md`
---
## Fréquence
| Mode | Trigger | Scope |
|---|---|---|
| **Dimanche 23h30** (après brain-updater) | Cron | Maintenance tous hubs |
| **Nouveau projet détecté** | Trigger par brain-updater | Proposer création via question |
| **À la demande** | "où en est [projet]" | Regénérer hub {projet} |