Manage YAML frontmatter properties with consistent formatting, property names, and value types. Use when creating or updating frontmatter in markdown files.
Scanned 6/11/2026
Install via CLI
openskills install jykim/claude-obsidian-skills---
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)
- Ingested content (Clippings, Articles)
- Created content (Analysis, Tasks, Events)
- Topic/Project pages
### Step 2: Select Property Set
- Core properties (title, created, tags)
- Add source/author if applicable
- Add relational links (sources, links, attendees)
- Add content-specific properties
### Step 3: Format Values
- Dates: YYYY-MM-DD format
- Tags: Plain text list (no #)
- Links: Quoted wiki links
- Special chars: Quote values with `:` or `#`
### Step 4: Structure Check
- Single YAML block at top
- Blank line after `---`
- Consistent property names (lowercase)
- No duplicate properties
## Quality Checklist
Before completing frontmatter:
- [ ] Single YAML block at top with blank line after
- [ ] All property keys lowercase and consistent
- [ ] Tags are plain text (NO hashtags)
- [ ] Dates in YYYY-MM-DD format
- [ ] Wiki links wrapped in quotes
- [ ] Special characters quoted appropriately
- [ ] No duplicate properties (created vs date, tags vs tag)
No comments yet. Be the first to comment!