feat(crm-ops): adicionar skill /ticket-manage e agent support-specialist D2
Cobertura D2 Suporte elevada de 50% para 75% com novos componentes baseados nos PROCs D2-SUP-001/002/003. Skill /ticket-manage (crm-ops/skills/ticket-manage/SKILL.md): - Dashboard SLA com alertas automáticos (violado/em risco/OK) - Criação de tickets com campos correctos e confirmação de recepção - Atribuição por prioridade e responsável (P1→imediato, P2→2h, etc.) - Escalação com protocolo completo e notificação ao cliente - Fecho com checklist obrigatória 7 pontos (SUP-001) - Relatório semanal SLA com métricas por prioridade (SUP-003) Agent support-specialist (crm-ops/agents/support-specialist.md): - Executor D2 focado em triagem, atribuição e follow-up - 4 workflows: triagem diária, resolver ticket, follow-up semanal, P1 crítico - Métricas: SLA resposta >95%, resolução >90%, NPS >8, 0 violações P1 - Escala para Emanuel (P1) e D7 Tecnologia (tech complexo) Plugin v1.2.0: adicionadas keywords suporte e sla Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,319 @@
|
||||
---
|
||||
name: ticket-manage
|
||||
description: >
|
||||
Gestão completa do ciclo de vida de tickets D2 Suporte: criar com campos correctos, atribuir
|
||||
por prioridade e SLA, escalar quando SLA em risco, fechar com checklist obrigatória. Baseado
|
||||
em PROC-D2-SUP-001 (Atendimento), SUP-002 (Ticketing Workflow) e SUP-003 (SLA Management).
|
||||
Usar para: gestão ticket, SLA check, escalar suporte, fechar ticket, atribuir prioridade.
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
# /ticket-manage v1.0 — Gestão Integrada de Suporte D2
|
||||
|
||||
Workflow completo de gestão de tickets segundo os PROCs D2 Suporte (SUP-001/002/003).
|
||||
Complementa `/ticket` (operações básicas) com gestão de SLA, checklist e escalação automática.
|
||||
|
||||
---
|
||||
|
||||
## Comandos
|
||||
|
||||
| Comando | Função |
|
||||
|---------|--------|
|
||||
| `/ticket-manage` | Dashboard SLA + tickets em risco |
|
||||
| `/ticket-manage new` | Criar ticket com campos correctos |
|
||||
| `/ticket-manage assign <id>` | Atribuir por prioridade e SLA |
|
||||
| `/ticket-manage sla` | Ver estado SLA todos os tickets abertos |
|
||||
| `/ticket-manage escalate <id>` | Escalar com protocolo SUP-001 |
|
||||
| `/ticket-manage close <id>` | Fechar com checklist obrigatória |
|
||||
| `/ticket-manage report` | Relatório semanal SLA (SUP-003) |
|
||||
|
||||
---
|
||||
|
||||
## Prioridades e SLAs (SUP-003)
|
||||
|
||||
| Prioridade | Código | Primeira Resposta | Resolução | Escalação |
|
||||
|------------|--------|-------------------|-----------|-----------|
|
||||
| Crítico | P1 | <1h | <4h | Imediata D7 |
|
||||
| Funcional | P2 | <2h | <24h | Após 12h sem resolução |
|
||||
| Dúvida | P3 | <4h | <48h | Após 24h sem resolução |
|
||||
| Melhoria | P4 | <24h | Próximo sprint | N/A |
|
||||
|
||||
**Mapping Desk CRM:**
|
||||
| Desk Priority ID | Correspondência |
|
||||
|-----------------|----------------|
|
||||
| 4 — Urgente | P1 Crítico |
|
||||
| 3 — Alta | P2 Funcional |
|
||||
| 2 — Normal | P3 Dúvida |
|
||||
| 1 — Baixa | P4 Melhoria |
|
||||
|
||||
---
|
||||
|
||||
## `/ticket-manage` — Dashboard SLA
|
||||
|
||||
```
|
||||
1. mcp__desk-crm-v3__get_tickets({ status: [1,2,3] })
|
||||
2. Para cada ticket:
|
||||
a. Calcular tempo decorrido desde criação/última resposta
|
||||
b. Comparar com SLA da prioridade
|
||||
c. Classificar: OK / EM RISCO (<25% SLA restante) / VIOLADO (SLA excedido)
|
||||
3. Mostrar dashboard agrupado por estado SLA
|
||||
```
|
||||
|
||||
**Output:**
|
||||
```markdown
|
||||
## 🎫 Dashboard Suporte — [DATA]
|
||||
|
||||
### 🔴 SLA Violado (N)
|
||||
| # | Prioridade | Cliente | Assunto | Há | SLA |
|
||||
|---|-----------|---------|---------|-----|-----|
|
||||
| #234 | P1 Crítico | ClienteA | Downtime servidor | 6h | <4h ❌ |
|
||||
|
||||
### 🟠 Em Risco (<25% restante)
|
||||
| # | Prioridade | Cliente | Assunto | Há | Restante |
|
||||
|---|-----------|---------|---------|-----|---------|
|
||||
| #236 | P2 Funcional | ClienteB | Erro login | 20h | 4h ⚠️ |
|
||||
|
||||
### 🟢 Dentro do SLA
|
||||
| # | Prioridade | Cliente | Assunto | Há |
|
||||
|---|-----------|---------|---------|-----|
|
||||
| #238 | P3 Dúvida | ClienteC | Como configurar X | 2h |
|
||||
|
||||
---
|
||||
**Resumo:** X violados | Y em risco | Z OK | Total: W tickets abertos
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## `/ticket-manage new` — Criar Ticket Correcto
|
||||
|
||||
```
|
||||
1. Recolher campos obrigatórios:
|
||||
- Cliente: pesquisar mcp__desk-crm-v3__get_customers({ search: nome }) OU perguntar ID
|
||||
- Assunto: descrever o problema
|
||||
- Descrição completa
|
||||
- Prioridade: perguntar (P1/P2/P3/P4) ou sugerir baseado no assunto
|
||||
- Departamento: 1=Suporte Técnico, 2=Vendas, 3=Facturação, 4=Geral
|
||||
- Origem: Desk CRM, email, WhatsApp
|
||||
|
||||
2. Confirmar antes de criar:
|
||||
"Criar ticket P[X] para [Cliente] — [Assunto]? [Sim/Cancelar]"
|
||||
|
||||
3. mcp__desk-crm-v3__create_ticket({
|
||||
client_id: id,
|
||||
department_id: dept_id,
|
||||
priority: priority_id, // 4=Urgente, 3=Alta, 2=Normal, 1=Baixa
|
||||
subject: assunto,
|
||||
message: "<p>[descrição detalhada]</p><p><strong>Origem:</strong> [origem]</p>"
|
||||
})
|
||||
|
||||
4. Enviar confirmação de recepção ao cliente (se externo):
|
||||
- P1/P2: "Prioridade máxima. Analisando agora. Actualização em 30min/2h."
|
||||
- P3: "Recebemos. Resposta em 4h."
|
||||
- P4: "Registado para próximo sprint."
|
||||
|
||||
5. Output: "Ticket #X criado [P1-Crítico] | SLA: 1h resposta / 4h resolução"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## `/ticket-manage assign <id>` — Atribuir por Prioridade
|
||||
|
||||
```
|
||||
1. mcp__desk-crm-v3__get_ticket({ ticket_id: id })
|
||||
2. Determinar responsável baseado em categoria:
|
||||
- Técnico (WP, servidor, código) → D7 Tecnologia
|
||||
- Billing, factura → D3 / Emanuel
|
||||
- Comercial, proposta → D1
|
||||
- Geral → Support Specialist (staff_id: 25)
|
||||
3. Se P1: notificar imediatamente (comentário interno + /task urgente)
|
||||
4. Registar atribuição como comentário interno:
|
||||
mcp__desk-crm-v3__reply_ticket({
|
||||
ticket_id: id,
|
||||
message: "<p>Atribuído: [Responsável] | SLA: [prazo] | Prioridade: [P1-P4]</p>",
|
||||
internal: true
|
||||
})
|
||||
5. Output: "Ticket #X atribuído a [Responsável] | SLA expira: [data/hora]"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## `/ticket-manage sla` — Estado SLA Completo
|
||||
|
||||
```
|
||||
1. Recolher todos tickets abertos (status 1, 2, 3)
|
||||
2. Para cada ticket calcular:
|
||||
- tempo_decorrido = agora - created_at
|
||||
- sla_limite = por prioridade (1h/2h/4h/24h para primeira resposta)
|
||||
- percentagem_usada = tempo_decorrido / sla_limite × 100
|
||||
3. Agrupar: VIOLADO (>100%), EM RISCO (75-100%), OK (<75%)
|
||||
4. Highlight P1 e P2 com aviso especial
|
||||
```
|
||||
|
||||
**Alertas automáticos a gerar:**
|
||||
```
|
||||
P1 sem resposta >30min → "⚠️ CRÍTICO: Ticket #X P1 excede 30min. Acção imediata."
|
||||
P2 sem resposta >2h → "⚠️ ALERTA: Ticket #X P2 em risco. Re-atribuir?"
|
||||
Qualquer ticket >48h → "⏰ Ticket #X aberto há +48h. Revisar."
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## `/ticket-manage escalate <id>` — Escalação com Protocolo
|
||||
|
||||
```
|
||||
1. mcp__desk-crm-v3__get_ticket({ ticket_id: id })
|
||||
2. Determinar destino de escalação:
|
||||
- Tech complexo (WP, servidor) → D7 Tecnologia
|
||||
- Billing → D3 Facturação
|
||||
- Dev customizado → Project Manager
|
||||
3. Criar tarefa Desk CRM com contexto completo:
|
||||
mcp__desk-crm-v3__create_task({
|
||||
name: "[ESCALADO] Ticket #X: [Assunto]",
|
||||
description: "<h4>Escalado de Ticket #X</h4>
|
||||
<p><strong>Cliente:</strong> [nome]</p>
|
||||
<p><strong>Problema:</strong> [descrição]</p>
|
||||
<p><strong>Tentativas anteriores:</strong> [o que foi tentado]</p>
|
||||
<p><strong>SLA original:</strong> [prazo]</p>
|
||||
<p><strong>Motivo escalação:</strong> [razão]</p>",
|
||||
priority: 3,
|
||||
assignees: [1]
|
||||
})
|
||||
4. Informar cliente:
|
||||
mcp__desk-crm-v3__reply_ticket({
|
||||
ticket_id: id,
|
||||
message: "<p>Olá [Nome],</p>
|
||||
<p>A situação é mais complexa e foi escalada para a equipa especialista.
|
||||
Prazo estimado: 24-48h.</p>
|
||||
<p>Pedimos desculpa pela demora.</p>"
|
||||
})
|
||||
5. Nota interna com motivo detalhado
|
||||
6. Output: "Ticket #X escalado → Tarefa #Y | Dept: [destino] | ETA: [prazo]"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## `/ticket-manage close <id>` — Fecho com Checklist Obrigatória
|
||||
|
||||
```
|
||||
1. mcp__desk-crm-v3__get_ticket({ ticket_id: id })
|
||||
2. Executar checklist SUP-001 (OBRIGATÓRIO — 100% antes de fechar):
|
||||
```
|
||||
|
||||
### Checklist de Fecho (SUP-001)
|
||||
|
||||
- [ ] Solução aplicada e testada
|
||||
- [ ] Explicação clara da solução enviada ao cliente
|
||||
- [ ] Causa raiz identificada (não só sintoma)
|
||||
- [ ] Passos de prevenção comunicados
|
||||
- [ ] Cliente confirmou resolução ("Resolvido? Feedback?")
|
||||
- [ ] Lições aprendidas registadas (se novo problema)
|
||||
- [ ] Follow-up 3 dias agendado (se P1/P2)
|
||||
|
||||
```
|
||||
3. Se checklist incompleta → NÃO fechar, listar pendentes
|
||||
4. Se 100% → fechar:
|
||||
mcp__desk-crm-v3__reply_ticket({
|
||||
ticket_id: id,
|
||||
message: "<p>Olá [Nome],</p>
|
||||
<p>Confirmamos que a situação foi resolvida.</p>
|
||||
<p><strong>Solução:</strong> [explicação]</p>
|
||||
<p><strong>Prevenção:</strong> [dica]</p>
|
||||
<p>Obrigado pelo contacto. Se precisar de algo, estamos disponíveis.</p>
|
||||
<p>Nota 1-10 sobre o suporte?</p>"
|
||||
})
|
||||
mcp__desk-crm-v3__close_ticket({ ticket_id: id })
|
||||
5. Output: "Ticket #X fechado ✓ | Checklist: 7/7 | [Data fecho]"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## `/ticket-manage report` — Relatório SLA Semanal (SUP-003)
|
||||
|
||||
```
|
||||
1. Recolher tickets dos últimos 7 dias
|
||||
2. Calcular por prioridade:
|
||||
- % tickets que cumpriram SLA de resposta
|
||||
- % tickets que cumpriram SLA de resolução
|
||||
- Tempo médio de resposta e resolução
|
||||
3. Identificar violações e categorizar causas
|
||||
4. Comparar com semana anterior
|
||||
```
|
||||
|
||||
**Output:**
|
||||
```markdown
|
||||
## Relatório SLA Semanal — [DD-MM-YYYY a DD-MM-YYYY]
|
||||
|
||||
### Cumprimento SLA (Meta: >90%)
|
||||
| Prioridade | Tickets | SLA Resposta | SLA Resolução | Violações |
|
||||
|-----------|---------|-------------|--------------|-----------|
|
||||
| P1 Crítico | 2 | 100% ✅ | 50% ⚠️ | 1 |
|
||||
| P2 Funcional | 8 | 87.5% ⚠️ | 100% ✅ | 1 |
|
||||
| P3 Dúvida | 15 | 93.3% ✅ | 86.7% ⚠️ | 2 |
|
||||
| P4 Melhoria | 3 | 100% ✅ | N/A | 0 |
|
||||
|
||||
### Top 3 Tickets Mais Lentos
|
||||
1. #X — [Assunto] — P2 — 36h — causa: dependência externa D7
|
||||
2. #Y — [Assunto] — P3 — 52h — causa: complexidade técnica
|
||||
3. #Z — [Assunto] — P1 — 5h30 — causa: falta de informação cliente
|
||||
|
||||
### Acções Correctivas
|
||||
- [ ] P2 cumprimento <90% → Revisão processo atribuição automática
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Referências PROCs
|
||||
|
||||
| PROC | Ficheiro Hub |
|
||||
|------|-------------|
|
||||
| SUP-001 Atendimento | `Hub/06-Operacoes/Procedimentos/D2-Suporte/PROC-D2-SUP-001-Atendimento-Cliente.md` |
|
||||
| SUP-002 Ticketing | `Hub/06-Operacoes/Procedimentos/D2-Suporte/PROC-D2-SUP-002-Ticketing-Workflow.md` |
|
||||
| SUP-003 SLA | `Hub/06-Operacoes/Procedimentos/D2-Suporte/PROC-D2-SUP-003-SLA-Management.md` |
|
||||
|
||||
---
|
||||
|
||||
## Anti-Patterns
|
||||
|
||||
- **NUNCA** fechar sem checklist 100% completa
|
||||
- **NUNCA** escalar sem informar o cliente
|
||||
- **NUNCA** ignorar tickets P1 >30min
|
||||
- **NUNCA** resolver sintoma sem identificar causa raiz
|
||||
|
||||
---
|
||||
|
||||
## Integração com Outras Skills
|
||||
|
||||
| Skill | Quando usar |
|
||||
|-------|-------------|
|
||||
| `/ticket` | Operações básicas (view, reply) |
|
||||
| `/ticket-triage` | Triagem automática SPAM/facturas |
|
||||
| `/crm` | Contexto cliente 360° |
|
||||
| `/today` | Dashboard diário com SLA alerts |
|
||||
|
||||
---
|
||||
|
||||
## Changelog
|
||||
|
||||
### v1.0.0 (07-04-2026)
|
||||
- Versão inicial baseada em SUP-001, SUP-002, SUP-003
|
||||
- Dashboard SLA com alertas automáticos
|
||||
- Criação com campos obrigatórios e confirmação recepção
|
||||
- Checklist fecho obrigatória 7 pontos
|
||||
- Protocolo escalação com contexto completo
|
||||
- Relatório semanal SLA
|
||||
|
||||
---
|
||||
|
||||
*Skill v1.0.0 | 07-04-2026 | Descomplicar® | Baseado em PROCs D2-SUP-001/002/003*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
Reference in New Issue
Block a user