Agent skill

vault-schema-check

Find fields that have multiple different types across notes (schema violations). Triggers on "schema check", "frontmatter inconsistencies", "metadata violations", "type mismatches".

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/devops/check-schema

SKILL.md

Frontmatter Schema Checker

Detect fields with inconsistent types across your vault (schema violations).

When to Use

Invoke when you want to:

  • Find frontmatter fields with mixed types (string vs array)
  • Detect data quality issues
  • Prepare for vault migrations
  • Ensure metadata consistency

Arguments

Argument Required Description
None - This skill requires no arguments

Process

1. Parse User Input

Recognize schema check requests:

  • "check my frontmatter for inconsistencies"
  • "find schema violations"
  • "are there type mismatches in my metadata?"
  • "frontmatter health check"

2. Call MCP Tool

mcp__flywheel__find_frontmatter_inconsistencies()

3. Format Results

Inconsistencies Found:

Frontmatter Schema Check
=================================================

⚠️ Found 3 fields with type inconsistencies

-------------------------------------------------

Field: tags
  Expected: array (majority usage)
  Inconsistencies: 12 notes

  Type Distribution:
    array:   89 notes (88%)  ✓ Expected
    string:  12 notes (12%)  ⚠️ Should be array

  Example violations:
    - daily-notes/2025-12-15.md: tags: "work" (string)
    - projects/alpha.md: tags: "project, active" (string)

  Fix suggestion:
    Convert string values to arrays:
    tags: "work" → tags: ["work"]
    tags: "project, active" → tags: ["project", "active"]

-------------------------------------------------

Field: priority
  Expected: number (majority usage)
  Inconsistencies: 5 notes

  Type Distribution:
    number:  23 notes (82%)  ✓ Expected
    string:   5 notes (18%)  ⚠️ Should be number

  Example violations:
    - tasks/review.md: priority: "high" (string)
    - tasks/urgent.md: priority: "1" (quoted number)

  Fix suggestion:
    Convert to numeric values:
    priority: "high" → priority: 1
    priority: "1" → priority: 1

-------------------------------------------------

Field: date
  Expected: string (YYYY-MM-DD format)
  Inconsistencies: 2 notes

  Type Distribution:
    string:  340 notes (99%)  ✓ Expected
    number:    2 notes (1%)   ⚠️ Numeric dates

  Example violations:
    - archive/old-note.md: date: 20231215 (number)

  Fix suggestion:
    Convert to string format:
    date: 20231215 → date: "2023-12-15"

-------------------------------------------------

Summary:
  Total fields checked: 15
  Fields with issues: 3
  Notes affected: 19

Recommended actions:
  1. Fix 'tags' field in 12 notes (string → array)
  2. Fix 'priority' field in 5 notes (string → number)
  3. Fix 'date' field in 2 notes (number → string)

=================================================

No Inconsistencies:

Frontmatter Schema Check
=================================================

✓ No type inconsistencies found!

All 15 frontmatter fields have consistent types
across all notes in your vault.

Fields verified:
  - type: string (234 notes)
  - status: string (156 notes)
  - tags: array (101 notes)
  - priority: number (28 notes)
  - date: string (342 notes)
  ... and 10 more fields

Your vault schema is healthy! ✓

=================================================

Understanding Schema Violations

Issue Description Impact
String vs Array tags: "work" vs tags: ["work"] Dataview queries may fail
String vs Number priority: "1" vs priority: 1 Sort/filter issues
Inconsistent Nulls field: null vs missing field Query edge cases

Use Cases

  • Data quality: "Is my frontmatter consistent?"
  • Migration prep: "What needs fixing before export?"
  • Dataview debugging: "Why is my query not working?"
  • Bulk cleanup: "What fields have type issues?"

Integration

Works well with other skills:

  • vault-schema: Understand field overview first
  • vault-field-values: See specific value distributions
  • vault-search: Find notes to fix by field criteria

Vault Rules Observed

This skill (and the Schema Enforcer agent) follow vault rules:

  • Never add wikilinks to YAML frontmatter
  • Keys must be lowercase without special characters
  • Values should be plain text (except author [[@username]])
  • Protected folders must use subfolders

Version: 1.0.0

Didn't find tool you were looking for?

Be as detailed as possible for better results