--- name: hub-compile description: Compilador do 00-Inbox do Hub Obsidian. Classifica ficheiros .md, gera resumos, sugere destino e backlinks, move com aprovação explícita do utilizador. Usar quando "hub-compile", "compilar inbox", "triagem inbox", "processar inbox", "classificar notas". context: fork --- # /hub-compile v1.0 — Compilador do Hub Inbox Processa automaticamente os ficheiros `.md` em `00-Inbox/` do Hub Obsidian: classifica, resume, sugere destino e backlinks, e move apenas com aprovação explícita. --- ## Filosofia Padrão Karpathy (Raw → Compiler → Wiki): o LLM actua como compilador — lê ficheiros em bruto, extrai estrutura e significado, e propõe organização. O utilizador aprova antes de qualquer movimento. **Princípio cardinal: NUNCA mover sem aprovação.** --- ## Protocolo de Execução ``` 1. LER ficheiros do Inbox 2. CLASSIFICAR cada ficheiro 3. APRESENTAR tabela ao utilizador 4. AGUARDAR aprovação 5. MOVER os aprovados 6. ACTUALIZAR INDEX.md de origem e destino ``` --- ## Passo 1 — Ler Inbox ``` - Listar TODOS os .md em /media/ealmeida/Dados/Hub/00-Inbox/ - EXCLUIR INDEX.md - Para cada ficheiro: ler conteúdo completo ``` --- ## Passo 2 — Classificar Para cada ficheiro, determinar: ### Tipo | Tipo | Indicadores | |------|-------------| | `worklog` | "Worklog", datas de sessão, tool calls, MCPs usados | | `prompt` | "Prompt", instruções para Claude, specs de módulo | | `nota-tecnica` | Configurações, comandos, troubleshooting, fixes | | `planeamento` | "Plano", "migração", "roadmap", decisões activas | | `facturacao` | Facturas, recibos, datas limite, valores | | `migracao` | "Migração", "setup", hardware novo, configurações pendentes | | `stress-test` | Resultados de testes, benchmarks, métricas | | `outro` | Não se encaixa nas categorias acima | ### Destino Sugerido | Tipo | Destino | |------|---------| | `worklog` | `99-Arquivo/Worklogs/YYYY/MM/` | | `prompt` | `99-Arquivo/Documentacao-Pontuais/` | | `nota-tecnica` com valor permanente | `06-Operacoes/Knowledge-Base/MDs/` | | `nota-tecnica` pontual/resolvida | `99-Arquivo/Documentacao-Pontuais/` | | `planeamento` activo | **MANTER** (fica no Inbox) | | `facturacao` | `99-Arquivo/Documentacao-Pontuais/` | | `migracao` activa | **MANTER** (fica no Inbox) | | `stress-test` | `99-Arquivo/Documentacao-Pontuais/` | | `outro` | Consultar utilizador | ### Acção | Acção | Significado | |-------|-------------| | `mover` | Pronto para mover para o destino sugerido | | `arquivar` | Mover para `99-Arquivo/` | | `manter` | Deixar no Inbox — activo ou precisa mais trabalho | | `eliminar` | Duplicado, vazio, ou sem valor — confirmar antes | ### Gerar por ficheiro - **Resumo:** 2-3 linhas descrevendo o conteúdo essencial - **Conceitos-chave:** 3-5 termos ou tópicos principais - **Backlinks sugeridos:** docs existentes no Hub que devem referenciar este ficheiro ou ser referenciados por ele (usar conhecimento do vault — QR-*, PROC-*, etc.) --- ## Passo 3 — Apresentar Tabela Mostrar ao utilizador antes de qualquer acção: ```markdown ## Hub Compile — Inbox Analysis **N ficheiros encontrados** | Data: YYYY-MM-DD HH:MM | # | Ficheiro | Tipo | Acção | Destino | Resumo | |---|----------|------|-------|---------|--------| | 1 | `nome.md` | worklog | mover | 99-Arquivo/Worklogs/2026/03/ | Sessão de 31 Mar: implementação X, Y, Z. Duração ~2h. | | 2 | `nome.md` | planeamento | manter | — (Inbox) | Migração Alurin em curso. Pendentes: configurar Syncthing. | | 3 | `nome.md` | prompt | mover | 99-Arquivo/Documentacao-Pontuais/ | Prompt para módulo Moloni-Perfex sync. Concluído. | ### Backlinks Sugeridos | Ficheiro | Backlink para | |----------|--------------| | `stress-tests-alurin.md` | `QR-Servidores.md`, `infra.md` (memory) | | `worklog-2026-03-31.md` | Discussão Logs #31 Desk CRM | --- **Aprovação necessária.** Para aprovar todos os movimentos sugeridos: escrever `aprovar tudo` Para aprovar individualmente: escrever `aprovar 1,3,5` (números da tabela) Para ajustar uma acção: escrever `1=arquivar` ou `2=eliminar` Para cancelar: escrever `cancelar` ``` --- ## Passo 4 — Aguardar Aprovação **PARAR aqui. Não executar nada antes da resposta do utilizador.** Interpretar respostas: - `aprovar tudo` → processar todos os `mover` e `arquivar` (nunca os `manter`) - `aprovar 1,3` → processar apenas linhas 1 e 3 - `1=arquivar` → alterar acção da linha 1 para arquivar - `cancelar` → terminar sem mover nada --- ## Passo 5 — Mover Ficheiros Aprovados Para cada ficheiro aprovado com acção `mover` ou `arquivar`: ``` 1. Verificar se directório de destino existe - SE não existe: criar com mcp__filesystem__create_directory 2. Mover ficheiro: mcp__filesystem__move_file 3. Confirmar que ficheiro chegou ao destino 4. Registar movimento para actualização de INDEX.md ``` **Formato do path de destino:** - Worklogs: `/media/ealmeida/Dados/Hub/99-Arquivo/Worklogs/YYYY/MM/nome.md` - Documentação pontual: `/media/ealmeida/Dados/Hub/99-Arquivo/Documentacao-Pontuais/nome.md` - Knowledge-Base: `/media/ealmeida/Dados/Hub/06-Operacoes/Knowledge-Base/MDs/nome.md` --- ## Passo 6 — Actualizar INDEX.md ### INDEX.md do Inbox (00-Inbox/INDEX.md) Remover entradas dos ficheiros movidos. Se INDEX.md não tiver lista estruturada, adicionar nota de actualização no topo. ### INDEX.md do Destino Para cada destino com movimentos: 1. Ler INDEX.md existente (se existir) 2. Adicionar entradas dos ficheiros movidos 3. Se INDEX.md não existir e destino tem >3 ficheiros → criar **Formato de entrada no INDEX.md:** ```markdown | `nome-ficheiro.md` | Tipo | YYYY-MM-DD | Descrição breve | ``` --- ## Output Final ```markdown ## Hub Compile — Concluído **Movidos:** N ficheiros **Mantidos no Inbox:** M ficheiros **Eliminados:** 0 (requer confirmação separada) ### Movimentos Realizados - `worklog-2026-03-31.md` → 99-Arquivo/Worklogs/2026/03/ - `prompt-modulo-moloni.md` → 99-Arquivo/Documentacao-Pontuais/ ### Mantidos - `migracao-alurin-mini-pc.md` — migração activa - `NovoPC.md` — planeamento em curso ### INDEX.md Actualizados - 00-Inbox/INDEX.md ✓ - 99-Arquivo/Worklogs/2026/03/INDEX.md ✓ - 99-Arquivo/Documentacao-Pontuais/INDEX.md ✓ ``` --- ## Regras Obrigatórias 1. **NUNCA mover sem aprovação explícita** do utilizador 2. **Worklogs** vão sempre para `99-Arquivo/Worklogs/YYYY/MM/` 3. **Planeamento activo** e **migração em curso** ficam sempre no Inbox (`manter`) 4. **Prompts concluídos** vão para `99-Arquivo/Documentacao-Pontuais/` 5. **Notas técnicas com valor permanente** vão para `06-Operacoes/Knowledge-Base/MDs/` 6. **Eliminar** requer confirmação separada — nunca eliminar na aprovação em massa 7. **INDEX.md** deve ser actualizado em origem e destino após cada movimento 8. **Usar mcp__filesystem__*** para todas as operações de ficheiros --- ## Anti-Patterns - **NUNCA** mover com `aprovar tudo` sem excluir os `manter` - **NUNCA** criar destinos sem verificar se já existem - **NUNCA** omitir actualização dos INDEX.md - **NUNCA** classificar como `eliminar` sem justificação clara - **NUNCA** confundir planeamento activo com documentação pontual --- *Skill v1.0 | 2026-04-07 | Descomplicar®*