From claude-superskills
Creates, validates, standardizes, and repairs YAML frontmatter in Obsidian notes for tags, aliases, dates, custom properties, and Properties panel compatibility.
npx claudepluginhub ericgandrade/claude-superskills --plugin claude-superskillsThis skill uses the workspace's default tool permissions.
This skill manages YAML frontmatter — the metadata block at the top of every Obsidian note, delimited by `---`. Obsidian calls these "Properties" and displays them in a structured panel. This skill covers the complete lifecycle of frontmatter: writing it correctly the first time, enforcing consistent schema across notes, updating stale properties, and repairing malformed YAML that causes Obsidi...
Generates Obsidian Flavored Markdown with wikilinks, callouts, embeds, frontmatter properties, tags, and block references for creating/editing notes in Obsidian vaults.
Manages Obsidian YAML frontmatter properties via official CLI: reads, sets typed values (text, date, tags, number), removes metadata on notes. Activates for frontmatter, properties, YAML, status, tags, dates, aliases.
Creates and edits Obsidian Markdown with wikilinks, embeds for notes/images/PDFs/audio/video, callouts, YAML frontmatter/properties, tags, and block references. For .md files in Obsidian vaults.
Share bugs, ideas, or general feedback.
This skill manages YAML frontmatter — the metadata block at the top of every Obsidian note, delimited by ---. Obsidian calls these "Properties" and displays them in a structured panel. This skill covers the complete lifecycle of frontmatter: writing it correctly the first time, enforcing consistent schema across notes, updating stale properties, and repairing malformed YAML that causes Obsidian to show parsing errors.
Frontmatter is how Obsidian notes become queryable. Without consistent, well-formed properties, Dataview queries fail, searches return incomplete results, and the vault's metadata structure erodes over time. This skill treats frontmatter as the schema layer of your knowledge base.
Invoke this skill when:
tags or aliases)Do NOT use this skill when:
obsidian-links insteadobsidian-note-builder insteadFrontmatter must be the very first content in a file, with the opening --- on line 1:
---
title: My Note Title
date: 2024-01-15
tags:
- project
- active
aliases:
- Alternative Title
status: in-progress
---
Critical YAML rules:
--- must be on line 1 with no preceding blank lines or characters- (dash + space) prefixtags: [tag1, tag2] is invalid in Obsidian Propertiestitle: "My Note: A Subtitle"true / false (lowercase, no quotes)YYYY-MM-DD — Obsidian stores them as date objects| Property | Type | Description |
|---|---|---|
title | Text | Human-readable title (often matches filename) |
date | Date | Creation or primary date |
tags | List | Topics and categories for filtering |
aliases | List | Alternative names for link suggestions |
status | Text | Current state (e.g., draft, active, done) |
Meeting notes:
attendees:
- Name One
- Name Two
date: 2024-01-15
project: "[[Project Alpha]]"
action_items:
- Task assigned to [[Person]]
Project notes:
status: active
start_date: 2024-01-01
due_date: 2024-03-31
stakeholders:
- "[[Alice Chen]]"
priority: high
Reference / resource notes:
source: "https://example.com/article"
author: Author Name
read_date: 2024-01-15
rating: 4
Daily notes:
date: 2024-01-15
mood: 7
energy: 6
focus_areas:
- Deep Work
- Exercise
Read the note to determine its current state:
--- on line 1?)If the note has a malformed frontmatter block, identify the specific error:
tags: [a, b] to multiline list:, #, or [Ask the user which note type this is if not clear from context. Use the appropriate template from the standard schema above. If the user has provided custom fields, include them.
If updating an existing frontmatter block:
Generate the complete updated frontmatter block. Rules:
Tags must be a YAML list — never inline:
tags:
- project
- active
tags: [project, active]Aliases must be a YAML list:
aliases:
- My Alternative Name
aliases: My Alternative NameDates must be unquoted ISO 8601:
date: 2024-01-15date: "January 15, 2024"Wikilinks in frontmatter must be quoted:
project: "[[Project Alpha]]"project: [[Project Alpha]]No extra blank lines inside the frontmatter block
When editing an existing note:
--- pair)--- delimiters--- exactly as writtenWhen adding frontmatter to a note that has none:
After generating the frontmatter, verify:
--- is on line 1tags and aliases are multiline YAML lists[[...]]) — they must be quoted stringsYYYY-MM-DD formatTags in Obsidian support hierarchy via /:
#project/active — nested tag for active projects#area/work — area of life tag#resource/book — resource typeIn frontmatter, tags are written without the # prefix:
tags:
- project/active
- area/work
- resource/book
Recommended tag categories:
inbox, draft, active, done, archivedmeeting, project, concept, reference, daily, mocwork, personal, learning, healthWhen the user wants to standardize frontmatter across multiple notes:
Updated 12 notes:
✅ Added tags to: Meeting 2024-01-15.md, Project Alpha.md, ...
✅ Fixed inline tags format in: Book Notes.md, Resource List.md
⚠️ Skipped: Archive/Old Note.md (no changes needed)
NEVER:
tags: [a, b] — always use the multiline list format--- and the first property---ALWAYS:
YYYY-MM-DD)aliases property if the note's title has common abbreviations or alternative names:, #, or [Example 1: Add frontmatter to a new meeting note
User: "Add metadata to this meeting note: attendees Alice Chen and Bob Martinez, project Project Alpha, date January 15 2024."
Output:
---
title: Q2 Planning Kickoff
date: 2024-01-15
tags:
- meeting
- project/active
attendees:
- "[[Alice Chen]]"
- "[[Bob Martinez]]"
project: "[[Project Alpha]]"
status: done
---
Example 2: Fix malformed frontmatter
User: "Obsidian is showing a YAML error in this note. Here is the current frontmatter:"
---
title: Strategy Note
tags: [product, strategy, q2]
date: March 2024
project: [[Initiative X]]
---
Issues found:
tags uses inline list format — must be multilinedate is not ISO 8601 format — should be 2024-03-01project has an unquoted wikilink — must be quotedFixed output:
---
title: Strategy Note
tags:
- product
- strategy
- q2
date: 2024-03-01
project: "[[Initiative X]]"
---
Example 3: Add a custom property to multiple notes
User: "Add priority: high to all my notes tagged with project/active."
Response: Lists matching notes, confirms, then outputs the changes for each, preserving all existing properties.
Example 4: Build a project note template
User: "Create a frontmatter template for all my project notes."
Output:
---
title: Project Name
date: YYYY-MM-DD
status: planning
priority: medium
tags:
- project
- status/planning
stakeholders:
- "[[Person Name]]"
due_date: YYYY-MM-DD
---
Example 5: Add tags to an existing note without touching the body
User: "Add tags 'area/work' and 'type/reference' to this note."
tags list (or create the tags field if absent)