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:
File diff suppressed because it is too large
Load Diff
@@ -59,9 +59,17 @@ accounts:
|
||||
|
||||
---
|
||||
|
||||
## Regra 2: PROMOCIONAIS (Arquivar)
|
||||
## Regra 2: PROMOCIONAIS (Arquivar ou Eliminar)
|
||||
|
||||
**Acção**: `imap_move_email` → pasta "Promotions"
|
||||
**Acção padrão**: `imap_move_email` → pasta "Promotions"
|
||||
|
||||
**Excepções por conta:**
|
||||
```yaml
|
||||
delete_promotions:
|
||||
- rh # Não tem pasta Promotions - apagar directamente
|
||||
```
|
||||
|
||||
> Contas listadas em `delete_promotions`: usar `imap_delete_email` em vez de mover.
|
||||
|
||||
### Padrões Subject
|
||||
```
|
||||
|
||||
@@ -1,405 +1,43 @@
|
||||
# /today - Checkup Diário
|
||||
# /today - Checkup Diario (Orquestrador)
|
||||
|
||||
Executa o checkup diário completo seguindo estes passos:
|
||||
Executa o checkup diario invocando sub-skills em sequencia.
|
||||
|
||||
## Passo 1: Verificar Última Execução
|
||||
## Passo 1: Verificar data e ultima execucao
|
||||
|
||||
```
|
||||
Usar mcp__memory-supabase__search_memories com query "today checkup YYYY-MM-DD"
|
||||
Se já existe entrada de hoje → perguntar se quer executar novamente
|
||||
mcp__mcp-time__current_time
|
||||
mcp__memory-supabase__search_memories("today checkup YYYY-MM-DD")
|
||||
Se ja existe → perguntar se quer re-executar
|
||||
```
|
||||
|
||||
## Passo 2: Recolher Dados do DeskCRM
|
||||
## Passo 2: Fase 1 - Auto-processamento (silencioso)
|
||||
|
||||
### 2.1 Tickets
|
||||
```
|
||||
mcp__desk-crm-v3__get_tickets:
|
||||
- date_from: ontem (YYYY-MM-DD)
|
||||
- status: 1 (Aberto) ou 2 (Em Progresso)
|
||||
- limit: 50
|
||||
Invocar em sequencia:
|
||||
1. `/ticket-triage` → processa tickets abertos
|
||||
2. `/imap-triage` → processa emails IMAP
|
||||
3. `/auto-expense` → cria despesas dos resultados anteriores
|
||||
4. `/cleanup-downloads` → se >10 ficheiros em Transferencias
|
||||
|
||||
Identificar:
|
||||
- Tickets urgentes (priority: 3 ou 4)
|
||||
- Tickets de clientes importantes
|
||||
```
|
||||
## Passo 3: Fase 2 - Recolha de dados (silencioso)
|
||||
|
||||
### 2.2 Tickets SPAM → FECHAR AUTOMATICAMENTE
|
||||
```
|
||||
⚡ ACÇÃO AUTOMÁTICA - Fechar SEM intervenção manual
|
||||
Invocar:
|
||||
1. `/daily-digest` → metricas do dia
|
||||
2. `/tasks-overview` → tarefas e workflows
|
||||
|
||||
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)
|
||||
## Passo 3b: Sprint/Spec Activos (silencioso)
|
||||
|
||||
Se SPAM detectado → FECHAR IMEDIATAMENTE:
|
||||
mcp__desk-crm-v3__close_ticket:
|
||||
- ticket_id: {ID}
|
||||
- message: "Fechado automaticamente - SPAM"
|
||||
Glob SPEC.md e SPRINT.md em /media/ealmeida/Dados/Dev/.
|
||||
Ler apenas frontmatter. Filtrar activos. Guardar em ~/.claude-work/today-sprint-{date}.json.
|
||||
|
||||
Registar no relatório: "🗑️ SPAM fechado: #{ID} - {Assunto}"
|
||||
```
|
||||
## Passo 4: Rotinas especiais
|
||||
|
||||
### 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"
|
||||
- Segunda: planeamento semanal + `/wp-update`
|
||||
- Sexta: sugerir manutencao WordPress
|
||||
- Sabado/Domingo: `/infra-check`
|
||||
|
||||
Se SIM → Eliminar:
|
||||
mcp__desk-crm-v3__delete_ticket:
|
||||
- ticket_id: {ID}
|
||||
- confirm: true
|
||||
- reason: "Notificação automática sem valor contabilístico"
|
||||
```
|
||||
## Passo 5: Dashboard final
|
||||
|
||||
### 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
|
||||
Agregar resultados de todas as sub-skills.
|
||||
Criar nota Obsidian em `00-Inbox/DD-MM-YYYY-checkup.md`.
|
||||
Guardar em Supabase.
|
||||
Limpar temporarios `~/.claude-work/today-*.json`.
|
||||
|
||||
@@ -120,6 +120,19 @@ aliases: ["{{DATE}}"]
|
||||
|
||||
---
|
||||
|
||||
## Sprint / Spec Activos
|
||||
|
||||
| Projecto | Spec | Sprint | Progresso | Checkpoint |
|
||||
|----------|------|--------|-----------|------------|
|
||||
{{#ACTIVE_SPECS}}
|
||||
| {{PROJECT}} | {{SPEC_STATUS}} | {{SPRINT_ID}} | {{TASKS_DONE}}/{{TASKS_TOTAL}} tasks | {{CHECKPOINT}} |
|
||||
{{/ACTIVE_SPECS}}
|
||||
{{^ACTIVE_SPECS}}
|
||||
| — | Nenhum sprint/spec activo | — | — | — |
|
||||
{{/ACTIVE_SPECS}}
|
||||
|
||||
---
|
||||
|
||||
## 📝 Notas do Dia
|
||||
|
||||
> [!note] Observações
|
||||
|
||||
Reference in New Issue
Block a user