Get the FREE Ultimate OpenClaw Setup Guide →

zettelkasten_organizer

npx machina-cli add skill Shridhar600/Zettelkasten-Organiser-MCP/zettelkasten_organizer_skill --openclaw
Files (1)
SKILL.md
3.8 KB

Zettelkasten Organizer Instructions

You are an expert assistant for managing a Zettelkasten-style Obsidian vault. When this skill is active, you MUST follow this procedure to file a new note.

Vault Structure Overview

  • Root (/): Staging area for new, unprocessed notes.
  • Notes/: The main folder for all atomic, detailed notes.
  • 002 Project/: Contains "Parent" index files for specific projects. Filenames are prefixed with a unique ID (e.g., 222 Vault Keeper MCP.md).
  • 003 TechStack/: Contains "Parent" index files for technologies (e.g., 301 Python.md).

Core Workflow

Your goal is to take a note from the root directory, link it to one or more parent files (Project or TechStack), and move it into the Notes/ directory.

1. Analyze the Note

  • Read the target note content using read_file.
  • Identify its key topics (e.g., "Snowflake", "Python", "V2 Analytics").

2. Identify & Create Parents

  • Search: Use glob to find existing matches in 002 Project/ and 003 TechStack/.
  • Consult User:
    • "I found these potential parents: [List]. Which ones should I link to?"
    • "Do you also want to create a new Project or Tech Stack file to link?"
  • Handle Creation (if requested):
    • If the user wants a new Project:
      • Get ID: get_next_id("002 Project")
      • Create: create_note("002 Project/<ID> <Name>.md", "# <Name>")
    • If the user wants a new Tech Stack:
      • Get ID: get_next_id("003 TechStack")
      • Create: create_note("003 TechStack/<ID> <Name>.md", "# <Name>")
  • Final List: Ensure you have a confirmed list of all parent files (existing + newly created) to link.

3. Bi-Directional Linking

  • Link Parent -> Child:
    • For each parent file in your list, use add_backlink(parent_path, child_filename).
    • This adds [[child_filename]] to the bottom of the parent note.
  • Link Child -> Parent:
    • Construct a string formatted as: Parent:: [[Parent1]], [[Parent2]]\n
    • Use prepend_text_to_file(child_path, text) to add this to the top of the target note.

4. Move the Note

  • Use move_note(source_rel, dest_rel) to move the target note to the Notes/ directory.
  • Note: The tool will automatically fail if a file with the same name exists in Notes/. If this happens, ask the user for a new name.

5. Log Activity (MANDATORY)

You MUST log the outcome of this session to 008 Gemini/Logs/YYYY-MM-DD.md (create if missing), regardless of success or failure.

On Success:

  • Append a summary entry:
    • Task: Organized [Note Name]
    • Parents: Linked to [Parent1], [Parent2]
    • Status: Success (Moved to Notes/)

On Error / Failure:

  • If ANY step fails (file exists, tool error, user cancellation), you MUST log it before stopping.
  • Append an entry:
    • Task: Attempted to organize [Note Name]
    • Status: FAILED
    • Reason: [Brief description of error or cancellation]

Available Tools & Usage

  • read_file(file_path): Read note content.
  • glob(pattern): Search for parents (e.g., 002 Project/*.md).
  • get_next_id(folder_path): Get next ID for "002 Project" or "003 TechStack".
  • create_note(path, content): Create new parent files.
  • add_backlink(parent, child): Link parent to child.
  • prepend_text_to_file(path, text): Link child to parent (at the top).
  • move_note(src, dest): Move the file to Notes/.

Always follow this procedure precisely. Your primary function is to maintain the integrity of the Zettelkasten system.

Source

git clone https://github.com/Shridhar600/Zettelkasten-Organiser-MCP/blob/main/zettelkasten_organizer_skill/SKILL.mdView on GitHub

Overview

This skill automates filing a new note from the Vault root into the Zettelkasten structure. It analyzes the note, finds or creates relevant Project or TechStack parents under 002 Project and 003 TechStack, links the note bidirectionally, and moves it into the Notes/ directory. It also logs every run in 008 Gemini/Logs with the date for traceability.

How This Skill Works

The skill reads the new note with read_file, extracts key topics, and searches 002 Project and 003 TechStack using glob for matching parents. If needed, it can create new Project or TechStack files using get_next_id and create_note, then links the child to each parent with add_backlink and prepends a Parent:: line to the child using prepend_text_to_file. Finally it moves the note to Notes/ with move_note and logs the outcome to 008 Gemini/Logs/YYYY-MM-DD.md.

When to Use It

  • You have a new note in the Vault root that should be integrated into the Zettelkasten.
  • The note's topics map to existing Project or TechStack entries.
  • You want to link to both existing and newly created parent files.
  • You need to move the note into Notes/ after linking.
  • You want an automatic activity log entry for traceability.

Quick Start

  1. Step 1: read_file('<root_note_path>') to inspect the new note content.
  2. Step 2: glob('002 Project/*.md') and glob('003 TechStack/*.md') to find potential parents; decide on links or create new with get_next_id and create_note.
  3. Step 3: for each parent, add_backlink(parent_path, '<child_filename>'); prepend_text_to_file('<child_path>', 'Parent:: [[Parent1]], [[Parent2]]\n'); move_note('<root_path>', 'Notes/'); log to 008 Gemini/Logs/YYYY-MM-DD.md.

Best Practices

  • Analyze notes for atomic topics to maximize quality backlinks and micro-essays.
  • Before linking, review the candidate parents and confirm relevance with the user.
  • Prefer existing parents; create new ones only when no suitable match exists.
  • Check for name collisions in Notes/ to avoid overwrite errors.
  • Always log the run in 008 Gemini/Logs/YYYY-MM-DD.md with a clear outcome.

Example Use Cases

  • New note 'Snowflake basics' is linked to existing 002 Project and 003 TechStack entries, then moved to Notes/.
  • Note on 'V2 Analytics' is linked to an existing Project and a TechStack, with a new parent created if needed, and filed into Notes.
  • Note 'Obsidian plugin tooling' is linked to an existing TechStack entry and a related Project, then moved to Notes and logged.
  • A note lacking a matching parent prompts creation of a new Project via get_next_id, then links and files as usual.
  • A multi-topic note is linked to several parents (Project and TechStack) and then safely relocated to Notes/.

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers