vault backup: 2026-04-19 19:19:36
This commit is contained in:
parent
3148670090
commit
783b243ee8
@ -1,219 +1,224 @@
|
||||
---
|
||||
name: obsidian-project-hub
|
||||
version: 2.0
|
||||
updated: 2026-04-19
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
---
|
||||
title: "Hub - [Nom du projet]"
|
||||
type: project
|
||||
project_name: "[nom-projet]"
|
||||
project_phase: planning | building | testing | deployed | paused
|
||||
tags:
|
||||
- projet/[nom-projet]
|
||||
- hub
|
||||
- domaine/[domaine-principal]
|
||||
- statut/actif
|
||||
title: "Hub - {Nom du projet}"
|
||||
type: hub
|
||||
created: {première création}
|
||||
updated: {dernière MAJ}
|
||||
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]."
|
||||
source_llm: claude
|
||||
updated: 2026-04-16T22:00:00
|
||||
project_name: "{nom-projet}"
|
||||
project_phase: planning | building | testing | deployed | paused | done
|
||||
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:
|
||||
- "[[MOC Projets]]"
|
||||
---
|
||||
|
||||
# Hub — [Nom du projet]
|
||||
# Hub — {Nom du projet}
|
||||
|
||||
> [!summary]
|
||||
> [Description du projet en 2-3 phrases : quoi, pourquoi, pour qui]
|
||||
> {2-3 phrases : quoi, pourquoi, pour qui, phase actuelle}
|
||||
|
||||
## État actuel
|
||||
|
||||
| Métrique | Valeur |
|
||||
|----------|--------|
|
||||
|---|---|
|
||||
| Phase | building |
|
||||
| Statut | actif |
|
||||
| Démarré le | 2026-03-01 |
|
||||
| Deadline | 2026-06-01 (si applicable) |
|
||||
| Deadline | 2026-06-01 |
|
||||
| Notes liées | 23 |
|
||||
| Décisions prises | 8 |
|
||||
| LLM contributeurs | claude, chatgpt |
|
||||
| Dernière activité | 2026-04-16 |
|
||||
| Dernière activité | 2026-04-19 |
|
||||
|
||||
## Description
|
||||
|
||||
Résumé du projet : objectif, périmètre, stack technique, contraintes.
|
||||
{Objectif, périmètre, stack technique, contraintes — 1 paragraphe}
|
||||
|
||||
## Décisions — Timeline
|
||||
|
||||
> [!decision] Historique des décisions
|
||||
> Toutes les décisions prises sur ce projet, dans l'ordre chronologique.
|
||||
| Date | Décision | Confiance | Note |
|
||||
|---|---|---|---|
|
||||
| 2026-03-15 | Utiliser FastAPI | high | [[decision-fastapi]] |
|
||||
| 2026-04-02 | JWT pour auth | medium | [[decision-auth-jwt]] |
|
||||
|
||||
| Date | Décision | Confiance | LLM | Note |
|
||||
|------|----------|-----------|-----|------|
|
||||
| 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 agent
|
||||
|
||||
## Contributions par LLM
|
||||
Qui a fait quoi sur ce projet :
|
||||
|
||||
Qui a fait quoi — traçabilité cross-LLM.
|
||||
|
||||
### Claude
|
||||
- 15 notes créées (architecture, veille, décisions)
|
||||
- Décisions : FastAPI, JWT auth, structure vault
|
||||
- Dernière contribution : 2026-04-16
|
||||
|
||||
### 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
|
||||
| Agent | Notes touchées | Dernière activité |
|
||||
|---|---|---|
|
||||
| human | 8 | 2026-04-19 |
|
||||
| daemon-chat | 12 | 2026-04-19 |
|
||||
| organizer | 23 (rangées) | 2026-04-18 |
|
||||
| notion-sync | 5 (importées) | 2026-04-15 |
|
||||
|
||||
## Prochaines étapes
|
||||
|
||||
- [ ] Étape 1 — description et deadline estimée
|
||||
- [ ] Étape 2 — description
|
||||
- [ ] Étape 3 — description
|
||||
- [ ] Action 1 (deadline, contexte)
|
||||
- [ ] Action 2
|
||||
|
||||
## Risques et blocages
|
||||
## Notes récentes (top 5)
|
||||
|
||||
> [!warning] Points d'attention
|
||||
> Éléments qui pourraient bloquer ou ralentir le projet.
|
||||
- [[Note A]] — 2026-04-19
|
||||
- [[Note B]] — 2026-04-18
|
||||
- [[Note C]] — 2026-04-17
|
||||
|
||||
- Risque 1 : description + impact + mitigation
|
||||
- Blocage actuel : description (si applicable)
|
||||
## Dépendances / Blockers
|
||||
|
||||
## Notes liées
|
||||
{Liste si applicable, sinon "Aucun blocker identifié"}
|
||||
|
||||
Toutes les notes du vault rattachées à ce projet :
|
||||
## Liens
|
||||
|
||||
### Architecture & Décisions
|
||||
- [[decision-xxx]] — résumé court
|
||||
- [[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
|
||||
- [[MOC Projets]]
|
||||
- [[_adn/brain]] — contexte global
|
||||
```
|
||||
|
||||
## 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/...`
|
||||
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
|
||||
## Maintenance automatique
|
||||
|
||||
## 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
|
||||
2. **Changement de phase** (planning → building, etc.) → mettre à jour l'état
|
||||
3. **Nouveau LLM contributeur** → ajouter sa section dans les contributions
|
||||
4. **Passe organizer/dream** → l'organizer peut signaler qu'un hub est outdated
|
||||
5. **À la demande** de l'utilisateur ("où en est OpenClaw ?")
|
||||
**PAS de modification automatique** de :
|
||||
- Section "Description" (curée par Jerem)
|
||||
- Section "Prochaines étapes" (curée par Jerem)
|
||||
- Section "Dépendances / Blockers" (curée par Jerem)
|
||||
|
||||
## Procédure de création
|
||||
---
|
||||
|
||||
1. **Identifier le projet** : nom, tag `projet/...`, phase actuelle
|
||||
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**
|
||||
## Détection changement de phase (signal → question)
|
||||
|
||||
## 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**
|
||||
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é
|
||||
**Ne pas auto-changer la phase.** Créer question dans `inbox/daemon-questions/` + Slack notif.
|
||||
|
||||
## Rapport de hub
|
||||
---
|
||||
|
||||
Quand un hub est créé ou mis à jour, produire un résumé concis :
|
||||
## Circuit-breakers
|
||||
|
||||
```markdown
|
||||
## Hub [Projet] — Mis à jour le 2026-04-16
|
||||
| Condition | Action |
|
||||
|---|---|
|
||||
| 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
|
||||
- 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
|
||||
```
|
||||
Budget max project-hub : **15k tokens/semaine** (tous hubs cumulés).
|
||||
|
||||
## Règles
|
||||
---
|
||||
|
||||
1. **Le hub ne duplique pas** — il pointe vers les notes avec des `[[liens]]` et des résumés courts
|
||||
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
|
||||
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)
|
||||
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
|
||||
## Archivage de hub
|
||||
|
||||
Quand un projet passe en `done` (validé par Jerem via brain-updater) :
|
||||
|
||||
1. Garder le hub dans `projects/`
|
||||
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
|
||||
|
||||
- [ ] Le hub est dans `projects/` avec le nom `hub-[nom-projet].md`
|
||||
- [ ] Le tag `hub` est présent dans les tags
|
||||
- [ ] La timeline des décisions est chronologique et complète
|
||||
- [ ] Les contributions par LLM sont à jour
|
||||
- [ ] Les prochaines étapes reflètent l'état réel du projet
|
||||
- [ ] Le `summary` du frontmatter mentionne la date de dernière mise à jour
|
||||
- [ ] Le hub est lié à la MOC Projets
|
||||
- [ ] `updated` correspond à la dernière modification
|
||||
- [ ] Pour chaque projet actif dans brain.md, un hub existe (ou question en attente)
|
||||
- [ ] Chaque hub respecte le template v2
|
||||
- [ ] Métriques à jour
|
||||
- [ ] "Notes récentes" top 5 à jour
|
||||
- [ ] Hub < 300 lignes
|
||||
- [ ] `source_agent: project-hub` et `updated` à jour
|
||||
- [ ] Changements de phase signalés via questions (pas auto)
|
||||
- [ ] 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} |
|
||||
|
||||
Loading…
Reference in New Issue
Block a user