Skip to main content
ClaudeWave
Skill2.5k repo starsupdated 2mo ago

add-frontmatter

The add-frontmatter Claude Code skill analyzes Obsidian markdown notes and intelligently generates or updates YAML frontmatter metadata based on note content and type. Use this skill when users request frontmatter creation, updates, normalization, or metadata improvements for individual notes or entire folders, including property additions for meetings, daily entries, references, and projects.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/heyitsnoah/claudesidian /tmp/add-frontmatter && cp -r /tmp/add-frontmatter/.agents/skills/add-frontmatter ~/.claude/skills/add-frontmatter
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

You will analyze Obsidian notes and add intelligent YAML frontmatter properties
to enhance organization and discoverability.

## Input

- Path: file or folder to process
- Current date: use the system date

## Your Task

### Step 1: Identify Notes to Process

```bash
# If single file
Read the specified file

# If folder
Find all .md files in folder
```

### Step 2: Analyze Note Content

For each note, examine:

- Main topics and themes
- Note type (meeting, daily, reference, project)
- Key entities (people, projects, dates)
- Existing properties (preserve valid ones)
- Title quality (add/improve if needed)

### Step 3: Generate Appropriate Properties

#### Standard Properties by Note Type

**Meeting Notes:**

```yaml
---
title: [Descriptive meeting title]
date: YYYY-MM-DD
type: meeting
attendees: ['Person 1', 'Person 2']
project: Project Name
tags: [meeting, project-name]
action_items:
  - 'Action item 1'
  - 'Action item 2'
status: complete
---
```

**Daily Notes:**

```yaml
---
title: Daily Note - YYYY-MM-DD
date: YYYY-MM-DD
type: daily-note
tags: [daily]
highlights:
  - 'Key event or thought'
mood: productive
---
```

**Reference/Article Notes:**

```yaml
---
title: [Article or concept title]
type: reference
source: "[[Source Note]]" or URL
author: Author Name
date_saved: YYYY-MM-DD
tags: [topic1, topic2]
key_concepts: [concept1, concept2]
---
```

**Project Notes:**

```yaml
---
title: [Project Name - Component]
type: project
status: in-progress
deadline: YYYY-MM-DD
stakeholders: ['Person 1', 'Team 2']
tags: [project, area]
priority: high
---
```

### Step 4: Apply Properties

For each note:

1. Check for existing frontmatter
2. Merge new properties (don't duplicate)
3. Fix any deprecated formats:
   - `tag` → `tags`
   - `alias` → `aliases`
   - `cssclass` → `cssclasses`
4. Ensure valid YAML syntax

### Step 5: Update File

```yaml
# Format:
---
property: value
list_property: ['item1', 'item2']
date_property: YYYY-MM-DD
linked_property: '[[Note Name]]'
---
[Original content]
```

## Property Guidelines

### Naming Conventions

- Use lowercase with underscores: `date_created`, `action_items`
- Be consistent with existing vault patterns
- Prefer clear over clever names

### Value Types

- **Text**: Simple strings, use quotes for links
- **List**: Arrays for multiple values
- **Date**: ISO format (YYYY-MM-DD)
- **Number**: For counts, ratings, priorities
- **Checkbox**: For boolean states

### Quality Checks

- ✅ Valid YAML syntax
- ✅ No duplicate properties
- ✅ Appropriate property types
- ✅ Quoted internal links
- ✅ Meaningful values (not empty)

## Special Cases

### Untitled Notes

Generate title from:

1. First heading if exists
2. First paragraph summary
3. Main topic/concept discussed

### Bulk Processing

When processing folders:

- Maintain consistency across similar notes
- Use same property names for same concepts
- Report summary of changes made

### Existing Properties

- Preserve valid existing properties
- Update deprecated formats
- Merge new properties carefully
- Never delete without reason

## Examples

### Before:

```markdown
Had a great meeting with the team about Q1 planning...
```

### After:

```markdown
---
title: Q1 Planning Team Meeting
date: 2025-09-02
type: meeting
attendees: ['Team']
project: Q1 Planning
tags: [meeting, planning, q1-2025]
status: complete
---

Had a great meeting with the team about Q1 planning...
```

Remember: Properties should enhance organization, not clutter. Only add what
provides value for finding and connecting notes.
daily-reviewSkill

Conduct an end-of-day review to capture progress and set up tomorrow. Use when the user asks for a daily review, end of day wrap-up, EOD note, what they did today, or wants to reflect on the day and plan tomorrow.

de-ai-ifySkill

Remove AI-generated jargon and restore human voice to text. Use when the user asks to de-AI-ify, humanize, remove AI tone, or make text sound less machine-generated.

download-attachmentSkill

Download files from URLs to the Obsidian attachments folder and organize them with descriptive names. Use when the user provides URLs to download, asks to save files from the web, or wants to add web content as attachments.

git-worktreesSkill

Work with git worktrees for isolated parallel development. Use when starting feature work in isolation, when need separate workspace without branch switching, or when cleaning up worktrees after PR merge.

inbox-processorSkill

Help organize and process items in the 00_Inbox folder according to the PARA method. Use when the user asks to process, clear, sort, triage, or organize their inbox.

init-bootstrapSkill

Interactive setup wizard that helps new users create a personalized CLAUDE.md file based on their Obsidian workflow preferences. Use when the user wants to set up claudesidian, onboard a new vault, or run the bootstrap/init/setup wizard.

install-claudesidian-commandSkill

Install claudesidian shell command to launch Claude Code from anywhere. Use when the user wants to install a shell alias/launcher for their vault, or asks to set up the claudesidian command.

json-canvasSkill

Create and edit JSON Canvas files (.canvas) with nodes, edges, groups, and connections. Use when working with .canvas files, creating visual canvases, mind maps, flowcharts, or when the user mentions Canvas files in Obsidian.