feat: adiciona 12 plugins Descomplicar ao marketplace
Plugins: automacao, crm-ops, design-media, dev-tools, gestao, infraestrutura, marketing, negocio, perfex-dev, project-manager, wordpress + hello-plugin (existente). Totais: 83 skills, 44 agents, 12 datasets.json Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
185
gestao/skills/today/SETUP_MCPS.md
Normal file
185
gestao/skills/today/SETUP_MCPS.md
Normal file
@@ -0,0 +1,185 @@
|
||||
---
|
||||
title: Setup MCPs para /today
|
||||
date: 2025-01-21
|
||||
status: activo
|
||||
---
|
||||
|
||||
# Setup MCPs para /today
|
||||
|
||||
## Estado Actual
|
||||
|
||||
| MCP | Estado | Notas |
|
||||
|-----|--------|-------|
|
||||
| desk-crm-v3 | ✅ Activo | Tickets, projectos, tarefas |
|
||||
| filesystem | ✅ Activo | Notas Obsidian |
|
||||
| memory-supabase | ✅ Activo | Persistência |
|
||||
| imap | ✅ Activo | 12 contas email |
|
||||
| google-workspace | ⏸️ Opcional | Calendar (se necessário) |
|
||||
|
||||
---
|
||||
|
||||
## MCP IMAP (Principal)
|
||||
|
||||
### Contas Configuradas (12)
|
||||
```
|
||||
emanuel@descomplicar.pt
|
||||
it@descomplicar.pt
|
||||
help@descomplicar.pt
|
||||
suporte@descomplicar.pt
|
||||
contabilidade@descomplicar.pt
|
||||
financeiro@descomplicar.pt
|
||||
info@descomplicar.pt
|
||||
rh@descomplicar.pt
|
||||
mkt@descomplicar.pt
|
||||
design@descomplicar.pt
|
||||
news@descomplicar.pt
|
||||
aiktop@descomplicar.pt
|
||||
```
|
||||
|
||||
### Ferramentas Disponíveis
|
||||
| Ferramenta | Função |
|
||||
|------------|--------|
|
||||
| `imap_list_accounts` | Listar contas disponíveis |
|
||||
| `imap_list_folders` | Listar pastas de uma conta |
|
||||
| `imap_list_emails` | Listar emails de uma pasta |
|
||||
| `imap_read_email` | Ler email por UID |
|
||||
| `imap_search_emails` | Pesquisar emails |
|
||||
| `imap_move_email` | Mover email entre pastas |
|
||||
| `imap_delete_email` | Eliminar email |
|
||||
|
||||
### Acções Automáticas Diárias
|
||||
1. **SPAM** → `imap_delete_email`
|
||||
2. **Promocionais** → `imap_move_email` para "Promotions"
|
||||
3. **Facturas pagas** → Reencaminhar para contabilidade@descomplicar.pt
|
||||
4. **Prioritários** → Listar no relatório
|
||||
|
||||
### Regras de Triagem
|
||||
Ver: `config/email-triage-rules.md`
|
||||
|
||||
---
|
||||
|
||||
## Google Workspace MCP (Opcional)
|
||||
|
||||
### Localização
|
||||
```
|
||||
~/mcp-servers/google_workspace_mcp/
|
||||
```
|
||||
|
||||
### Capacidades
|
||||
- **Gmail**: Pesquisa, envio, gestão de emails
|
||||
- **Calendar**: Eventos, reuniões, agenda
|
||||
- **Drive**: Ficheiros (opcional)
|
||||
- **Docs/Sheets**: Documentos (opcional)
|
||||
|
||||
### Requisitos para Activar
|
||||
|
||||
1. **Google Cloud Console**
|
||||
- Criar projecto ou usar existente
|
||||
- Activar Gmail API
|
||||
- Activar Calendar API
|
||||
- Criar credenciais OAuth (Desktop App)
|
||||
|
||||
2. **Credenciais necessárias**
|
||||
```
|
||||
GOOGLE_OAUTH_CLIENT_ID=xxx
|
||||
GOOGLE_OAUTH_CLIENT_SECRET=xxx
|
||||
USER_GOOGLE_EMAIL=emanuel@descomplicar.pt
|
||||
```
|
||||
|
||||
3. **Ficheiros existentes**
|
||||
- `client_secret.json` ✅ Existe
|
||||
- `token.json` ✅ Existe
|
||||
- `.env` ✅ Existe
|
||||
|
||||
### Verificar Estado
|
||||
|
||||
```bash
|
||||
cd ~/mcp-servers/google_workspace_mcp
|
||||
cat .env
|
||||
# Verificar se credenciais estão preenchidas
|
||||
```
|
||||
|
||||
### Adicionar ao Claude settings.json
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"google-workspace": {
|
||||
"command": "python",
|
||||
"args": ["-m", "workspace_mcp"],
|
||||
"cwd": "/home/ealmeida/mcp-servers/google_workspace_mcp",
|
||||
"env": {
|
||||
"GOOGLE_OAUTH_CLIENT_ID": "...",
|
||||
"GOOGLE_OAUTH_CLIENT_SECRET": "...",
|
||||
"USER_GOOGLE_EMAIL": "emanuel@descomplicar.pt"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Passos para Completar Setup
|
||||
|
||||
### 1. Verificar credenciais Google
|
||||
```bash
|
||||
cd ~/mcp-servers/google_workspace_mcp
|
||||
cat .env
|
||||
cat client_secret.json
|
||||
```
|
||||
|
||||
### 2. Testar MCP localmente
|
||||
```bash
|
||||
cd ~/mcp-servers/google_workspace_mcp
|
||||
source venv/bin/activate
|
||||
python -m workspace_mcp --test
|
||||
```
|
||||
|
||||
### 3. Adicionar ao Claude
|
||||
Editar `~/.claude/settings.json` com configuração acima.
|
||||
|
||||
### 4. Reiniciar Claude Code
|
||||
```bash
|
||||
claude --version
|
||||
# Fechar e reabrir
|
||||
```
|
||||
|
||||
### 5. Testar no /today
|
||||
```bash
|
||||
# Executar /today e verificar se Gmail/Calendar funcionam
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Funcionalidades Quando Activo
|
||||
|
||||
### Gmail
|
||||
- `list_emails` - Listar emails
|
||||
- `search_emails` - Pesquisar emails
|
||||
- `get_email` - Ver email específico
|
||||
- `send_email` - Enviar email
|
||||
- `create_draft` - Criar rascunho
|
||||
|
||||
### Calendar
|
||||
- `list_events` - Listar eventos
|
||||
- `get_event` - Ver evento
|
||||
- `create_event` - Criar evento
|
||||
- `update_event` - Actualizar evento
|
||||
- `delete_event` - Eliminar evento
|
||||
|
||||
---
|
||||
|
||||
## Alternativa: MCP Gmail Dedicado
|
||||
|
||||
Se preferir usar apenas Gmail (mais leve):
|
||||
|
||||
```
|
||||
~/mcp-servers/mcp-gmail.tar.gz
|
||||
```
|
||||
|
||||
Extrair e configurar separadamente.
|
||||
|
||||
---
|
||||
|
||||
**Última actualização**: 2025-01-21
|
||||
466
gestao/skills/today/SKILL.md
Normal file
466
gestao/skills/today/SKILL.md
Normal file
@@ -0,0 +1,466 @@
|
||||
---
|
||||
name: today
|
||||
description: >
|
||||
Checkup diário v7.5 - IMAP triaging, auto-despesas, Obsidian note, Supabase.
|
||||
Triagem emails 12 contas IMAP + tickets CRM + despesas auto + nota diaria.
|
||||
Use when "checkup", "hoje", "today", "rotina", início de dia.
|
||||
author: Descomplicar® Crescimento Digital
|
||||
version: 7.5.0
|
||||
quality_score: 92
|
||||
user_invocable: true
|
||||
category: productivity
|
||||
tags: [rotina, checkup, dashboard, crm, tickets, invoices, timer, monday, saturday, imap, email]
|
||||
desk_task: 1416
|
||||
desk_project: 65
|
||||
allowed-tools: Read, Write, mcp__desk-crm-v3, mcp__mcp-time, mcp__google-workspace, mcp__imap, mcp__memory-supabase
|
||||
mcps: desk-crm-v3, mcp-time, google-workspace, imap, memory-supabase
|
||||
dependencies:
|
||||
skills: [ticket, invoice, time, crm, wp-update, cleanup-downloads]
|
||||
---
|
||||
|
||||
# /today v7.5 - Checkup Diário
|
||||
|
||||
Hub central que orquestra skills Desk + IMAP para visao completa do dia.
|
||||
|
||||
---
|
||||
|
||||
## Protocolo Principal
|
||||
|
||||
> **REGRA FUNDAMENTAL:** Fases 1-2 sao SILENCIOSAS e OBRIGATORIAS.
|
||||
> Executar TUDO antes de mostrar qualquer output ao utilizador.
|
||||
> O utilizador so ve o resumo final com as accoes ja tomadas.
|
||||
|
||||
```
|
||||
FASE 1 - SILENCIOSA (executar tudo, sem output)
|
||||
1. mcp__mcp-time__current_time → Verificar dia da semana
|
||||
2. Verificar ultima execucao (memory-supabase: "today checkup YYYY-MM-DD")
|
||||
3. AUTO-PROCESSAR despesas de tickets (ver seccao Auto-Process)
|
||||
4. AUTO-FECHAR Tickets SPAM
|
||||
5. IMAP Triagem - 12 contas (ver seccao IMAP abaixo)
|
||||
6. Limpeza Downloads (via /cleanup-downloads) → SE >10 ficheiros
|
||||
|
||||
FASE 2 - RECOLHA (queries em paralelo, sem output)
|
||||
7. Timer Activo
|
||||
8. Tickets abertos (status 1,2,3)
|
||||
9. Facturas Vencidas
|
||||
10. Tarefas Prioritarias (urgentes + alta + vencidas)
|
||||
11. Leads Novos (status 7, 14)
|
||||
12. Propostas pendentes (status 4)
|
||||
13. Agenda do Dia (Google Calendar)
|
||||
|
||||
FASE 3 - OUTPUT + PERSISTENCIA
|
||||
14. Resumo do auto-processamento (despesas, SPAM, emails)
|
||||
15. Notificacoes de sistema que requerem revisao manual
|
||||
16. Dashboard (timer, tickets, facturas, tarefas, leads, agenda)
|
||||
17. 3 Prioridades do dia
|
||||
18. SE SEGUNDA → Planeamento semanal + /wp-update
|
||||
19. SE SEXTA → Sugerir manutencao WordPress
|
||||
20. SE SABADO → Consolidacao memorias
|
||||
21. Criar nota Obsidian (Passo 9)
|
||||
22. Guardar em Supabase (Passo 10)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Secções do Checkup
|
||||
|
||||
### 1. Timer Activo
|
||||
|
||||
```
|
||||
Verificar ~/.claude-work/active-timer.json
|
||||
Se activo:
|
||||
🟢 Timer: #1446 - Documentação (2h 15m)
|
||||
⚠️ Se >4h: "Timer activo há muito tempo!"
|
||||
```
|
||||
|
||||
### 2. Tickets Abertos
|
||||
|
||||
```
|
||||
mcp__desk-crm-v3__get_tickets({ status: [1,2,3] })
|
||||
|
||||
## 🎫 Tickets (4)
|
||||
🔴 #234 - Erro login (TechCorp) - 2h
|
||||
🟠 #232 - Bug funcionalidade (StartupX) - 1d
|
||||
🟢 #230 - Dúvida (ClienteY) - 2d
|
||||
```
|
||||
|
||||
### 3. Facturas Vencidas
|
||||
|
||||
```
|
||||
mcp__desk-crm-v3__overdue_invoices_report()
|
||||
|
||||
## 💰 Facturas Vencidas (2)
|
||||
| # | Cliente | Valor | Dias |
|
||||
|---|---------|-------|------|
|
||||
| INV-040 | OldClient | €950 | 15 |
|
||||
| INV-038 | SlowPay | €2.100 | 22 |
|
||||
**Total:** €3.050
|
||||
```
|
||||
|
||||
### 4. Tarefas Prioritárias
|
||||
|
||||
```
|
||||
mcp__desk-crm-v3__get_tasks({ status: [1,4], priority: [3,4] })
|
||||
|
||||
## 📋 Tarefas Prioritárias (5)
|
||||
🔴 Urgentes
|
||||
| # | Tarefa | Projecto | Deadline |
|
||||
|---|--------|----------|----------|
|
||||
| #1450 | Implementar API | SFV-360 | Hoje |
|
||||
|
||||
🟠 Alta
|
||||
| # | Tarefa | Projecto | Deadline |
|
||||
|---|--------|----------|----------|
|
||||
| #1448 | Documentação | Stack | Amanhã |
|
||||
```
|
||||
|
||||
### 5. Agenda do Dia
|
||||
|
||||
```
|
||||
mcp__google-workspace__get_events({
|
||||
user_google_email: "emanuelalmeidaa@gmail.com",
|
||||
time_min: "hoje 00:00",
|
||||
time_max: "hoje 23:59"
|
||||
})
|
||||
|
||||
## 📅 Agenda Hoje
|
||||
- 10:00 - Reunião Cliente X
|
||||
- 14:30 - Call Equipa
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## IMAP Triagem (FASE 1 - Passo 5)
|
||||
|
||||
> **OBRIGATORIO:** Processar 12 contas IMAP silenciosamente.
|
||||
> Ver regras detalhadas em `config/email-triage-rules.md`
|
||||
|
||||
### Contas IMAP (12)
|
||||
|
||||
```
|
||||
emanuel, it, help, suporte, contabilidade, financeiro,
|
||||
info, rh, mkt, design, news, aiktop
|
||||
```
|
||||
|
||||
### Para cada conta: imap_list_emails(account, folder="INBOX", limit=50)
|
||||
|
||||
```
|
||||
Classificar cada email por ordem de prioridade:
|
||||
|
||||
1. SPAM → imap_delete_email(account, uid)
|
||||
- Subject: lottery, winner, urgent money, bitcoin investment
|
||||
- Remetente: *.ru, *.cn (excepto conhecidos)
|
||||
- Subject todo em MAIUSCULAS
|
||||
|
||||
2. PROMOCIONAL → imap_move_email(account, uid, "Promotions")
|
||||
- Subject: newsletter, promo, desconto, oferta
|
||||
- Remetente: *@marketing.*, *@news.*, *@promo.*
|
||||
|
||||
3. FACTURA/RECIBO → Registar para contabilidade
|
||||
- Subject: factura, invoice, recibo, receipt, pagamento, paid
|
||||
- Remetente de servico conhecido (ver mapeamento abaixo)
|
||||
- Registar para reencaminhar para contabilidade@descomplicar.pt
|
||||
|
||||
4. PRIORITARIO → Incluir no relatorio
|
||||
- Remetente: cliente conhecido (verificar DeskCRM)
|
||||
- Subject: urgente, problema, erro, critical, down
|
||||
- Threads activas (RE:, FW:)
|
||||
```
|
||||
|
||||
### Resumo IMAP no output
|
||||
|
||||
```
|
||||
📧 Emails Processados
|
||||
- X spam eliminados
|
||||
- Y promocionais arquivados
|
||||
- Z facturas para contabilidade
|
||||
- W emails prioritarios pendentes
|
||||
```
|
||||
|
||||
### Excepcoes (NUNCA processar automaticamente)
|
||||
|
||||
```
|
||||
- *@descomplicar.pt (internos)
|
||||
- *@gov.pt, *@at.gov.pt, *@seg-social.pt (governo)
|
||||
- *@tribunais.org.pt (tribunais)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Rotinas Semanais
|
||||
|
||||
### Segunda-feira
|
||||
|
||||
```
|
||||
1. Checkup normal (acima)
|
||||
2. Planeamento semanal:
|
||||
- Todas as tarefas com deadline esta semana
|
||||
- Capacidade vs carga
|
||||
- Distribuicao por dia
|
||||
- Verificar estimativas de tempo (set_task_estimated_time se em falta)
|
||||
3. Invocar /wp-update
|
||||
```
|
||||
|
||||
### Sexta-feira
|
||||
|
||||
```
|
||||
1. Checkup normal (acima)
|
||||
2. Sugerir manutencao WordPress:
|
||||
- Listar os 10 sites da rede
|
||||
- Oferecer checkup de seguranca
|
||||
```
|
||||
|
||||
### Sabado
|
||||
|
||||
```
|
||||
1. Checkup normal (acima)
|
||||
2. Consolidacao de memorias:
|
||||
- Listar ~/.claude/projects/*/memory/MEMORY.md
|
||||
- Extrair "Padroes Descobertos" e "Solucoes"
|
||||
- Comentario na discussao #46 (Memorias)
|
||||
- Backup em memory-supabase
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Persistencia (FASE 3 - Passos 21-22)
|
||||
|
||||
### Passo 21: Nota Obsidian
|
||||
|
||||
```
|
||||
Path: /media/ealmeida/Dados/GDrive/Cloud/EAL/Planeamento/00-Inbox/
|
||||
Filename: YYYY-MM-DD-checkup.md
|
||||
|
||||
---
|
||||
title: Checkup YYYY-MM-DD
|
||||
date: YYYY-MM-DD
|
||||
type: checkup
|
||||
status: active
|
||||
---
|
||||
|
||||
## Checkup Diario - YYYY-MM-DD
|
||||
[Conteudo do relatorio com links CRM]
|
||||
```
|
||||
|
||||
### Passo 22: Supabase
|
||||
|
||||
```
|
||||
mcp__memory-supabase__save_memory:
|
||||
- content: "Checkup diario - X tickets, Y tarefas, Z urgentes, W emails"
|
||||
- tags: ["today", "checkup", "YYYY-MM-DD"]
|
||||
- metadata: { tickets, tasks, urgent, emails_processed, is_monday }
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Output Final
|
||||
|
||||
```markdown
|
||||
## Checkup Diario - 2026-02-06 (Quinta)
|
||||
|
||||
### Timer
|
||||
#1446 - Documentacao (2h 15m)
|
||||
|
||||
### Emails (IMAP)
|
||||
- Spam eliminado: 5
|
||||
- Promocional arquivado: 3
|
||||
- Facturas contabilidade: 2
|
||||
- Prioritarios: 1
|
||||
|
||||
### Tickets
|
||||
- Abertos: 4 (1 urgente)
|
||||
|
||||
### Facturas
|
||||
- Vencidas: 3.050EUR
|
||||
|
||||
### Tarefas
|
||||
- Urgentes: 1
|
||||
- Alta prioridade: 4
|
||||
|
||||
### Leads + Propostas
|
||||
- Leads novos: 2
|
||||
- Propostas pendentes: 1
|
||||
|
||||
### Agenda
|
||||
- 10:00 - Reuniao Cliente X
|
||||
- 14:30 - Call Equipa
|
||||
|
||||
---
|
||||
|
||||
### 3 Prioridades Hoje
|
||||
1. [ ] #1450 - Implementar API (Urgente)
|
||||
2. [ ] Contactar OldClient (factura 15 dias)
|
||||
3. [ ] #1448 - Documentacao Stack
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Auto-Process Tickets (FASE 1 - OBRIGATÓRIO)
|
||||
|
||||
> **EXECUTAR SILENCIOSAMENTE ANTES DE QUALQUER OUTPUT.**
|
||||
> Nao perguntar, nao mostrar preview. Processar e reportar no resumo final.
|
||||
|
||||
### Passo 1: Recolher tickets abertos (status 1) de TODOS os departamentos
|
||||
|
||||
```
|
||||
get_tickets({ status: 1, limit: 50 })
|
||||
```
|
||||
|
||||
### Passo 2: Classificar cada ticket
|
||||
|
||||
Para cada ticket aberto, aplicar por ordem de prioridade:
|
||||
|
||||
```
|
||||
1. NOTIFICAÇÃO SISTEMA? (verificar PRIMEIRO)
|
||||
→ Subject contem padrao protegido E remetente conhecido
|
||||
→ NAO fechar. Guardar para "Requer Accao" no resumo.
|
||||
|
||||
2. DESPESA? (verificar SEGUNDO)
|
||||
→ Email do remetente contem padrao de fornecedor conhecido (ver mapeamento)
|
||||
→ Processar como despesa (ver passos abaixo)
|
||||
|
||||
3. SPAM? (verificar TERCEIRO)
|
||||
→ Subject contem padrao SPAM
|
||||
→ Fechar (status 5) com motivo
|
||||
|
||||
4. NEWSLETTER/INFORMATIVO?
|
||||
→ Newsletters, updates de produtos, notificacoes genericas
|
||||
→ Fechar (status 5) com motivo
|
||||
|
||||
5. NENHUM MATCH → Manter aberto para revisao
|
||||
```
|
||||
|
||||
### Passo 3: Processar Despesas
|
||||
|
||||
> **DADOS ESTAO NO HTML.** A maioria dos fornecedores (Anthropic, Canva, Elastic Email)
|
||||
> envia os dados no corpo do email, NAO como PDF anexo.
|
||||
> Extrair valor, referencia e data do HTML do ticket.
|
||||
|
||||
```
|
||||
Para cada ticket identificado como despesa:
|
||||
1. get_ticket(ticket_id) → ler HTML completo
|
||||
2. Extrair do HTML: valor, invoice/reference number, data, descricao
|
||||
3. Mapear email → categoria (tabela abaixo)
|
||||
4. create_expense(category_id, amount, date, note, reference, currency=2, tax)
|
||||
5. Fechar ticket (status 5) com "Despesa #ID criada"
|
||||
6. SE existe ticket duplicado (mesmo subject) → fechar duplicado tambem
|
||||
```
|
||||
|
||||
### Padroes SPAM (Fechar status 5)
|
||||
|
||||
```
|
||||
Guest Post, SEO services, backlinks, partnership,
|
||||
Purchase Order, WeTransfer, Prestige Awards
|
||||
```
|
||||
|
||||
### Notificacoes de Sistema (NUNCA auto-fechar)
|
||||
|
||||
**Padroes protegidos (subject - case insensitive):**
|
||||
```
|
||||
Legal Update, Legal Notice, Policy Change, Policy Update,
|
||||
Deprecation, End of Life, EOL, Breaking Change,
|
||||
Migration Required, Action Required, Action Needed,
|
||||
Security Alert, Security Advisory, Security Notice,
|
||||
API Change, API Update, Terms Update, Terms Change,
|
||||
Service Disruption, Maintenance Required,
|
||||
Compliance, GDPR, Data Processing, Data Processor,
|
||||
Infrastructure Change, Platform Update, Product Update
|
||||
```
|
||||
|
||||
### Mapeamento Fornecedor → Categoria
|
||||
|
||||
> Verificar pelo **dominio do email** do remetente, nao pelo departamento.
|
||||
> Tickets de fornecedores conhecidos podem estar em QUALQUER departamento.
|
||||
|
||||
| Padrao no Email | Categoria | ID | Tax |
|
||||
|-----------------|-----------|-----|-----|
|
||||
| anthropic | Servicos IA e APIs | 38 | 0 |
|
||||
| openai | Servicos IA e APIs | 38 | 0 |
|
||||
| hetzner | Alojamento de Servidores | 10 | 0 |
|
||||
| meo, meoempresas | Telecomunicacoes | 1 | 1 |
|
||||
| centos-webpanel, cwp | Licencas Software | 28 | 0 |
|
||||
| elasticemail | E-mail MKT | 5 | 0 |
|
||||
| freepik, envato, canva | Plugins e Recursos de Design | 9 | 0 |
|
||||
| moloni | Software Facturacao | 11 | 1 |
|
||||
| everhour | Softwares Gestao | 12 | 0 |
|
||||
| ptisp, namecheap | Registo de Dominios | 13 | 0 |
|
||||
| vimeo | Plataformas Armazenamento | 19 | 0 |
|
||||
| payproglobal | Servicos IA e APIs (CapSolver) | 38 | 0 |
|
||||
| bdthemes | Plugins e Recursos de Design | 9 | 0 |
|
||||
| staples, multipapel | Material Escritorio | 15 | 1 |
|
||||
|
||||
### Tickets a Saltar (NAO criar despesa)
|
||||
|
||||
| Tipo | Indicador | Accao |
|
||||
|------|-----------|-------|
|
||||
| Payment Confirmation | "Payment Confirmation" de CWP/centos-webpanel | Fechar (confirmacao pagamento, nao fatura) |
|
||||
| Payment Receipt | "Payment Was Successfully Processed" de elasticemail | Fechar (recibo pagamento recorrente sem dados de fatura) |
|
||||
| Notificacao bancaria | "Notificação de transferência" de bancobpi | Fechar (notificacao, nao fatura) |
|
||||
| Duplicado | reference_no ja existe no CRM | Fechar (ja processado) |
|
||||
| Ticket duplicado | Mesmo subject que outro ticket ja processado | Fechar como duplicado |
|
||||
|
||||
> **NOTA:** Receipts de Anthropic e Canva contem invoice number e valor → SAO despesas.
|
||||
> "Receipt" so e motivo para saltar quando e apenas confirmacao de pagamento sem dados de fatura.
|
||||
|
||||
### Campos Criticos
|
||||
|
||||
```
|
||||
currency = 2 (EUR) → SEMPRE
|
||||
tax = 1 → Fornecedores PT (MEO, Moloni, Staples)
|
||||
tax = 0 → Fornecedores estrangeiros (Anthropic, Canva, Hetzner, etc.)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Referência de Skills
|
||||
|
||||
| Secção | Skill | Comando |
|
||||
|--------|-------|---------|
|
||||
| Timer | /time | `/time` |
|
||||
| Tickets | /ticket | `/ticket` |
|
||||
| Facturas | /invoice | `/invoice overdue` |
|
||||
| Tarefas/Leads | /crm | `/crm` |
|
||||
| Downloads | /cleanup-downloads | SE >10 ficheiros |
|
||||
| WordPress | /wp-update | Segundas |
|
||||
|
||||
---
|
||||
|
||||
## Anti-Patterns
|
||||
|
||||
- **NUNCA** executar checkup sem verificar data/hora
|
||||
- **NUNCA** duplicar logica de outras skills
|
||||
- **NUNCA** mostrar mais de 3 prioridades (PHDA)
|
||||
- **NUNCA** mostrar resumo ANTES de processar despesas e SPAM
|
||||
- **NUNCA** perguntar ao utilizador se deve processar despesas (e automatico)
|
||||
- **NUNCA** assumir que so dept 3 tem tickets de contabilidade (verificar email do remetente)
|
||||
- **NUNCA** saltar receipt que contem invoice number e valor (e despesa)
|
||||
|
||||
---
|
||||
|
||||
## Changelog
|
||||
|
||||
### v7.5.0 (2026-02-06)
|
||||
- **IMAP TRIAGEM:** Protocolo completo para 12 contas IMAP (spam, promo, facturas, prioritarios)
|
||||
- **NOTA OBSIDIAN:** Criar nota diaria em /media/ealmeida/Dados/GDrive/Cloud/EAL/Planeamento/00-Inbox/
|
||||
- **SUPABASE SAVE:** Guardar resumo checkup em memory-supabase com metricas
|
||||
- **LEADS + PROPOSTAS:** Adicionar verificacao de leads novos e propostas pendentes na Fase 2
|
||||
- **SEXTA-FEIRA:** Rotina de manutencao WordPress sugerida as sextas
|
||||
- **VERIFICAR EXECUCAO:** Passo 2 verifica ultima execucao via memory-supabase
|
||||
- **EXCEPCOES IMAP:** Dominos gov.pt, at.gov.pt, tribunais nunca processados automaticamente
|
||||
- **BUG FIX:** Corrigido MCP IMAP (seq.fetch→fetch para operacoes UID-based)
|
||||
|
||||
### v7.4.0 (2026-02-06)
|
||||
- Protocolo 3 fases, scan todos departamentos, HTML fonte dados, mapeamento expandido
|
||||
|
||||
### v7.3.0 (2026-02-05)
|
||||
- Notificacoes de sistema protegidas
|
||||
|
||||
### v7.2.0 (2026-02-05)
|
||||
- Auto-despesas contabilidade (dept 3)
|
||||
|
||||
### v7.1.0 (2026-02-05)
|
||||
- Integracao com skills Desk
|
||||
|
||||
---
|
||||
|
||||
*Skill v7.5.0 | 2026-02-06 | Descomplicar®*
|
||||
448
gestao/skills/today/config/email-triage-rules.md
Normal file
448
gestao/skills/today/config/email-triage-rules.md
Normal file
@@ -0,0 +1,448 @@
|
||||
# Regras de Triagem de Emails
|
||||
|
||||
## Contas IMAP (12)
|
||||
|
||||
```yaml
|
||||
accounts:
|
||||
- emanuel@descomplicar.pt
|
||||
- it@descomplicar.pt
|
||||
- help@descomplicar.pt
|
||||
- suporte@descomplicar.pt
|
||||
- contabilidade@descomplicar.pt
|
||||
- financeiro@descomplicar.pt
|
||||
- info@descomplicar.pt
|
||||
- rh@descomplicar.pt
|
||||
- mkt@descomplicar.pt
|
||||
- design@descomplicar.pt
|
||||
- news@descomplicar.pt
|
||||
- aiktop@descomplicar.pt
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Regra 1: SPAM (Eliminar)
|
||||
|
||||
**Acção**: `imap_delete_email`
|
||||
|
||||
### Padrões Subject (case insensitive)
|
||||
```
|
||||
- lottery
|
||||
- winner
|
||||
- million dollars
|
||||
- urgent money
|
||||
- bitcoin investment
|
||||
- crypto opportunity
|
||||
- claim your prize
|
||||
- act now
|
||||
- limited time offer
|
||||
- you have been selected
|
||||
- dear beneficiary
|
||||
- inheritance
|
||||
- nigerian prince
|
||||
```
|
||||
|
||||
### Padrões Remetente
|
||||
```
|
||||
- *@*.ru (excepto conhecidos)
|
||||
- *@*.cn (excepto conhecidos)
|
||||
- no-reply@spam*
|
||||
- noreply@bulk*
|
||||
```
|
||||
|
||||
### Indicadores técnicos
|
||||
```
|
||||
- SPF fail
|
||||
- DKIM fail
|
||||
- Muitos caracteres especiais no subject
|
||||
- Subject todo em MAIÚSCULAS
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Regra 2: PROMOCIONAIS (Arquivar)
|
||||
|
||||
**Acção**: `imap_move_email` → pasta "Promotions"
|
||||
|
||||
### Padrões Subject
|
||||
```
|
||||
- newsletter
|
||||
- promo
|
||||
- promoção
|
||||
- desconto
|
||||
- oferta especial
|
||||
- black friday
|
||||
- cyber monday
|
||||
- novidades
|
||||
- new arrivals
|
||||
- sale
|
||||
- % off
|
||||
- grátis
|
||||
- free shipping
|
||||
```
|
||||
|
||||
### Padrões Remetente
|
||||
```
|
||||
- *@marketing.*
|
||||
- *@news.*
|
||||
- *@promo.*
|
||||
- *@newsletter.*
|
||||
- *@campaigns.*
|
||||
- *@mailchimp.com
|
||||
- *@sendgrid.net
|
||||
- *@mailgun.org
|
||||
```
|
||||
|
||||
### Headers
|
||||
```
|
||||
- List-Unsubscribe presente
|
||||
- Precedence: bulk
|
||||
- X-Campaign-*
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Regra 3: FACTURAS PAGAS (Reencaminhar)
|
||||
|
||||
**Acção**: Registar para reencaminhar para `contabilidade@descomplicar.pt`
|
||||
|
||||
### Padrões Subject
|
||||
```
|
||||
- factura
|
||||
- fatura
|
||||
- invoice
|
||||
- recibo
|
||||
- receipt
|
||||
- pagamento confirmado
|
||||
- payment confirmed
|
||||
- pago
|
||||
- paid
|
||||
- comprovativo
|
||||
- ordem de pagamento
|
||||
```
|
||||
|
||||
### Padrões Remetente (serviços conhecidos)
|
||||
```
|
||||
- *@hetzner.com
|
||||
- *@ovh.com
|
||||
- *@cloudflare.com
|
||||
- *@github.com
|
||||
- *@google.com
|
||||
- *@microsoft.com
|
||||
- *@adobe.com
|
||||
- *@figma.com
|
||||
- *@notion.so
|
||||
- *@stripe.com
|
||||
- *@paypal.com
|
||||
- *@wise.com
|
||||
- *@revolut.com
|
||||
- *@n26.com
|
||||
- *facturacao@*
|
||||
- *billing@*
|
||||
- *invoices@*
|
||||
```
|
||||
|
||||
### Anexos
|
||||
```
|
||||
- *.pdf com "factura" no nome
|
||||
- *.pdf com "invoice" no nome
|
||||
- *.pdf com "recibo" no nome
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Regra 4: PRIORITÁRIOS (Listar)
|
||||
|
||||
**Acção**: Incluir no relatório diário para revisão manual
|
||||
|
||||
### Padrões Subject
|
||||
```
|
||||
- urgente
|
||||
- urgent
|
||||
- importante
|
||||
- important
|
||||
- problema
|
||||
- problem
|
||||
- erro
|
||||
- error
|
||||
- falha
|
||||
- failure
|
||||
- down
|
||||
- offline
|
||||
- crítico
|
||||
- critical
|
||||
```
|
||||
|
||||
### Remetentes prioritários
|
||||
```
|
||||
# Clientes activos (verificar DeskCRM)
|
||||
# Parceiros importantes
|
||||
# Serviços críticos:
|
||||
- *@cloudflare.com (security alerts)
|
||||
- *@hetzner.com (server alerts)
|
||||
- *@github.com (security)
|
||||
- *@google.com (security)
|
||||
```
|
||||
|
||||
### Indicadores
|
||||
```
|
||||
- RE: ou FW: (threads activas)
|
||||
- Múltiplos destinatários da empresa
|
||||
- Marcado como importante pelo remetente
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Excepções (Nunca processar automaticamente)
|
||||
|
||||
```yaml
|
||||
whitelist_senders:
|
||||
- *@descomplicar.pt # Internos
|
||||
- *@cliente-importante.pt # Clientes VIP
|
||||
|
||||
whitelist_domains:
|
||||
- gov.pt # Governo
|
||||
- tribunais.org.pt # Tribunais
|
||||
- at.gov.pt # Autoridade Tributária
|
||||
- seg-social.pt # Segurança Social
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Pastas IMAP Standard
|
||||
|
||||
| Pasta | Uso |
|
||||
|-------|-----|
|
||||
| INBOX | Emails por processar |
|
||||
| Promotions | Emails promocionais arquivados |
|
||||
| Processed | Emails processados pelo /today |
|
||||
| Important | Emails marcados como prioritários |
|
||||
| Trash | Eliminados |
|
||||
|
||||
---
|
||||
|
||||
## Métricas Diárias
|
||||
|
||||
Registar em cada execução:
|
||||
```yaml
|
||||
metrics:
|
||||
date: YYYY-MM-DD
|
||||
accounts_processed: 12
|
||||
total_emails: X
|
||||
spam_deleted: Y
|
||||
promotions_archived: Z
|
||||
invoices_forwarded: W
|
||||
priority_flagged: V
|
||||
processing_time: Xs
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
## Regras de Tickets (DeskCRM)
|
||||
|
||||
### Notificações de Sistema → NUNCA auto-fechar
|
||||
|
||||
> **REGRA PRIORITÁRIA:** Verificar ANTES dos padrões SPAM. Se um ticket corresponder a esta regra, não pode ser fechado automaticamente.
|
||||
|
||||
**Padrões protegidos (subject - case insensitive):**
|
||||
```regex
|
||||
Legal Update|Legal Notice|Policy Change|Policy Update|
|
||||
Deprecation|End of Life|EOL|Breaking Change|
|
||||
Migration Required|Action Required|Action Needed|
|
||||
Security Alert|Security Advisory|Security Notice|
|
||||
API Change|API Update|Terms Update|Terms Change|
|
||||
Service Disruption|Maintenance Required|
|
||||
Compliance|GDPR|Data Processing|Data Processor|
|
||||
Infrastructure Change|Platform Update|transitions to
|
||||
```
|
||||
|
||||
**Condição:** Remetente deve ser fornecedor conhecido (ver lista de remetentes conhecidos abaixo).
|
||||
|
||||
**Acção:**
|
||||
```
|
||||
→ NÃO fechar
|
||||
→ Listar no relatório como: "⚠️ REQUER ACÇÃO: #{ID} - {Assunto}"
|
||||
→ Manter aberto para análise e decisão manual
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Tickets SPAM → Fechar AUTOMATICAMENTE
|
||||
|
||||
> **IMPORTANTE:** Verificar PRIMEIRO se o ticket corresponde à regra de "Notificações de Sistema" acima. Se sim, NÃO fechar.
|
||||
|
||||
**Padrões de detecção (subject):**
|
||||
```regex
|
||||
Guest Post|SEO services|backlinks|partnership|
|
||||
link building|dofollow|collaboration opportunity|
|
||||
Boas Festas|Season's Greetings
|
||||
```
|
||||
|
||||
> **NOTA:** "Action Required", "Termos de Serviço" e notificações legais foram removidos dos padrões SPAM. Podem indicar mudanças reais em serviços que usamos. São tratados pela regra de "Notificações de Sistema" acima.
|
||||
|
||||
**⚡ Acção AUTOMÁTICA - Executar SEM intervenção manual:**
|
||||
```
|
||||
close_ticket(ticket_id, message="Fechado automaticamente - SPAM detectado")
|
||||
# Registar: "🗑️ SPAM fechado: #{ID} - {Assunto}"
|
||||
```
|
||||
|
||||
> [!important] SPAM = FECHAR IMEDIATAMENTE
|
||||
> Não perder tempo a analisar. Fechar automaticamente e seguir em frente.
|
||||
|
||||
---
|
||||
|
||||
### Tickets de PAGAMENTOS → Contabilidade + Fechar
|
||||
|
||||
**Departamentos DeskCRM:**
|
||||
| ID | Nome | Email |
|
||||
|----|------|-------|
|
||||
| 1 | Comercial | info@descomplicar.pt |
|
||||
| 2 | Suporte | suporte@descomplicar.pt |
|
||||
| 3 | **Contabilidade** | contabilidade@descomplicar.pt |
|
||||
| 4 | RH | rh@descomplicar.pt |
|
||||
| 5 | Design | design@descomplicar.pt |
|
||||
| 6 | Marketing | mkt@descomplicar.pt |
|
||||
| 7 | Tecnologia | it@descomplicar.pt |
|
||||
|
||||
**Padrões de detecção (subject):**
|
||||
```regex
|
||||
payment|pagamento|pago|paid|
|
||||
invoice|factura|fatura|recibo|
|
||||
successfully.*(processed|completed)|
|
||||
subscription.*(renewed|confirmed)|
|
||||
order.*confirmed|receipt|
|
||||
account.*funded|has been funded|
|
||||
Envio de Fatura Eletrónica|
|
||||
Invoice Payment Confirmation|
|
||||
Customer Invoice
|
||||
```
|
||||
|
||||
**Remetentes conhecidos (processar SEMPRE):**
|
||||
```yaml
|
||||
services:
|
||||
# Hosting & Infra
|
||||
- "*@elasticemail.com" # Elastic Email
|
||||
- "*@hetzner.com" # Hetzner
|
||||
- "*@hetzner.de"
|
||||
- "*@centos-webpanel.com" # CWP
|
||||
- "*@control-webpanel.com"
|
||||
|
||||
# Design & Tools
|
||||
- "*@canva.com" # Canva
|
||||
|
||||
# Telecom PT
|
||||
- "*@meo.pt" # MEO
|
||||
- "*@altice.pt"
|
||||
- "*@nos.pt" # NOS (futuro)
|
||||
- "*@vodafone.pt" # Vodafone (futuro)
|
||||
|
||||
# Cloud & SaaS
|
||||
- "*@cloudflare.com"
|
||||
- "*@github.com"
|
||||
- "*@google.com"
|
||||
- "*@microsoft.com"
|
||||
- "*@adobe.com"
|
||||
- "*@figma.com"
|
||||
- "*@notion.so"
|
||||
- "*@openai.com"
|
||||
- "*@email.openai.com"
|
||||
- "*@anthropic.com"
|
||||
- "*@openrouter.zendesk.com" # OpenRouter
|
||||
|
||||
# Pagamentos
|
||||
- "*@stripe.com"
|
||||
- "*@paypal.com"
|
||||
- "*@wise.com"
|
||||
- "*@revolut.com"
|
||||
```
|
||||
|
||||
**Lógica de processamento:**
|
||||
```
|
||||
IF assunto contém padrão de pagamento/factura:
|
||||
IF remetente IN remetentes_conhecidos:
|
||||
→ Contabilidade + Fechar (AUTOMÁTICO)
|
||||
ELSE:
|
||||
→ Avaliar indicadores de spam/phishing
|
||||
→ LISTAR para revisão manual com recomendação
|
||||
```
|
||||
|
||||
**⚡ Acção AUTOMÁTICA para remetentes CONHECIDOS:**
|
||||
```
|
||||
# Executar AMBAS as acções automaticamente, SEM intervenção manual:
|
||||
1. update_ticket(ticket_id, department=3) # Mover para Contabilidade
|
||||
2. close_ticket(ticket_id, message="Fatura processada automaticamente - Contabilidade")
|
||||
# Registar: "💰 Contabilidade + Fechado: #{ID} - {Assunto}"
|
||||
```
|
||||
|
||||
**Acção para remetentes DESCONHECIDOS:**
|
||||
```
|
||||
1. Avaliar indicadores de spam (ver abaixo)
|
||||
2. LISTAR no relatório com recomendação:
|
||||
- [SPAM?] se indicadores presentes
|
||||
- [NOVO?] se parece legítimo (possível novo serviço)
|
||||
3. Aguardar decisão manual
|
||||
```
|
||||
|
||||
### Indicadores de SPAM/PHISHING
|
||||
|
||||
**Alta probabilidade de SPAM:**
|
||||
- Remetente pessoal (gmail, hotmail, yahoo) a enviar "facturas empresariais"
|
||||
- Domínio suspeito (muitos números, hífens, extensões estranhas)
|
||||
- Erros ortográficos no assunto ("facktura", "pagamanto")
|
||||
- Assunto todo em MAIÚSCULAS
|
||||
- Urgência exagerada ("ÚLTIMO AVISO", "URGENTE", "CONTA SUSPENSA")
|
||||
- Sem número de factura/referência específico
|
||||
- Remetente não corresponde à empresa alegada no assunto
|
||||
|
||||
**Provavelmente LEGÍTIMO (novo serviço):**
|
||||
- Domínio empresarial consistente com o assunto
|
||||
- Formato profissional (número de factura, data, referência)
|
||||
- Sem urgência exagerada
|
||||
- Padrão consistente com facturas reais
|
||||
|
||||
> [!info] NUNCA eliminar automaticamente remetentes desconhecidos
|
||||
> Podem ser novos serviços subscritos. Sempre listar para revisão manual.
|
||||
|
||||
### Tickets para ELIMINAR (sem valor contabilístico)
|
||||
|
||||
**Padrões de assunto:**
|
||||
```yaml
|
||||
delete_patterns:
|
||||
# Elastic Email - recargas
|
||||
- "Your Elastic Email Account was successfully re-charged"
|
||||
- "Account re-charged"
|
||||
- "Auto-recharge successful"
|
||||
- "Credit added to your account"
|
||||
|
||||
# FULL Services - activações
|
||||
- "[BOT] Ativação realizada com sucesso"
|
||||
- "[BOT] Activation successful"
|
||||
```
|
||||
|
||||
**Acção:**
|
||||
```
|
||||
delete_ticket(ticket_id, confirm=true, reason="Notificação automática sem valor")
|
||||
```
|
||||
|
||||
> Estas são notificações de recarga automática, não facturas. Não têm valor para contabilidade.
|
||||
|
||||
**Exemplos de assuntos detectados:**
|
||||
- "Your Elastic Email Payment Was Successfully Processed"
|
||||
- "Canva - Your invoice is ready"
|
||||
- "Hetzner - Invoice for January 2025"
|
||||
- "CentOS WebPanel Pro License Invoice"
|
||||
- "MEO - Factura disponível"
|
||||
- "Invoice #12345 - Payment Confirmed"
|
||||
- "Pagamento confirmado - Factura #123"
|
||||
- "Your OpenAI API account has been funded"
|
||||
- "Your OpenRouter, Inc receipt [#1234-5678]"
|
||||
- "Your receipt from OpenRouter, Inc #1234-5678"
|
||||
- "Envio de Fatura Eletrónica: FT A/123456789"
|
||||
- "Invoice Payment Confirmation"
|
||||
- "Customer Invoice"
|
||||
|
||||
---
|
||||
|
||||
**Versão**: 1.1.0
|
||||
**Última actualização**: 2025-01-21
|
||||
405
gestao/skills/today/prompts/execute.md
Normal file
405
gestao/skills/today/prompts/execute.md
Normal file
@@ -0,0 +1,405 @@
|
||||
# /today - Checkup Diário
|
||||
|
||||
Executa o checkup diário completo seguindo estes passos:
|
||||
|
||||
## Passo 1: Verificar Última Execução
|
||||
|
||||
```
|
||||
Usar mcp__memory-supabase__search_memories com query "today checkup YYYY-MM-DD"
|
||||
Se já existe entrada de hoje → perguntar se quer executar novamente
|
||||
```
|
||||
|
||||
## Passo 2: Recolher Dados do DeskCRM
|
||||
|
||||
### 2.1 Tickets
|
||||
```
|
||||
mcp__desk-crm-v3__get_tickets:
|
||||
- date_from: ontem (YYYY-MM-DD)
|
||||
- status: 1 (Aberto) ou 2 (Em Progresso)
|
||||
- limit: 50
|
||||
|
||||
Identificar:
|
||||
- Tickets urgentes (priority: 3 ou 4)
|
||||
- Tickets de clientes importantes
|
||||
```
|
||||
|
||||
### 2.2 Tickets SPAM → FECHAR AUTOMATICAMENTE
|
||||
```
|
||||
⚡ ACÇÃO AUTOMÁTICA - Fechar SEM intervenção manual
|
||||
|
||||
Padrões de SPAM:
|
||||
- "Guest Post", "SEO services", "backlinks", "partnership"
|
||||
- "link building", "dofollow", "collaboration opportunity"
|
||||
- "Boas Festas", "Season's Greetings", "Termos de Serviço"
|
||||
- Remetentes: noreply@*, no-reply@* (se não for serviço conhecido)
|
||||
|
||||
Se SPAM detectado → FECHAR IMEDIATAMENTE:
|
||||
mcp__desk-crm-v3__close_ticket:
|
||||
- ticket_id: {ID}
|
||||
- message: "Fechado automaticamente - SPAM"
|
||||
|
||||
Registar no relatório: "🗑️ SPAM fechado: #{ID} - {Assunto}"
|
||||
```
|
||||
|
||||
### 2.3 Tickets para ELIMINAR (notificações sem valor)
|
||||
```
|
||||
Verificar se assunto contém:
|
||||
- "Your Elastic Email Account was successfully re-charged"
|
||||
- "Account re-charged"
|
||||
- "Auto-recharge successful"
|
||||
- "Credit added to your account"
|
||||
- "[BOT] Ativação realizada com sucesso"
|
||||
- "[BOT] Activation successful"
|
||||
|
||||
Se SIM → Eliminar:
|
||||
mcp__desk-crm-v3__delete_ticket:
|
||||
- ticket_id: {ID}
|
||||
- confirm: true
|
||||
- reason: "Notificação automática sem valor contabilístico"
|
||||
```
|
||||
|
||||
### 2.3 Processamento Automático: Tickets de PAGAMENTOS
|
||||
```
|
||||
Para cada ticket aberto, verificar se assunto contém:
|
||||
- "payment", "pagamento", "pago", "paid"
|
||||
- "invoice", "factura", "fatura", "recibo"
|
||||
- "successfully processed", "confirmado"
|
||||
- "subscription", "renewed", "renewal"
|
||||
- "account funded", "has been funded"
|
||||
- "Envio de Fatura Eletrónica"
|
||||
|
||||
Se SIM → Verificar remetente:
|
||||
|
||||
A) Remetente CONHECIDO (lista abaixo):
|
||||
⚡ ACÇÃO AUTOMÁTICA - Executar SEM intervenção manual:
|
||||
1. Mover para Contabilidade:
|
||||
mcp__desk-crm-v3__update_ticket({ ticket_id: ID, department_id: 3 })
|
||||
2. FECHAR o ticket:
|
||||
mcp__desk-crm-v3__close_ticket({ ticket_id: ID, message: "Fatura processada - Contabilidade" })
|
||||
3. Registar: "💰 Contabilidade + Fechado: #{ID} - {Assunto}"
|
||||
|
||||
B) Remetente DESCONHECIDO:
|
||||
→ Avaliar indicadores de spam/phishing
|
||||
→ LISTAR no relatório para revisão manual
|
||||
|
||||
Indicadores de SPAM:
|
||||
- Remetente pessoal (gmail/hotmail) + factura empresarial
|
||||
- Erros ortográficos, MAIÚSCULAS, urgência exagerada
|
||||
- Domínio suspeito (muitos números, extensões estranhas)
|
||||
- Sem número de factura/referência
|
||||
|
||||
Output no relatório:
|
||||
- [SPAM?] #ID - Assunto - remetente@suspeito.com
|
||||
- [NOVO?] #ID - Assunto - remetente@empresa.com (possível novo serviço)
|
||||
```
|
||||
|
||||
> [!warning] NUNCA eliminar automaticamente remetentes desconhecidos
|
||||
> Podem ser novos serviços. Sempre pedir confirmação manual.
|
||||
|
||||
**Remetentes CONHECIDOS (whitelist):**
|
||||
```
|
||||
Domínios confiáveis:
|
||||
- @elasticemail.com
|
||||
- @hetzner.com, @hetzner.de
|
||||
- @centos-webpanel.com, @control-webpanel.com
|
||||
- @canva.com
|
||||
- @meo.pt, @altice.pt, @documentos.meoempresas.pt
|
||||
- @cloudflare.com
|
||||
- @github.com
|
||||
- @google.com
|
||||
- @microsoft.com
|
||||
- @adobe.com
|
||||
- @figma.com
|
||||
- @notion.so
|
||||
- @openai.com, @email.openai.com
|
||||
- @anthropic.com
|
||||
- @openrouter.zendesk.com
|
||||
- @stripe.com
|
||||
- @paypal.com
|
||||
- @wise.com
|
||||
- @revolut.com
|
||||
- @bancobpi.pt
|
||||
```
|
||||
|
||||
Ver lista completa de remetentes e indicadores: `config/email-triage-rules.md`
|
||||
|
||||
### 2.2 Projectos com Deadline
|
||||
```
|
||||
mcp__desk-crm-v3__get_projects:
|
||||
- status: 2 (Em Progresso)
|
||||
- Filtrar: deadline esta semana
|
||||
```
|
||||
|
||||
### 2.3 Tarefas Pendentes (OBRIGATÓRIO - sempre incluir)
|
||||
```
|
||||
# Buscar TODAS as tarefas pendentes
|
||||
mcp__desk-crm-v3__get_tasks({ status: 1, limit: 50 }) # Não iniciadas
|
||||
mcp__desk-crm-v3__get_tasks({ status: 4, limit: 50 }) # Em curso
|
||||
mcp__desk-crm-v3__get_tasks({ status: 2, limit: 50 }) # Aguarda feedback
|
||||
mcp__desk-crm-v3__get_tasks({ overdue_only: true }) # Vencidas
|
||||
|
||||
# Organizar por:
|
||||
# 1. Prioridade (4=Urgente, 3=Alta, 2=Normal, 1=Baixa)
|
||||
# 2. Deadline (vencidas primeiro)
|
||||
# 3. Projecto (agrupar)
|
||||
|
||||
# Formato output:
|
||||
### 🔴 URGENTES (Prioridade 4)
|
||||
| ID | Tarefa | Projecto | Deadline | Tempo Est. |
|
||||
|----|--------|----------|----------|------------|
|
||||
|
||||
### 🟠 ALTA (Prioridade 3)
|
||||
...
|
||||
```
|
||||
|
||||
### 2.4 Verificar Estimativas de Tempo
|
||||
```
|
||||
Para cada tarefa importante, verificar se tem estimativa:
|
||||
mcp__desk-crm-v3__get_task_time_estimates({ task_id: X })
|
||||
|
||||
Se não tem → sugerir definir:
|
||||
mcp__desk-crm-v3__set_task_estimated_time({
|
||||
task_id: X,
|
||||
estimated_hours: Y,
|
||||
estimated_minutes: Z,
|
||||
notes: "Estimativa"
|
||||
})
|
||||
```
|
||||
|
||||
## Passo 3: Gestão de Emails (MCP IMAP)
|
||||
|
||||
### 3.1 Listar contas disponíveis
|
||||
```
|
||||
imap_list_accounts
|
||||
# Verificar que todas as 12 contas estão acessíveis
|
||||
```
|
||||
|
||||
### 3.2 Para CADA conta, processar emails
|
||||
```
|
||||
Contas: emanuel, it, help, suporte, contabilidade, financeiro,
|
||||
info, rh, mkt, design, news, aiktop
|
||||
|
||||
Para cada conta:
|
||||
1. imap_list_emails(account, folder="INBOX", limit=50)
|
||||
2. Classificar cada email:
|
||||
|
||||
SPAM (eliminar):
|
||||
- Subject contém: "lottery", "winner", "urgent money"
|
||||
- Remetente em blacklist conhecida
|
||||
- Caracteres estranhos no subject
|
||||
→ imap_delete_email(account, uid)
|
||||
|
||||
PROMOCIONAL (arquivar):
|
||||
- Subject contém: "newsletter", "promo", "desconto", "oferta"
|
||||
- Remetente: *@marketing.*, *@news.*, *@promo.*
|
||||
- Headers: List-Unsubscribe presente
|
||||
→ imap_move_email(account, uid, "Promotions")
|
||||
|
||||
FACTURA PAGA (reencaminhar):
|
||||
- Subject contém: "factura", "invoice", "recibo", "pagamento"
|
||||
- Subject contém: "pago", "paid", "confirmado"
|
||||
- Anexos PDF com padrão de factura
|
||||
→ Registar para reencaminhar para contabilidade@descomplicar.pt
|
||||
|
||||
PRIORITÁRIO (listar):
|
||||
- Remetente: cliente conhecido (verificar DeskCRM)
|
||||
- Subject contém: "urgente", "urgent", "problema", "erro"
|
||||
- Resposta a thread existente
|
||||
→ Incluir no relatório diário
|
||||
```
|
||||
|
||||
### 3.3 Resumo de acções
|
||||
```
|
||||
Contabilizar:
|
||||
- X emails eliminados (spam)
|
||||
- Y emails arquivados (promocionais)
|
||||
- Z facturas para contabilidade
|
||||
- W emails prioritários pendentes
|
||||
```
|
||||
|
||||
## Passo 4: Calendário (opcional)
|
||||
|
||||
```
|
||||
# Se MCP Google Calendar disponível:
|
||||
# google_calendar_list_events(date=today)
|
||||
# Por agora: Verificar agenda manualmente
|
||||
```
|
||||
|
||||
## Passo 5: Gerar Relatório
|
||||
|
||||
Formatar output seguindo template:
|
||||
|
||||
```markdown
|
||||
## 📅 Checkup Diário - YYYY-MM-DD (Dia da Semana)
|
||||
|
||||
### 🎫 Tickets (X abertos, Y urgentes)
|
||||
[Lista de tickets urgentes com [!]]
|
||||
[Lista de tickets abertos]
|
||||
|
||||
### 📧 Emails Prioritários
|
||||
[Quando disponível]
|
||||
|
||||
### 📆 Agenda de Hoje
|
||||
[Quando disponível]
|
||||
|
||||
### 🎯 Prioridades Sugeridas
|
||||
1. [Baseado em urgência e deadlines]
|
||||
2. [...]
|
||||
3. [...]
|
||||
|
||||
### ⏰ Deadlines Esta Semana
|
||||
[Lista de projectos/tarefas com deadline]
|
||||
```
|
||||
|
||||
## Passo 6: SEGUNDA-FEIRA - Planeamento Semanal
|
||||
|
||||
```
|
||||
Verificar dia da semana
|
||||
Se SEGUNDA-FEIRA:
|
||||
|
||||
1. RECOLHER TAREFAS DA SEMANA INTEIRA
|
||||
- Todas as tarefas pendentes (status 1, 2, 4)
|
||||
- Todas as tarefas vencidas
|
||||
- Filtrar: deadline até domingo
|
||||
- Incluir estimativas de tempo
|
||||
|
||||
2. RECOLHER CALENDÁRIO DA SEMANA
|
||||
mcp__google-workspace__get_events({
|
||||
user_google_email: "emanuelalmeidaa@gmail.com",
|
||||
time_min: "YYYY-MM-DD" (hoje),
|
||||
time_max: "YYYY-MM-DD" (domingo),
|
||||
max_results: 50
|
||||
})
|
||||
|
||||
3. VERIFICAR ESTIMATIVAS DE TEMPO
|
||||
Para tarefas sem estimativa:
|
||||
- Sugerir tempo baseado no tipo
|
||||
- PERGUNTAR ao utilizador se correcto
|
||||
- Definir via set_task_estimated_time
|
||||
|
||||
4. PEDIR INDICAÇÕES AO UTILIZADOR
|
||||
Usar AskUserQuestion:
|
||||
- Disponibilidade semanal (horas)
|
||||
- Horários preferidos para foco
|
||||
- Prioridades especiais
|
||||
- Compromissos pessoais
|
||||
- Tarefas para delegar
|
||||
|
||||
5. DISTRIBUIR TAREFAS PELA AGENDA
|
||||
- Calcular capacidade vs carga
|
||||
- Distribuir por dia/horário
|
||||
- Criar eventos no calendário (opcional)
|
||||
- Alertar se capacidade excedida
|
||||
|
||||
6. OUTPUT: Planeamento Semanal
|
||||
- Tabela por dia com tarefas
|
||||
- Total horas por dia
|
||||
- Alertas de capacidade
|
||||
- Lista de delegações
|
||||
```
|
||||
|
||||
## Passo 7: Manutenção WordPress (se Sexta-feira)
|
||||
|
||||
```
|
||||
Verificar dia da semana
|
||||
Se sexta-feira:
|
||||
- Listar os 10 sites da rede
|
||||
- Sugerir executar manutenção
|
||||
- Oferecer checkup de segurança
|
||||
```
|
||||
|
||||
## Passo 8: Resumo de Pendentes (do CRM)
|
||||
|
||||
```
|
||||
📊 RESUMO - Mostrar no relatório
|
||||
|
||||
Os pendentes são obtidos directamente do Desk CRM (já recolhidos no Passo 2).
|
||||
NÃO há documento PENDENTES separado - os dados ficam no relatório diário.
|
||||
|
||||
### CATEGORIZAÇÃO
|
||||
|
||||
Com base nos dados já recolhidos:
|
||||
- 🔴 Urgentes: priority = 4
|
||||
- 🟠 Alta Prioridade: priority = 3
|
||||
- 🟡 Vencidas: overdue_only = true
|
||||
- 🟢 Esta Semana: deadline dentro de 7 dias
|
||||
- 🎫 Tickets: status 1, 2
|
||||
- 👤 Leads: status 7, 14 (Novos)
|
||||
- 📝 Propostas: status 4 (Para Fazer)
|
||||
|
||||
### FORMATO NO RELATÓRIO
|
||||
|
||||
| Categoria | Qtd |
|
||||
|----|----:|
|
||||
| 🔴 Urgentes | X |
|
||||
| 🟠 Alta Prioridade | X |
|
||||
| 🟡 Vencidas | X |
|
||||
| 🎫 Tickets Abertos | X |
|
||||
| 👤 Leads Novos | X |
|
||||
|
||||
### LINKS CRM
|
||||
|
||||
| Tipo | Formato Link |
|
||||
|------|--------------|
|
||||
| Tarefa | [#ID](https://desk.descomplicar.pt/admin/tasks/view/ID) |
|
||||
| Ticket | [#ID](https://desk.descomplicar.pt/admin/tickets/ticket/ID) |
|
||||
| Lead | [LID](https://desk.descomplicar.pt/admin/leads/index/ID) |
|
||||
```
|
||||
|
||||
## Passo 9: Criar Nota Diária no Obsidian
|
||||
|
||||
```
|
||||
Criar ficheiro no vault Planeamento:
|
||||
- Path: /media/ealmeida/Dados/GDrive/Cloud/EAL/Planeamento/00-Inbox/
|
||||
- Filename: YYYY-MM-DD-checkup.md
|
||||
- Content: Relatório com dados recolhidos
|
||||
|
||||
Template:
|
||||
---
|
||||
title: Checkup YYYY-MM-DD
|
||||
date: YYYY-MM-DD
|
||||
type: checkup
|
||||
status: active
|
||||
---
|
||||
|
||||
## Checkup Diário - YYYY-MM-DD
|
||||
|
||||
[Conteúdo do relatório]
|
||||
|
||||
⚡ LINKS CRM: Todas as tarefas com link directo
|
||||
- Formato: [#ID](https://desk.descomplicar.pt/admin/tasks/view/ID)
|
||||
|
||||
Se segunda-feira:
|
||||
- Incluir secção "Planeamento Semanal"
|
||||
- Tabela com distribuição de tarefas por dia
|
||||
```
|
||||
|
||||
## Passo 10: Guardar em Supabase
|
||||
|
||||
```
|
||||
mcp__memory-supabase__save_memory:
|
||||
- content: "Checkup diário executado - X tickets, Y tarefas, Z urgentes"
|
||||
- tags: ["today", "checkup", "YYYY-MM-DD"]
|
||||
- summary: "Checkup diário YYYY-MM-DD"
|
||||
- metadata: {
|
||||
tickets_count: X,
|
||||
tasks_count: Y,
|
||||
urgent_count: Z,
|
||||
is_monday: true/false,
|
||||
weekly_hours_planned: H
|
||||
}
|
||||
```
|
||||
|
||||
## Passo 11: Resumo Final
|
||||
|
||||
Apresentar:
|
||||
- Métricas do dia
|
||||
- Top 3 prioridades recomendadas
|
||||
- Alertas importantes
|
||||
- Próximos passos sugeridos
|
||||
|
||||
Se segunda-feira, adicionar:
|
||||
- Resumo do planeamento semanal
|
||||
- Capacidade vs carga
|
||||
- Tarefas delegadas
|
||||
- Alertas de sobrecarga
|
||||
139
gestao/skills/today/templates/daily-report.md
Normal file
139
gestao/skills/today/templates/daily-report.md
Normal file
@@ -0,0 +1,139 @@
|
||||
---
|
||||
title: "Checkup Diário - {{DATE}}"
|
||||
date: {{DATE}}
|
||||
type: daily
|
||||
tags: [diario, checkup, {{WEEKDAY}}]
|
||||
aliases: ["{{DATE}}"]
|
||||
---
|
||||
|
||||
# 📅 {{DATE}} - {{WEEKDAY}}
|
||||
|
||||
## 🎫 Tickets
|
||||
|
||||
### Eliminados (notificações sem valor)
|
||||
{{#DELETED_TICKETS}}
|
||||
- 🗑️ #{{ID}} - {{SUBJECT}}
|
||||
{{/DELETED_TICKETS}}
|
||||
{{^DELETED_TICKETS}}
|
||||
- Nenhum ticket eliminado
|
||||
{{/DELETED_TICKETS}}
|
||||
|
||||
### Processados Automaticamente (Pagamentos → Contabilidade)
|
||||
{{#PAYMENT_TICKETS}}
|
||||
- [x] [[Ticket-{{ID}}|#{{ID}}]] - {{SUBJECT}} → **Fechado**
|
||||
{{/PAYMENT_TICKETS}}
|
||||
{{^PAYMENT_TICKETS}}
|
||||
- Nenhum ticket de pagamento processado
|
||||
{{/PAYMENT_TICKETS}}
|
||||
|
||||
### Urgentes
|
||||
{{#URGENT_TICKETS}}
|
||||
- [!] [[Ticket-{{ID}}|#{{ID}}]] - {{CLIENT}} - {{SUBJECT}}
|
||||
{{/URGENT_TICKETS}}
|
||||
{{^URGENT_TICKETS}}
|
||||
- Nenhum ticket urgente
|
||||
{{/URGENT_TICKETS}}
|
||||
|
||||
### Abertos (revisão manual)
|
||||
{{#OPEN_TICKETS}}
|
||||
- [ ] [[Ticket-{{ID}}|#{{ID}}]] - {{CLIENT}} - {{SUBJECT}}
|
||||
{{/OPEN_TICKETS}}
|
||||
{{^OPEN_TICKETS}}
|
||||
- Nenhum ticket aberto
|
||||
{{/OPEN_TICKETS}}
|
||||
|
||||
**Resumo**: {{TICKETS_COUNT}} tickets | {{PAYMENT_COUNT}} pagamentos fechados | {{URGENT_COUNT}} urgentes
|
||||
|
||||
---
|
||||
|
||||
## 📧 Emails (12 contas)
|
||||
|
||||
### Triagem Automática
|
||||
| Acção | Quantidade |
|
||||
|-------|------------|
|
||||
| Spam eliminado | {{SPAM_DELETED}} |
|
||||
| Promocionais arquivados | {{PROMOS_ARCHIVED}} |
|
||||
| Facturas → Contabilidade | {{INVOICES_FORWARDED}} |
|
||||
|
||||
### Prioritários (revisão manual)
|
||||
{{#PRIORITY_EMAILS}}
|
||||
- [ ] **{{ACCOUNT}}**: {{SUBJECT}} - {{FROM}}
|
||||
{{/PRIORITY_EMAILS}}
|
||||
{{^PRIORITY_EMAILS}}
|
||||
- Nenhum email prioritário pendente
|
||||
{{/PRIORITY_EMAILS}}
|
||||
|
||||
### Contas verificadas
|
||||
{{#ACCOUNTS_STATUS}}
|
||||
- {{ACCOUNT}}: {{UNREAD}} não lidos
|
||||
{{/ACCOUNTS_STATUS}}
|
||||
|
||||
---
|
||||
|
||||
## 📆 Agenda
|
||||
|
||||
{{#CALENDAR_EVENTS}}
|
||||
- {{TIME}} - {{TITLE}}
|
||||
{{/CALENDAR_EVENTS}}
|
||||
{{^CALENDAR_EVENTS}}
|
||||
- Sem compromissos agendados
|
||||
{{/CALENDAR_EVENTS}}
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Prioridades do Dia
|
||||
|
||||
> [!important] Top 3
|
||||
> 1. {{PRIORITY_1}}
|
||||
> 2. {{PRIORITY_2}}
|
||||
> 3. {{PRIORITY_3}}
|
||||
|
||||
### Blocos de Foco Sugeridos
|
||||
- [ ] 09:00-11:00 - Trabalho profundo
|
||||
- [ ] 14:00-16:00 - Tarefas administrativas
|
||||
- [ ] 16:00-17:00 - Comunicação/emails
|
||||
|
||||
---
|
||||
|
||||
## ⏰ Deadlines Esta Semana
|
||||
|
||||
{{#DEADLINES}}
|
||||
- **{{DATE}}**: {{PROJECT}} - {{DESCRIPTION}}
|
||||
{{/DEADLINES}}
|
||||
{{^DEADLINES}}
|
||||
- Sem deadlines esta semana
|
||||
{{/DEADLINES}}
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Manutenção (se Sexta-feira)
|
||||
|
||||
{{#IS_FRIDAY}}
|
||||
### WordPress - Rede de Sites
|
||||
- [ ] Verificar actualizações
|
||||
- [ ] Executar actualizações
|
||||
- [ ] Checkup segurança
|
||||
- [ ] Testar funcionamento
|
||||
|
||||
**Sites**: descomplicar.pt, emanuelalmeida.pt, carstuff.pt, familyclinic.pt, espiralsenior.pt, ignitionvortex.pt, karateclubedegaia.com, solarfvengenharia.com, watercontrol.pt, hub.descomplicar.pt
|
||||
{{/IS_FRIDAY}}
|
||||
|
||||
---
|
||||
|
||||
## 📝 Notas do Dia
|
||||
|
||||
> [!note] Observações
|
||||
> (espaço para notas durante o dia)
|
||||
|
||||
---
|
||||
|
||||
## ✅ Revisão Final
|
||||
|
||||
- [ ] Tickets urgentes tratados
|
||||
- [ ] Emails respondidos
|
||||
- [ ] Prioridades concluídas
|
||||
- [ ] Próximo dia planeado
|
||||
|
||||
---
|
||||
|
||||
*Gerado automaticamente por `/today` - {{TIMESTAMP}}*
|
||||
Reference in New Issue
Block a user