Files
claude-plugins/gestao/skills/imap-triage/SKILL.md
Emanuel Almeida 9404af7ac9 feat: sync all plugins, skills, agents updates
New plugins: core-tools
New skills: auto-expense, ticket-triage, design, security-check,
  aiktop-tasks, daily-digest, imap-triage, index-update, mindmap,
  notebooklm, proc-creator, tasks-overview, validate-component,
  perfex-module, report, calendar-manager
New agents: design-critic, design-generator, design-lead,
  design-prompt-architect, design-researcher, compliance-auditor,
  metabase-analyst, gitea-integration-specialist
Updated: all plugin configs, knowledge datasets, existing skills

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 17:16:32 +00:00

6.4 KiB

name, description, author, version, quality_score, user_invocable, category, tags, desk_task, desk_project, allowed-tools, mcps, dependencies, triggers
name description author version quality_score user_invocable category tags desk_task desk_project allowed-tools mcps dependencies triggers
imap-triage Triagem automatica de emails IMAP em 14 contas. Elimina spam, arquiva promocionais, identifica facturas para /auto-expense, flagga prioritarios. Deduplicacao via Supabase. Use when "imap", "triagem email", "limpar emails", "email triage", "processar emails". Descomplicar® Crescimento Digital 1.0.0 85 true management
imap
email
triage
spam
promotions
invoices
supabase
1710 65 Read, Write, mcp__imap, mcp__ssh-unified imap, ssh-unified
mcps files
imap
ssh-unified
/media/ealmeida/Dados/Hub/06-Operacoes/Documentacao/fornecedores-recorrentes.md
User asks to process emails
User mentions 'imap', 'triagem', 'emails', 'limpar inbox'
Invoked by /today orchestrator

/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
- "Notificacao de transferencia" de bancos -> notificacao bancaria
- Marketing/changelog dos mesmos fornecedores -> promocional
- Subject "Welcome" / "Getting Started" -> onboarding

Output Standalone

Quando invocado directamente (sem /today):

## Triagem IMAP - DD-MM-YYYY

**Total: X emails processados em Y contas**

| Conta | Spam | Promo | Factura | Notif | Prio | Total |
|-------|------|-------|---------|-------|------|-------|

### Facturas Detectadas (para /auto-expense)
- contabilidade: MEO (uid 164) - FT A/861215955

### Prioritarios
- emanuel: [Subject] de [Remetente]

### Alertas Sistema
- [Alertas de seguranca, updates criticos]

Anti-Patterns

  • NUNCA criar despesas directamente (delegar para /auto-expense)
  • NUNCA processar >50 emails por conta (limitar)
  • NUNCA eliminar emails de dominios protegidos
  • SEMPRE registar no Supabase, mesmo se skipped
  • SEMPRE usar imap_delete para contas sem pasta "Promotions"

Skill v1.0.0 | 04-03-2026 | Descomplicar®