Obsidian Vault Skill
You are working inside an Obsidian vault. Your job is to create and edit notes
that render correctly, stay plugin-compatible, and follow the vault's
established conventions consistently across sessions.
How This Skill Works
This skill contains the core conventions and safe editing rules needed for
every note interaction. For detailed syntax and plugin-specific rules, it
points to reference files in references/ that you load when needed — not
upfront.
Reference files (read on demand — always read BEFORE acting, not after):
Obsidian core syntax
references/syntax.md — Full Obsidian Flavored Markdown syntax: block
references, embeds, Mermaid diagrams, inline comments, footnotes, LaTeX
math, advanced link patterns. Read before working with any of these
constructs.
references/properties.md — Full YAML property type reference: reserved
keys, type rules, edge cases, common schemas. Read before creating or
repairing frontmatter, or when designing a property schema.
Core plugins
references/core-plugins.md — Core Obsidian plugin conventions: Properties
(type inference), Daily Notes, Templates, Graph, Backlinks, Slides, Sync.
Read before working with any core plugin feature — especially property
type consistency or Daily Notes templates.
references/bases.md — Bases database views: .base file YAML format,
filter functions (and their gotchas), formulas, property type requirements,
Bases vs Dataview comparison. Read before creating or editing .base
files or writing notes that feed into a Bases view.
references/canvas.md — Canvas JSON format: node types, sizing/spacing
rules, edge labels, group containment, Enhanced Canvas plugin. Read
before creating or editing .canvas files.
Community plugins
references/dataview.md — Dataview queries, inline fields, DataviewJS,
implicit fields, cross-plugin interactions. Read before writing any
Dataview query or inline field.
references/tasks.md — Tasks plugin emoji format, custom statuses, dates,
priority, recurrence, dependencies, query blocks. Read before writing or
editing tasks with emoji metadata.
references/kanban.md — Kanban board markdown structure, card syntax, lane
management, settings block, safe editing rules. Read before editing any
Kanban board file.
references/meta-bind.md — Meta Bind INPUT/VIEW/BUTTON syntax, property
binding, action types, JavaScript support. Read before writing Meta Bind
interactive elements.
references/templater.md — Templater syntax, common functions, folder
templates, JavaScript in templates, core Templates vs Templater. Read
before creating or editing template files.
Vault access tools
references/vault-tools.md — Tool tiers for interacting with vaults
(direct file ops, Obsidian CLI, MCP servers), environment detection, and
a decision matrix for which tool to use when. Read when choosing between
tools for vault operations, or when working in a new environment.
These files contain the detailed rules that prevent silent rendering errors
and plugin-incompatible output. Reading them after you've already written
something means you'll need to redo it.
Guiding Principles
Render safety first. Never write Markdown that Obsidian core or
installed plugins will misparse or silently corrupt.
Minimum viable change. When editing an existing note, change only what
was asked. Do not reorder sections, alter heading hierarchy, or modify
frontmatter keys unless explicitly requested.
Match the vault's link convention. Do not assume wikilinks or markdown
links. Detect the convention from existing notes and .obsidian/app.json
(useMarkdownLinks setting). If the convention is unclear, ask the user.
Once established, be consistent — never mix conventions within a vault.
See "Convention Detection" below for the full process.
Keep metadata stable. Preserve existing frontmatter keys and their
types. Add new keys only at the end of the frontmatter block. Check for
vault-wide type consistency before adding a property name that might
already exist elsewhere.
Ask before restructuring. If a request implies renaming notes,
splitting files, or changing folder structure, confirm before acting —
these operations can break links vault-wide.
One convention per vault. If the vault uses Tasks plugin emoji syntax,
don't introduce plain checkboxes. If it uses Dataview inline fields, don't
add YAML-only properties. Read existing notes before writing new ones.
Detect, confirm, and persist conventions. When you notice a convention
in the vault — link style, frontmatter schema, task format, tag placement,
date format — check whether it's intentional and persist the finding.
See "Convention Detection" below.
Look things up — don't guess and iterate. When you encounter
unfamiliar Obsidian syntax, a plugin feature you're unsure about, or a
convention that could go multiple ways, use WebSearch to check official
docs and community forums before writing anything. Each reference file
links to its plugin's official documentation — start there.
Trigger: If you've tried something and it didn't work, or you're
about to write syntax you haven't seen confirmed in the vault or in
these reference files, that's the signal to search — not to try another
guess. Two failed attempts without searching is too many.
What to search: The Obsidian docs site (help.obsidian.md), the
plugin's own docs (linked at the top of each reference file), the
Obsidian forum (forum.obsidian.md), Reddit (r/ObsidianMD), and
GitHub issues for the relevant plugin. Community plugins especially
have undocumented behaviors and version-specific quirks that only
surface in forum threads, Reddit posts, and GitHub issues.
Why this matters: Plugin settings change default behavior, and vaults
diverge from defaults frequently. Guessing leads to circular
trial-and-error that wastes time and produces incorrect output. A single
WebSearch call is faster than three wrong attempts.
Convention Detection and Persistence
Obsidian vaults are highly customizable. Two power users' vaults can look
completely different — different link styles, frontmatter schemas, task
formats, plugin configurations, and organizational patterns. An agent that
assumes defaults will break things.
On First Use in a New Vault
When this skill activates in a vault for the first time (no prior convention
record exists), detect and confirm these conventions before writing anything:
1. Link convention — understand the approach, not just the syntax:
- Check
.obsidian/app.json for two settings:
useMarkdownLinks (true = markdown links, false/absent = wikilinks)
newLinkFormat ("shortest" = bare name, "relative" = relative path,
"absolute" = full path from vault root). Default is "shortest".
- Read 3-5 existing notes to confirm actual usage matches the settings. Look
for patterns beyond syntax: Do links use aliases consistently? Are paths
included even when
shortest is the setting? Is there a display-name
convention (e.g., [[folder/Note|Note]] for cleaner reading view)?
- Check frontmatter for link properties (
related:, parent:, etc.) — are
wikilinks quoted? Are they using aliases?
- Look for bidirectional
related: linking — when note A lists note B in
related:, does note B reciprocate? If this is a convention, persist it
and follow it on all new links.
- If mixed styles exist, ask the user which convention to follow going
forward and whether to migrate existing links
- Persist the full picture: link type, path format, alias convention,
bidirectional linking expectation
2. Frontmatter schema:
- Read 3-5 representative notes to identify common property names and types
- Note which properties are used vault-wide vs folder-specific
- Identify any property schemas tied to Dataview queries, Bases views, or
Meta Bind inputs
- Persist the schema pattern
3. Task format:
- Check
.obsidian/plugins/obsidian-tasks-plugin/data.json for taskFormat
(e.g., tasksPluginEmoji)
- Check for custom statuses in the same config
- Check if auto-set dates are enabled (
setCreatedDate, setDoneDate,
setCancelledDate)
- Look at existing tasks in the vault to confirm format in use
- Persist relevant settings
4. Tag convention — understand the user's taxonomy priorities:
- Are tags primarily in frontmatter, inline (
#tag), or both?
- Nested tags (
#project/active) or flat (#project, #active)? Is there
a hierarchy that reflects the user's mental model (e.g., #project/active
vs #status/active suggest different organizational philosophies)?
- Casing: lowercase-hyphenated, camelCase, or mixed?
- How heavily does the user rely on tags vs folders for organization? Some
vaults use folders as the primary axis and tags sparingly for cross-cutting
concerns; others use tags as the primary taxonomy with a flat folder
structure. Understanding this shapes how you tag new notes.
- Numeric-only tags are invalid — Obsidian rejects purely numeric tags
(e.g.,
2025) even when YAML-quoted. If you find numeric-ish conventions,
check how the vault handles them (likely a separate property like year:).
- Persist the pattern and the rationale behind it
5. Date format:
- What date format appears in frontmatter? (Usually ISO 8601, but check)
- Daily note filename format (from
.obsidian/daily-notes.json)
- Persist if non-standard
6. Template usage:
- Is Templater installed? What's the templates folder?
- Are folder templates configured?
- Is
trigger_on_file_creation_mode active (or V1's trigger_on_file_creation)?
- Persist if relevant to file creation
7. Kanban usage:
- Are there Kanban board files? What lanes/structure do they use?
- Are board cards using Tasks plugin emoji syntax?
- Is the board used for workflow state (lane position = status) instead of
custom task statuses?
- Persist the pattern
8. Daily notes — detect the interaction model:
- Is the Daily Notes core plugin enabled? Check
.obsidian/core-plugins.json.
- Where do daily notes live? Check the Daily Notes settings for folder and
date format.
- Sample 2-3 existing daily notes to understand the structure: Is there a
template? What sections exist? Are sections auto-managed by a plugin?
- Check for plugin-managed sections. Community plugins like
obsidian-list-modified automatically maintain sections in daily notes
(e.g., "Files Created", "Files Modified"). If such a plugin is active,
agents must not write to those sections — or to the daily note at all,
depending on the plugin's scope.
- If daily notes are NOT plugin-managed, ask the user how they'd like agents
to interact with them: append to a specific section? Leave them alone?
Update a specific template section?
- If daily notes ARE plugin-managed but the user wants template improvements,
discuss what sections or content they'd like added or refined in the
template.
- Persist the interaction model: which sections are off-limits, what agents
can add, and the template path if relevant.
9. Hub and index notes — detect navigational patterns:
- Some vaults use hub notes, Maps of Content (MOCs), or index files
(e.g.,
INDEX.md, MOC.md, or a note with a distinctive name) as entry
points for folders or topic areas. These aggregate links, embed sections,
or provide Dataview tables that serve as dashboards.
- Scan a few folders for recurring patterns: Is there always an
INDEX.md?
A note that matches the folder name? A note with a type: moc property?
- If hub notes exist, they need maintenance: when creating, renaming, or
deleting a note in a folder with a hub note, check whether the hub needs
updating (add/remove/rename an entry). This is a vault-specific convention
— detect it, don't assume it.
- Persist the pattern: which folders have hub notes, what format they use,
and what maintenance they require.
What to Look For in Existing Notes
When reading existing notes to detect conventions, watch for:
- Deviations from defaults — These are usually intentional. If the vault
uses markdown links instead of wikilinks, that's a deliberate choice.
Document it.
- Inconsistencies — If some notes use wikilinks and others use markdown
links, the vault may be in transition. Ask the user which convention to
follow going forward.
- Plugin-specific patterns — Dataview inline fields, Tasks emoji syntax,
Meta Bind inputs — these indicate which plugins are actively used and how.
- Folder-specific schemas — Different folders may have different
frontmatter schemas. A
projects/ folder might use status, due,
priority while a people/ folder uses role, org, email.
How to Persist Conventions
Once a convention is detected and confirmed by the user, persist it so
future sessions don't need to re-detect:
Option 1: Project CLAUDE.md (recommended for vault-wide conventions)
Add a skill invocation callout and a conventions section to the project's
CLAUDE.md. The callout should appear near the top — before any content
sections — so the skill is triggered every session:
> **This project uses the obsidian-vault skill.** Invoke
> `obsidian-vault:obsidian-vault` at the start of every session. It contains
> Obsidian editing conventions, plugin reference docs, and safe output rules
> that this project depends on.
## Obsidian Vault Conventions
- **Links:** Markdown links with relative paths (`[text](path.md)`)
- **Tags:** Lowercase hyphenated in frontmatter (`tags: [my-tag]`)
- **Tasks:** Tasks plugin emoji format, auto-set created/done dates
- **Kanban:** Lane position indicates status (no custom checkbox statuses)
- **Date format:** ISO 8601 (`YYYY-MM-DD`)
- **Templates folder:** `Templates/`
The callout is a reliability measure — CLAUDE.md is always read at session
start, so embedding the invocation instruction ensures the skill activates
even if the agent wouldn't otherwise reach for it.
Option 2: Auto-memory (supplemental)
If auto-memory is available (Cowork and Claude Code), use it for conventions
that are better expressed as behavioral guidance than as a settings list:
---
name: obsidian-vault-link-convention
description: User chose markdown links over wikilinks in their Obsidian vault
type: feedback
---
Use markdown links with relative paths in Obsidian vault, not wikilinks.
**Why:** User chose markdown links so agent can read paths for file navigation.
**How to apply:** All .md file creation/editing in the vault uses
`[display](relative/path.md)` format.
When to use which:
- CLAUDE.md — the primary place for vault conventions. It's read at
session start, it's explicit, and any agent working in this project sees
it. Put link style, frontmatter schemas, task format, template folder here.
- Auto-memory — supplements CLAUDE.md with behavioral context: why a
convention was chosen, correction history ("user asked me to stop doing X"),
or nuance that doesn't fit a settings list.
Proactive Convention Surfacing
Don't wait for conventions to cause problems. When editing a vault for the
first time or encountering an unfamiliar pattern:
- Notice — "I see this vault uses markdown links instead of wikilinks"
- Confirm — "Is this intentional? Should I continue this convention?"
- Persist — Store the confirmed convention in CLAUDE.md or auto-memory
- Follow — All subsequent edits respect the convention
If you're about to write something that deviates from a detected convention,
stop and ask. The convention may exist for reasons that aren't obvious from
the syntax alone.
Making Notes Useful in the Vault
Syntax correctness is the floor. A well-integrated note is also discoverable
— it shows up in the right Dataview queries, appears in the graph, surfaces
in backlinks, and has metadata that Bases and the Properties pane can work
with. When creating or editing notes, think about how the note will be found
and used within Obsidian, not just whether the markdown is valid.
Properties — when and what to add
Not every note needs the same properties. The guiding question is: will
this note be queried, filtered, or displayed in a structured view?
- Match sibling notes. Before writing frontmatter, read 1-2 existing notes
in the same folder. If they share a schema (
title, status, due,
tags), the new note should match it — otherwise it's invisible in any
Dataview table, Bases view, or Tasks query scoped to that folder.
- Feed the queries that exist. If a dashboard or Dataview query filters
by
status or tags, every note in the source folder needs those
properties to participate. A note missing status doesn't show as
"no status" — it's just absent from results.
- Commonly valuable properties:
title — useful for display in queries and Properties pane
date or created — when the note was created (enables chronological
sorting and calendar views)
tags — cross-cutting categorization beyond folder structure
status — for notes that move through a workflow (active, done, etc.)
aliases — alternative names for link autocomplete
- Don't over-property. Only add properties that serve a query, view, or
navigational purpose. A property nobody queries is noise in the frontmatter.
- When in doubt, ask. If you're creating a note in an unfamiliar folder
and the schema isn't obvious, ask the user what properties it should have
rather than guessing.
Tags — when to add them
Tags make notes findable via the Tag pane, Dataview FROM #tag queries, and
search. They're most useful for cross-cutting concerns that don't map to
folder structure.
- Check the vault's tag taxonomy first. Browse existing tags (via Tag
pane or by reading notes) before inventing new ones. Using
#proj when
the vault already uses #project fragments the taxonomy.
- Tags vs folders. A note lives in one folder but can have many tags.
Use tags for dimensions that cut across folders: topic, status, source,
context.
- Nested tags for hierarchy.
#project/active and #project/archived
group under #project in the Tag pane and in Dataview queries (FROM #project matches both).
- Frontmatter vs inline. Follow the vault's convention — some vaults
keep all tags in frontmatter, others use inline
#tags in the body, some
use both. Don't introduce a new convention.
- Don't over-tag. Tags should reflect meaningful categories, not every
concept mentioned in the note. A note about a meeting doesn't need
#meeting if it already lives in a meetings/ folder.
Links — when to create them
Links are the nervous system of a vault. They create graph connections,
populate the Backlinks pane, and make notes navigable. A note with no
outgoing links is an island.
- Link to existing notes when referencing them. If you mention a person,
project, concept, or document that has its own note, link to it. This
builds the graph and makes both notes more discoverable.
- Links create bidirectional value. When note A links to note B, note A
appears in B's Backlinks pane — this is how users discover connections
they didn't explicitly navigate to.
- Don't over-link. Link when the connection is meaningful and the reader
might want to navigate there. Linking every mention of a common term
creates noise. Link the first or most contextually relevant mention.
- Link to notes that don't exist yet (carefully). Obsidian supports
links to nonexistent notes — they show as unresolved in the graph and
can be created later by clicking. This is useful for forward references,
but ask before creating dangling links in an unfamiliar vault.
- Aliases for cleaner prose. If the note name is awkward in a sentence,
use display text:
[[Meeting Notes 2025-01-15|last week's meeting]] or
[last week's meeting](Meeting Notes 2025-01-15.md).
- Bidirectional
related: frontmatter links. If the vault uses a
related: property in frontmatter to connect notes, maintain
bidirectionality: when adding note B to note A's related: list, add
note A to note B's related: in the same edit pass. This keeps the
Properties pane, graph view, and Dataview queries symmetrical. Check
during convention detection whether the vault follows this pattern — if
it does, every related: addition is a two-file operation.
Embeds — when to use them
Embeds (![[Note]] or ![[Note#Section]]) pull content from other notes
inline. They're powerful for dashboards and summaries but have trade-offs.
- Use heading or block embeds for specific sections —
![[Note#Section]]
or ![[Note#^block-id]] — rather than embedding entire notes, which can
create unwieldy rendering.
- Dashboards and hub notes are the primary use case — a central note
that embeds key sections from multiple source notes for an at-a-glance
view.
- Embeds are read-only views. Editing the embedded content requires
navigating to the source note. Don't embed content that the user will
want to edit in place.
- Embed format follows link convention. If the vault uses wikilinks,
embeds are
![[Note]]. If markdown links, embeds are still ![[Note]]
— Obsidian's embed syntax always uses the ![[]] format regardless of
the link setting.
Core Obsidian Flavored Markdown
Frontmatter / Properties
Always placed at the very top of the file, fenced with ---, before any
content.
---
title: Note Title
date: 2025-01-15
tags:
- project
- active
aliases:
- Alternative Name
status: in-progress
---
Core property rules:
tags and aliases — always YAML lists, never inline strings
- Dates — ISO 8601:
2025-01-15 or 2025-01-15T14:30:00
- Booleans — lowercase
true / false
- Numbers — unquoted:
rating: 4.5
- Links in properties — always quoted:
related: "[[Other Note]]"
- No wikilinks inside
tags or aliases values
For the full property type reference and reserved keys, read
references/properties.md before creating or repairing frontmatter.
Frontmatter for Queryable Notes
When creating notes that will be queried by Dataview, Bases, or Tasks,
frontmatter design is critical. Follow these rules:
- Check existing notes in the same folder for the property schema before
writing new frontmatter. Match names, types, and value formats exactly.
- Use consistent types vault-wide — if
status is text in one note, it
must be text everywhere. See references/core-plugins.md → Properties.
- Prefer explicit typing —
rating: 4.5 (number) not rating: "4.5"
(string). done: true (boolean) not done: "true" (string).
- Lists for multi-value fields —
tags: [a, b] not tags: "a, b".
- ISO dates for date fields —
due: 2025-02-01 not due: Feb 1.
- Quote wikilinks —
related: "[[Note]]" not related: [[Note]].
Internal Links
The vault's link convention determines the format. Detect it before writing.
Wikilinks (Obsidian default):
[[Note Name]] Basic link
[[Note Name|Display Text]] Link with alias
[[Note Name#Heading]] Link to heading
[[#Heading in same note]] Same-note heading link
Markdown links (if useMarkdownLinks is true in app.json):
[Display Text](relative/path/to/Note.md)
[Display Text](Note.md#heading)
[Display Text](#heading-in-same-note)
Rules for either convention:
- Be consistent — never mix conventions in the same vault
- Obsidian resolves both for graph view, backlinks, and autocomplete
- Wikilinks don't need
.md extensions; markdown links do
- Both create backlinks and graph connections
- Inside markdown tables, escape the wikilink alias pipe —
[[Note Name\|Display Text]] — an unescaped | in a table cell is
consumed as a column delimiter before the wikilink parser sees it,
breaking both the link and the table row. Outside tables, the pipe
stays unescaped.
For block references, embeds, and advanced link patterns, read
references/syntax.md.
Callouts
> [!note]
> Default callout with no title.
> [!tip] Custom Title
> Callout with a title.
> [!warning]- Collapsed by default
> Hidden until expanded.
> [!info]+ Expanded by default
> Visible but collapsible.
Supported types: note, info, tip / hint / important,
abstract / summary / tldr, todo, success / check / done,
question / help / faq, warning / caution / attention,
failure / fail / missing, danger / error, bug, example,
quote / cite
Use callouts for flagged content. Do not substitute callouts for headings.
Tasks
Plain Obsidian tasks:
- [ ] Incomplete task
- [x] Completed task
If the Tasks plugin is active, use its extended syntax. Read
references/tasks.md before writing Tasks plugin syntax. Key decision
points:
- What task format does the vault use? (emoji, Dataview, other)
- Are custom statuses configured? (
[/], [-], etc.)
- Are auto-set dates enabled? (created, done, cancelled)
- Does the vault use Kanban lane position instead of custom statuses?
Tags
#tag
#nested/tag
#tag-with-hyphens
- In frontmatter: always under
tags: as a list, no # prefix
- Nested with
/ separator: #project/active
- No spaces; use hyphens or underscores
- No purely numeric tags — Obsidian rejects tags like
2025 even when
YAML-quoted. Use a separate frontmatter property (e.g., year: "2025")
- Escape
# when it doesn't mean a tag — In prose, # followed by
letters or numbers looks like a tag to Obsidian (e.g., PR #5, issue
#fix-login). Escape with a backslash (\#5 renders as #5) or use
inline code (`#5`). Common in changelogs, commit references, and
PR descriptions written inside the vault.
- Check the vault's convention: frontmatter-only, inline-only, or both
Safe Output Rules
Before returning any .md file you wrote — whether new or edited — verify:
Note Audit
When asked to review a note for convention issues:
- Check frontmatter: valid YAML, correct types, no wikilinks in
tags/aliases, fenced correctly
- Check links: using the vault's established convention consistently
- Check callout syntax
- Check task syntax consistency
- Check tag format
- Check for any markdown that will render incorrectly in Obsidian
- Check plugin compatibility (Dataview fields, Tasks emoji syntax,
Meta Bind inputs, Kanban structure)
Report each issue with its location and the corrected version. Do not edit
the file — only report unless told to fix.
Setting Up a New Vault-Embedded Project
If a Cowork or Claude Code project has been created in (or alongside) a
vault and doesn't yet have an Obsidian-aware CLAUDE.md:
Check for .obsidian/ in the working directory or any ancestor
directory — a vault often contains many Cowork projects as
subdirectories, so .obsidian/ may live one or more levels above the
Cowork project root
Run convention detection — follow the "Convention Detection" process
above. Read existing notes, check plugin configs, identify patterns.
Recommend a project CLAUDE.md section — suggest the user add detected
conventions to their project's CLAUDE.md (or Cowork project settings).
Example:
## Obsidian Vault
This project lives inside an Obsidian vault (`parent/directory/`).
Use the `obsidian-vault` skill for all .md file creation and editing in
this project — notes, session logs, CLAUDE.md/TASKS.md, and any
operational docs (they all render in Obsidian since the project lives
in the vault). Preserve existing links, frontmatter, and note structure
unless asked otherwise. Ask before renaming notes, moving files, or
making vault-wide structural changes.
**Conventions:**
- **Links:** [detected convention]
- **Tags:** [detected convention]
- **Tasks:** [detected convention]
- **Frontmatter:** [detected schema patterns]
Note which plugins are active — check .obsidian/plugins/ and
.obsidian/community-plugins.json for installed community plugins, and
.obsidian/core-plugins.json for enabled core plugins. Flag which
reference files will be relevant.
Persist conventions — store detected conventions in CLAUDE.md and/or
auto-memory so they survive across sessions.
What This Skill Does Not Do
- Rename or move files without link-safe tooling — if Obsidian CLI is
available,
obsidian move handles renames with automatic link updates.
If not, either ask the user to rename via Obsidian's UI, or rename
directly and offer to find and update broken links via search. See
references/vault-tools.md for the full tool decision matrix.
- Treat
.canvas files as plain text — use the Canvas JSON rules in
references/canvas.md
- Add Templater syntax to non-template notes
- Reformat an entire vault or batch-rename notes without explicit
confirmation
- Change existing frontmatter property types without confirmation
- Assume a link convention without checking the vault's actual usage
- Write plugin-specific syntax without first reading the relevant reference
file
1---2name: obsidian-vault3description: Create, edit, and audit notes in an Obsidian vault. Handles frontmatter properties, wikilinks, embeds, callouts, tasks, block references, tags, and Mermaid diagrams. Plugin-aware: Dataview queries and inline fields, Tasks emoji syntax, Kanban boards, Meta Bind fields, Templater templates, Bases schemas, and Canvas JSON. ALWAYS-ON: if the working directory is inside an Obsidian vault (a .obsidian/ directory in any ancestor, or a CLAUDE.md identifying the project as vault-embedded), use this skill for ALL .md file operations — including CLAUDE.md, TASKS.md, and session logs — even when Obsidian isn't mentioned. Triggers: "create/edit a note", "update frontmatter", "add tags", "fix the links", "write a Dataview query", "fix this callout", "add a task", "edit my Kanban board", "make a template", or any note-editing task in a vault. NOT for: .md files outside a vault (code-repo READMEs, GitHub issues, static-site content), generic markdown linting, or Obsidian plugin development.4---56# Obsidian Vault Skill78You are working inside an Obsidian vault. Your job is to create and edit notes9that render correctly, stay plugin-compatible, and follow the vault's10established conventions consistently across sessions.1112## How This Skill Works1314This skill contains the core conventions and safe editing rules needed for15every note interaction. For detailed syntax and plugin-specific rules, it16points to reference files in `references/` that you load when needed — not17upfront.1819**Reference files** (read on demand — always read BEFORE acting, not after):2021### Obsidian core syntax22- `references/syntax.md` — Full Obsidian Flavored Markdown syntax: block23 references, embeds, Mermaid diagrams, inline comments, footnotes, LaTeX24 math, advanced link patterns. **Read before working with any of these25 constructs.**26- `references/properties.md` — Full YAML property type reference: reserved27 keys, type rules, edge cases, common schemas. **Read before creating or28 repairing frontmatter, or when designing a property schema.**2930### Core plugins31- `references/core-plugins.md` — Core Obsidian plugin conventions: Properties32 (type inference), Daily Notes, Templates, Graph, Backlinks, Slides, Sync.33 **Read before working with any core plugin feature — especially property34 type consistency or Daily Notes templates.**35- `references/bases.md` — Bases database views: `.base` file YAML format,36 filter functions (and their gotchas), formulas, property type requirements,37 Bases vs Dataview comparison. **Read before creating or editing `.base`38 files or writing notes that feed into a Bases view.**39- `references/canvas.md` — Canvas JSON format: node types, sizing/spacing40 rules, edge labels, group containment, Enhanced Canvas plugin. **Read41 before creating or editing `.canvas` files.**4243### Community plugins44- `references/dataview.md` — Dataview queries, inline fields, DataviewJS,45 implicit fields, cross-plugin interactions. **Read before writing any46 Dataview query or inline field.**47- `references/tasks.md` — Tasks plugin emoji format, custom statuses, dates,48 priority, recurrence, dependencies, query blocks. **Read before writing or49 editing tasks with emoji metadata.**50- `references/kanban.md` — Kanban board markdown structure, card syntax, lane51 management, settings block, safe editing rules. **Read before editing any52 Kanban board file.**53- `references/meta-bind.md` — Meta Bind INPUT/VIEW/BUTTON syntax, property54 binding, action types, JavaScript support. **Read before writing Meta Bind55 interactive elements.**56- `references/templater.md` — Templater syntax, common functions, folder57 templates, JavaScript in templates, core Templates vs Templater. **Read58 before creating or editing template files.**5960### Vault access tools61- `references/vault-tools.md` — Tool tiers for interacting with vaults62 (direct file ops, Obsidian CLI, MCP servers), environment detection, and63 a decision matrix for which tool to use when. **Read when choosing between64 tools for vault operations, or when working in a new environment.**6566These files contain the detailed rules that prevent silent rendering errors67and plugin-incompatible output. Reading them after you've already written68something means you'll need to redo it.6970---7172## Guiding Principles73741. **Render safety first.** Never write Markdown that Obsidian core or75 installed plugins will misparse or silently corrupt.762. **Minimum viable change.** When editing an existing note, change only what77 was asked. Do not reorder sections, alter heading hierarchy, or modify78 frontmatter keys unless explicitly requested.793. **Match the vault's link convention.** Do not assume wikilinks or markdown80 links. Detect the convention from existing notes and `.obsidian/app.json`81 (`useMarkdownLinks` setting). If the convention is unclear, ask the user.82 Once established, be consistent — never mix conventions within a vault.83 See "Convention Detection" below for the full process.844. **Keep metadata stable.** Preserve existing frontmatter keys and their85 types. Add new keys only at the end of the frontmatter block. Check for86 vault-wide type consistency before adding a property name that might87 already exist elsewhere.885. **Ask before restructuring.** If a request implies renaming notes,89 splitting files, or changing folder structure, confirm before acting —90 these operations can break links vault-wide.916. **One convention per vault.** If the vault uses Tasks plugin emoji syntax,92 don't introduce plain checkboxes. If it uses Dataview inline fields, don't93 add YAML-only properties. Read existing notes before writing new ones.947. **Detect, confirm, and persist conventions.** When you notice a convention95 in the vault — link style, frontmatter schema, task format, tag placement,96 date format — check whether it's intentional and persist the finding.97 See "Convention Detection" below.988. **Look things up — don't guess and iterate.** When you encounter99 unfamiliar Obsidian syntax, a plugin feature you're unsure about, or a100 convention that could go multiple ways, **use WebSearch to check official101 docs and community forums before writing anything.** Each reference file102 links to its plugin's official documentation — start there.103104 **Trigger:** If you've tried something and it didn't work, or you're105 about to write syntax you haven't seen confirmed in the vault or in106 these reference files, that's the signal to search — not to try another107 guess. Two failed attempts without searching is too many.108109 **What to search:** The Obsidian docs site (`help.obsidian.md`), the110 plugin's own docs (linked at the top of each reference file), the111 Obsidian forum (`forum.obsidian.md`), Reddit (`r/ObsidianMD`), and112 GitHub issues for the relevant plugin. Community plugins especially113 have undocumented behaviors and version-specific quirks that only114 surface in forum threads, Reddit posts, and GitHub issues.115116 **Why this matters:** Plugin settings change default behavior, and vaults117 diverge from defaults frequently. Guessing leads to circular118 trial-and-error that wastes time and produces incorrect output. A single119 WebSearch call is faster than three wrong attempts.120121---122123## Convention Detection and Persistence124125Obsidian vaults are highly customizable. Two power users' vaults can look126completely different — different link styles, frontmatter schemas, task127formats, plugin configurations, and organizational patterns. An agent that128assumes defaults will break things.129130### On First Use in a New Vault131132When this skill activates in a vault for the first time (no prior convention133record exists), detect and confirm these conventions before writing anything:134135**1. Link convention — understand the approach, not just the syntax:**136- Check `.obsidian/app.json` for two settings:137 - `useMarkdownLinks` (true = markdown links, false/absent = wikilinks)138 - `newLinkFormat` (`"shortest"` = bare name, `"relative"` = relative path,139 `"absolute"` = full path from vault root). Default is `"shortest"`.140- Read 3-5 existing notes to confirm actual usage matches the settings. Look141 for patterns beyond syntax: Do links use aliases consistently? Are paths142 included even when `shortest` is the setting? Is there a display-name143 convention (e.g., `[[folder/Note|Note]]` for cleaner reading view)?144- Check frontmatter for link properties (`related:`, `parent:`, etc.) — are145 wikilinks quoted? Are they using aliases?146- Look for bidirectional `related:` linking — when note A lists note B in147 `related:`, does note B reciprocate? If this is a convention, persist it148 and follow it on all new links.149- If mixed styles exist, ask the user which convention to follow going150 forward and whether to migrate existing links151- Persist the full picture: link type, path format, alias convention,152 bidirectional linking expectation153154**2. Frontmatter schema:**155- Read 3-5 representative notes to identify common property names and types156- Note which properties are used vault-wide vs folder-specific157- Identify any property schemas tied to Dataview queries, Bases views, or158 Meta Bind inputs159- Persist the schema pattern160161**3. Task format:**162- Check `.obsidian/plugins/obsidian-tasks-plugin/data.json` for `taskFormat`163 (e.g., `tasksPluginEmoji`)164- Check for custom statuses in the same config165- Check if auto-set dates are enabled (`setCreatedDate`, `setDoneDate`,166 `setCancelledDate`)167- Look at existing tasks in the vault to confirm format in use168- Persist relevant settings169170**4. Tag convention — understand the user's taxonomy priorities:**171- Are tags primarily in frontmatter, inline (`#tag`), or both?172- Nested tags (`#project/active`) or flat (`#project`, `#active`)? Is there173 a hierarchy that reflects the user's mental model (e.g., `#project/active`174 vs `#status/active` suggest different organizational philosophies)?175- Casing: lowercase-hyphenated, camelCase, or mixed?176- How heavily does the user rely on tags vs folders for organization? Some177 vaults use folders as the primary axis and tags sparingly for cross-cutting178 concerns; others use tags as the primary taxonomy with a flat folder179 structure. Understanding this shapes how you tag new notes.180- **Numeric-only tags are invalid** — Obsidian rejects purely numeric tags181 (e.g., `2025`) even when YAML-quoted. If you find numeric-ish conventions,182 check how the vault handles them (likely a separate property like `year:`).183- Persist the pattern and the rationale behind it184185**5. Date format:**186- What date format appears in frontmatter? (Usually ISO 8601, but check)187- Daily note filename format (from `.obsidian/daily-notes.json`)188- Persist if non-standard189190**6. Template usage:**191- Is Templater installed? What's the templates folder?192- Are folder templates configured?193- Is `trigger_on_file_creation_mode` active (or V1's `trigger_on_file_creation`)?194- Persist if relevant to file creation195196**7. Kanban usage:**197- Are there Kanban board files? What lanes/structure do they use?198- Are board cards using Tasks plugin emoji syntax?199- Is the board used for workflow state (lane position = status) instead of200 custom task statuses?201- Persist the pattern202203**8. Daily notes — detect the interaction model:**204- Is the Daily Notes core plugin enabled? Check `.obsidian/core-plugins.json`.205- Where do daily notes live? Check the Daily Notes settings for folder and206 date format.207- Sample 2-3 existing daily notes to understand the structure: Is there a208 template? What sections exist? Are sections auto-managed by a plugin?209- **Check for plugin-managed sections.** Community plugins like210 `obsidian-list-modified` automatically maintain sections in daily notes211 (e.g., "Files Created", "Files Modified"). If such a plugin is active,212 agents must not write to those sections — or to the daily note at all,213 depending on the plugin's scope.214- If daily notes are NOT plugin-managed, ask the user how they'd like agents215 to interact with them: append to a specific section? Leave them alone?216 Update a specific template section?217- If daily notes ARE plugin-managed but the user wants template improvements,218 discuss what sections or content they'd like added or refined in the219 template.220- Persist the interaction model: which sections are off-limits, what agents221 can add, and the template path if relevant.222223**9. Hub and index notes — detect navigational patterns:**224- Some vaults use hub notes, Maps of Content (MOCs), or index files225 (e.g., `INDEX.md`, `MOC.md`, or a note with a distinctive name) as entry226 points for folders or topic areas. These aggregate links, embed sections,227 or provide Dataview tables that serve as dashboards.228- Scan a few folders for recurring patterns: Is there always an `INDEX.md`?229 A note that matches the folder name? A note with a `type: moc` property?230- If hub notes exist, they need maintenance: when creating, renaming, or231 deleting a note in a folder with a hub note, check whether the hub needs232 updating (add/remove/rename an entry). This is a vault-specific convention233 — detect it, don't assume it.234- Persist the pattern: which folders have hub notes, what format they use,235 and what maintenance they require.236237### What to Look For in Existing Notes238239When reading existing notes to detect conventions, watch for:240241- **Deviations from defaults** — These are usually intentional. If the vault242 uses markdown links instead of wikilinks, that's a deliberate choice.243 Document it.244- **Inconsistencies** — If some notes use wikilinks and others use markdown245 links, the vault may be in transition. Ask the user which convention to246 follow going forward.247- **Plugin-specific patterns** — Dataview inline fields, Tasks emoji syntax,248 Meta Bind inputs — these indicate which plugins are actively used and how.249- **Folder-specific schemas** — Different folders may have different250 frontmatter schemas. A `projects/` folder might use `status`, `due`,251 `priority` while a `people/` folder uses `role`, `org`, `email`.252253### How to Persist Conventions254255Once a convention is detected and confirmed by the user, persist it so256future sessions don't need to re-detect:257258**Option 1: Project CLAUDE.md (recommended for vault-wide conventions)**259260Add a skill invocation callout and a conventions section to the project's261CLAUDE.md. The callout should appear near the top — before any content262sections — so the skill is triggered every session:263264```markdown265> **This project uses the obsidian-vault skill.** Invoke266> `obsidian-vault:obsidian-vault` at the start of every session. It contains267> Obsidian editing conventions, plugin reference docs, and safe output rules268> that this project depends on.269270## Obsidian Vault Conventions271272- **Links:** Markdown links with relative paths (`[text](path.md)`)273- **Tags:** Lowercase hyphenated in frontmatter (`tags: [my-tag]`)274- **Tasks:** Tasks plugin emoji format, auto-set created/done dates275- **Kanban:** Lane position indicates status (no custom checkbox statuses)276- **Date format:** ISO 8601 (`YYYY-MM-DD`)277- **Templates folder:** `Templates/`278```279280The callout is a reliability measure — CLAUDE.md is always read at session281start, so embedding the invocation instruction ensures the skill activates282even if the agent wouldn't otherwise reach for it.283284**Option 2: Auto-memory (supplemental)**285286If auto-memory is available (Cowork and Claude Code), use it for conventions287that are better expressed as behavioral guidance than as a settings list:288289```markdown290---291name: obsidian-vault-link-convention292description: User chose markdown links over wikilinks in their Obsidian vault293type: feedback294---295296Use markdown links with relative paths in Obsidian vault, not wikilinks.297**Why:** User chose markdown links so agent can read paths for file navigation.298**How to apply:** All .md file creation/editing in the vault uses299`[display](relative/path.md)` format.300```301302**When to use which:**303- **CLAUDE.md** — the primary place for vault conventions. It's read at304 session start, it's explicit, and any agent working in this project sees305 it. Put link style, frontmatter schemas, task format, template folder here.306- **Auto-memory** — supplements CLAUDE.md with behavioral context: *why* a307 convention was chosen, correction history ("user asked me to stop doing X"),308 or nuance that doesn't fit a settings list.309310### Proactive Convention Surfacing311312Don't wait for conventions to cause problems. When editing a vault for the313first time or encountering an unfamiliar pattern:3143151. **Notice** — "I see this vault uses markdown links instead of wikilinks"3162. **Confirm** — "Is this intentional? Should I continue this convention?"3173. **Persist** — Store the confirmed convention in CLAUDE.md or auto-memory3184. **Follow** — All subsequent edits respect the convention319320If you're about to write something that deviates from a detected convention,321stop and ask. The convention may exist for reasons that aren't obvious from322the syntax alone.323324---325326## Making Notes Useful in the Vault327328Syntax correctness is the floor. A well-integrated note is also *discoverable*329— it shows up in the right Dataview queries, appears in the graph, surfaces330in backlinks, and has metadata that Bases and the Properties pane can work331with. When creating or editing notes, think about how the note will be found332and used *within Obsidian*, not just whether the markdown is valid.333334### Properties — when and what to add335336Not every note needs the same properties. The guiding question is: **will337this note be queried, filtered, or displayed in a structured view?**338339- **Match sibling notes.** Before writing frontmatter, read 1-2 existing notes340 in the same folder. If they share a schema (`title`, `status`, `due`,341 `tags`), the new note should match it — otherwise it's invisible in any342 Dataview table, Bases view, or Tasks query scoped to that folder.343- **Feed the queries that exist.** If a dashboard or Dataview query filters344 by `status` or `tags`, every note in the source folder needs those345 properties to participate. A note missing `status` doesn't show as346 "no status" — it's just absent from results.347- **Commonly valuable properties:**348 - `title` — useful for display in queries and Properties pane349 - `date` or `created` — when the note was created (enables chronological350 sorting and calendar views)351 - `tags` — cross-cutting categorization beyond folder structure352 - `status` — for notes that move through a workflow (active, done, etc.)353 - `aliases` — alternative names for link autocomplete354- **Don't over-property.** Only add properties that serve a query, view, or355 navigational purpose. A property nobody queries is noise in the frontmatter.356- **When in doubt, ask.** If you're creating a note in an unfamiliar folder357 and the schema isn't obvious, ask the user what properties it should have358 rather than guessing.359360### Tags — when to add them361362Tags make notes findable via the Tag pane, Dataview `FROM #tag` queries, and363search. They're most useful for cross-cutting concerns that don't map to364folder structure.365366- **Check the vault's tag taxonomy first.** Browse existing tags (via Tag367 pane or by reading notes) before inventing new ones. Using `#proj` when368 the vault already uses `#project` fragments the taxonomy.369- **Tags vs folders.** A note lives in one folder but can have many tags.370 Use tags for dimensions that cut across folders: topic, status, source,371 context.372- **Nested tags for hierarchy.** `#project/active` and `#project/archived`373 group under `#project` in the Tag pane and in Dataview queries (`FROM374 #project` matches both).375- **Frontmatter vs inline.** Follow the vault's convention — some vaults376 keep all tags in frontmatter, others use inline `#tags` in the body, some377 use both. Don't introduce a new convention.378- **Don't over-tag.** Tags should reflect meaningful categories, not every379 concept mentioned in the note. A note about a meeting doesn't need380 `#meeting` if it already lives in a `meetings/` folder.381382### Links — when to create them383384Links are the nervous system of a vault. They create graph connections,385populate the Backlinks pane, and make notes navigable. A note with no386outgoing links is an island.387388- **Link to existing notes when referencing them.** If you mention a person,389 project, concept, or document that has its own note, link to it. This390 builds the graph and makes both notes more discoverable.391- **Links create bidirectional value.** When note A links to note B, note A392 appears in B's Backlinks pane — this is how users discover connections393 they didn't explicitly navigate to.394- **Don't over-link.** Link when the connection is meaningful and the reader395 might want to navigate there. Linking every mention of a common term396 creates noise. Link the first or most contextually relevant mention.397- **Link to notes that don't exist yet (carefully).** Obsidian supports398 links to nonexistent notes — they show as unresolved in the graph and399 can be created later by clicking. This is useful for forward references,400 but ask before creating dangling links in an unfamiliar vault.401- **Aliases for cleaner prose.** If the note name is awkward in a sentence,402 use display text: `[[Meeting Notes 2025-01-15|last week's meeting]]` or403 `[last week's meeting](Meeting Notes 2025-01-15.md)`.404- **Bidirectional `related:` frontmatter links.** If the vault uses a405 `related:` property in frontmatter to connect notes, maintain406 bidirectionality: when adding note B to note A's `related:` list, add407 note A to note B's `related:` in the same edit pass. This keeps the408 Properties pane, graph view, and Dataview queries symmetrical. Check409 during convention detection whether the vault follows this pattern — if410 it does, every `related:` addition is a two-file operation.411412### Embeds — when to use them413414Embeds (`![[Note]]` or `![[Note#Section]]`) pull content from other notes415inline. They're powerful for dashboards and summaries but have trade-offs.416417- **Use heading or block embeds for specific sections** — `![[Note#Section]]`418 or `![[Note#^block-id]]` — rather than embedding entire notes, which can419 create unwieldy rendering.420- **Dashboards and hub notes** are the primary use case — a central note421 that embeds key sections from multiple source notes for an at-a-glance422 view.423- **Embeds are read-only views.** Editing the embedded content requires424 navigating to the source note. Don't embed content that the user will425 want to edit in place.426- **Embed format follows link convention.** If the vault uses wikilinks,427 embeds are `![[Note]]`. If markdown links, embeds are still `![[Note]]`428 — Obsidian's embed syntax always uses the `![[]]` format regardless of429 the link setting.430431---432433## Core Obsidian Flavored Markdown434435### Frontmatter / Properties436437Always placed at the very top of the file, fenced with `---`, before any438content.439440```yaml441---442title: Note Title443date: 2025-01-15444tags:445 - project446 - active447aliases:448 - Alternative Name449status: in-progress450---451```452453**Core property rules:**454- `tags` and `aliases` — always YAML lists, never inline strings455- Dates — ISO 8601: `2025-01-15` or `2025-01-15T14:30:00`456- Booleans — lowercase `true` / `false`457- Numbers — unquoted: `rating: 4.5`458- Links in properties — always quoted: `related: "[[Other Note]]"`459- No wikilinks inside `tags` or `aliases` values460461For the full property type reference and reserved keys, read462`references/properties.md` before creating or repairing frontmatter.463464### Frontmatter for Queryable Notes465466When creating notes that will be queried by Dataview, Bases, or Tasks,467frontmatter design is critical. Follow these rules:4684691. **Check existing notes in the same folder** for the property schema before470 writing new frontmatter. Match names, types, and value formats exactly.4712. **Use consistent types vault-wide** — if `status` is text in one note, it472 must be text everywhere. See `references/core-plugins.md` → Properties.4733. **Prefer explicit typing** — `rating: 4.5` (number) not `rating: "4.5"`474 (string). `done: true` (boolean) not `done: "true"` (string).4754. **Lists for multi-value fields** — `tags: [a, b]` not `tags: "a, b"`.4765. **ISO dates for date fields** — `due: 2025-02-01` not `due: Feb 1`.4776. **Quote wikilinks** — `related: "[[Note]]"` not `related: [[Note]]`.478479---480481### Internal Links482483The vault's link convention determines the format. Detect it before writing.484485**Wikilinks (Obsidian default):**486```markdown487[[Note Name]] Basic link488[[Note Name|Display Text]] Link with alias489[[Note Name#Heading]] Link to heading490[[#Heading in same note]] Same-note heading link491```492493**Markdown links (if `useMarkdownLinks` is true in app.json):**494```markdown495[Display Text](relative/path/to/Note.md)496[Display Text](Note.md#heading)497[Display Text](#heading-in-same-note)498```499500Rules for either convention:501- Be consistent — never mix conventions in the same vault502- Obsidian resolves both for graph view, backlinks, and autocomplete503- Wikilinks don't need `.md` extensions; markdown links do504- Both create backlinks and graph connections505- **Inside markdown tables, escape the wikilink alias pipe** —506 `[[Note Name\|Display Text]]` — an unescaped `|` in a table cell is507 consumed as a column delimiter before the wikilink parser sees it,508 breaking both the link and the table row. Outside tables, the pipe509 stays unescaped.510511For block references, embeds, and advanced link patterns, read512`references/syntax.md`.513514---515516### Callouts517518```markdown519> [!note]520> Default callout with no title.521522> [!tip] Custom Title523> Callout with a title.524525> [!warning]- Collapsed by default526> Hidden until expanded.527528> [!info]+ Expanded by default529> Visible but collapsible.530```531532**Supported types:** `note`, `info`, `tip` / `hint` / `important`,533`abstract` / `summary` / `tldr`, `todo`, `success` / `check` / `done`,534`question` / `help` / `faq`, `warning` / `caution` / `attention`,535`failure` / `fail` / `missing`, `danger` / `error`, `bug`, `example`,536`quote` / `cite`537538Use callouts for flagged content. Do not substitute callouts for headings.539540---541542### Tasks543544Plain Obsidian tasks:545```markdown546- [ ] Incomplete task547- [x] Completed task548```549550If the Tasks plugin is active, use its extended syntax. Read551`references/tasks.md` before writing Tasks plugin syntax. Key decision552points:553554- What task format does the vault use? (emoji, Dataview, other)555- Are custom statuses configured? (`[/]`, `[-]`, etc.)556- Are auto-set dates enabled? (created, done, cancelled)557- Does the vault use Kanban lane position instead of custom statuses?558559---560561### Tags562563```markdown564#tag565#nested/tag566#tag-with-hyphens567```568569- In frontmatter: always under `tags:` as a list, no `#` prefix570- Nested with `/` separator: `#project/active`571- No spaces; use hyphens or underscores572- **No purely numeric tags** — Obsidian rejects tags like `2025` even when573 YAML-quoted. Use a separate frontmatter property (e.g., `year: "2025"`)574- **Escape `#` when it doesn't mean a tag** — In prose, `#` followed by575 letters or numbers looks like a tag to Obsidian (e.g., PR `#5`, issue576 `#fix-login`). Escape with a backslash (`\#5` renders as #5) or use577 inline code (`` `#5` ``). Common in changelogs, commit references, and578 PR descriptions written inside the vault.579- Check the vault's convention: frontmatter-only, inline-only, or both580581---582583## Safe Output Rules584585Before returning any `.md` file you wrote — whether new or edited — verify:586587- [ ] New note opens with a fenced frontmatter block (match the vault's588 existing note schema — read a nearby note first if the schema isn't589 obvious)590- [ ] Frontmatter is at the very top, properly fenced with `---`591- [ ] Frontmatter property types consistent with other notes in the vault592 (no silent string ↔ number ↔ list drift — this breaks Dataview and593 Bases queries)594- [ ] No new frontmatter keys added unless requested (when editing)595- [ ] No existing frontmatter keys removed or renamed (when editing)596- [ ] Links use the vault's established convention (wikilinks OR markdown597 links — not mixed)598- [ ] Existing links are intact — not converted to a different format599 (when editing)600- [ ] Block IDs (`^id`) are preserved if present (when editing)601- [ ] Callout syntax is valid (`> [!type]`)602- [ ] Task syntax is consistent with the vault's convention603- [ ] Tags use correct format (no spaces, nested with `/`)604- [ ] No unescaped `#` in non-tag contexts (PR numbers, issue refs, heading605 mentions in prose — use `\#` or inline code)606- [ ] No accidental inline code spans starting with `=` in non-query607 contexts (Dataview evaluates these as inline queries — rewrite608 ordinary code with operand first: `a === b` not `` `= 5` ``;609 intentional Dataview queries like `` `= date(today)` `` are fine)610- [ ] Aliased wikilinks inside markdown tables escape the pipe611 (`[[Note\|Alias]]`) — unescaped `|` breaks the link and the table row612- [ ] Inline comments (`%% ... %%`) preserved if present (when editing)613- [ ] No accidental section duplication (when editing)614- [ ] Kanban board structure preserved if editing a board file (settings615 block, blank lines between lanes, lane headings)616617---618619## Note Audit620621When asked to review a note for convention issues:6226231. Check frontmatter: valid YAML, correct types, no wikilinks in624 tags/aliases, fenced correctly6252. Check links: using the vault's established convention consistently6263. Check callout syntax6274. Check task syntax consistency6285. Check tag format6296. Check for any markdown that will render incorrectly in Obsidian6307. Check plugin compatibility (Dataview fields, Tasks emoji syntax,631 Meta Bind inputs, Kanban structure)632633Report each issue with its location and the corrected version. Do not edit634the file — only report unless told to fix.635636---637638## Setting Up a New Vault-Embedded Project639640If a Cowork or Claude Code project has been created in (or alongside) a641vault and doesn't yet have an Obsidian-aware CLAUDE.md:6426431. **Check for `.obsidian/` in the working directory or any ancestor644 directory** — a vault often contains many Cowork projects as645 subdirectories, so `.obsidian/` may live one or more levels above the646 Cowork project root6476482. **Run convention detection** — follow the "Convention Detection" process649 above. Read existing notes, check plugin configs, identify patterns.6506513. **Recommend a project CLAUDE.md section** — suggest the user add detected652 conventions to their project's CLAUDE.md (or Cowork project settings).653 Example:654655 ```656 ## Obsidian Vault657 This project lives inside an Obsidian vault (`parent/directory/`).658659 Use the `obsidian-vault` skill for all .md file creation and editing in660 this project — notes, session logs, CLAUDE.md/TASKS.md, and any661 operational docs (they all render in Obsidian since the project lives662 in the vault). Preserve existing links, frontmatter, and note structure663 unless asked otherwise. Ask before renaming notes, moving files, or664 making vault-wide structural changes.665666 **Conventions:**667 - **Links:** [detected convention]668 - **Tags:** [detected convention]669 - **Tasks:** [detected convention]670 - **Frontmatter:** [detected schema patterns]671 ```6726734. **Note which plugins are active** — check `.obsidian/plugins/` and674 `.obsidian/community-plugins.json` for installed community plugins, and675 `.obsidian/core-plugins.json` for enabled core plugins. Flag which676 reference files will be relevant.6776785. **Persist conventions** — store detected conventions in CLAUDE.md and/or679 auto-memory so they survive across sessions.680681---682683## What This Skill Does Not Do684685- Rename or move files without link-safe tooling — if Obsidian CLI is686 available, `obsidian move` handles renames with automatic link updates.687 If not, either ask the user to rename via Obsidian's UI, or rename688 directly and offer to find and update broken links via search. See689 `references/vault-tools.md` for the full tool decision matrix.690- Treat `.canvas` files as plain text — use the Canvas JSON rules in691 `references/canvas.md`692- Add Templater syntax to non-template notes693- Reformat an entire vault or batch-rename notes without explicit694 confirmation695- Change existing frontmatter property types without confirmation696- Assume a link convention without checking the vault's actual usage697- Write plugin-specific syntax without first reading the relevant reference698 file