mcpField
V
vault-setup

vault-setup

github.com/julianobarbosaProductivity1470 installsUpdated 2d ago
Repository

About vault-setup

vault-setup is an interactive skill for configuring personalized Obsidian vaults. It infers role-specific folders from a free-text answer and provides workflows to create, import into, and verify a vault.

Key features

  1. 01Role-based folder selection
  2. 02Vault creation and verification
  3. 03Document import workflow
  4. 04Obsidian plugin recommendations
  5. 05Companion skill linking

Use cases

  1. 01Set up a new Obsidian vault
  2. 02Import existing documents
  3. 03Check vault structure and links

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/julianobarbosa/claude-code-skills --skill vault-setup

After installing, type/vault-setupin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

PluginRecommendations.md
RoleTemplates.md
scripts/
process_docs_to_obsidian.py
score_skills.sh
test_process_docs.py
test_vaultbuilder.py
Tools/
VaultBuilder.help.md
VaultBuilder.py
Workflows/
ImportFiles.md
Setup.md
Verify.md

Details

From the project README

vault-setup-skill

Interactive vault configurator — asks one free-text question, infers your role and folders, builds a personalized Obsidian vault with CLAUDE.md and companion skill links.

Directory Structure

vault-setup-skill/
├── SKILL.md                          # This file (routing + quick ref)
├── RoleTemplates.md                  # Keyword-to-folder mapping table
├── PluginRecommendations.md          # Obsidian plugins by role type
├── Workflows/
│   ├── Setup.md                      # Main 6-step setup flow
│   ├── ImportFiles.md                # File import guidance
│   └── Verify.md                     # Post-setup verification
├── Tools/
│   ├── VaultBuilder.py               # CLI: create, verify, inject-global
│   └── VaultBuilder.help.md          # Tool documentation
└── scripts/
    └── process_docs_to_obsidian.py   # Bulk file import to inbox/

Workflow Routing

IntentWorkflowTool
Set up a new vaultWorkflows/Setup.mdTools/VaultBuilder.py create
Import existing filesWorkflows/ImportFiles.mdscripts/process_docs_to_obsidian.py
Verify vault setupWorkflows/Verify.mdTools/VaultBuilder.py verify
Add vault to global contextWorkflows/Setup.md Step 5Tools/VaultBuilder.py inject-global
Choose Obsidian pluginsPluginRecommendations.md—
Understand folder mappingRoleTemplates.md—

Examples

"Set up my Obsidian vault"              → Workflows/Setup.md
"I want to create a second brain"       → Workflows/Setup.md
"Import my documents into the vault"    → Workflows/ImportFiles.md
"Verify my vault is set up correctly"   → Workflows/Verify.md
"What plugins should I install?"        → PluginRecommendations.md
"Add this vault to my global config"    → Workflows/Setup.md Step 5

Quick Reference

Base folders (always created): inbox/, daily/, projects/, archive/

Additional folders detected from keywords — see RoleTemplates.md for full mapping.

Companion skills (linked, not created): daily-skill, tldr-skill, obsidian-master-skill

Troubleshooting

ProblemCauseFix
click not found when running VaultBuilder.pyMissing dependencypip install click
Vault folders created but Obsidian doesn't see themObsidian not pointed at vault rootOpen Obsidian → "Open folder as vault" → select the vault directory
inject-global says "Already configured" but Claude doesn't see contextVault path in CLAUDE.md doesn't match exactlyCheck ~/.claude/CLAUDE.md for the vault path — it must be the resolved absolute path
Symlink shows [BROKEN] in verifyTarget skill directory was moved or deletedRe-create the symlink: ln -sf /path/to/skill ~/.claude/skills/skill-name
process_docs_to_obsidian.py shows encoding warningsSource files contain non-UTF-8 charactersReview warned files manually; convert source encoding with iconv if needed
Edge Cases
  • Empty keywords: If --role-keywords is empty, only base folders are created (inbox, daily, projects, archive)
  • Vault path doesn't exist: VaultBuilder creates it automatically via mkdir -p
  • Running create twice: Safe — folders use exist_ok=True, CLAUDE.md is overwritten (back up first if customized)

Gotchas

  • inject-global mutates ~/.claude/CLAUDE.md with absolute path: If you later move the vault, the global config still points to the old path and Claude silently loads nothing. Re-run inject-global after any vault relocation.
  • Re-running create overwrites a customized CLAUDE.md: Folder creation uses exist_ok=True (safe) but CLAUDE.md is unconditionally rewritten. Back up first if you've hand-edited vault-level instructions.
  • process_docs_to_obsidian.py silently skips non-UTF-8 files: Latin-1 or Windows-1252 source files emit a warning and are not imported. The summary report doesn't flag them as failures — grep stderr for "encoding" before trusting the count.
  • Symlinks to companion skills break on PAI directory restructure: Verify shows [BROKEN] only if the symlink target is missing entirely; a renamed-but-existing target appears valid yet routes to the wrong skill. Re-run verify after any PAI skill reorganization.
  • Empty --role-keywords is not an error: The vault gets only base folders (inbox/daily/projects/archive) with no warning. If you expected role-specific folders, check the inferred keywords in the setup transcript.
  • Obsidian doesn't see the vault until "Open folder as vault": Creating the directory tree is not enough — Obsidian must be pointed at the vault root explicitly. New users often think the script failed because Obsidian shows an empty workspace.

Comments

Markdown supported