--- 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 layer: wiki --- # /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/Documentaca