Skills for working with Obsidian vaults and related formats: Obsidian Flavored Markdown, JSON Canvas files, the Obsidian CLI, and Defuddle for clean web content extraction.
96
96%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
{
"instructions": [
{
"instruction": "Use file= instead of path= when targeting a note by name; file= resolves like a wikilink (name only, no path or extension needed), while path= requires the exact vault-root path including extension",
"original_snippets": "file=<name> — resolves like a wikilink (name only, no path or extension needed); path=<path> — exact path from vault root, e.g. folder/note.md",
"relevant_when": "Reading, updating, or appending to an Obsidian note by its name",
"why_given": "new knowledge"
},
{
"instruction": "Always quote parameter values that contain spaces; unquoted values with spaces are parsed as separate tokens and the command will fail or target the wrong note",
"original_snippets": "Quote values with spaces: obsidian create name=\"My Note\" content=\"Hello world\"",
"relevant_when": "Passing any note name, content, or path parameter that may contain spaces",
"why_given": "new knowledge"
},
{
"instruction": "Use the silent flag when creating or updating files from an agent workflow to prevent Obsidian from opening the file in the editor and disrupting the user's current view",
"original_snippets": "Use silent to prevent files from opening",
"relevant_when": "Creating, updating, or appending to a note when the user has not explicitly asked to view the result",
"why_given": "new knowledge"
},
{
"instruction": "Specify vault=<name> as the first parameter when the user has multiple vaults open and vault identity matters; the default target is the most recently focused vault which can be unpredictable",
"original_snippets": "Commands target the most recently focused vault by default. Use vault=<name> as the first parameter to target a specific vault",
"relevant_when": "The user has multiple Obsidian vaults open or mentions a specific vault by name",
"why_given": "new knowledge"
},
{
"instruction": "Run obsidian help to discover all currently available commands; the output is always up to date and more reliable than guessing command names from memory",
"original_snippets": "Run obsidian help to see all available commands. This is always up to date.",
"relevant_when": "Unsure whether a command exists or what its exact syntax is",
"why_given": "preference"
},
{
"instruction": "Use obsidian eval only during plugin development and debugging, never in production plugin code; eval runs arbitrary JavaScript in the app context and is a development tool only",
"original_snippets": "Run JavaScript in the app context: obsidian eval code=\"app.vault.getFiles().length\"",
"relevant_when": "Developing or debugging an Obsidian plugin and needing to inspect app state",
"why_given": "new knowledge"
},
{
"instruction": "Follow the develop/test cycle when iterating on plugin code: reload the plugin with plugin:reload, check for errors with dev:errors, then verify visually with dev:screenshot or dev:dom",
"original_snippets": "Reload the plugin to pick up changes: obsidian plugin:reload id=my-plugin; Check for errors: obsidian dev:errors; Verify visually with a screenshot or DOM inspection",
"relevant_when": "Making changes to an Obsidian plugin and needing to verify them",
"why_given": "new knowledge"
},
{
"instruction": "Use \\n for newline and \\t for tab when providing multiline content in a single CLI parameter value",
"original_snippets": "For multiline content use \\n for newline and \\t for tab",
"relevant_when": "Creating or appending notes with structured content such as headings, lists, or tables",
"why_given": "new knowledge"
}
]
}defuddle
json-canvas
evals
obsidian-bases
evals
references
obsidian-cli
evals
obsidian-markdown
evals