AgentSkillsCN

frontmatter-parser

将 Markdown 笔记中的 YAML frontmatter 解析为结构化数据。适用于按笔记的元数据属性(创建时间、标签、作者、摘要、主题、前序、后续、相关联内容等)进行搜索、筛选或查询。让您能够在整个知识库中快速开展基于属性的检索。

SKILL.md
--- frontmatter
name: frontmatter-parser
description: Parse YAML frontmatter from markdown notes into structured data. Use when searching, filtering, or querying notes by their metadata properties (created, tags, author, summary, TOPIC, PRIOR, NEXT, RELATED_TO, etc.). Enables quick property-based searches across the vault.
allowed-tools: Read, Grep, Glob, Bash

Frontmatter Parser

Parse and query YAML frontmatter metadata from Obsidian vault markdown files.

Instructions

  1. Single File Parsing: Use Read tool to view a markdown file, then extract YAML between opening --- and closing --- delimiters at the start of the file.

  2. Batch Parsing: Use the Python helper script at .claude/skills/frontmatter-parser/scripts/parse_frontmatter.py for efficient batch operations:

    bash
    uv run --with pyyaml .claude/skills/frontmatter-parser/scripts/parse_frontmatter.py <command> [args]
    
  3. Property Search: To find notes with specific property values, use the helper script's search capabilities or combine Grep with Read.

Helper Script Commands

bash
# Parse single file and output JSON
uv run --with pyyaml .claude/skills/frontmatter-parser/scripts/parse_frontmatter.py parse <file_path>

# Search for notes with specific property value
uv run --with pyyaml .claude/skills/frontmatter-parser/scripts/parse_frontmatter.py search <directory> <property> <value>

# List all unique values for a property across directory
uv run --with pyyaml .claude/skills/frontmatter-parser/scripts/parse_frontmatter.py values <directory> <property>

Vault Property Schema

Based on 02-SlipBox/Obsidian Property.md, these are the standard properties:

Core Properties (Universal)

PropertyTypeDescription
createdDate (YYYY-MM-DD)Note creation date
last_updatedDate (YYYY-MM-DD)Last modification date
authorArray of stringsNote authors/contributors
tagsArray of stringsHierarchical structural tags
aliasesArray of stringsAlternative names for linking
summaryStringBrief description of content

Zettelkasten Properties

PropertyTypeDescription
TOPICArray of wikilinksMain topic categorization
PRIORArray of wikilinksPrerequisite/previous notes
NEXTArray of wikilinksFollow-up notes
RELATED_TOArray of wikilinksCross-references

Project-Specific Properties

PropertyTypeDescription
start_dtDateProject start date
end_dtDate or nullProject completion date
cloud_driveURLExternal storage link
projectArray of wikilinksAssociated projects

Reference-Specific Properties

PropertyTypeDescription
titleStringOriginal title of work
urlURLLink to original source
yearNumberPublication year
zotero_uriURIZotero item link
publishedDatePublication date

Examples

Find all notes by a specific author

bash
uv run --with pyyaml .claude/skills/frontmatter-parser/scripts/parse_frontmatter.py search "02-SlipBox" author "Yixin Tian"

List all unique tags in the vault

bash
uv run --with pyyaml .claude/skills/frontmatter-parser/scripts/parse_frontmatter.py values "." tags

Find notes created after a specific date

bash
uv run --with pyyaml .claude/skills/frontmatter-parser/scripts/parse_frontmatter.py search "." created "2025-01-01" --operator gte

Find notes with specific tag

bash
uv run --with pyyaml .claude/skills/frontmatter-parser/scripts/parse_frontmatter.py search "." tags "slip-box/concept"

YAML Frontmatter Format

yaml
---
created: 2025-09-27
last_updated: 2025-12-08
author:
  - Yixin Tian
tags:
  - slip-box/concept
aliases:
  - Alternative Name
summary: Brief description of note content
TOPIC:
  - "[[Parent Topic]]"
PRIOR:
  - "[[Prerequisite Note]]"
NEXT:
  - "[[Follow-up Note]]"
RELATED_TO:
  - "[[Related Concept 1]]"
  - "[[Related Concept 2]]"
---

Notes

  • Wikilinks in frontmatter use format: "[[Note Name]]" (quoted)
  • Arrays use multi-line YAML format with - prefix
  • Empty arrays use []
  • Null/empty values leave the property with no value after colon
  • Tags are hierarchical using / separator (e.g., ref/media/books)