feat(gestao): adicionar skill /hub-compile v1.0
Skill de compilação do 00-Inbox do Hub Obsidian. Classifica ficheiros .md, gera resumos e backlinks, sugere destino e move com aprovação explícita do utilizador. Implementa padrão Karpathy Raw→Compiler→Wiki. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,229 @@
|
||||
---
|
||||
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®*
|
||||
Reference in New Issue
Block a user