- All SKILL.md files now <500 lines (avg reduction 69%) - Detailed content extracted to references/ subdirectories - Frontmatter standardised: only name + description (Anthropic standard) - New skills: brand-guidelines, spec-coauthor, report-templates, skill-creator - Design skills: anti-slop guidelines, premium-proposals reference - Removed non-standard frontmatter fields (triggers, version, author, category) Plugins affected: infraestrutura, marketing, dev-tools, crm-ops, gestao, core-tools, negocio, perfex-dev, wordpress, design-media Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
276 lines
7.4 KiB
Markdown
276 lines
7.4 KiB
Markdown
---
|
|
name: sprint
|
|
description: Sprints flexíveis que lêem tasks do Desk CRM, agrupam em sprints com checkpoints e reviews.
|
|
disable-model-invocation: true
|
|
---
|
|
|
|
# /sprint v1.0 - Sprints Flexiveis
|
|
|
|
Sprints com duracao flexivel, Desk CRM como fonte de verdade, checkpoints obrigatorios.
|
|
|
|
## Contexto NotebookLM
|
|
|
|
ANTES de executar, consultar notebooks para contexto especializado:
|
|
|
|
| Notebook | ID | Consultar quando |
|
|
|----------|-----|-----------------|
|
|
| Gestão de Projectos e Agile | 0c9c079c-a426-486c-99eb-1564d42d37ad | Sempre |
|
|
|
|
```
|
|
mcp__notebooklm__notebook_query({
|
|
notebook_id: "0c9c079c-a426-486c-99eb-1564d42d37ad",
|
|
query: "<adaptar ao contexto do pedido do utilizador>"
|
|
})
|
|
```
|
|
|
|
Integrar insights do NotebookLM nas recomendações e decisões.
|
|
|
|
---
|
|
|
|
## Comandos
|
|
|
|
| Comando | Funcao |
|
|
|---------|--------|
|
|
| `/sprint` | Mostrar sprint activo |
|
|
| `/sprint plan` | Criar sprint a partir de tasks Desk |
|
|
| `/sprint check-in` | Checkpoint a meio do sprint |
|
|
| `/sprint review` | Review final do sprint |
|
|
| `/sprint close` | Fechar sprint e calcular metricas |
|
|
| `/sprint add <task_id>` | Adicionar task ao sprint activo |
|
|
| `/sprint remove <task_id>` | Remover task do sprint |
|
|
|
|
---
|
|
|
|
## SPRINT.md Template
|
|
|
|
```markdown
|
|
---
|
|
sprint_id: YYYY-WNN-[projecto]
|
|
project_id: null
|
|
start_date: YYYY-MM-DD
|
|
end_date: YYYY-MM-DD
|
|
status: active
|
|
checkpoint_done: false
|
|
spec_refs: []
|
|
tasks_planned: 0
|
|
tasks_added_after: 0
|
|
---
|
|
|
|
# Sprint: [Goal em 1 frase]
|
|
|
|
## Tasks
|
|
|
|
| Desk ID | Task | Prioridade | Estimativa | Status | Tempo Real |
|
|
|---------|------|-----------|-----------|--------|-----------|
|
|
|
|
## Checkpoint (Meio do Sprint)
|
|
_Data: [a preencher]_
|
|
- On track: [sim/nao]
|
|
- Bloqueios: [lista]
|
|
- Scope changes: [lista]
|
|
- Accao: [continuar/ajustar]
|
|
|
|
## Review (Final do Sprint)
|
|
_Data: [a preencher]_
|
|
- Tasks completadas: X/Y
|
|
- Tasks adicionadas pos-planeamento: N
|
|
- Tempo estimado: Xh
|
|
- Tempo real: Yh
|
|
- Scope changes: N
|
|
- Licoes aprendidas: [lista]
|
|
- Proximos passos: [lista]
|
|
```
|
|
|
|
---
|
|
|
|
## Protocolos
|
|
|
|
### `/sprint` (sem argumentos)
|
|
|
|
```
|
|
1. Procurar SPRINT.md no directorio actual (ou pais, max 3 niveis)
|
|
2. SE encontrado e status == active:
|
|
a. Ler SPRINT.md
|
|
b. Buscar estado actual das tasks no Desk CRM:
|
|
Para cada task_id na tabela:
|
|
mcp__desk-crm-v3__get_task({ id: task_id })
|
|
c. Mostrar:
|
|
---
|
|
## Sprint Activo: [goal]
|
|
**Projecto:** [nome] (#id)
|
|
**Periodo:** [start] -> [end] (dia X de Y)
|
|
**Checkpoint:** [feito/pendente]
|
|
|
|
| Task | Status Desk | Sprint |
|
|
|------|------------|--------|
|
|
|
|
**Progresso:** X/Y tasks (Z%)
|
|
---
|
|
3. SE nao encontrado:
|
|
"Sem sprint activo. Usar /sprint plan para criar."
|
|
```
|
|
|
|
### `/sprint plan`
|
|
|
|
```
|
|
1. mcp__mcp-time__current_time -> data actual
|
|
2. Detectar contexto:
|
|
a. Ler .desk-project se existe -> project_id
|
|
b. Se nao: perguntar projecto
|
|
3. Buscar tasks abertas do Desk CRM:
|
|
mcp__desk-crm-v3__get_tasks({ project_id: X, status: [1, 4] })
|
|
(status 1=Not Started, 4=In Progress)
|
|
4. Verificar SPEC.md:
|
|
- Se existe e aprovado: incluir referencia no sprint
|
|
- Se nao existe: WARN "Sem spec aprovado. Considere /spec create."
|
|
- Nao bloquear por isto (gradual adoption)
|
|
5. Apresentar tasks ao Emanuel por prioridade:
|
|
|
|
## Tasks Disponiveis para Sprint
|
|
|
|
### Urgente / Alta
|
|
- #1450: Implement API (4h estimado)
|
|
- #1451: Fix login bug (1h estimado)
|
|
|
|
### Normal
|
|
- #1448: Write docs (2h estimado)
|
|
|
|
### Baixa
|
|
- #1452: Refactor CSS (3h estimado)
|
|
|
|
6. Perguntar:
|
|
"Que tasks incluir neste sprint? E data limite?"
|
|
(pode ser: "todas as urgentes", "#1450 e #1448", etc.)
|
|
7. Calcular estimativa total
|
|
8. GERAR SPRINT.md:
|
|
- sprint_id: YYYY-WNN-[projecto] (semana ISO actual)
|
|
- tasks_planned: contagem
|
|
- Preencher tabela de tasks
|
|
9. CONFIRMAR: "Sprint com [N] tasks, ~[X]h, ate [data]. Criar?"
|
|
10. Gravar SPRINT.md
|
|
11. Guardar em memory-supabase:
|
|
save_memory({
|
|
content: "Sprint [id] iniciado: [N] tasks, [X]h, ate [data]",
|
|
tags: ["sprint", "project-[id]", sprint_id]
|
|
})
|
|
12. "Sprint criado. Check-in recomendado em [data_meio]."
|
|
```
|
|
|
|
### `/sprint check-in`
|
|
|
|
```
|
|
1. Ler SPRINT.md
|
|
- Se nao existe ou status != active: "Sem sprint activo."
|
|
2. Se checkpoint_done == true:
|
|
"Checkpoint ja realizado. Para novo check-in, usar /sprint review."
|
|
3. mcp__mcp-time__current_time -> calcular dia actual vs periodo
|
|
4. Para cada task do sprint:
|
|
mcp__desk-crm-v3__get_task({ id: task_id })
|
|
- Comparar status actual vs planeado
|
|
5. Calcular:
|
|
- % tempo decorrido
|
|
- % tasks completadas
|
|
- Tasks adicionadas apos planeamento (comparar com tasks_planned)
|
|
6. Detectar alertas:
|
|
- >50% tempo decorrido mas <40% tasks feitas -> "ATRASADO"
|
|
- Tasks novas adicionadas -> "SCOPE CREEP: [N] tasks nao planeadas"
|
|
- Tasks bloqueadas -> "BLOQUEIO: [task]"
|
|
7. Apresentar:
|
|
---
|
|
## Checkpoint Sprint [id]
|
|
|
|
**Progresso:** X/Y tasks (Z%)
|
|
**Tempo:** dia M de N (W% decorrido)
|
|
**Alerta:** [verde/amarelo/vermelho]
|
|
|
|
### Tasks
|
|
| Task | Planeado | Actual |
|
|
|------|----------|--------|
|
|
|
|
### Problemas Detectados
|
|
- [lista ou "nenhum"]
|
|
|
|
### Recomendacao
|
|
[Continuar como esta / Ajustar scope / Pedir ajuda]
|
|
---
|
|
8. Perguntar: "Algum ajuste? Notas?"
|
|
9. Actualizar SPRINT.md:
|
|
- Preencher seccao Checkpoint
|
|
- checkpoint_done: true
|
|
```
|
|
|
|
### `/sprint review`
|
|
|
|
```
|
|
1. Ler SPRINT.md
|
|
- Se status != active: "Sprint nao activo."
|
|
2. mcp__mcp-time__current_time
|
|
3. Estado final de todas as tasks:
|
|
Para cada task: mcp__desk-crm-v3__get_task({ id })
|
|
4. Buscar tempo real:
|
|
mcp__desk-crm-v3__get_task_time_logs({ task_id }) para cada task
|
|
5. Calcular metricas:
|
|
- Completion rate: tasks_done / tasks_total
|
|
- Scope creep: tasks_added_after (comparar lista actual vs original)
|
|
- Tempo: soma estimativas vs soma real
|
|
- Precisao: |estimado - real| / estimado * 100
|
|
6. Apresentar review:
|
|
---
|
|
## Sprint Review: [id]
|
|
|
|
### Resultado: [X/Y tasks completadas]
|
|
|
|
| Task | Estimativa | Tempo Real | Status |
|
|
|------|-----------|-----------|--------|
|
|
|
|
### Metricas
|
|
- Completion rate: Z%
|
|
- Scope changes: N tasks adicionadas/removidas
|
|
- Tempo: Xh estimado vs Yh real (precisao: W%)
|
|
|
|
### Retrospectiva
|
|
- O que correu bem?
|
|
- O que pode melhorar?
|
|
- Accoes para proximo sprint?
|
|
---
|
|
7. Perguntar retrospectiva ao Emanuel
|
|
8. Actualizar SPRINT.md seccao Review
|
|
9. Registar metricas:
|
|
a. memory-supabase:
|
|
save_memory({
|
|
content: "Sprint [id] review: [X/Y] tasks, [scope_changes] changes, [Yh] real vs [Xh] estimado",
|
|
tags: ["sprint", "metrics", sprint_id, "project-[id]"]
|
|
})
|
|
b. Se .desk-project existe: comentar na task Desk (formato HTML #27)
|
|
10. Perguntar: "Planear proximo sprint? /sprint plan"
|
|
|
|
### `/sprint close`
|
|
|
|
```
|
|
1. Executar /sprint review se review nao feito
|
|
2. Actualizar SPRINT.md: status -> closed
|
|
3. "Sprint fechado. Metricas registadas."
|
|
```
|
|
|
|
### `/sprint add <task_id>`
|
|
|
|
```
|
|
1. Ler SPRINT.md activo
|
|
2. Verificar se task_id ja esta no sprint
|
|
3. Buscar task do Desk: mcp__desk-crm-v3__get_task({ id: task_id })
|
|
4. Adicionar a tabela de tasks
|
|
5. Incrementar tasks_added_after no frontmatter
|
|
6. WARN: "Task adicionada apos planeamento. Isto conta como scope change."
|
|
```
|
|
|
|
---
|
|
|
|
## Regras
|
|
|
|
1. **NUNCA** criar sprint sem consultar Desk CRM
|
|
2. **SEMPRE** perguntar ao Emanuel que tasks incluir (nao decidir sozinho)
|
|
3. Checkpoint e recomendado mas nao obrigatorio
|
|
4. Review e obrigatorio antes de fechar sprint
|
|
5. Metricas sao factuais - nao ajustar para "parecer bem"
|
|
6. Sprint nao tem cadencia fixa - dura o que o projecto precisa
|