Obsidian markdown mastery
Skill richfrem/agent-plugins-skills/plugins/obsidian-wiki-engine/skills/obsidian-markdown-mastery
repo for reusable plugins and skills
npx -y skills add richfrem/agent-plugins-skills --skill obsidian-markdown-masteryAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Core markdown syntax skill for Obsidian. Enforces strict parsing and authoring of Obsidian proprietary syntax (Wikilinks, Blocks, Headings, Aliases, Embeds, Callouts). Use when reading, writing, or validating Obsidian-flavored markdown.
SKILL.md
3.1 KB, as published. Nobody here has run it
Dependencies
This skill requires Python 3.8+ and standard library only. No external packages needed.
To install this skill's dependencies:
pip-compile ./requirements.in
pip install -r ./requirements.txt
See ./requirements.txt for the dependency lockfile (currently empty — standard library only).
Obsidian Markdown Mastery (Protocol 129 COMPLIANT)
Status: Active Author: Obsidian Integration Plugin Domain: Obsidian Integration
Core Mandate
The obsidian-markdown-mastery skill is responsible for the exact formatting, extraction, and validation of Obsidian-flavoured Markdown. It provides the low-level string manipulation that allows higher-order agents (like the Graph Traverser or JSON Canvas Architect) to safely interpret relational links without breaking the .md Vault.
CRITICAL ARCHITECTURAL RULE: All vault data manipulation MUST occur through deterministic Python scripts rather than agent-prompted regex. This skill defines the
obsidian-parsermodule that performs these deterministic actions.Agnosticism Enforcement: This module knows NOTHING about project-specific protocols, persistence layers, or external services. It only knows how to parse text into valid Obsidian links and block-quotes. Project-specific configuration (vault paths, injection points) is managed via the
OBSIDIAN_VAULT_PATHenvironment variable.
Available Commands
Analyze Markdown Content
Extracts all Obsidian-specific metadata (links, embeds, blocks) from a given markdown file or string.
Command: python ./parser.py analyze --file <path_to_md>
Inject Callout
Wraps a target text block in an Obsidian-flavored callout.
Command: python ./parser.py callout --type <type> --title <title> --text <content>
The Parsed Syntax (Data Dictionary)
When manipulating strings via this module, the following formats are enforced:
1. Linking and Aliasing
- Standard Link:
[[Note Name]] - Heading Link:
[[Note Name#Heading Name]] - Block Link:
[[Note Name#^block-id]] - Aliased Link:
[[Note Name|Display Text]]
2. Transclusion (Embeds)
- Standard Embed:
![[Note Name]](Note the leading!) - (The parser specifically categorizes these differently so graph mappers know they are transclusions, not semantic links).
3. Callouts
- Syntax:
> [!type] Title > Content block goes here. - Supported Types:
info,warning,error,success,note.
Configuration Environment Variable
Other tools (such as protocol-manager and chronicle-manager) rely on the unified OBSIDIAN_VAULT_PATH environment variable to discover where the root of the Obsidian Vault resides. If missing, it defaults to the project root.