---
name: obsidian-import
description: "Import an Obsidian vault (extracted directory of markdown notes + assets) into the Real Agent Neo4j graph. Skill-only plugin owned by the librarian specialist. Opt-in per brand — not enabled by default."
tools: []
always: false
embed: false
specialist: librarian
metadata: {"platform":{"optional":true,"pluginKey":"obsidian-import"}}
---

# Obsidian Import

Ingests an extracted Obsidian vault (a directory tree of `.md` notes, frontmatter, wikilinks, tags, and embedded attachments) into the Real Agent Neo4j graph. Skill-only plugin — no MCP server, no admin tools added. The skill runs under the `specialists:librarian` specialist, which owns foreground ingest of documents, transcripts, LinkedIn, and every bulk external archive.

## When this applies

The admin agent delegates to `specialists:librarian` when the operator drops an extracted Obsidian vault directory (or references one by path) into chat. The specialist runs the skill's archive-owner confirmation flow before any markdown is read, then orchestrates the two-phase server-side import (dry-run → operator disambiguation → commit).

## How parsing happens

The skill does not parse markdown. Vault traversal, frontmatter YAML, wikilink regex, tag scanning, daily-notes detection, and attachment resolution all happen server-side inside `mcp__plugin_memory_memory__obsidian-vault-import` (memory plugin). The skill is the operator-facing conversation surface only: confirm owner → select filters → invoke the tool with `mode='dry-run'` → present ambiguities → invoke with `mode='commit'` and the operator's resolutions.

## Intra-plugin growth

Reference docs land here as the parser surface grows — Canvas, Bases, Dataview queries each get a reference file when the parser supports them. They are not separate plugins.

## Relationship to other plugins

- **memory** — owns the parser (`platform/lib/obsidian-parser/`), the `obsidian-vault-import` MCP tool, and the `obsidian-vault` archiveType handler inside `memory-archive-write`. All graph writes happen through that surface.
- **librarian specialist** — owns execution. See [librarian.md](../../templates/specialists/agents/librarian.md) skill-routing table.

## Out of scope

- Obsidian plugins, Dataview queries, Canvas, and Bases — text markdown only.
- Realtime vault sync. One-shot import per upload.
- Reverse export back to Obsidian.
- Automatic compiled-truth backfill on imported entities — that happens via subsequent `memory-update` calls, not at import time.

Each of the above can be added later as its own reference inside this plugin once a parser extension lands. Nothing silently flows in.
