obsidian-best-practices
npx machina-cli add skill msewell/agent-stuff/obsidian-best-practices --openclawObsidian Best Practices
Quick start — new vault setup
- Create a vault folder (e.g.,
~/vaults/brain). - Create the folder structure:
vault/ ├── _templates/ ├── daily/ ├── meetings/ ├── projects/ ├── references/ ├── archive/ └── attachments/ - Enable core plugins: Daily Notes, Templates, Backlinks, Outgoing Links, Tags, Graph View, Command Palette, Page Preview, Bookmarks, Canvas, Properties View.
- Install Tier 1 community plugins: Dataview, Templater, Obsidian Git, Tasks, Calendar.
- Create
_templates/daily.md,_templates/meeting.md,_templates/project.md,_templates/reference.mdusing the templates in references/templates-and-daily-notes.md. - Configure Daily Notes: date format
YYYY-MM-DD, locationdaily/, template_templates/daily.md, open on startup. - Configure Templater: template folder
_templates, enable folder templates (daily/→_templates/daily.md,meetings/→_templates/meeting.md), trigger on new file creation. - Initialize Git:
git init, create private remote, configure Obsidian Git plugin (auto backup every 10-30 min, auto pull on open, auto push after commit).
Vault organization principles
- Flat by default. Most notes live at the vault root. Folders are for note types (meetings, projects), not topics. Topics are tags.
- Prefix system folders with
_(e.g.,_templates/). - Never nest deeper than one level.
- Archive, don't delete. Move stale notes to
archive/. - For alternative approaches (PARA, Zettelkasten, LYT), see references/vault-organization-and-style.md.
Frontmatter schema
Every note gets this minimum frontmatter:
---
tags:
- type/meeting
- project/auth-redesign
created: 2026-02-26
---
Rules:
- Flat YAML only — Obsidian doesn't support nested properties.
- Namespaced tags:
type/,project/,lang/,topic/. Pluralize leaf values. createdandupdatedinYYYY-MM-DDformat.statuson actionable notes:active,paused,completed,archived.- Quote wikilinks in YAML:
related: "[[Other Note]]".
Creating Obsidian-compatible Markdown
When creating or editing .md files for an Obsidian vault:
- Use wikilinks:
[[Note Title]], not[Note Title](Note%20Title.md). - Use aliases for readability:
[[Authentication Middleware|auth middleware]]. - Use block references for precision:
[[Architecture Doc#^decision-rationale]]. - Use
##for top-level sections (reserve#for the note title). - Use callouts for emphasis:
> [!warning] This API is deprecated in v3 > Use the new endpoint instead. - Use Templater syntax (
<% tp.date.now("YYYY-MM-DD") %>) in template files only. - Use inline fields for Dataview:
Status:: In Progress.
Writing Dataview queries
Use dataview code blocks. Common patterns:
Table from tagged notes:
```dataview
TABLE status, priority, deadline
FROM #type/project
WHERE status = "active"
SORT priority ASC
```
Task aggregation:
```dataview
TASK
WHERE due >= date(today) AND due <= date(today) + dur(7 days)
WHERE !completed
SORT due ASC
```
Recent notes list:
```dataview
LIST
WHERE updated >= date(today) - dur(30 days)
SORT updated DESC
LIMIT 20
```
For DataviewJS, inline fields, and advanced patterns, see references/dataview-git-and-workflows.md.
Canvas files
Canvas files (.canvas) use the JSON Canvas spec:
- Nodes:
text,file,link, orgroup. - Edges connect nodes with optional labels and colors.
- Coordinates can be negative — the canvas extends infinitely.
- Color-code by category: blue for people, yellow for events, green for decisions, red for blockers.
Reference material
Consult these for detailed guidance:
- Vault structure, style guide, MOCs, linking strategies: references/vault-organization-and-style.md
- Core and community plugins, keyboard shortcuts: references/plugins-and-configuration.md
- Templates, frontmatter conventions, daily/weekly notes: references/templates-and-daily-notes.md
- Dataview queries, Git backup, knowledge capture pipeline: references/dataview-git-and-workflows.md
- AI plugins, MCP servers, agent skills, Canvas: references/ai-integrations-and-canvas.md
- Curated external links and resources: references/resources-and-links.md
Source
git clone https://github.com/msewell/agent-stuff/blob/main/skills/obsidian-best-practices/SKILL.mdView on GitHub Overview
Guides setting up, configuring, and organizing Obsidian vaults for software engineers, covering folder structure, plugins, templates, Git backup, Dataview queries, and AI integrations. It also prescribes best-practice frontmatter schemas, wikilinks, Templater syntax, Dataview code blocks, and Canvas JSON, with use-cases for new vaults, templates, and queries.
How This Skill Works
The skill walks you through a concrete setup flow: create the vault and a flat folder structure, enable core plugins, install Tier 1 plugins, create templates, and configure daily notes, templater, and Git. It codifies frontmatter rules (flat YAML with namespaced tags, created/updated dates) and content conventions (wikilinks, aliases, block references, callouts, and Dataview inline fields) to ensure consistency across notes.
When to Use It
- Setting up a new Obsidian vault
- Choosing and recommending plugins for a project
- Creating daily, meeting, and project templates
- Writing and optimizing Dataview queries
- Configuring Git backup and auto-sync
Quick Start
- Step 1: Create a vault folder and the folders: vault/_templates/, vault/daily/, vault/meetings/, vault/projects/, vault/references/, vault/archive/, vault/attachments/.
- Step 2: Enable core plugins (Daily Notes, Templates, Backlinks, Outgoing Links, Tags, Graph View, Command Palette, Page Preview, Bookmarks, Canvas, Properties View) and install Tier 1 plugins (Dataview, Templater, Obsidian Git, Tasks, Calendar).
- Step 3: Create templates in _templates (daily.md, meeting.md, project.md, reference.md), configure Daily Notes and Templater, and initialize Git with a private remote for auto backups.
Best Practices
- Keep a flat vault structure with _ prefixed folders and minimal nesting
- Use a consistent frontmatter schema with created/updated dates and namespaced tags
- Rely on wikilinks, aliases, and block references for clean cross-linking
- Centralize templates in _templates and configure Templater for new files
- Enable Git backup with auto-push/pull and archive stale notes instead of deleting
Example Use Cases
- New vault for a microservice with _templates and daily notes
- Dataview table listing active projects by type/project
- Meeting notes template with frontmatter, templating, and callouts
- Git-backed vault backup with auto pull on open
- Canvas JSON example linking Architecture Doc via block references