Help us improve
Share bugs, ideas, or general feedback.
From obsidian-master-kit
Migrates an existing Obsidian vault to the obsidian-master-kit structure without destroying current layout. Detects vault state, backs up automatically, clusters notes via HDBSCAN embeddings, proposes adaptive folder-to-area mapping, and executes migration in human-approved batches with rollback.
npx claudepluginhub melgarafael/obsidian-master-kit --plugin obsidian-master-kitHow this skill is triggered — by the user, by Claude, or both
Slash command
/obsidian-master-kit:obsidian-migrateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Adota o `obsidian-master-kit` em um vault Obsidian existente sem quebrar o que ja funciona.
Organizes an Obsidian vault semantically: clusters notes via HDBSCAN, detects conceptual duplicates, audits missing MOCs, and flags area/path mismatches. Proposes a migration plan for human approval; never moves or deletes files without explicit verdict.
Migrates notes from Notion, Evernote, Roam, Bear, Apple Notes to Obsidian. Converts links to wikilinks, relocates attachments, migrates tags, generates frontmatter using Node.js scripts.
Manages Obsidian vault structure by organizing documents into service and work-log layers, adding files with auto-categorization and metadata, processing meeting notes, running health checks, and committing via Git.
Share bugs, ideas, or general feedback.
Adota o obsidian-master-kit em um vault Obsidian existente sem quebrar o que ja funciona.
Segue a Opcao C (hibrida): descoberta de areas reais via clustering + approval humano
por lote + rollback disponivel + backup obrigatorio antes de qualquer movimento.
/obsidian-master-kit:migrateobsidian-init (scaffold do zero).obsidian-master/marker.json) — use obsidian-librarianobsidian-organizer
(Epic 04, futuro)A skill tem 6 etapas, cada uma com aprovacao do usuario. Nunca pula etapa nem executa sem confirmacao.
python3 ${CLAUDE_PLUGIN_ROOT}/skills/obsidian-migrate/scripts/migrate.py status --vault PATH
Retorna um de:
empty — pasta nao tem .md. Sugere /obsidian-master-kit:init.existing — tem .md, sem marker. Pronto pra migrar.already_migrated — tem .obsidian-master/marker.json. Usa obsidian-librarian.migrate.py shadow-scan --vault PATH
Cria backup (vault.backup-YYYYMMDD-HHMMSS/), inicializa DB, roda scanner sem mover
arquivos. Output: contagem por pasta + total + tamanho do DB.
migrate.py cluster --vault PATH [--ai-label]
HDBSCAN sobre embeddings + TF-IDF pra label candidato. Opcional: --ai-label pede
label via Claude.
migrate.py propose --vault PATH
Gera .obsidian-master/migration-proposal.md: tabela pasta -> cluster dominante -> area proposta. Usuario revisa/edita.
migrate.py plan --vault PATH
migrate.py approve --batch 1 [--batch all]
Gera registros em migration_plan em lotes de 20. Approval interativo por nota
(y/n/a/s).
migrate.py apply --batch 1 [--batch all]
migrate.py rollback --batch N # se precisar reverter
Aplica os renames dos approved, refatora wikilinks que quebrariam, emite eventos,
e ao terminar cria .obsidian-master/marker.json com migration_completed=true.
.backup-* intacto