--- name: imap-triage description: > 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". author: Descomplicar® Crescimento Digital version: 1.0.0 quality_score: 85 user_invocable: true category: management tags: [imap, email, triage, spam, promotions, invoices, supabase] desk_task: 1710 desk_project: 65 allowed-tools: Read, Write, mcp__imap, mcp__ssh-unified mcps: imap, ssh-unified dependencies: mcps: [imap, ssh-unified] files: - /media/ealmeida/Dados/Hub/06-Operacoes/Documentacao/fornecedores-recorrentes.md triggers: - "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): ```markdown ## 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®*