Skill detail
obsidian-yaml-frontmatter
Directly manages Obsidian vault frontmatter properties.
Inspect before use
Automated review checks relevance, not safety or endorsement. Read the source instructions before using this skill.
SKILL.md
The saved excerpt is a snapshot from review. The external source remains the complete and most current version.
--- name: obsidian-yaml-frontmatter description: Manage YAML frontmatter properties with consistent formatting, property names, and value types. Use when creating or updating frontmatter in markdown files. allowed-tools: - Read - Edit license: MIT --- # YAML Frontmatter Management Standardize YAML frontmatter properties across all vault content. ## When to Use This Skill Activate when you need to: - Add or update frontmatter in markdown files - Ensure consistent property naming and formatting - Format tags, dates, or other property values - Validate frontmatter structure > **Note**: This skill manages frontmatter **PROPERTIES** (keys, values, types, formatting). > For document **STRUCTURE** (heading hierarchy, section order, frontmatter position), use `obsidian-markdown-structure` skill. ## Core Frontmatter Rules ### 1. Single YAML Block at Top **Structure**: ```yaml --- property: value --- ## First Section Header ``` **Critical Rules**: - One YAML block at top of file - Blank line after closing `---` - No content before first heading (after frontmatter) ### 2. Standard Property Names **Use lowercase, consistent keys**: ```yaml ✅ CORRECT: title: Document Title created: 2025-10-31 tags: - tag1 source: https://example.com author: Author Name ❌ INCORRECT: Title: Document Title (capitalized) date: 2025-10-31 (use "created" not "date") tag: tag1 (use "tags" plural) ``` **No Duplicate Properties**: - Use `created` (not both `date` and `created`) - Use `tags` (not both `tag` and `tags`) ### 3. Tag Formatting **CRITICAL: Plain text in YAML, NO hashtags**: ```yaml ✅ CORRECT: tags: - journal - daily - reflection ❌ INCORRECT: tags: - #journal - #daily ``` **Always use list format with dashes**: ```yaml ✅ CORRECT (list format): tags: - tag1 - tag2 ❌ INCORRECT (inline): tags: [tag1, tag2] ``` ### 4. Date Format **Use YYYY-MM-DD consistently**: ```yaml ✅ CORRECT: created: 2025-10-31 updated: 2025-11-01 ❌ INCORRECT: created: 10/31/2025 created: 2025-10-31T10:30:00 ``` ### 5. Link Lists **Wrap wiki links in quotes**: ```yaml ✅ CORRECT: sources: - "[[Journal/2025-10-31]]" - "[[Articles/2025-10-31 Title]]" links: - "[[Roundup/2025-10-31]]" attendees: - "[[People/John]]" - Jane ❌ INCORRECT: sources: - [[Journal/2025-10-31]] (missing quotes) ``` ### 6. Quote Values with Special Characters **Quote values containing**: `:` `#` `"` or numeric-looking strings **Single quote wrapping (easiest for values with `"`)**: ```yaml ✅ CORRECT: title: 'He said, "Hello."' note: 'It\'s called "PKM".' ``` **Double quote wrapping with escaping**: ```yaml ✅ CORRECT: title: "He said, \"Hello.\"" source: "https://example.com" version: "2.0" ``` **Literal double-quote character**: ```yaml ✅ CORRECT: quote_char: '"' ``` **Mixed quotes preference**: Use double quotes, escape only `"` (single quotes don't need escaping): ```yaml ✅ CORRECT: note: "It's called \"PKM\"." ❌ INCORRECT: title: AI Era: Thriving Framework (unquoted colon) version: 2.0 (parsed as number, not string) ``` **Multiline values (no escaping needed)**: ```yaml ✅ CORRECT: description: | He said, "Hello." New line preserved. ``` ## Standard Property Set ### Core Properties (All Content) ```yaml --- title: Document Title created: YYYY-MM-DD tags: - category - type --- ``` ### Content with Sources ```yaml --- title: Article Title created: YYYY-MM-DD source: https://url or file path author: Author Name tags: - clipping - topic --- ``` ### Relational Content ```yaml --- title: Document Title created: YYYY-MM-DD tags: - category sources: - "[[Source File 1]]" - "[[Source File 2]]" links: - "[[Related Topic]]" --- ``` ### Events/Meetings ```yaml --- title: Meeting Name created: YYYY-MM-DD event_date: YYYY-MM-DD attendees: - "[[Person 1]]" - Person 2 sources: - "[[Journal/YYYY-MM-DD#Section]]" tags: - meeting - event --- ``` ## Workflow ### Step 1: Determine Content Type - Daily content (Journal, Notes) - IngesRead the full source on GitHub (opens external page)