/install obsidian-vault-curator
Obsidian Vault Curator
Bring structure to a messy Obsidian vault without flattening its history. Start with read-only analysis. Then propose one small, reviewable write slice.
Runtime requirement
This skill declares python3 on PATH as a host requirement.
- The requirement is surfaced in metadata as
requires.bins: ["python3"]. - On macOS, the metadata includes a Homebrew install hint.
- On Linux, install Python 3 with your distro package manager, for example
sudo apt install python3, then verifypython3 --version. - On Windows, install Python from the official Python Install Manager or with
winget install Python.Python.3.14, then open a new terminal and verify thatpython3 --versionworks. If onlypythonworks, add apython3alias or shim onPATHbefore using this skill. - The bundled helper scripts in
scripts/use only the Python standard library. - No extra Python packages are required.
- No exact minor version is currently pinned. The helpers were validated with Python 3.11+ and tested locally on macOS against Python
3.14.4. - Windows support is documented, but the full workflow has not yet been live-validated on Windows.
Core rules
- Default to read-only.
- Never delete notes unless the user explicitly asks.
- Never rewrite more than one write slice at a time. A write slice should stay within 3-10 related notes. Multiple-slice content rewrites in one pass count as mass-rewrite and require explicit user approval.
- Never run parallel write agents.
- Treat findings of possible secrets, credentials, tokens, or live identifiers as hypotheses until the main agent verifies the exact note content.
- Prefer
superseded_byover overwrite. - Preserve historical context.
- Treat
doc_kindandstatusas separate concerns. - Prefer controlled YAML frontmatter over ad-hoc tags for lifecycle state.
- Verify links and metadata after each write slice.
Workflow
- Always read
references/status-schema.mdandreferences/classification-rubric.mdbefore classifying any note, including a single-note task. - If the task touches more than a few notes or spans more than one folder, read
references/workflow.md. - If the user wants dashboards or views, read
references/bases-views.md. - If the target area is too large for one context-bounded pass, read
references/subagents.md. Keep subagents read-only by default. Keep writes in the main agent unless the user has explicitly approved writes from one specific named subagent for this task. - If findings need to be merged across slices or reviewed by a human, read
references/output-format.md. - For larger areas, split the work into context-bounded slices by folder, topic cluster, or review queue instead of loading the whole vault at once.
- Inventory the target area before proposing edits. Use
scripts/inventory_slice.pywhen repeated folder scans would otherwise waste context. - Suggest canonical pages, status changes, supersession links, and the smallest safe write slice. Use
scripts/generate_migration_plan.pywith the JSON output ofscripts/inventory_slice.pywhen the user wants a structured migration slice proposal. - Before structural writes and after every write slice, verify metadata with
scripts/validate_frontmatter.py, verify links withscripts/check_links.py, and reassess whether the chosen canonical pages still make sense.
Output shape
When curating a vault area, return these sections unless the user asks for a different format:
Use this shape for a single-pass curation reply. Use the subagent shape from references/output-format.md when running as a subagent. Use the final main-agent summary shape from references/output-format.md only when merging results from multiple subagent slices.
Current state— what exists now, including ambiguity or conflicts.Classification recommendations— suggestedstatus,doc_kind, and canonical candidates.Risks and contradictions— what could be damaged, misclassified, contradictory, or is still unverified.Next write slice— the smallest safe set of edits.Verification— what to check after changes.
Decision rules
- If a note is still useful but no longer leading, mark it
historicaland point to a successor. - If a note describes a desired future state, mark
status: conceptand choosedoc_kindseparately. - If validity is unclear, mark it
needs-reviewfirst instead of guessing. - If an old note may become useful again, prefer
reactivatableover burying it. - If multiple notes cover the same topic, nominate one canonical page and propose the rest as supporting or historical pages.
- If the vault already has a schema, adapt to it instead of forcing a new one.
- If a subagent flags possible secrets, credentials, tokens, or live identifiers, verify the exact text in the main agent before escalating or editing.
Safe operating mode
Use small, reviewable steps:
- classify before moving or merging
- move before rewriting when structure is the real problem
- create indexes and canonical pages before cleanup
- keep historical pages reachable
- ask before touching attachments,
.obsidian/, or folder restructures that touch more than one folder or more than 10 notes
Built-in helpers (require installed python3)
If python3 is unavailable, the bundled helper scripts cannot run. Continue with the manual workflow and do not pretend a helper script ran.
scripts/inventory_slice.py— scan one vault slice and summarize note counts, missing metadata, status/doc_kind coverage, title duplicates, exact-content duplicate clusters, and high-signal sensitive candidates that still require main-agent verification.scripts/validate_frontmatter.py— verify the controlled frontmatter shape on one slice before or after edits.scripts/generate_migration_plan.py— turn the JSON output ofscripts/inventory_slice.pyinto a small, reviewable migration plan.scripts/check_links.py— inspect wikilinks in one slice and flag unresolved targets before or after moves. Treat results as slice-local unless the checked slice includes every possible target note.
Large-section strategy
When the user wants work on a broader vault area:
- keep one main agent as orchestrator
- split the area into bounded slices
- use read-only subagents for inventory, classification, contradiction checks, and link review
- merge findings in the main agent
- execute one write slice at a time in the main agent
Prefer this over giving one agent the whole vault context at once.
References
references/status-schema.md— controlled fields, values, and examplesreferences/classification-rubric.md— note-by-note classification heuristicsreferences/workflow.md— end-to-end curation and migration flowreferences/bases-views.md— suggested Bases views and review queuesreferences/subagents.md— safe delegation model for larger vault jobsreferences/output-format.md— standard subagent return shape, merge rules, and human-review gates
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install obsidian-vault-curator - After installation, invoke the skill by name or use
/obsidian-vault-curator - Provide required inputs per the skill's parameter spec and get structured output
What is Obsidian Vault Curator?
Cautious curation, classification, review, and migration planning for Obsidian or Markdown vaults. Use when the user wants to organize a messy vault, classif... It is an AI Agent Skill for Claude Code / OpenClaw, with 89 downloads so far.
How do I install Obsidian Vault Curator?
Run "/install obsidian-vault-curator" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Obsidian Vault Curator free?
Yes, Obsidian Vault Curator is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Obsidian Vault Curator support?
Obsidian Vault Curator is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Obsidian Vault Curator?
It is built and maintained by TheNerd (@thenerdforge); the current version is v1.0.0.