| name | obsidian-vault |
| description | Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian. |
| related-agents | ["documentation-engineer"] |
| related-skills | ["obsidian-markdown","obsidian-canvas"] |
| loop-eligible | false |
Obsidian Vault
Vault location
Assume the user is running this skill from inside a vault. Resolve the vault root using git:
VAULT=$(git rev-parse --show-toplevel)
All commands below use $VAULT. Mostly flat at root level.
Naming conventions
- Index notes: aggregate related topics (e.g.,
Ralph Wiggum Index.md, Skills Index.md, RAG Index.md)
- Title case for all note names
- No folders for organization - use links and index notes instead
Linking
- Use Obsidian
[[wikilinks]] syntax: [[Note Title]]
- Notes link to dependencies/related notes at the bottom
- Index notes are just lists of
[[wikilinks]]
Workflows
Search for notes
VAULT=$(git rev-parse --show-toplevel)
find "$VAULT" -name "*.md" | grep -i "keyword"
grep -rl "keyword" "$VAULT" --include="*.md"
Or use Grep/Glob tools directly on the vault path.
Create a new note
- Use Title Case for filename
- Write content as a unit of learning (per vault rules)
- Add
[[wikilinks]] to related notes at the bottom
- If part of a numbered sequence, use the hierarchical numbering scheme
Find related notes
Search for [[Note Title]] across the vault to find backlinks:
VAULT=$(git rev-parse --show-toplevel)
grep -rl "\\[\\[Note Title\\]\\]" "$VAULT"
Find index notes
VAULT=$(git rev-parse --show-toplevel)
find "$VAULT" -name "*Index*"
Find untagged references
Detect note titles mentioned in prose that aren't wrapped in [[wikilinks]]. This catches references the author forgot to link.
- Build a list of all note titles (filenames without
.md)
- For each title, search the vault for occurrences that are NOT inside
[[ ]]
- Report the file, line, and unlinked mention
VAULT=$(git rev-parse --show-toplevel)
titles=$(find "$VAULT" -name "*.md" -printf '%f\n' | sed 's/\.md$//')
for title in $titles; do
grep -rn --include="*.md" "$title" "$VAULT" \
| grep -v "\[\[$title\]\]" \
| grep -v "^.*/$title\.md:"
done
Or use Grep to search for a specific title and manually check which hits lack wikilink syntax.
Find duplicate or misspelled tags
Detect tags that look like near-duplicates (case differences, typos, plural/singular variants).
- List all unique tags across the vault:
VAULT=$(git rev-parse --show-toplevel)
grep -roh '#[A-Za-z0-9_/-]\+' "$VAULT" --include="*.md" \
| sort | uniq -c | sort -rn
- Find case-insensitive duplicates (e.g.,
#RAG vs #rag vs #Rag):
grep -roh '#[A-Za-z0-9_/-]\+' "$VAULT" --include="*.md" \
| sort -u | awk '{lower=tolower($0); if (seen[lower]++) print prev[lower], $0; else prev[lower]=$0}'
- Spot low-frequency tags that may be typos of common ones:
grep -roh '#[A-Za-z0-9_/-]\+' "$VAULT" --include="*.md" \
| sort | uniq -c | sort -n | head -30
Review the low-count tags against the high-count list. Tags used only once or twice are likely misspellings of an existing tag.
- Find where a suspicious tag is used so you can fix it:
grep -rn '#suspicioustag' "$VAULT" --include="*.md"