feat(gestao): adiciona plugin gestao (agents, skills, knowledge e metadados do projeto)
This commit is contained in:
@@ -0,0 +1,186 @@
|
||||
---
|
||||
title: Setup MCPs para /today
|
||||
date: 2025-01-21
|
||||
status: activo
|
||||
layer: wiki
|
||||
---
|
||||
|
||||
# Setup MCPs para /today
|
||||
|
||||
## Estado Actual
|
||||
|
||||
| MCP | Estado | Notas |
|
||||
|-----|--------|-------|
|
||||
| desk-crm-v3 | ✅ Activo | Tickets, projectos, tarefas |
|
||||
| filesystem | ✅ Activo | Notas Obsidian |
|
||||
| mem0 | ✅ 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
|
||||
@@ -0,0 +1,301 @@
|
||||
---
|
||||
name: today
|
||||
description: Checkup diário - dashboard agregador que lê resultados dos agentes cron locais (desktop) e recolhe dados frescos via skills interactivas. Usar quando "checkup", "hoje", "today", "rotina", início de dia.
|
||||
context: fork
|
||||
layer: wiki
|
||||
---
|
||||
|
||||
# /today v12.0 - Checkup Diario (Agregador)
|
||||
|
||||
Le resultados dos agentes cron locais (desktop, crontab ealmeida) + invoca skills interactivas. Nao duplica trabalho automatizado.
|
||||
|
||||
---
|
||||
|
||||
## Arquitectura
|
||||
|
||||
```
|
||||
CRON (desktop local, crontab ealmeida) /today (interactivo, sob pedido)
|
||||
├── imap-triage (4h) ├── Le logs locais do cron
|
||||
├── auto-expense (4h +15min) ├── /daily-digest (dados frescos)
|
||||
├── ticket-triage (4h +30min) ├── /tasks-overview (dados frescos)
|
||||
├── aiktop-tasks (15min) ├── /cleanup-downloads (se necessario)
|
||||
├── infra-check (diario 7h) ├── Specs/Sprints scan
|
||||
├── wp-update (segunda 23h) ├── Rotinas especiais por dia
|
||||
├── intelligence-* (researcher/scorer/ └── Dashboard + Obsidian + Mem0
|
||||
│ selector/publisher)
|
||||
└── weekly-digest-podcast (quinta 20h)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Regra Fundamental
|
||||
|
||||
> Fases 1-2 sao **silenciosas**. Executar tudo antes de mostrar output.
|
||||
> O utilizador so ve o dashboard final.
|
||||
|
||||
---
|
||||
|
||||
## Protocolo
|
||||
|
||||
### Fase 0: Verificacoes
|
||||
|
||||
```
|
||||
1. mcp__mcp-time__current_time -> data, dia da semana
|
||||
2. mcp__mem_search_memories("today checkup YYYY-MM-DD")
|
||||
-> Se ja existe hoje: perguntar se quer re-executar
|
||||
```
|
||||
|
||||
### Fase 1: Ler resultados dos agentes cron (silencioso)
|
||||
|
||||
```
|
||||
3. Ler logs LOCAIS (Bash tail — sem SSH, tudo corre no desktop):
|
||||
|
||||
Base: /media/ealmeida/Dados/Dev/claude_automations_dev/
|
||||
|
||||
a) IMAP (ultimo report):
|
||||
tail -20 /media/ealmeida/Dados/Dev/claude_automations_dev/imap-triage/imap-triage.log
|
||||
cat ~/.claude-work/today-imap-DD-MM-YYYY.json (se existir)
|
||||
|
||||
b) Ticket triage (ultimo log):
|
||||
tail -30 /media/ealmeida/Dados/Dev/claude_automations_dev/ticket-triage/ticket-triage.log
|
||||
|
||||
c) Auto-expense (ultimo log):
|
||||
tail -20 /media/ealmeida/Dados/Dev/claude_automations_dev/auto-expense/auto-expense.log
|
||||
|
||||
d) Infra check (ultimo log):
|
||||
tail -30 /media/ealmeida/Dados/Dev/claude_automations_dev/infra-check/infra-check.log
|
||||
|
||||
e) AikTop tasks (ultimo log):
|
||||
tail -20 /media/ealmeida/Dados/Dev/claude_automations_dev/aiktop-tasks/aiktop-tasks.log
|
||||
|
||||
f) SE segunda — wp-update (ultimo log):
|
||||
tail -50 /media/ealmeida/Dados/Dev/claude_automations_dev/wp-update/wp-update.log
|
||||
|
||||
g) Intelligence pipeline:
|
||||
tail -30 /media/ealmeida/Dados/Dev/claude_automations_dev/daily-selector/daily-selector.log
|
||||
tail -30 /media/ealmeida/Dados/Dev/claude_automations_dev/intelligence-publisher/intelligence-publisher.log
|
||||
tail -20 /media/ealmeida/Dados/Dev/claude_automations_dev/intelligence-researcher/intelligence-researcher.log
|
||||
tail -20 /media/ealmeida/Dados/Dev/claude_automations_dev/intelligence-scorer/intelligence-scorer.log
|
||||
|
||||
h) HEARTBEAT WP — ultimo post em descomplicar.pt categoria 1188 (noticias):
|
||||
mcp__ssh-unified__ssh_execute(server="server", command="cd /home/ealmeida/public_html && wp post list --post_type=post --category=1188 --posts_per_page=1 --fields=ID,post_title,post_date --format=csv --allow-root 2>&1 | tail -2")
|
||||
-> Calcular idade do ultimo post
|
||||
-> Se >26h sem post novo: ALERTA "Requer Atencao Urgente" + contexto:
|
||||
* Pipeline deveria publicar ate 5 noticias/dia (selector 06:30 + slots 09/11/13/15:30/17:30)
|
||||
* Verificar logs daily-selector + publisher (passo g)
|
||||
* Stock Supabase (base de dados própria do pipeline de notícias): scored>=7 count via curl REST
|
||||
* Verificar se desktop teve downtime (uptime / journalctl) — agentes correm no desktop local
|
||||
|
||||
4. DETECTAR PROBLEMAS nos logs:
|
||||
- Cron nao correu (log desactualizado >8h)
|
||||
- Exit codes != 0
|
||||
- Erros ou falhas nos logs
|
||||
- HEARTBEAT WP >26h sem post novo em cat 1188
|
||||
-> Adicionar a seccao "Requer Atencao Urgente"
|
||||
|
||||
4b. VERIFICAR FORNECEDORES AUTO-CRIADOS:
|
||||
Ler ~/.claude-work/fornecedores-iva.json
|
||||
Filtrar entradas com "auto_proposto": true
|
||||
Para cada entrada extrair: nome, dominio (chave), politica, confianca, despesas_count
|
||||
-> Se existirem: adicionar secção "Fornecedores Auto-Criados" no dashboard (ver formato abaixo)
|
||||
```
|
||||
|
||||
### Fase 2: Recolha de dados frescos (silencioso)
|
||||
|
||||
```
|
||||
5. Invocar /daily-digest
|
||||
-> Timer, tickets, facturas, leads, propostas, agenda
|
||||
-> Output: dashboard markdown
|
||||
|
||||
6. Invocar /tasks-overview
|
||||
-> Tarefas overdue, pendentes, em curso, workflows sugeridos
|
||||
-> Output: tarefas markdown
|
||||
|
||||
7. SE >10 ficheiros em ~/Transferencias:
|
||||
-> Invocar /cleanup-downloads
|
||||
```
|
||||
|
||||
### Fase 2b: Sprint/Spec Activos (silencioso)
|
||||
|
||||
```
|
||||
8. Glob: /media/ealmeida/Dados/Dev/**/SPEC.md (profundidade max 3)
|
||||
-> Para cada encontrado: Ler frontmatter (15 linhas)
|
||||
-> Filtrar: status != "completed"
|
||||
-> Extrair: titulo (linha # SPEC:), status, weight, scope done/total
|
||||
|
||||
9. Glob: /media/ealmeida/Dados/Dev/**/SPRINT.md
|
||||
-> Para cada encontrado: Ler frontmatter
|
||||
-> Filtrar: status == "active"
|
||||
-> Extrair: sprint_id, tasks done/total, checkpoint_done, end_date
|
||||
```
|
||||
|
||||
### Fase 2c: Rotinas Especiais
|
||||
|
||||
```
|
||||
10. SE SEGUNDA:
|
||||
-> Planeamento semanal (tarefas da semana + capacidade)
|
||||
|
||||
11. SE SEXTA:
|
||||
-> Sugerir manutencao e revisao semanal
|
||||
```
|
||||
|
||||
### Fase 3: Output Final
|
||||
|
||||
```
|
||||
12. AGREGAR resultados de cron + skills:
|
||||
- Logs do cron (Fase 1)
|
||||
- Dados frescos do /daily-digest e /tasks-overview (Fase 2)
|
||||
- Specs/Sprints (Fase 2b)
|
||||
|
||||
13. DASHBOARD ao utilizador (formato abaixo)
|
||||
|
||||
14. CRIAR NOTA OBSIDIAN:
|
||||
Path: /media/ealmeida/Dados/Hub/00-Inbox/DD-MM-YYYY-checkup.md
|
||||
Conteudo: dashboard completo
|
||||
|
||||
15. GUARDAR em Mem0 (via MCP gateway):
|
||||
mcp__mem_save_memory({
|
||||
text: "Checkup diario DD-MM-YYYY - X tickets, Y tarefas, Z urgentes, cron OK/FALHA"
|
||||
})
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Formato Dashboard
|
||||
|
||||
```markdown
|
||||
## Checkup Diario - DD-MM-YYYY (Dia-da-Semana)
|
||||
|
||||
---
|
||||
|
||||
## Requer Atencao Urgente
|
||||
[Alertas: cron falhado, erros infra, seguranca, notificacoes criticas]
|
||||
|
||||
---
|
||||
|
||||
## Fornecedores Auto-Criados (pendente validação)
|
||||
[Omitir secção se nenhum fornecedor tem auto_proposto=true]
|
||||
|
||||
| Fornecedor | Domínio | Política | Confiança | Despesas | Acção |
|
||||
|------------|---------|----------|-----------|----------|-------|
|
||||
| [nome] | [dominio] | [politica] | [confianca] | [despesas_count]/3 | [— se alta, "rever" se baixa] |
|
||||
|
||||
Nota: Promovidos automaticamente após 3 despesas. Confiança "baixa" = fallback EXTRA_UE aplicado — rever manualmente.
|
||||
|
||||
---
|
||||
|
||||
## 3 Prioridades Hoje
|
||||
1. [ ] [Mais urgente]
|
||||
2. [ ] [Segunda]
|
||||
3. [ ] [Terceira]
|
||||
|
||||
---
|
||||
|
||||
## Workflows Sugeridos
|
||||
[Do /tasks-overview]
|
||||
|
||||
---
|
||||
|
||||
## Sprint / Spec Activos
|
||||
[Projectos com spec/sprint activo: nome, progresso, checkpoint]
|
||||
[Se nenhum: "Nenhum sprint/spec activo"]
|
||||
|
||||
---
|
||||
|
||||
## Resumo do Dia
|
||||
[Do /daily-digest: timer, tickets, facturas, tarefas, leads, agenda]
|
||||
|
||||
---
|
||||
|
||||
## Agentes Cron (desktop local)
|
||||
|
||||
| Agente | Ultima execucao | Status | Resumo |
|
||||
|--------|----------------|--------|--------|
|
||||
| imap-triage | HH:MM | OK/FALHA | X contas, Y emails |
|
||||
| auto-expense | HH:MM | OK/SKIP | Z despesas criadas |
|
||||
| ticket-triage | HH:MM | OK/FALHA | W tickets processados |
|
||||
| aiktop-tasks | HH:MM | OK/FALHA | N tarefas executadas |
|
||||
| infra-check | HH:MM | OK/FALHA | X/4 MCPs operacionais |
|
||||
| wp-update [se seg] | HH:MM | OK/FALHA | X/16 sites actualizados |
|
||||
|
||||
---
|
||||
|
||||
## Auto-Processamento (ultimas 24h)
|
||||
[Resumo agregado: despesas criadas, tickets fechados, emails limpos]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Nota Obsidian
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: Checkup DD-MM-YYYY
|
||||
date: DD-MM-YYYY
|
||||
type: checkup
|
||||
status: active
|
||||
---
|
||||
```
|
||||
|
||||
Filename: `DD-MM-YYYY-checkup.md` (Regra #45: formato DD-MM-YYYY)
|
||||
|
||||
---
|
||||
|
||||
## Anti-Patterns
|
||||
|
||||
- NUNCA invocar /ticket-triage, /imap-triage, /auto-expense, /infra-check, /wp-update (correm no cron)
|
||||
- NUNCA mostrar output antes de terminar Fase 1 e 2
|
||||
- NUNCA mostrar mais de 3 prioridades (PHDA)
|
||||
- NUNCA executar sem verificar data/hora primeiro
|
||||
- SEMPRE ler logs do cron antes de mostrar dashboard
|
||||
- SEMPRE alertar se algum agente cron nao correu nas ultimas 8h
|
||||
- NUNCA usar `mem0` MCP para o checkup — deprecated para memória de agentes; usar `mem0` (`mcp__mem_*`)
|
||||
|
||||
---
|
||||
|
||||
## Referencia
|
||||
|
||||
| Componente | Tipo | Responsabilidade |
|
||||
|-----------|------|-----------------|
|
||||
| `imap-triage` | Cron desktop (*/4h) | Triagem IMAP 13 contas + dedup Supabase (BD própria do pipeline IMAP, não é memória de agente) |
|
||||
| `auto-expense` | Cron desktop (15 */4h) | Criacao automatica de despesas |
|
||||
| `ticket-triage` | Cron desktop (30 */4h) | Auto-process tickets (SPAM, facturas) |
|
||||
| `aiktop-tasks` | Cron desktop (*/15min) | Executa tarefas AikTop do Desk CRM |
|
||||
| `infra-check` | Cron desktop (07h) | Health check gateway + MCPs |
|
||||
| `wp-update` | Cron desktop (seg 23h) | Actualizacoes WordPress 16 sites |
|
||||
| `weekly-digest-podcast` | Cron desktop (quinta 20h) | Digest semanal para podcast |
|
||||
| `improvement-evaluator-v2` | Cron Hermes (diário 07:00) | Lê worklogs/#33 → melhorias em BD; ticket semanal seg top 5 (job d398b5e2c3be) |
|
||||
| `gitea-ci-cleaner` | Cron desktop (45 */4h) | Limpeza de runs CI Gitea |
|
||||
| `daily-selector` | Cron desktop (06:30) | Selector ate 5 noticias/dia diversas → status=scheduled |
|
||||
| `intelligence-publisher` | Cron desktop (5 slots 09/11/13/15:30/17:30) | Publica slots scheduled em descomplicar.pt |
|
||||
| `intelligence-researcher` | Cron desktop (9/14/20) | Fetch 214 RSS → Supabase (BD própria do pipeline de notícias, não é memória de agente) |
|
||||
| `intelligence-scorer` | Cron desktop (0/30 min) | Score OpenRouter gpt-oss-20b |
|
||||
| `HEARTBEAT WP` | Check ao vivo | `wp post list cat=1188` → idade do ultimo post. Alerta se >26h |
|
||||
| `/daily-digest` | Skill (interactivo) | Timer, tickets, facturas, leads, agenda |
|
||||
| `/tasks-overview` | Skill (interactivo) | Tarefas pendentes/overdue + workflows |
|
||||
| `/cleanup-downloads` | Skill (interactivo) | Limpeza pasta Transferencias |
|
||||
| `/spec` + `/sprint` | Scan local | Specs e sprints activos |
|
||||
|
||||
Repo agentes: `git.descomplicar.pt/ealmeida/claude_automations_dev`
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
## Self-Healing
|
||||
|
||||
Antes de executar, ler `~/.claude-work/healing/today.jsonl` (se existir). Cada linha é um padrão de erro conhecido:
|
||||
|
||||
```json
|
||||
{"date":"YYYY-MM-DD","issue":"descrição do problema","fix":"como evitar","source":"user|auto"}
|
||||
```
|
||||
|
||||
Se encontrares um padrão relevante ao contexto actual, aplica o fix preventivamente. Após cada erro ou correcção do utilizador nesta skill, **adicionar nova linha** ao healing log com o padrão aprendido.
|
||||
|
||||
---
|
||||
|
||||
*Skill v12.0.0 | 01-07-2026 | Descomplicar® — memória do checkup migrada de mem0 (deprecated) para Mem0 (mcp__mem_*)*
|
||||
|
||||
|
||||
## Healing Log
|
||||
<!-- Registo automático de erros e correcções nesta skill -->
|
||||
@@ -0,0 +1,456 @@
|
||||
# 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 ou Eliminar)
|
||||
|
||||
**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
|
||||
```
|
||||
- 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
|
||||
@@ -0,0 +1,91 @@
|
||||
# /today v11.0 - Checkup Diario (Orquestrador)
|
||||
|
||||
Executa o checkup diario lendo logs locais dos agentes + recolhe dados frescos.
|
||||
|
||||
> NOTA CRITICA: CT 102 abatido em 20-04-2026. Os agentes cron correm como systemd user timers
|
||||
> no desktop. NUNCA usar ssh_execute(server="dev"). Ler logs locais via tail/journalctl.
|
||||
|
||||
## Passo 1: Verificar data e ultima execucao
|
||||
|
||||
```
|
||||
mcp__mcp-time__current_time → data, dia da semana
|
||||
mcp__mem_search_memories("today checkup YYYY-MM-DD")
|
||||
Se ja existe hoje → perguntar se quer re-executar
|
||||
```
|
||||
|
||||
## Passo 2: Fase 1 - Ler logs locais dos agentes (silencioso)
|
||||
|
||||
Base: /media/ealmeida/Dados/Dev/claude_automations_dev/
|
||||
|
||||
```bash
|
||||
# IMAP Triage
|
||||
tail -20 /media/ealmeida/Dados/Dev/claude_automations_dev/imap-triage/imap-triage.log
|
||||
cat ~/.claude-work/today-imap-$(date +%d-%m-%Y).json 2>/dev/null
|
||||
|
||||
# Ticket Triage
|
||||
tail -30 /media/ealmeida/Dados/Dev/claude_automations_dev/ticket-triage/ticket-triage.log 2>/dev/null
|
||||
|
||||
# Auto-Expense
|
||||
tail -20 /media/ealmeida/Dados/Dev/claude_automations_dev/auto-expense/auto-expense.log 2>/dev/null
|
||||
|
||||
# Infra Check
|
||||
tail -30 /media/ealmeida/Dados/Dev/claude_automations_dev/infra-check/infra-check.log 2>/dev/null
|
||||
|
||||
# AikTop Tasks
|
||||
tail -20 /media/ealmeida/Dados/Dev/claude_automations_dev/aiktop-tasks/aiktop-tasks.log 2>/dev/null
|
||||
|
||||
# WP Update (apenas se segunda-feira)
|
||||
tail -50 /media/ealmeida/Dados/Dev/claude_automations_dev/wp-update/wp-update.log 2>/dev/null
|
||||
|
||||
# Intelligence pipeline (status)
|
||||
tail -15 /media/ealmeida/Dados/Dev/claude_automations_dev/daily-selector/daily-selector.log 2>/dev/null
|
||||
tail -10 /media/ealmeida/Dados/Dev/claude_automations_dev/intelligence-publisher/intelligence-publisher.log 2>/dev/null
|
||||
```
|
||||
|
||||
Verificar estado systemd para confirmar ultima execucao:
|
||||
```bash
|
||||
journalctl --user -u imap-triage.service -u ticket-triage.service -u auto-expense.service \
|
||||
-u infra-check.service -u aiktop-tasks.service --since "8 hours ago" \
|
||||
--no-pager -n 5 --output=short-precise
|
||||
```
|
||||
|
||||
Para cada agente: verificar se correu nas ultimas 8h (infra: 24h), detectar erros.
|
||||
Adicionar alertas criticos a "Requer Atencao Urgente".
|
||||
|
||||
## Passo 3: Fase 2 - Recolha de dados frescos (silencioso)
|
||||
|
||||
Invocar em paralelo:
|
||||
1. `/daily-digest` → timer, tickets, facturas, leads, propostas, agenda
|
||||
2. `/tasks-overview` → tarefas overdue/pendentes/em curso + workflows sugeridos
|
||||
|
||||
Verificar `~/Transferencias` — se >10 ficheiros, invocar `/cleanup-downloads`.
|
||||
|
||||
## Passo 4: Fase 2b - Specs e Sprints activos (silencioso)
|
||||
|
||||
```bash
|
||||
find /media/ealmeida/Dados/Dev -name "SPEC.md" -maxdepth 4 2>/dev/null
|
||||
find /media/ealmeida/Dados/Dev -name "SPRINT.md" -maxdepth 4 2>/dev/null
|
||||
```
|
||||
|
||||
Para cada encontrado: ler frontmatter (primeiras 15 linhas), filtrar status != "completed"/"archived".
|
||||
Extrair: titulo, status, progresso done/total.
|
||||
|
||||
## Passo 5: Rotinas especiais por dia
|
||||
|
||||
- Segunda: planeamento semanal (tarefas + capacidade)
|
||||
- Sexta: sugerir manutencao semanal
|
||||
|
||||
## Passo 6: Dashboard final + guardar
|
||||
|
||||
Agregar todos os resultados e mostrar dashboard (formato no SKILL.md).
|
||||
|
||||
Criar nota Obsidian:
|
||||
- Path: `/media/ealmeida/Dados/Hub/00-Inbox/DD-MM-YYYY-checkup.md` (formato DD-MM-YYYY)
|
||||
- Frontmatter: title, date, type: checkup, status: active
|
||||
|
||||
Guardar em Mem0:
|
||||
```
|
||||
mcp__mem_save_memory({
|
||||
text: "Checkup diario DD-MM-YYYY - X tickets, Y tarefas, cron OK/FALHA"
|
||||
})
|
||||
```
|
||||
@@ -0,0 +1,140 @@
|
||||
---
|
||||
title: "Checkup Diário - {{DATE}}"
|
||||
date: {{DATE}}
|
||||
type: daily
|
||||
tags: [diario, checkup, {{WEEKDAY}}]
|
||||
aliases: ["{{DATE}}"]
|
||||
layer: wiki
|
||||
---
|
||||
|
||||
# 📅 {{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