--- title: Conventions du vault DAEMON type: config created: 2026-04-19 updated: 2026-04-19 owner: jerem status: active description: Source unique de vérité pour les conventions du vault. Toute skill / script / agent DOIT s'y conformer. En cas de conflit avec une autre note, ce fichier gagne. tags: - config - conventions - brain related: - "[[_index]]" - "[[_adn/soul]]" - "[[_adn/agents/_index]]" --- # Conventions du vault DAEMON > **Règle absolue** : ce fichier est la source unique de vérité. Toutes les skills, agents, scripts, et notes doivent s'y conformer. Si un autre fichier du vault contredit celui-ci, il doit être corrigé (pas l'inverse). --- ## 1. Structure des dossiers ``` vault/ ├── _adn/ # Identité DAEMON, config, règles (Tier 2 — validation requise) │ ├── infra/ # Configs infra (VPS, backup, MCP servers) │ ├── agents/ # Définitions des sub-agents DAEMON autonomes │ │ └── obsidian/ # Agents obsidian-* (organizer, dream, brain-updater, etc.) │ ├── skills/ # Bibliothèque Anthropic/community skills (lecture, non exécutée depuis DAEMON) │ ├── orchestration/ # Multi-agents, routing LLM, budget tokens │ ├── routines/ # Daily, hebdo, mensuelles, trimestrielles │ ├── memory/ # Logs append-only (learnings, dream, cron, etc.) │ ├── identite/ # Écosystème, inspirations, rituels, perceptions │ ├── hooks/ # Audit-logger, safety-guard │ ├── mcp-servers/ # Config MCP │ └── jerem-voice-profile.md # Profil voice Jerem (chargé optionnellement par agents écrivant en son nom) ├── inbox/ # Tout ce qui est créé dans la journée atterrit ici │ ├── notion-imports/ # Notes importées depuis Notion (par date) │ └── daemon-questions/ # Questions soulevées par les agents pendant les runs automatiques ├── projects/ # Notes liées à des projets actifs ├── knowledge/ # Veille, fiches de compétences, références, apprentissages ├── content/ # Idées et briefs de contenu (YouTube, Instagram, blog) ├── journal/ # Journal personnel │ ├── daily/ # Daily notes (YYYY-MM-DD) │ ├── introspection/ # Réflexions profondes │ └── review/ # Reviews (hebdo, mensuelles, trimestrielles) ├── decisions/ # Historique des décisions └── moc/ # Maps of Content (index thématiques) ``` ### Règle de placement - **Pendant la journée** : tout ce que DAEMON (ou toi) écrit va dans `inbox/`. Point. Zéro exception. - **Le soir** : la skill `obsidian-organizer` trie `inbox/` vers les bons dossiers. - Si tu crées une note manuellement et que tu sais OÙ elle va (ex: un hub projet), tu peux la mettre directement dans le bon dossier. L'organizer ne touchera pas ce qui est déjà bien placé. --- ## 2. Types de notes (`type` dans frontmatter) Valeurs autorisées uniquement : | Type | Description | Dossier cible par défaut | |---|---|---| | `project` | Note liée à un projet actif | `projects/` | | `resource` | Fiche connaissance, veille, référence | `knowledge/` | | `idea` | Idée, concept, brainstorm | `knowledge/` (ou `content/` si tag `contenu/*`) | | `decision` | Décision avec contexte et raisonnement | `decisions/` | | `daily` | Entrée de journal quotidien | `journal/daily/` | | `introspection` | Réflexion profonde personnelle | `journal/introspection/` | | `review` | Review (hebdo, mensuelle, trimestrielle) | `journal/review/` | | `meeting` | Notes de réunion ou échange | `projects/` (dossier du projet concerné) | | `hub` | Hub de suivi projet | `projects/` | | `moc` | Map of Content | `moc/` | | `config` | Config technique / vault | `_adn/` | | `audit` | Audit skills, système, vault | `_adn/` | | `infra` | Documentation infrastructure | `_adn/infra/` | | `orchestration` | Principes multi-agents | `_adn/orchestration/` | | `routine` | Routine quotidienne/hebdo | `_adn/routines/` | | `memory` | Log append-only | `_adn/memory/` | | `agent-soul` | Identité DAEMON | `_adn/` (soul.md) | | `index` | Index / table d'entrée (_index.md, MOCs) | racine ou `moc/` | | `inbox` | Note brute non catégorisée | `inbox/` (reste ici) | --- ## 3. Tags — convention stricte ### Règles générales - **Toujours en minuscules**, sans accents, tirets pour les espaces - **Hiérarchiques** avec `/` comme séparateur - **2 à 5 tags par note**, dont au moins un tag de domaine ### Taxonomie officielle #### Domaines (`domaine/...`) ``` domaine/tech # tout ce qui est technique domaine/tech/ia # intelligence artificielle, LLM, MCP domaine/tech/devops # infra, CI/CD, servers domaine/tech/dev # développement applicatif domaine/tech/3d-printing # impression 3D domaine/business # business en général domaine/coaching # coaching sportif / mental domaine/content # création de contenu domaine/perso # vie personnelle domaine/perso/habitudes # rituels, habitudes domaine/perso/journal # journaling domaine/perso/sport # enduroman, training domaine/perso/sante # santé physique ``` #### Statut (`statut/...`) — cycle de vie | Tag | `status` frontmatter | Sens | |---|---|---| | `statut/draft` | `draft` | Ébauche, work in progress | | `statut/active` | `active` | Active, en cours d'utilisation | | `statut/review` | `review` | À relire/mettre à jour | | `statut/done` | `done` | Terminée, plus besoin de modifs | | `statut/archived` | `archived` | Archivée (doublons fusionnés, obsolète) | | `statut/parked` | `parked` | Mise en pause, à reprendre plus tard | > **Important** : le tag `statut/...` et le champ `status` du frontmatter doivent toujours être cohérents. L'organizer corrige automatiquement en cas d'incohérence. #### Priorité (`priorite/...`) — système numérique | Tag | Sens | |---|---| | `priorite/p0` | Critique, action immédiate | | `priorite/p1` | Haute, cette semaine | | `priorite/p2` | Moyenne, ce mois | | `priorite/p3` | Basse, quand temps disponible | #### Contenu (`contenu/...`) ``` contenu/youtube contenu/instagram contenu/blog contenu/newsletter contenu/podcast ``` #### Projets (`projet/...`) Un tag par projet actif. Doit correspondre à un projet qui existe dans `projects/`. Exemples : ``` projet/openclaw projet/chaine-youtube projet/enduroman projet/aura-app projet/diet-engine projet/coaching-pipeline ``` #### Source d'import (`import/...`) ``` import/notion import/web import/manual ``` #### Meta (`meta/...`) ``` meta/hub # note hub de projet meta/moc # map of content meta/synthese # note de synthèse auto-générée (dream) ``` --- ## 4. Frontmatter YAML obligatoire Chaque note commence par : ```yaml --- title: "Titre clair et descriptif" type: created: 2026-04-19T14:30:00 updated: 2026-04-19T14:30:00 tags: - domaine/xxx - statut/xxx status: draft | active | review | done | archived | parked summary: "Une phrase de 20-50 mots — un LLM doit pouvoir décider si cette note est pertinente en lisant uniquement ce champ" source_agent: source_llm: related: - "[[Nom de note liée]]" --- ``` ### Champs critiques expliqués **`source_agent`** — **Qui a créé ou modifié la note.** Remplace l'ancien `source_llm` comme champ primary. Valeurs autorisées : | Valeur | Sens | |---|---| | `human` | Jerem a créé la note directement | | `daemon-chat` | Créée pendant une session conversationnelle avec DAEMON | | `organizer` | Triée/enrichie par la skill organizer | | `dream` | Consolidée par la skill dream | | `brain-updater` | Modifiée par brain-updater | | `notion-sync` | Importée depuis Notion par notion-sync | | `note-creator` | Créée par la skill note-creator | | `project-hub` | Maintenue par project-hub | | `claude-code` | Créée pendant une session Claude Code | **`source_llm`** (optionnel) — Le moteur LLM sous-jacent. Utile pour traçabilité cross-LLM. Valeurs : `claude`, `grok`, `gemini`, `local`, `none` (si c'est un humain). **`summary`** — 20-50 mots, phrase complète qui permet à un LLM de décider "cette note est-elle pertinente pour ma requête ?" sans l'ouvrir. **`related`** — Au moins 1 lien `[[...]]` interne. Zéro lien = note orpheline = mauvaise découvrabilité. ### Champs additionnels selon le type Pour `type: project` : ```yaml project_name: "openclaw" project_phase: planning | building | testing | deployed | paused | done deadline: 2026-06-01 ``` Pour `type: decision` : ```yaml decision: "La décision en une phrase" alternatives_considered: ["Option A", "Option B"] confidence: high | medium | low reversible: true | false ``` Pour `type: daily` : ```yaml mood: 😊 | 😐 | 😔 energy: high | medium | low wins: ["Action 1", "Action 2"] ``` Pour `type: resource` (veille) : ```yaml source_url: "https://..." source_type: article | video | paper | doc | tweet | podcast relevance: high | medium | low ``` Pour notes importées Notion : ```yaml source_notion: "URL ou page ID Notion" imported_at: 2026-04-19T14:30:00 notion_properties: {} ``` --- ## 5. Nommage des fichiers - **Tout en minuscules**, tirets pour espaces, pas d'accents, pas de caractères spéciaux - **Daily notes** : `YYYY-MM-DD.md` (dans `journal/daily/`) - **Reviews** : `YYYY-MM-DD-{hebdo|mensuelle|trimestrielle}.md` (dans `journal/review/`) - **Décisions** : `decision-{sujet-court}.md` - **Veille** : `veille-{sujet}-{source-courte}.md` - **Projets** : `{projet}-{aspect}.md` - **Hubs** : `hub-{nom-projet}.md` - **MOC** : `moc-{domaine}.md` - **Notes importées Notion** : conservent leur titre original mais slugifié --- ## 6. Identifiants canoniques (références croisées) Ces fichiers/chemins sont **la référence** — toute autre mention doit utiliser exactement ces noms : | Ce qu'on référence | Nom exact (case-sensitive !) | |---|---| | Fichier profil utilisateur | `_adn/brain.md` (minuscules, PAS `BRAIN.md`) | | Index du vault | `_index.md` à la racine (PAS `VAULT-INDEX.md`, ni `INDEX.md`) | | Soul DAEMON | `_adn/soul.md` | | Ce fichier | `_adn/conventions.md` | | Learnings append-only | `_adn/memory/learnings.md` | | Dream log append-only | `_adn/memory/dream-log.md` | | Brain update log | `_adn/memory/brain-update-log.md` | | Notion sync state | `_adn/memory/notion-sync-state.json` | | Cron logs | `_adn/memory/cron-logs.md` | --- ## 7. Règles de modification ### Tier 1 — DAEMON écrit librement - `inbox/` (toutes sous-arbos) - `projects/` (notes, pas les hubs sans validation) - `knowledge/` - `content/` - `journal/` (sauf introspections manuelles) - `decisions/` (en append) - `moc/` (auto-maintenues par organizer) ### Tier 2 — Validation requise - `_adn/*` sauf `_adn/memory/` et `_adn/skills/` update mineure - Hubs de projet (skill `project-hub` proposera, humain valide) - Suppression définitive de notes (archivage OK en Tier 1, suppression jamais auto) ### Tier 3 — Jamais - Modification rétroactive de `_adn/memory/*.md` (append-only) - Suppression de notes avec `status: done` ou `archived` - Modification du soul.md sans review humaine --- ## 8. Contrat de chaque agent / skill Toute skill / agent / script qui touche au vault doit : 1. **Respecter cette convention** — tags, types, dossiers, nommage 2. **Remplir `source_agent`** avec son nom exact 3. **Mettre à jour `updated`** (ISO 8601) à chaque touche 4. **Ne jamais supprimer** — archiver uniquement 5. **Logger ses actions** dans `_adn/memory/cron-logs.md` (append) 6. **Créer une note `inbox/daemon-questions/YYYY-MM-DD-{topic}.md`** + notif Slack si question ambiguë (remplace le "demander confirmation" qui marche pas en cron) 7. **Respecter les circuit-breakers tokens** (voir `_adn/orchestration/budget-tokens.md`) --- ## 9. Évolution de ce fichier Modifications via le même process que les autres fichiers `_adn/` : 1. Proposition humaine ou agent 2. Review par Jerem 3. Application 4. Entrée dans `_adn/memory/learnings.md` si c'est un changement structurant **Version** : 1.0 — 2026-04-19 (initial)