11 KiB
| name | description |
|---|---|
| obsidian-notion-sync | Synchronise les pages Notion vers le vault Obsidian avec enrichissement IA. Gère le diff incrémental (quoi a changé depuis le dernier import), le mapping des propriétés Notion vers le frontmatter YAML, la détection de conflits, et l'intégration des notes importées dans le tissu du vault (liens, tags, MOC). Déclenche quand l'utilisateur mentionne "sync notion", "importer notion", "synchroniser notion", "notion vers obsidian", "import depuis notion", "mettre à jour depuis notion", "rafraîchir depuis notion", ou quand des pages Notion doivent être intégrées au vault. |
Obsidian Notion Sync
Tu es un LLM qui synchronise des pages Notion vers un vault Obsidian servant de cerveau partagé entre plusieurs LLM. Tu ne fais pas un simple copier-coller — tu enrichis chaque page importée en l'intégrant dans le tissu existant du vault.
Première chose à faire : lire BRAIN.md
Lis _adn/brain.md pour connaître le contexte utilisateur, les projets actifs, et les domaines prioritaires. Ça guide tes décisions de mapping (quel tag attribuer, quels liens créer).
Philosophie
Notion et Obsidian ont des philosophies différentes. Notion organise par bases de données et vues. Obsidian organise par notes atomiques et liens. La sync ne consiste pas à reproduire la structure Notion dans Obsidian — c'est une traduction d'un paradigme à l'autre.
La vraie valeur de la sync, c'est ce qu'un humain ne ferait pas : détecter que cette page Notion sur le MCP est liée à 3 notes existantes dans le vault, que ce projet Notion correspond à un tag projet/... déjà utilisé, que cette entrée de journal Notion complète une réflexion commencée dans une daily note Obsidian.
Pré-requis
Pour fonctionner, cette skill a besoin de :
- Un accès à l'API Notion (via MCP Notion ou appel direct)
- Le vault Obsidian accessible en écriture (via MCP Obsidian ou système de fichiers)
- Un fichier de config
_adn/notion-sync.mdqui définit quelles bases/pages Notion synchroniser
Config notion-sync.md
---
title: "Config Notion Sync"
type: resource
tags:
- config
- import/notion
status: active
summary: "Configuration de la synchronisation Notion → Obsidian : bases à sync, mapping des propriétés, fréquence, dernière exécution"
source_llm: claude
updated: 2026-04-16T22:00:00
---
# Configuration Notion → Obsidian
## Sources à synchroniser
| Base/Page Notion | ID Notion | Dossier cible Obsidian | Fréquence | Dernière sync |
|------------------|-----------|------------------------|-----------|---------------|
| Base Projets | abc123 | projects/ | hebdo | 2026-04-10 |
| Base Veille Tech | def456 | knowledge/ | quotidien | 2026-04-15 |
| Journal | ghi789 | journal/ | quotidien | 2026-04-15 |
| Wiki/Docs | jkl012 | knowledge/ | hebdo | 2026-04-08 |
## Mapping des propriétés
| Propriété Notion | Champ Obsidian | Transformation |
|------------------|----------------|----------------|
| Status | status + tag statut/ | In Progress→active, Done→done, Not Started→draft |
| Category | tag domaine/ | Tech→domaine/tech, Business→domaine/business |
| Tags | tags | Mapping direct, normalisation minuscules+tirets |
| Priority | tag priorite/ | High→priorite/haute, Medium→priorite/moyenne |
| Created | created | ISO 8601 |
| Last edited | updated | ISO 8601 |
| URL | source_notion | Lien Notion complet |
## Pages exclues
- Templates Notion (pas de contenu réel)
- Pages "brouillon" marquées comme telles dans Notion
Les 4 étapes de la sync
Étape 1 — Diff (quoi a changé ?)
Avant d'importer quoi que ce soit, déterminer ce qui a changé depuis la dernière sync.
- Lire la date de dernière sync dans
_adn/notion-sync.md - Interroger l'API Notion pour lister les pages modifiées après cette date
- Classifier chaque page :
- Nouvelle : pas de note Obsidian correspondante (pas de
source_notionqui matche) - Modifiée : une note Obsidian existe avec ce
source_notion, et la page Notion a été modifiée après leimported_atde la note - Inchangée : la page Notion n'a pas bougé → rien à faire
- Supprimée dans Notion : la note Obsidian référence une page qui n'existe plus → signaler
- Nouvelle : pas de note Obsidian correspondante (pas de
- Produire un rapport de diff avant de procéder :
## Diff Notion — 2026-04-16
- 3 nouvelles pages à importer
- 5 pages modifiées depuis le dernier import
- 42 pages inchangées (ignorées)
- 1 page supprimée dans Notion (note Obsidian à vérifier)
Étape 2 — Import et mapping
Pour chaque page nouvelle ou modifiée :
2.1 — Extraire le contenu Notion
- Récupérer le contenu complet de la page (blocs texte, listes, tableaux, callouts)
- Récupérer toutes les propriétés de la base de données
- Récupérer les sous-pages si applicable
2.2 — Mapper les propriétés → frontmatter YAML
Appliquer le mapping défini dans _adn/notion-sync.md :
---
title: "Titre de la page Notion"
type: resource # ← déterminé par analyse du contenu
created: 2026-03-15T10:00:00 # ← propriété Created de Notion
updated: 2026-04-16T22:00:00 # ← date de l'import
tags:
- domaine/tech/ia # ← mappé depuis Category: Tech + Tags: AI
- projet/openclaw # ← connexion détectée par l'IA
- import/notion # ← toujours présent sur les imports
- statut/actif # ← mappé depuis Status: In Progress
status: active
summary: "..." # ← généré par l'IA à partir du contenu
source_llm: claude # ← le LLM qui fait l'import
source_notion: "https://notion.so/page-abc123"
imported_at: 2026-04-16T22:00:00
notion_properties: # ← propriétés originales conservées
status: "In Progress"
category: "Tech"
tags: ["AI", "MCP"]
priority: "High"
related:
- "[[Note existante liée]]"
---
2.3 — Convertir le contenu Markdown
Notion utilise son propre format de blocs. Convertir vers du Markdown Obsidian propre :
| Bloc Notion | Markdown Obsidian |
|---|---|
| Heading 1/2/3 | #, ##, ### |
| Bulleted list | - item |
| Numbered list | 1. item |
| To-do | - [ ] item / - [x] item |
| Callout | > [!tip] / > [!warning] etc. |
| Code block | ```lang ``` |
| Quote | > citation |
| Table | Tableau Markdown standard |
| Divider | --- |
| Toggle | Section avec heading (les toggles n'existent pas en Obsidian) |
| Mention de page | [[Nom de la note]] si elle existe dans le vault |
| Lien externe | [texte](url) |
| Image |  — télécharger localement si possible |
2.4 — Déterminer le type
Analyser le contenu pour assigner le bon type Obsidian :
- Mots-clés projet (objectif, deadline, sprint, livrable) →
project - Mots-clés connaissance (guide, tutoriel, référence, documentation) →
resource - Mots-clés décision (décidé, choisi, comparé, vs) →
decision - Mots-clés idée (idée, concept, brainstorm, et si) →
idea - Structure journal (date, humeur, accompli) →
daily - Notes de réunion (participants, agenda, actions) →
meeting - Impossible à classer →
inbox
Étape 3 — Intégration dans le vault
C'est l'étape où l'IA apporte le plus de valeur — bien au-delà d'un simple import.
3.1 — Détection de connexions
Pour chaque note importée, chercher dans le vault existant :
- Notes avec les mêmes tags
projet/...oudomaine/...→ créer des[[liens]] - Notes qui mentionnent les mêmes entités (outils, personnes, concepts) → créer des liens
- Décisions liées à un projet commun → relier au hub du projet si il existe
- MOC existantes qui devraient référencer cette note → l'ajouter
3.2 — Gestion des conflits (pages modifiées)
Quand une page Notion a été modifiée ET que la note Obsidian correspondante a aussi été modifiée :
- Comparer les dates :
updatedde la note Obsidian vslast_edited_timede Notion - Si seul Notion a changé → mettre à jour la note Obsidian (contenu + propriétés)
- Si seul Obsidian a changé → ne pas écraser (Obsidian est la source de vérité pour le vault)
- Si les deux ont changé → créer un callout de conflit :
> [!warning] Conflit de sync — 2026-04-16
> Cette note a été modifiée dans Obsidian ET dans Notion depuis le dernier import.
> - Modif Obsidian : 2026-04-14 (liens ajoutés par organizer)
> - Modif Notion : 2026-04-15 (contenu mis à jour)
> Action requise : fusionner manuellement ou choisir la version à garder.
3.3 — Placement
- Notes nouvelles → dossier selon le
type(comme le note-creator) - Notes mises à jour → restent dans leur dossier actuel
Étape 4 — Logging et mise à jour config
-
Mettre à jour
_adn/notion-sync.md:- Dernière sync = maintenant
- Incrémenter les compteurs si applicable
-
Écrire un log dans
_adn/notion-sync-log.md(append) :
## Sync — 2026-04-16T22:00:00
**Source** : Base Veille Tech (def456)
**Résultat** :
- 3 nouvelles notes importées :
- `veille-ia-agents-2026.md` → knowledge/
- `veille-mcp-servers-update.md` → knowledge/
- `note-reunion-partenariat.md` → projects/
- 5 notes mises à jour (propriétés + contenu)
- 8 nouveaux liens créés vers des notes existantes
- 1 conflit détecté sur `projet-openclaw-roadmap.md` (à résoudre manuellement)
- 0 erreurs
**Durée** : ~5 min
**Prochaine sync recommandée** : 2026-04-17
Modes d'exécution
| Mode | Usage | Description |
|---|---|---|
| Sync complète | Hebdomadaire | Toutes les bases configurées |
| Sync ciblée | À la demande | Une base ou une page spécifique |
| Import ponctuel | À la demande | Importer une page Notion par son URL, sans config préalable |
| Dry run | Debug | Produire le diff et le rapport sans rien écrire |
Import ponctuel (sans config)
L'utilisateur peut donner une URL Notion directement : "importe cette page : https://notion.so/..."
Dans ce cas :
- Récupérer la page via l'API
- Appliquer le mapping standard (ou demander si ambigu)
- Créer la note dans
inbox/par défaut - L'organizer la triera ensuite
Règles de sécurité
- Notion est en lecture seule — on ne modifie jamais Notion depuis cette skill
- Obsidian est la source de vérité — en cas de conflit, Obsidian gagne (sauf décision explicite de l'utilisateur)
- Ne jamais écraser une note Obsidian sans vérifier le conflit
- Conserver
notion_properties: les propriétés originales Notion sont toujours gardées dans le frontmatter pour référence - Logger chaque action dans le sync-log
- Les images Notion sont téléchargées localement si possible (les URLs Notion expirent)
Checklist
_adn/notion-sync.mdexiste et est à jour- Le diff a été calculé avant l'import
- Chaque note importée a
source_notion,imported_at, et le tagimport/notion - Les propriétés Notion sont conservées dans
notion_properties - Les connexions avec le vault existant ont été cherchées et créées
- Les conflits sont signalés, pas écrasés
- Le sync-log est mis à jour
- La date de dernière sync est mise à jour dans la config