From obsidian
Manages frontmatter property definitions (schemas) for Obsidian vaults via obsidian:props commands and frontmatter.py CLI. Use this skill to add, remove, or list core properties (type, up, created, daily, collection, related) and type-specific properties (e.g. status for projects, author for sources, mood for dailies, tags for dots/maps), check which properties are required vs optional for a note type, change a property between required/optional, export property schemas as YAML or JSON, or understand the property type system (string, date, wikilink, list[string], list[wikilink]). Always consult this skill for obsidian:props commands, frontmatter property definitions, property schema questions, or when adding/removing fields from note types. This skill manages property definitions only — not note validation (use validate), not note-type creation (use note-types), not settings.yaml editing (use config), not templates (use templates).
How this skill is triggered — by the user, by Claude, or both
Slash command
/obsidian:frontmatterThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Manages core and type-specific frontmatter properties for Obsidian vault notes.
Manages core and type-specific frontmatter properties for Obsidian vault notes.
| Command | Description |
|---|---|
obsidian:props | List core properties |
obsidian:props core | List core properties (explicit) |
obsidian:props core add <name> | Add a core property |
obsidian:props core remove <name> | Remove a core property |
obsidian:props type <name> | List properties for a note type |
obsidian:props required | List required properties |
obsidian:props types | List all types with properties |
# List core properties
uv run props_command.py --vault . core
# List properties for a type
uv run props_command.py --vault . type project
# Add a new core property
uv run props_command.py --vault . core add author
# Get required properties for a type
uv run props_command.py --vault . required --type project
Default core properties available to all notes:
| Property | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | Note type classification |
| up | wikilink | No | Parent note in hierarchy |
| created | date | Yes | Creation date (YYYY-MM-DD) |
| daily | wikilink | No | Associated daily note |
| collection | wikilink | No | Collection classification |
| related | list[wikilink] | No | Related notes |
Additional properties defined per note type:
list[string] - Topic tagslist[string] - Topic tagsstring - Map summarystring - Source authorstring - Source URLdate - Publication date (YYYY-MM-DD)string (required) - Project status (active, completed, archived, planning)date - Project deadline (YYYY-MM-DD)string - Daily mood (great, good, neutral, bad)# List all core properties
frontmatter.py list-core [--format text|json|yaml]
# Add or update core property
frontmatter.py add-core <name> <type> [--required] [--description DESC] [--format FORMAT]
# Remove core property
frontmatter.py remove-core <name>
# List all types
frontmatter.py list-types
# List properties for a specific type (or all types)
frontmatter.py list-type [TYPE] [--format text|json|yaml]
# Add type-specific property
frontmatter.py add-type-prop <type> <name> <prop_type> [--required] [--description DESC]
# Remove type-specific property
frontmatter.py remove-type-prop <type> <name>
# Get required properties for a note type
frontmatter.py get-required [TYPE] [--format text|json|yaml]
# Save current configuration
frontmatter.py save
Supported property types:
string - Text valuedate - Date in YYYY-MM-DD formatwikilink - Obsidian wikilink [[Note]]list[string] - List of text valueslist[wikilink] - List of wikilinksConfiguration is stored at .claude/config/frontmatter.yaml in the vault:
core_properties:
type:
required: true
type: string
description: Note type classification
# ... other core properties
type_properties:
dot:
tags:
required: false
type: list[string]
description: Topic tags
# ... other types
Each property can have:
true|false - Whether property is mandatoryYYYY-MM-DD for dates)The frontmatter manager provides property definitions used by the validator:
All list commands support multiple output formats:
# Add a priority property
uv run scripts/frontmatter.py add-core priority string \
--description "Note priority" --save
# Add budget field to projects
uv run scripts/frontmatter.py add-type-prop project budget string \
--description "Project budget"
# Make it required
uv run scripts/frontmatter.py add-type-prop project budget string \
--required --description "Project budget"
# Export all core properties
uv run scripts/frontmatter.py list-core --format yaml > core-properties.yaml
# Export type properties
uv run scripts/frontmatter.py list-type --format yaml > type-properties.yaml
| Skill | Relationship |
|---|---|
| config | Reads property definitions from settings.yaml |
| validate | Uses property rules for frontmatter validation |
| note-types | Defines which properties each note type requires |
| templates | Templates include frontmatter with these properties |
| init | Sets up initial property definitions per methodology |
Boundary: This skill manages property definitions (schema). The validate skill checks property values in actual notes.
| Type | Example Value | YAML Format |
|---|---|---|
string | "active" | status: active |
date | 2025-01-15 | created: 2025-01-15 |
wikilink | [[Parent]] | up: "[[Parent]]" |
list[string] | ["tag1", "tag2"] | tags: [tag1, tag2] |
list[wikilink] | ["[[A]]", "[[B]]"] | related: ["[[A]]", "[[B]]"] |
In terminal mode, the interactive wizard guides you through property management.
When called without a terminal (e.g., in Claude Code), JSON is returned:
{
"interactive_required": true,
"action": "add",
"config_schema": {...}
}
Use --config='...' or --yes to pass values directly.
required only when truly mandatorynpx claudepluginhub wep4you/wep4you-agent-skills --plugin obsidianGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.