Obsidian migrate
Skill melgarafael/obsidian-master-kit/skills/obsidian-migrate
Esta skill deve ser usada quando o usuario tem um vault Obsidian ja existente e quer adotar o padrao obsidian-master-kit SEM destruir a estrutura atual. Detecta o estado do vault, faz backup automatico, roda shadow-scan com embeddings, descobre areas reais via clustering (HDBSCAN), propoe mapping pasta->area adaptativo, executa migracao em lotes com approval humano obrigatorio, e oferece rollback. Adocao hibrida (Opcao C). Invocada via /obsidian-master-kit:migrate ou quando o usuario pede "quero usar o kit no meu vault que ja existe". Nunca executa automaticamente sem aprovacao explicita.From its SKILL.md
npx -y skills add melgarafael/obsidian-master-kit --skill obsidian-migrateAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
3.5 KB, as published. Nobody here has run it
obsidian-migrate
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.
Quando usar
- Usuario diz: "quero usar o kit no vault que ja tenho", "adota o obsidian-master-kit no meu Obsidian atual", "migra meu vault pro kit sem apagar nada"
- Usuario invoca
/obsidian-master-kit:migrate - Usuario aponta pra uma pasta que ja tem .md e quer estrutura do kit
Quando nao usar
- Vault vazio — use
obsidian-init(scaffold do zero) - Vault ja migrado (tem
.obsidian-master/marker.json) — useobsidian-librarian - Usuario quer reorganizacao continua de vault ja migrado — use
obsidian-organizer(Epic 04, futuro)
Como usar — fluxo canonico
A skill tem 6 etapas, cada uma com aprovacao do usuario. Nunca pula etapa nem executa sem confirmacao.
Etapa 1 — Deteccao de estado
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. Usaobsidian-librarian.
Etapa 2 — Shadow scan + backup (Wave 2)
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.
Etapa 3 — Clustering (Wave 3)
migrate.py cluster --vault PATH [--ai-label]
HDBSCAN sobre embeddings + TF-IDF pra label candidato. Opcional: --ai-label pede
label via Claude.
Etapa 4 — Proposta de mapping (Wave 4)
migrate.py propose --vault PATH
Gera .obsidian-master/migration-proposal.md: tabela pasta -> cluster dominante -> area proposta. Usuario revisa/edita.
Etapa 5 — Plan + approval (Wave 5)
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).
Etapa 6 — Execute + rollback (Wave 6)
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.
Garantias
- Backup obrigatorio: nunca move nada sem ter um
.backup-*intacto - Approval por lote: usuario aprova 20 notas por vez, nunca o vault inteiro de um golpe
- Rollback disponivel: cada batch aplicado pode ser revertido
- Opcao C: descoberta de areas respeita o que ja existe; o kit adapta ao vault, nao o vault ao kit