feat(gestao): adiciona plugin gestao (agents, skills, knowledge e metadados do projeto)
This commit is contained in:
@@ -0,0 +1,196 @@
|
||||
---
|
||||
name: imap-triage
|
||||
description: Triagem automática de emails IMAP em 14 contas. Elimina spam, arquiva promocionais, identifica facturas, sinaliza prioritários. Deduplicação via Supabase. Usar quando "imap", "triagem email", "limpar emails", "email triage", "processar emails".
|
||||
disable-model-invocation: true
|
||||
layer: wiki
|
||||
---
|
||||
|
||||
# /imap-triage v1.0
|
||||
|
||||
Triagem automatica de 14 contas IMAP com deduplicacao Supabase.
|
||||
|
||||
---
|
||||
|
||||
## Contas IMAP (14)
|
||||
|
||||
```
|
||||
emanuel, it, help, suporte, contabilidade, financeiro,
|
||||
rh, mkt, design, news, aiktop, recursos, google
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Protocolo
|
||||
|
||||
### Passo 0: Carregar emails ja processados (Supabase)
|
||||
|
||||
> Executar UMA VEZ no inicio, antes de iterar contas.
|
||||
> Fonte de verdade: tabela `imap_processed_emails` em Supabase (EasyPanel).
|
||||
|
||||
```
|
||||
mcp__ssh-unified__ssh_execute(
|
||||
server="easy",
|
||||
command="docker exec descomplicar_supabase-db-1 psql -U postgres -d postgres -t -A -c \"SELECT message_id FROM public.imap_processed_emails\""
|
||||
)
|
||||
|
||||
Guardar resultado como Set: processed_ids
|
||||
```
|
||||
|
||||
### Passo 1: Carregar tabela de fornecedores
|
||||
|
||||
```
|
||||
Read: /media/ealmeida/Dados/Hub/06-Operacoes/Documentacao/fornecedores-recorrentes.md
|
||||
Extrair:
|
||||
- Lista de dominios de fornecedores conhecidos
|
||||
- Lista de dominios de plataformas multi-fornecedor
|
||||
```
|
||||
|
||||
### Passo 2: Iterar contas IMAP
|
||||
|
||||
Para cada conta: `imap_list_emails(account, folder="INBOX", limit=50)`
|
||||
|
||||
Para cada email:
|
||||
1. Verificar `message_id` contra `processed_ids` -> SE match, SALTAR
|
||||
2. Classificar por ordem de prioridade (ver seccao Classificacao)
|
||||
|
||||
### Passo 3: Registar no Supabase (batch)
|
||||
|
||||
> Executar UMA VEZ no final, apos processar todas as contas.
|
||||
|
||||
```
|
||||
Acumular lista: { message_id, account_id, subject, sender, email_date, action, action_detail }
|
||||
|
||||
Actions: spam_deleted, promo_archived, expense_flagged, priority_flagged, notification_closed, skipped
|
||||
|
||||
mcp__ssh-unified__ssh_execute(
|
||||
server="easy",
|
||||
command="docker exec descomplicar_supabase-db-1 psql -U postgres -d postgres -c \"
|
||||
INSERT INTO public.imap_processed_emails (message_id, account_id, subject, sender, email_date, action, action_detail)
|
||||
VALUES (...)
|
||||
ON CONFLICT (message_id) DO NOTHING;
|
||||
\""
|
||||
)
|
||||
|
||||
Maximo ~50 VALUES por INSERT.
|
||||
```
|
||||
|
||||
### Passo 4: Escrever output JSON
|
||||
|
||||
```
|
||||
Escrever em ~/.claude-work/today-imap-{date}.json:
|
||||
{
|
||||
"spam": 5,
|
||||
"promo": 12,
|
||||
"facturas": [
|
||||
{"account": "contabilidade", "uid": 164, "message_id": "...", "fornecedor": "MEO", "subject": "..."}
|
||||
],
|
||||
"prioritarios": [
|
||||
{"account": "emanuel", "uid": 100, "subject": "...", "sender": "..."}
|
||||
],
|
||||
"notificacoes": [...],
|
||||
"erros": [],
|
||||
"contas_processadas": 14,
|
||||
"total_emails": 45
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Classificacao de Emails
|
||||
|
||||
> Aplicar por ordem de prioridade. Primeiro match ganha.
|
||||
|
||||
### 1. SPAM -> Eliminar
|
||||
|
||||
```
|
||||
imap_delete_email(account, uid)
|
||||
|
||||
Padroes:
|
||||
- Subject: lottery, winner, urgent money, bitcoin investment, guest post, SEO services, backlinks, partnership
|
||||
- Remetente: *.ru, *.cn (excepto conhecidos)
|
||||
- Subject todo em MAIUSCULAS
|
||||
- Subject com caracteres estranhos excessivos
|
||||
```
|
||||
|
||||
### 2. PROMOCIONAL -> Arquivar
|
||||
|
||||
```
|
||||
imap_move_email(account, uid, "Promotions")
|
||||
|
||||
NOTA: Contas sem pasta "Promotions" (google, design, rh) -> imap_delete_email
|
||||
|
||||
Padroes:
|
||||
- Subject: newsletter, promo, desconto, oferta, unsubscribe
|
||||
- Remetente: *@marketing.*, *@news.*, *@promo.*
|
||||
- Headers: List-Unsubscribe presente
|
||||
```
|
||||
|
||||
### 3. FACTURA/RECIBO -> Flag para /auto-expense
|
||||
|
||||
```
|
||||
NAO processar aqui - apenas identificar e registar no output JSON.
|
||||
A skill /auto-expense trata da criacao de despesas.
|
||||
|
||||
Deteccao:
|
||||
3a. FORNECEDOR DIRECTO:
|
||||
- Dominio remetente bate com tabela de fornecedores
|
||||
- Subject contem: factura, invoice, recibo, receipt, pagamento, paid
|
||||
|
||||
3b. PLATAFORMA MULTI-FORNECEDOR:
|
||||
- Dominio: toconline.pt, stripe.com, paypal.com, fastspring.com, payproglobal.com
|
||||
- Registar com nota sobre plataforma
|
||||
|
||||
Action: expense_flagged
|
||||
```
|
||||
|
||||
### 4. NOTIFICACAO SISTEMA -> Registar
|
||||
|
||||
```
|
||||
Padroes protegidos (NUNCA auto-fechar):
|
||||
- Legal Update, Policy Change, Deprecation, End of Life
|
||||
- Security Alert, API Change, Terms Update
|
||||
- Action Required, Migration Required
|
||||
- Compliance, GDPR, Infrastructure Change
|
||||
|
||||
Outros:
|
||||
- Wordfence alerts, n8n updates, server notifications
|
||||
- Registar para inclusao no dashboard de alertas
|
||||
|
||||
Action: notification_closed ou priority_flagged (conforme gravidade)
|
||||
```
|
||||
|
||||
### 5. PRIORITARIO -> Incluir no relatorio
|
||||
|
||||
```
|
||||
- Remetente: cliente conhecido (verificar nome/dominio)
|
||||
- Subject: urgente, problema, erro, critical, down
|
||||
- Threads activas (RE:, FW:)
|
||||
|
||||
Action: priority_flagged
|
||||
```
|
||||
|
||||
### 6. RESTANTES -> Saltar
|
||||
|
||||
```
|
||||
Emails que nao encaixam em nenhuma categoria.
|
||||
Action: skipped
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Excepcoes (NUNCA processar automaticamente)
|
||||
|
||||
```
|
||||
- *@descomplicar.pt (internos)
|
||||
- *@gov.pt, *@at.gov.pt, *@seg-social.pt (governo)
|
||||
- *@tribunais.org.pt (tribunais)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Emails a IGNORAR (nao sao facturas)
|
||||
|
||||
```
|
||||
- "Payment Confirmation" / "Payment Was Successfully Processed" -> apenas confirmacao
|
||||
- "Your subscription has been renewed" sem valor -> apenas notificacao
|
||||
-
|
||||
Reference in New Issue
Block a user