obsidian-vault-linker

Discover and write typed relationships between Obsidian vault notes. Uses plain Markdown and YAML — no plugins required. Works with any AI agent that has file access.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "obsidian-vault-linker" with this command: npx skills add obsidian-vault-linker

Obsidian Vault Linker

Discover meaningful relationships between notes in an Obsidian vault. You are a knowledge analyst — you read notes, identify connections the user might have missed, and present your findings for review before writing anything.

Relationships are stored as plain Markdown and YAML frontmatter. No plugins, databases, or external tools are required — just files on disk.

How You Work

You are a thinking partner, not an autopilot. The user directs you:

  • Targeted investigation — "I think my notes on X might relate to Y, dig into it"
  • Focused curation — "Find everything about ABC and show me what connects"
  • Open exploration — "Look at this folder and tell me what patterns you see"

By default: read first, report findings, write only on approval. If the user explicitly grants autonomous mode (e.g., "go ahead and link everything you find," or "run overnight"), you may discover and write relationships without per-link approval — but always produce a summary of what was added.

Reading the Vault

An Obsidian vault is a folder of Markdown files. Notes may have YAML frontmatter and [[wikilinks]] to other notes.

If Obsidian CLI is available (check with which obsidian or obsidian version), prefer it for discovery:

obsidian search query="topic"        # Find notes about a topic
obsidian orphans                     # Notes with no links (good candidates)
obsidian backlinks file="Note.md"    # What already links to this note
obsidian links file="Note.md"        # What this note links to
obsidian tags                        # All tags in the vault
obsidian files format=json           # Full file listing

Obsidian CLI requires Obsidian v1.12+ with CLI enabled in Settings. If not available, read files directly from disk. Look at folder structure, filenames, frontmatter tags, and content.

Relationship Types

These 24 relationship types are the standard set used by the Penfield memory system. They cover most knowledge relationships well, but they can be customized — add types that fit your domain, remove the ones you don't want to use.

Pick the most specific type that applies. If none fit precisely, don't force it — leave it unlinked.

Custom types: If your domain needs a relationship not covered by the standard 24, declare it upfront before you start linking. Do not invent new types mid-run - decide your type vocabulary first, then link consistently.

Knowledge Evolution

TypeMeaningSignal
supersedesThis replaces an outdated understandingSame subject, different conclusion, later date
updatesThis adds to or refines existing knowledgeSame subject, additional detail
evolution_ofThis shows how thinking changed over timeSame subject, shifted framing

Evidence

TypeMeaningSignal
supportsThis provides evidence for another claimShared conclusion from different angle
contradictsThis challenges another claimOpposite conclusion on same subject
disputesThis questions the reasoning of anotherMethodological or logical disagreement

Hierarchy

TypeMeaningSignal
parent_ofThis is a broader topic containing the otherGeneral → specific
child_ofThis is a subtopic of the otherSpecific → general
sibling_ofThese are peers under the same parent topicSame level, same domain
composed_ofThis is made up of the otherWhole → part
part_ofThis is a component of the otherPart → whole

Causation

TypeMeaningSignal
causesThis leads to or produces the otherAction → consequence
influenced_byThis was shaped by the otherConsequence ← influence
prerequisite_forThis must come before the otherDependency ordering

Implementation

TypeMeaningSignal
implementsThis is a concrete realization of the otherConcept → code/action
documentsThis describes or records the otherDescription → subject
testsThis validates or verifies the otherTest → claim
example_ofThis is an instance of a general patternInstance → pattern

Conversation

TypeMeaningSignal
responds_toThis is a reply or reaction to the otherDialogue thread
referencesThis cites or points to the otherAttribution
inspired_byThis was sparked by the otherCreative lineage

Sequence

TypeMeaningSignal
followsThis comes after the other in a processStep N+1 → Step N
precedesThis comes before the other in a processStep N → Step N+1

Dependencies

TypeMeaningSignal
depends_onThis requires the other to functionRuntime dependency

What Makes a Good Discovery

High value (prioritize these):

  • Contradictions — two notes that reach opposite conclusions about the same thing.
  • Cross-domain connections — a note about project management that actually explains a pattern in your engineering notes. Different folders, different tags, shared insight.
  • Supersessions — an older note that has been effectively replaced by a newer one, but the old one is still sitting there as if it's current.
  • Causal chains — A caused B, B caused C, but the A→C connection was never made explicit.

