Agent skill
normalize-note
Harmonize frontmatter and wikilinks in a note. Detects prose patterns, suggests frontmatter additions, and suggests wikilinks for frontmatter values. Triggers on "normalize note", "harmonize note", "sync frontmatter".
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/normalize-note
SKILL.md
Normalize Note
Harmonize the relationship between frontmatter (Schema-Native) and wikilinks (Graph-Native) in a note.
When to Use
Invoke when you want to:
- Detect "Key: [[Value]]" patterns in prose and suggest frontmatter fields
- Find frontmatter values that could be converted to wikilinks
- Check consistency between frontmatter references and prose wikilinks
- Get a unified view of how to improve note structure
Arguments
| Argument | Required | Description |
|---|---|---|
| path | Yes | Path to the note to normalize (e.g., "projects/my-project.md") |
Process
1. Parse User Input
Recognize normalization requests:
- "normalize this note"
- "harmonize frontmatter and wikilinks in projects/foo.md"
- "sync the frontmatter with the prose"
2. Call MCP Tools (in sequence)
# Step 1: Detect prose patterns
mcp__flywheel__detect_prose_patterns(path)
# Step 2: Suggest frontmatter from patterns
mcp__flywheel__suggest_frontmatter_from_prose(path)
# Step 3: Suggest wikilinks for frontmatter
mcp__flywheel__suggest_wikilinks_in_frontmatter(path)
# Step 4: Validate cross-layer consistency
mcp__flywheel__validate_cross_layer(path)
3. Format Results
Note Normalization Report: projects/my-project.md
=================================================
Prose Patterns Detected (5):
-------------------------------------------------
Line 12: Client: [[Acme Corp]] -> client: [[Acme Corp]]
Line 14: Status: Active -> status: Active
Line 15: Owner: [[Ben Carter]] -> owner: [[Ben Carter]]
Line 18: Priority: High -> priority: High
Line 22: Due Date: 2024-01-15 -> due_date: 2024-01-15
Frontmatter -> Wikilink Suggestions (2):
-------------------------------------------------
Field: attendees[0] = "Ben Carter"
-> attendees: [[[Ben Carter]], "Sarah Johnson"]
Target: people/Ben Carter.md
Field: project = "Phoenix"
-> project: [[Phoenix]]
Target: projects/Phoenix.md
Cross-Layer Consistency:
-------------------------------------------------
✓ Consistent (in both): [[Acme Corp]], [[Ben Carter]]
⚠ Frontmatter only: Sarah Johnson (not linked in prose)
⚠ Prose only: [[Another Note]] (not in frontmatter)
Recommended Actions:
-------------------------------------------------
1. Add detected patterns to frontmatter
2. Convert matching frontmatter values to wikilinks
3. Review prose-only links for frontmatter inclusion
=================================================
Use Cases
- New note cleanup: After writing, normalize to add proper structure
- Schema migration: Convert prose-heavy notes to structured frontmatter
- Graph enhancement: Make frontmatter values traversable via wikilinks
- Consistency audit: Ensure frontmatter and prose references align
Integration
Works with other bidirectional skills:
- promote-frontmatter: Apply frontmatter suggestions
- wikilinkify-frontmatter: Convert frontmatter values to wikilinks
Version: 1.0.0
Didn't find tool you were looking for?