agentleFS
JaimeParkerJaimeParker/stable-jarvis/skills/obsidian-auto-classifier/SKILL.md

obsidian-auto-classifier

Skill19 starsChanged 5 months agoMITView on GitHub

Intelligently organize and categorize Markdown notes within an Obsidian vault. This skill leverages Obsidian MCP tools to analyze the vault's current folder structure and note content, ensuring new or misplaced notes are moved to their most contextually appropriate locations (e.g., PARA, Zettelkasten, or custom taxonomies).

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. About 0 are common, 5 are distinctive, and 10 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 10

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Action: Call list_directory starting from the root (/) to identify top-level folders (e.g., 00 Inbox, 20 Areas, 30 Zettelkasten).

    line 14
  2. Distinctive:

    Before moving a note, the agent must understand its "intent" and "content".

    line 19
  3. Very specific:

    Action: Call read_note for the target file in the inbox or source folder.

    line 20
  4. Very specific:

    Frontmatter: Look for tags, category, project, or alias.

    line 22
  5. Distinctive:

    Content Analysis: Check for keywords, wiki-links to existing projects, or specific templates (e.g., Meeting Notes vs.

    line 23
  6. Very specific:

    Contextual Search: Use search_notes with the note's primary topic to see where similar notes are currently stored.

    line 24
  7. Very specific:

    After moving a note, the agent MUST update the relevant Map of Content (MOC) in 30 Zettelkasten/33 Maps of Content/.

    line 34
  8. Very specific:

    Action: Read the MOC file that corresponds to the note's domain (e.g., MOC-Reinforcement Learning.md for RL papers, MOC-Robotics and …

    line 35
  9. Distinctive:

    New Section: If no existing section fits, create a new one following the MOC's heading convention.

    line 38
  10. Distinctive:

    Cross-MOC: If the note spans multiple domains, add it to all relevant MOCs.

    line 39
  11. Very specific:

    Move: Use move_note (via MCP) or Move-Item (via Shell) to relocate the note.

    line 42
  12. Very specific:

    Cleanup: If the note was moved from a temporary folder (like 00 Inbox), confirm the source is clean.

    line 43
  13. Distinctive:

    MOC Update: Ensure the corresponding Map of Content has been updated (see Section 4).

    line 44
  14. Very specific:

    MCP Priority: Always use list_directory and read_note via the Obsidian MCP first to ensure you are working with the real-time state of the …

    line 55
  15. Very specific:

    No Hallucination: Do not assume folder names (e.g., Archives vs 50 Archive).

    line 56

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Obsidian Auto Classifier (MCP-Powered)

This skill provides an intelligent workflow for maintaining a clean and organized Obsidian vault by leveraging Model Context Protocol (MCP) tools for real-time vault analysis.

Categorization Workflow

1. Structure Discovery (via Obsidian MCP)

The agent must use MCP tools to map the vault's existing organizational logic.

  • Action: Call list_directory starting from the root (/) to identify top-level folders (e.g., 00 Inbox, 20 Areas, 30 Zettelkasten).
  • Deep Scan: For folders like 30 Zettelkasten or 40 Resources, call list_directory on subfolders to understand the nested hierarchy.
  • Logic: Identify if the vault follows PARA, Zettelkasten, Johnny.Decimal, or a custom system.

2. Note Analysis

Before moving a note, the agent must understand its "intent" and "content".

  • Action: Call read_note for the target file in the inbox or source folder.
  • Key Indicators:
    • Frontmatter: Look for tags, category, project, or alias.
    • Content Analysis: Check for keywords, wiki-links to existing projects, or specific templates (e.g., Meeting Notes vs. Paper Summaries).
    • Contextual Search: Use search_notes with the note's primary topic to see where similar notes are currently stored.

3. Smart Classification Decisions

Compare the note's profile against the discovered taxonomy:

  • Daily/Periodic: Move to 00 Daily Notes or Log (often sorted by year/month).
  • Slipbox/Zettel: Move to 31 Literature or 32 Permanent based on depth and source citations.
  • Projects/Areas: Move based on active project names found in the text.
  • Archive: Move finalized research, completed project logs, or legacy notes to 50 Archive.

4. MOC Synchronization

After moving a note, the agent MUST update the relevant Map of Content (MOC) in 30 Zettelkasten/33 Maps of Content/.

  • Action: Read the MOC file that corresponds to the note's domain (e.g., MOC-Reinforcement Learning.md for RL papers, MOC-Robotics and Embodied AI.md for robotics).
  • Add Entry: Insert the note as a wikilink with a brief one-line description under the appropriate section heading.
  • Format: - [[Note Filename|Short Alias]]: One-sentence description of the note's contribution.
  • New Section: If no existing section fits, create a new one following the MOC's heading convention.
  • Cross-MOC: If the note spans multiple domains, add it to all relevant MOCs.

5. Verified Execution

  • Move: Use move_note (via MCP) or Move-Item (via Shell) to relocate the note.
  • Cleanup: If the note was moved from a temporary folder (like 00 Inbox), confirm the source is clean.
  • MOC Update: Ensure the corresponding Map of Content has been updated (see Section 4).
  • Metadata Update: (Optional) Call update_frontmatter to reflect the new category or update the modified timestamp.

Example Obsidian Triggers

  • "整理一下我的 00 Inbox,把笔记归位。" (Organize my inbox and put notes back in their place.)
  • "把这个 Zettel 笔记放到我的 Slipbox/Literature 里。" (Move this Zettel note into my Slipbox/Literature.)
  • "识别这个笔记的内容,看看它属于哪个项目文件夹。" (Identify the content of this note and see which project folder it belongs to.)
  • "我刚写了一篇论文综述,把它存到合适的文献库位置。" (I just wrote a paper review, save it to the appropriate literature library location.)
  • "扫描我的 Daily Notes,把其中关于 'Robotics' 的内容提取或移动到资源库。" (Scan my Daily Notes and extract or move content about 'Robotics' to the Resources library.)

Note for Agents

  • MCP Priority: Always use list_directory and read_note via the Obsidian MCP first to ensure you are working with the real-time state of the vault.
  • No Hallucination: Do not assume folder names (e.g., Archives vs 50 Archive). Always verify path existence before moving.
  • Link Integrity: Be aware that moving notes might affect internal links. Obsidian usually handles this, but verify if the user's settings require manual link updates.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.