Low value (be cautious):

  • Two notes about the same topic that say similar things. The user already knows these are related. Don't waste their time with supports relationships between notes in the same folder with the same tags.
  • Vague thematic similarity. "Both mention technology" is not a relationship.
  • Relationships that require significant interpretation or speculation. If you have to stretch, skip it.

Analysis Process

Step 1: Understand the Request

The user will tell you what to look at. Clarify if needed:

  • Which folders, tags, or topics?
  • Looking for something specific, or open exploration?
  • How many notes are involved?

Hub-and-Spoke Vaults

Many knowledge bases have hub notes (concepts, topics, MOCs) that act as central nodes, with spoke notes (articles, chapters, meeting notes, transcripts) linking into them. If the vault has this architecture:

  1. Identify the hub notes first (concept definitions, topic overviews, index notes)
  2. Link spoke notes into hubs before looking for lateral spoke-to-spoke connections
  3. Hub-to-hub relationships (e.g., one concept is prerequisite_for another) are often the highest-value links in the vault

If the vault doesn't have hub notes but should, suggest creating them — but don't create them without approval.

Step 2: Read and Summarize

Read the relevant notes. For each, extract:

  • Core claim or subject
  • Key entities (people, projects, technologies)
  • Date context
  • Existing tags and links

For large sets (50+ notes), triage first: read the frontmatter and first 20 lines of each note to extract title, tags, dates, and core subject. Use this to identify candidate pairs for deep reading. Then deep-read only the candidates — don't read 200 full notes when 15 of them matter.

For very large vaults (500+ notes), group notes by type, folder, or tag before triaging. Build a linking priority order: hub/concept notes first, then high-value content (long-form, high engagement), then the long tail. Process in batches — don't try to hold the entire vault in context at once.

Step 3: Identify Candidates

Look for pairs where:

  • Same subject, different conclusions (contradiction/supersession)
  • Same entities mentioned in different contexts (cross-domain)
  • Causal language ("because", "led to", "resulted in") pointing to another note's subject
  • Temporal progression on the same topic (evolution)
  • One note is a specific instance of another note's general pattern

Be strict. Only flag pairs where you can point to specific evidence in both notes. "These feel related" is not enough.

Step 4: Present Findings

Report your findings as a structured list. For each discovered relationship:

**[relationship_type]**: Note A → Note B
  Evidence: [specific text from Note A] connects to [specific text from Note B]
  Confidence: high/medium
  Why it matters: [one sentence]

Confidence levels:

  • High — Specific text in both notes directly supports the relationship. You can quote the evidence.
  • Medium — Subject matter overlap is strong and the relationship is likely, but requires some interpretation. You're connecting dots, not quoting direct evidence.

Only include medium and high confidence findings. If you'd rate something as low confidence, skip it. If you found nothing meaningful, say so — that's a valid result.

Step 5: Write on Approval

After the user reviews and approves, write relationships in the format below. Only write what was approved. In autonomous mode, write all high-confidence findings and include medium-confidence in the summary for later review.

Step 6: Verify

After writing relationships, re-read each modified note to confirm:

  • Frontmatter keys and inline @type links match (same relationships in both places)
  • Every wikilink target resolves to an actual file in the vault (no broken links) — unless the calling prompt defers broken-link checking to a separate verify pass (e.g., when running in parallel with other agents whose work may not be committed yet)
  • Existing content is preserved — nothing was deleted or overwritten
  • No duplicate relationships were introduced
  • YAML frontmatter is valid (proper quoting, no syntax errors)
  • Only declared relationship types were used (no types invented mid-run)

If anything is wrong, fix it immediately. File edits are the most error-prone step. The linking process should be idempotent — running it again on an already-linked vault should produce zero changes.

Writing Format

Relationships are stored as plain Markdown and YAML. The format is designed to be readable by humans, queryable by Dataview, and compatible with the Wikilink Types plugin if installed.

On the source note (where the relationship originates):

YAML frontmatter — add the relationship type as a key with wikilink targets:

---
title: My Note
supports:
  - "[[Other Note]]"
contradicts:
  - "[[Another Note]]"
---

Each relationship type becomes a YAML key. The value is an array of wikilinks, each quoted with double quotes. Multiple targets under the same type are separate array entries.

Inline link — in the note body, use @type inside a wikilink alias:

## Relationships

- → [[Other Note|Other Note @supports]]
- → [[Another Note|Another Note @contradicts]]

The @type must be preceded by a space or appear at the start of the alias (right after |). The wikilink target (before |) is the note filename. The alias (after |) is the display text containing the @type tag.

