--- id: 0025 title: Sync bidireccional con vault Obsidian / markdown status: pending priority: low created: 2026-05-01 depends_on: [0024] --- ## Objetivo Espejar el grafo activo a un vault de markdown (estilo Obsidian) en `projects/osint_graph/vaults//`. Cada entidad = una nota; cada relacion = un wikilink. El usuario puede navegar el grafo desde Obsidian y editar campos alli; los cambios vuelven al grafo. Encaja con `vaults/` ya conceptualizados en el registry. ## Alcance - Watcher de filesystem + serializer/parser de notas con frontmatter YAML para los campos del entity_type. - Plantilla por entity_type configurable (apoyandose en el exporter Markdown de 0024). - Resolucion de conflictos: timestamp + merge campo a campo; preferencia configurable (vault wins / db wins / prompt). - Modo unidireccional inicial (graph -> vault) si la ida y vuelta es mucho trabajo. v2 anade sync de vuelta. ## Decisiones - Sync continuo o on-demand (boton "Sync now")? Empezar on-demand. El watcher se anade en una segunda fase. - Detectar cambios externos via `mtime` + checksum. - Wikilinks usan ids del registry, no nombres (estables ante renames). ## Definicion de hecho - Boton "Sync to vault" genera N notas con frontmatter correcto y wikilinks navegables en Obsidian. - Editar un campo en la nota y "Sync from vault" actualiza la entidad en operations.db. - No se pierden datos cuando hay edicion concurrente en ambos lados (resolucion de conflicto explicita).