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>
This commit is contained in:
254
gestao/skills/imap-triage/SKILL.md
Normal file
254
gestao/skills/imap-triage/SKILL.md
Normal file
@@ -0,0 +1,254 @@
|
||||
---
|
||||
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®*
|
||||
Reference in New Issue
Block a user