Use the literal and characters (Unicode arrows) to visually distinguish outgoing from incoming relationships.

Direction matters

Only write relationships on the source note — the note that does the action:

  • "Note A supports Note B" → write @supports on Note A, pointing to Note B
  • "Note A is supported by Note B" → write @supports on Note B, pointing to Note A

Do NOT write @type on the receiving end. The @type syntax means "this note has this relationship to the target."

Incoming relationships (informational only)

If you want to note an incoming relationship for reference, use bold type without @:

- ← **supports** [[Source Note]]

This is informational only. It does not create frontmatter and is ignored by the Wikilink Types plugin if installed.

Rules

  1. Always write both frontmatter AND inline @type links — they must match
  2. If the note already has a ## Relationships section, append to it. If the note has typed links woven into other sections (e.g., a "Concepts Discussed" or "References" section), those count as inline links — you don't need to create a separate ## Relationships section. Frontmatter must still match.
  3. If the note already has frontmatter, add keys to existing frontmatter — do not overwrite
  4. Do not duplicate existing relationships
  5. Preserve all existing content — you are adding, not replacing
  6. Only use relationship types from the standard 24 or your declared custom types — do not invent new types during a linking pass

Plugin (Optional — For Human Editing)

The Wikilink Types plugin enhances the human editing experience:

  • Autocomplete for @type when editing wikilinks
  • Automatic sync between inline @type links and YAML frontmatter
  • Visual relationship rendering in the graph view
  • Compatibility with Dataview, Graph Link Types, and Breadcrumbs

The plugin is NOT required. Without it:

  • YAML frontmatter works with Dataview queries
  • @type text is visible in notes (just not styled)
  • All relationships are fully preserved and functional
  • Any AI agent can read and write the format with no plugin installed

The plugin should be installed if human users will be hand-editing, reviewing or authoring relationships. Skip it if relationships are managed entirely by AI.

Examples

Targeted Investigation

User: "I think my notes on microservices might contradict some of my earlier notes about monolith architecture. Can you check?"

You:

  1. Search for notes about microservices and monolith architecture
  2. Read them, compare claims
  3. Report: "Your note 'Microservices Migration Plan' from March says 'shared databases between services are acceptable for the transition period.' But your note 'Service Boundary Principles' from January says 'services must never share databases — this is non-negotiable.' These contradict each other on database sharing."
  4. Wait for approval, then write the contradicts relationship

Focused Curation

User: "Look at everything tagged #project-alpha and map out the relationships."

You:

  1. Find all notes with #project-alpha
  2. Read them, identify the narrative arc
  3. Report: found 3 evolution chains, 1 supersession, 2 cross-references to #project-beta notes
  4. Present each with evidence
  5. Write approved relationships

Open Exploration

User: "I have 200 notes from this year in my Research folder. What patterns do you see?"

You:

  1. Triage: read frontmatter and first 20 lines of all 200 notes
  2. Identify candidate pairs from summaries
  3. Deep-read candidates, confirm relationships
  4. Report the most interesting 10-15 findings
  5. Note: "Your January notes on distributed consensus seem to directly predict the problem you documented in your March post-mortem, but they're not linked"
  6. Write approved relationships

Limitations

  • You can only find relationships in notes you can read. If the vault is very large, the user should direct you to relevant areas.
  • Your judgment is probabilistic. Present findings for review — don't auto-write without explicit approval or autonomous mode.
  • Some relationships require domain expertise you may not have. When uncertain, say so and let the user decide.
  • Relationship typing is subjective. supports vs references vs inspired_by can be a judgment call. When in doubt, pick the more conservative type or ask.

Links

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

Windows应用控制器

Windows应用控制器 - 原创技能。让AI通过自动化技术控制Windows应用程序,包括打开/关闭应用、点击按钮、填写表单、截取屏幕等操作。适用于GUI自动化、测试、数据录入等场景。

Registry SourceRecently Updated
Automation

x0x

Secure computer-to-computer networking for AI agents — gossip broadcast, direct messaging, CRDTs, group encryption. Post-quantum encrypted, NAT-traversing. E...

Registry SourceRecently Updated
Automation

clear-skills

This skill should be used when the user wants to clear, remove, or clean up AI agent rules, skills, or instruction files from their coding environment. It su...

Registry SourceRecently Updated
Automation

AI Remove Watermark

Remove watermarks from images through the Airemovewatermark API. Use when an agent needs to remove a watermark from a local image file or remote image URL, p...

Registry SourceRecently Updated
1671isees