---
name: cleanup-downloads
description: Limpeza e triagem da pasta Transferências (Downloads). Verifica cada ficheiro individualmente, apaga descartáveis, classifica o restante por categoria. Usar quando "transferências", "downloads", "limpar downloads", "cleanup", "limpeza pasta".
---

# Cleanup Downloads

Triagem manual de `/home/ealmeida/Transferências/`. Verificar cada ficheiro individualmente antes de agir.

**Regra de ouro:** NUNCA assumir que ficheiros com nomes semelhantes têm o mesmo conteúdo ou valor. Ler CADA ficheiro individualmente (ex: `emiteDoc.pdf` a `emiteDoc (12).pdf` tinham valores de 25,80€ a 100,53€).

## Procedimento

1. Listar conteúdo com `ls -la /home/ealmeida/Transferências/`
2. **Ler CADA ficheiro PDF individualmente** com `pdftotext` - extrair tipo, valor, data, fornecedor
3. Apresentar lista classificada com acção proposta (incluindo valores reais)
4. Executar apagamentos automáticos (regra 1)
5. Mover ficheiros com destino definido (regras 2-4)
6. Perguntar sobre ficheiros sem regra clara
7. Lançar despesas no CRM via `/expense` (regra 7)
8. Mostrar resumo final (apagados, movidos, mantidos, despesas criadas)

## Regra 1: Apagar sem perguntar

| Padrão | Motivo |
|--------|--------|
| `screencapture-*` | Screenshots browser temporários |
| `test*.docx`, `test*.txt` | Documentos de teste |
| `testando-*`, `teste-*` | Ficheiros de teste |
| `temp_*`, `*.tmp` | Temporários |
| `DIAGNÓSTICO_*.md` | Diagnósticos sessão anterior |
| Pastas só com ficheiros 0 bytes | Attachments vazios |

## Regra 2: Duplicados - verificar um por um

Ficheiros com nomes semelhantes (`ficheiro.pdf` vs `ficheiro (1).pdf`):
- Executar `cmp -s` para comparar
- **Cópia exacta** → apagar o duplicado sem perguntar
- **Ficheiros diferentes** → manter ambos, perguntar destino

Atenção: documentos transferidos com o mesmo nome podem ter conteúdo diferente.

## Regra 3: Documentos financeiros → mover por tipo

**Verificar conteúdo de CADA ficheiro** (ler primeira página com `pdftotext`) para:
1. Classificar correctamente (factura vs recibo vs comprovativo)
2. Extrair o valor real de cada documento
3. NUNCA copiar o valor de um ficheiro para os restantes - cada um tem o seu valor próprio

### 3a: Comprovativos de pagamento a fornecedores
Destino: `/media/ealmeida/Dados/GDrive/Cloud/ADM_Descomplicar/Financeiro/Contabilidade/PagamentosFornecedores/`

Padrões típicos:
- `*SEPA*`, `*Compras*` (comprovativos bancários)
- `documento*.pdf` (comprovativos de transferência)
- `emiteDoc*` (AT execução fiscal)
- `FT *`, `inv*` (facturas fornecedores)
- PDFs com data no nome formato `YYYYMMDD*`

### 3b: Recibos de vencimento
Destino: `/media/ealmeida/Dados/GDrive/Cloud/ADM_Descomplicar/Financeiro/Contabilidade/Recibos de Vencimento/`

Padrões típicos:
- Recibos de vencimento (TOConline/metta)
- Comprovativos de transferência de salário

## Regra 4: Design, templates e exports → z_Verificar

Destino: `/home/ealmeida/Transferências/z_Verificar/`

Criar pasta `z_Verificar` se não existir. Mover para lá:
- `*.penpot` (ficheiros de design)
- `*.pptx` (templates/apresentações)
- `*.zip` (exports e backups)
- `*.sketch`, `*.fig` (design)

## Regra 5: Pastas antigas - apagar se migrado

Pastas com `.obsidian/` ou `.git/` dentro:
- Verificar se conteúdo já existe no Hub (`/media/ealmeida/Dados/Hub/`)
- **Se migrado** → apagar pasta e zip associado
- **Se não migrado** → perguntar

## Regra 6: Restante - perguntar

Tudo que não encaixar nas regras acima:
- **Facturas** (`emiteDoc*`, `FT *`, `inv*`) → perguntar destino
- **Imagens** (`*.png`, `*.jpg`) → perguntar
- **Dados** (`*.csv`, `*.xlsx`) → perguntar
- **PDFs desconhecidos** → ler primeira página para classificar

## Regra 7: Lançar despesas no CRM

Após mover documentos financeiros (regra 3), lançar despesas via `/expense`:

1. Verificar duplicados no CRM antes de criar
2. **Ler CADA PDF** para extrair valor real - NUNCA copiar valor de um ficheiro para outro
3. Criar despesas com: category_id, amount, date, note, reference, tax=1, currency=2
4. Actualizar `expense_name` via SQL com nome do fornecedor
5. Apresentar resumo com totais

**Anti-pattern:** Assumir que ficheiros com nomes semelhantes (ex: `emiteDoc`, `emiteDoc (1)`, ...) têm o mesmo valor. Cada documento tem valor próprio e deve ser verificado individualmente.

## Integração /today

Incluir contagem de ficheiros na pasta quando >10 ficheiros.

---

## Healing Log

Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.

```jsonl
{"date":"","issue":"","fix":"","source":"user|auto"}
```

*Adicionar nova linha após cada erro corrigido.*
