---
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®*
