cross-linker

Detect and insert missing wikilinks between Obsidian vault pages.

Updated Nov 9, 2023
One-click install
npx skills add https://github.com/oresttokovenko/dot-files --skill cross-linker-oresttokovenko
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: cross-linker
Source: https://github.com/oresttokovenko/dot-files/tree/main/chezmoi/dot_agents/skills/cross-linker
Command: npx skills add https://github.com/oresttokovenko/dot-files --skill cross-linker-oresttokovenko

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Pages in an Obsidian vault often mention each other without actual wikilinks, leaving the knowledge graph fragmented and orphan pages disconnected. This Skill scans the vault, finds unlinked mentions and semantic relationships, and writes the missing links directly into your pages. ## Core Features & Use Cases - Missing Link Detection: Scans page bodies for unlinked mentions of page names, titles, and aliases, with case- and diacritic-insensitive matching. - Scored Link Suggestions: Ranks candidates with a composite scoring system (exact matches, shared tags, cross-category connections) and labels them EXTRACTED, INFERRED, or AMBIGUOUS. - Typed Relationships: Infers semantic relationship types (uses, extends, implements, contradicts) and writes them to a relationships: frontmatter block. - Safe Writes: Takes a Git snapshot of the vault before modifying files, updates misc-page project affinity scores, and refreshes the QMD search index. - Use Case: After ingesting a batch of new notes into your wiki, run this Skill to weave them into the existing graph — it links mentions inline, adds Related sections, and reports remaining orphan pages. ## Quick Start Ask the assistant to find and add missing cross-references across your Obsidian wiki pages.

Frequently Asked Questions about cross-linker

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find missing links between Obsidian notes?

Run the cross-linker against your vault: it builds a registry of page names, titles, and aliases from frontmatter, then scans page bodies for unlinked mentions. Candidates are scored and labeled EXTRACTED, INFERRED, or AMBIGUOUS before any links are written.

How to automatically add wikilinks in an Obsidian vault?

The Skill wraps the first natural mention of a target page in [[wikilinks]] inline, or appends a Related section when pages are only semantically connected. It never double-links, skips code blocks and frontmatter, and prefers the shortest unambiguous link path.

Does cross-linking modify my Obsidian notes safely?

Yes. Before the first write, the Skill checks whether the vault is a standalone Git repository and commits a pre-write snapshot. If the snapshot fails, it aborts without editing any files, and you can roll back with git reset --hard to the recorded SHA.

Can it handle accented names when matching wiki pages?

Yes. Matching normalizes both page names and body text with Unicode NFKD, stripping combining marks, so body text like "Muller" matches a page named [[entities/müller]]. Matching is also case-insensitive.

What is the difference between cross-linker and wiki-lint?

Cross-linker is write-heavy: it actually modifies pages to add links and typed relationships. Wiki-lint only reports issues without changing content, so use lint for auditing and cross-linker for fixing connectivity.

When should I not run automatic wiki cross-linking?

Avoid acting on AMBIGUOUS low-score candidates, which are skipped by default. The Skill also never touches _archives/ or _readouts/ directories, since archives are frozen snapshots and readouts are derived output.