From claude-superskills
Creates, validates, repairs, and analyzes wikilinks in Obsidian vaults. Handles adding links between notes, finding broken links, backlinks, orphaned notes, and bidirectional structures.
npx claudepluginhub ericgandrade/claude-superskills --plugin claude-superskillsThis skill uses the workspace's default tool permissions.
This skill manages wikilinks — the `[[double bracket]]` linking syntax that is the core navigation primitive in Obsidian. It covers creating new links, validating that target notes exist, repairing broken links after renames, discovering unlinked mentions, and building Dataview-compatible linking patterns.
Generates Obsidian Flavored Markdown with wikilinks, callouts, embeds, frontmatter properties, tags, and block references for creating/editing notes in Obsidian vaults.
Search, create, and manage notes in Obsidian vault with wikilinks and index notes. Useful for finding, creating, or organizing notes via grep/find commands.
Manages Obsidian vaults: search, create, edit, move Markdown notes; handle YAML frontmatter, wikilinks, backlinks, daily notes, Zettelkasten setup, and sync via obsidian-cli.
Share bugs, ideas, or general feedback.
This skill manages wikilinks — the [[double bracket]] linking syntax that is the core navigation primitive in Obsidian. It covers creating new links, validating that target notes exist, repairing broken links after renames, discovering unlinked mentions, and building Dataview-compatible linking patterns.
Wikilinks are what make a vault a knowledge graph. This skill treats linking not as a formatting task but as an information architecture task: every link represents a relationship between ideas, and that relationship should be intentional, bidirectional where appropriate, and always resolvable to a real note.
Invoke this skill when:
Do NOT use this skill when:
obsidian-frontmatter insteadobsidian-note-builder instead[text](url) syntax, not wikilinks| Syntax | Result |
|---|---|
[[Note Name]] | Link to a note. Displays the note name as text. |
[[Note Name|Display Text]] | Link to a note with custom display text. |
[[Note Name#Heading]] | Link to a specific heading within a note. |
[[Note Name#^blockid]] | Link to a specific block by its block ID. |
[[#Heading in current note]] | Link to a heading in the current note. |
[[ ]] with just a space | Creates an "empty" link — avoid this. |
![[Note Name]] | Embed (transclude) the entire note inline. |
![[Note Name#Heading]] | Embed only the section under that heading. |
Block IDs: A block ID is a unique identifier appended to any line or paragraph:
This is a paragraph I want to reference. ^my-block-id
Then link to it from another note: [[My Note#^my-block-id]]
Block IDs must be:
^ before the IDBefore adding or validating links, identify the vault's file layout:
ls -1 <vault-root>/)find <vault-root> -name "*.md" | grep -i "<note-name>"Determine which link operation the user needs:
| User request | Task |
|---|---|
| "Add links to this note" | Create links: Insert wikilinks into specific text |
| "Fix broken links" | Validate & repair: Find links whose target does not exist |
| "Find orphans" | Audit: List notes with no incoming links |
| "Convert mentions to links" | Autolink: Replace plain-text note names with wikilinks |
| "Build a MOC" | Aggregate: Create or update a Map of Content note |
| "Link this to that" | Connect: Create a specific link between two named notes |
When creating wikilinks in an existing note:
[[Note Name]][[Note Name|Anchor Text]][[Note Name#Heading]]Text replacement rule: When converting a plain-text mention to a wikilink, replace the entire phrase that matches the note name, not partial words. "Project Alpha" → [[Project Alpha]], but "project alphanumeric" should NOT be auto-linked.
To check that all wikilinks in a note (or vault) resolve to existing files:
[[...]] patterns from the source file(s)#heading, |display text, ! prefix).md file: find <vault-root> -iname "<note-name>.md"| Source note | Broken link | Reason |
|---|---|---|
Weekly Review.md | [[Team Meeting Notes]] | No matching file found |
Project Alpha.md | [[Budget 2023#^block1]] | Note exists but block ID not found |
Orphaned notes are Markdown files that no other note links to. To find them:
# List all .md files in the vault
find <vault-root> -name "*.md" > /tmp/all_notes.txt
# Extract all wikilink targets from all notes
grep -roh "\[\[.*\]\]" <vault-root> | sed 's/\[\[//;s/\]\]//;s/|.*//' | sort -u > /tmp/all_linked.txt
# Notes not referenced anywhere
comm -23 <(sort /tmp/all_notes.txt | xargs -I{} basename {} .md) /tmp/all_linked.txt
Present orphans in a list and suggest:
A MOC is an index note that provides a navigable entry point to a topic cluster. To build or update a MOC:
# <Topic> — Map of Content
## Foundational Concepts
- [[Note A]] — one-line description
- [[Note B]] — one-line description
## Reference Material
- [[Note C]]
- [[Note D]]
## Active Projects
- [[Project Note 1]]
- [[Project Note 2]]
## Related Topics
- [[Adjacent MOC 1]]
- [[Adjacent MOC 2]]
Obsidian tracks backlinks automatically — you do not need to manually add "see also: [[this note]]" in both directions. However, for important relationships, explicit bidirectional linking improves navigability:
[[Target]]## Related section or update the frontmatter aliases in the target note to acknowledge the connectionFor parent-child relationships (a concept note and its sub-notes), use embeds rather than links when you want the content of child notes to appear inline in the parent.
.md) as the link target[[folder/Note Name]][[Q1 OKRs]] is better than [[OKR_2024_Q1_v3]]/, ?, #, ^, [, ], |, \NEVER:
[[Target|Different Text]] instead[text](https://...) syntax![[image.png]] only if the file is thereALWAYS:
Example 1: Add wikilinks to a meeting note
User: "I wrote meeting notes for the Q2 Planning session. Please add wikilinks to the people and projects mentioned."
Workflow:
Output:
Attendees: [[Alice Chen]], [[Bob Martinez]], [[Team Lead]], Sara (no note found — skipping)
Discussed: [[Project Alpha]] timeline slip, budget review for [[Initiative X]], and follow-up on [[Q1 Retrospective]].
Example 2: Find broken links in a note
User: "Check my Research hub note for broken links."
Output:
Scanning Research hub.md for broken links...
✅ [[Deep Work]] — found
✅ [[Atomic Habits]] — found
❌ [[Focus Techniques]] — no matching note in vault
❌ [[Reading List 2024#^morning-reads]] — note exists but block ID not found
2 broken links found.
Suggested fixes:
- [[Focus Techniques]] → Did you mean [[Focus and Productivity]]? (closest match found)
- Remove the ^morning-reads block reference or add the block ID to Reading List 2024.md
Example 3: Create a link between two notes
User: "Link the Product Strategy note to the OKR Tracker note."
See also: [[OKR Tracker]]## Related sectionExample 4: Find orphaned notes
User: "Which notes in my vault have no incoming links?"
Output:
Orphaned notes (not linked from anywhere):
- Ideas Dump.md
- Temp Notes.md
- API Reference v2.md
- Meeting 2024-09-14.md
Suggestions:
- Add [[API Reference v2]] to your Developer Resources MOC
- Archive or delete Temp Notes.md if no longer needed
Example 5: Build a Map of Content
User: "Create a MOC for all my notes about Product Management."
#product or in a Product/ folder