mcpField
O
obsidian-vault-management

obsidian-vault-management

github.com/julianobarbosaProductivity14309 installsUpdated 2d ago
Repository

About obsidian-vault-management

A skill for organizing and maintaining Obsidian vaults using a PARA-like folder structure. It provides conventions for notes, templates, queries, and common plugin workflows.

Key features

  1. 01PARA-like folder organization
  2. 02Note and daily-note templates
  3. 03Wikilinks and callout conventions
  4. 04Dataview query examples
  5. 05Plugin and vault maintenance guidance

Use cases

  1. 01Organizing project and reference notes
  2. 02Creating consistent daily notes
  3. 03Building queries over vault content
  4. 04Maintaining links after file changes

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/julianobarbosa/claude-code-skills --skill obsidian-vault-management

After installing, type/obsidian-vault-managementin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
canvas.md
dataview.md
plugins.md
templater.md
scripts/
create-daily-note.py
find-orphan-notes.py
tag-overview.py

Details

From the project README

Obsidian Vault Management

Vault Structure (PARA-Based)

This vault uses a PARA-like organization:

FolderPurpose
00 - Maps of ContentIndex notes linking related topics
01 - ProjectsActive project notes
02 - AreasOngoing responsibilities
03 - ResourcesReference materials
04 - PermanentEvergreen/zettelkasten notes
05 - FleetingQuick capture notes
06 - DailyDaily notes (YYYY/MM/YYYYMMDD.md)
07 - ArchivesCompleted/inactive content
08 - booksBook notes and clippings
99 - MetaTemplates, settings
ClippingsWeb clips and imports

Quick Reference

Linking Syntax
[[Note Name]]                    # Basic wikilink
[[Note Name|Display Text]]       # Aliased link
[[Note Name#Heading]]            # Link to heading
[[Note Name#^block-id]]          # Link to block
![[Note Name]]                   # Embed note
![[image.png]]                   # Embed image
![[Note Name#Heading]]           # Embed section
Frontmatter Template
---
created: {{date:YYYY-MM-DDTHH:mm}}
updated: {{date:YYYY-MM-DDTHH:mm}}
title: "Note Title"
type: note
status: draft
tags:
  - tag1
  - tag2
aliases:
  - "Alternate Name"
cssclasses:
  - custom-class
---
Callouts
> [!note] Title
> Content

> [!warning] Important
> Warning content

> [!tip] Helpful tip
> Tip content

> [!info]+ Collapsible (open by default)
> Content

> [!danger]- Collapsed by default
> Content

Available callout types: note, abstract, info, todo, tip, success, question, warning, failure, danger, bug, example, quote

Creating Notes

Daily Note

Create in 06 - Daily/YYYY/MM/ with filename YYYYMMDD.md:

---
created: 2025-12-09T09:00
updated: 2025-12-09T09:00
title: "20251209"
type: daily-note
status: true
tags:
  - daily
  - journal
  - 2025
  - 2025-12
aliases:
  - "2025-12-09"
date_formatted: 2025-12-09
topics:
  - "[[daily]]"
  - "[[journal]]"
related:
  - "[[2025-12-08]]"
  - "[[2025-12-10]]"
cssclasses:
  - daily
---

# Daily Note - 2025-12-09

### Tasks
- [ ] Task 1

### Journal
...

### Navigation
<< [[2025-12-08]] | **Today** | [[2025-12-10]] >>
Zettelkasten Note

Create in 04 - Permanent/:

---
created: {{date}}
type: zettelkasten
tags:
  - permanent
  - topic
---

# Note Title

## Main Insight
**Key Idea**: [Main point]

## Connections
- [[Related Note 1]]
- [[Related Note 2]]

## References
- Source citation

Dataview Queries

For dataview query syntax, see references/dataview.md.

Quick examples:

LIST FROM "06 - Daily" WHERE file.cday = date(today) SORT file.ctime DESC
TABLE status, tags FROM "01 - Projects" WHERE status != "completed"

Templates

Templates location: 99 - Meta/00 - Templates/

For Templater syntax, see references/templater.md.

Common Templater variables:

<% tp.file.title %>              # Current file name
<% tp.date.now("YYYY-MM-DD") %>  # Current date
<% tp.file.cursor(1) %>          # Cursor position
<% tp.system.prompt("Question") %> # User input prompt

Installed Plugins

PluginPurpose
DataviewQuery and display data from notes
TemplaterAdvanced templates with scripting
Auto Note MoverAuto-organize notes by tags
Periodic NotesDaily/weekly/monthly notes
KanbanKanban boards in markdown
Tag WranglerBulk tag management
Table EditorMarkdown table editing
Advanced URIDeep links to notes
Local REST APIExternal API access

File Operations

Creating a Note
  1. Determine appropriate folder based on note type
  2. Add proper frontmatter
  3. Use consistent naming conventions
  4. Include relevant tags for auto-organization
Best Practices
  • Use descriptive filenames (avoid special characters except hyphens)
  • Always include created and updated timestamps
  • Tag notes for discoverability
  • Link to related notes bidirectionally
  • Use callouts for important information
  • Include navigation links in daily notes

Advanced Features


Gotchas

  • Bulk operations outside Obsidian don't trigger link-rebuilding — external scripts must signal a :Reindex or wait for the next vault open.
  • Dataview cache is per-vault and per-session — CLI script-based DQL queries may see stale state if Obsidian was last open with different filters.
  • Templater scripts via CLI run in a different context than the UI — many tp.system.* functions return nil (no UI to prompt against).
  • PARA folder moves break tag-based queries — if your queries hardcode folder paths, refactor them to use tags or properties before reorganizing.
  • Daily note rotation: changing the daily-note format mid-vault leaves old notes orphaned — they don't auto-migrate to the new format; a rename pass is needed.

Comments

Markdown supported