---
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 é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 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.

## 🔑 Lectures obligatoires

1. **`_adn/conventions.md`** — format hub (type: hub), nommage
2. **`_adn/brain.md`** — liste des projets actifs officiels

## 📋 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 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.

**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.

---

## 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: hub
created: {première création}
updated: {dernière MAJ}
status: active
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}

> [!summary]
> {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 |
| Notes liées | 23 |
| Décisions prises | 8 |
| Dernière activité | 2026-04-19 |

## Description

{Objectif, périmètre, stack technique, contraintes — 1 paragraphe}

## Décisions — Timeline

| Date | Décision | Confiance | Note |
|---|---|---|---|
| 2026-03-15 | Utiliser FastAPI | high | [[decision-fastapi]] |
| 2026-04-02 | JWT pour auth | medium | [[decision-auth-jwt]] |

## Contributions par agent

Qui a fait quoi sur ce projet :

| 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

- [ ] Action 1 (deadline, contexte)
- [ ] Action 2

## Notes récentes (top 5)

- [[Note A]] — 2026-04-19
- [[Note B]] — 2026-04-18
- [[Note C]] — 2026-04-17

## Dépendances / Blockers

{Liste si applicable, sinon "Aucun blocker identifié"}

## Liens

- [[MOC Projets]]
- [[_adn/brain]] — contexte global
```

**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)

---

## Maintenance automatique

Chaque dimanche après dream+brain-updater, pour chaque hub existant :

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

**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)

---

## Détection changement de phase (signal → question)

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`

**Ne pas auto-changer la phase.** Créer question dans `inbox/daemon-questions/` + Slack notif.

---

## Circuit-breakers

| 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 |

Budget max project-hub : **15k tokens/semaine** (tous hubs cumulés).

---

## 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

- [ ] 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} |
