Files
Emanuel Almeida 6b3a6f2698 feat: refactor 30+ skills to Anthropic progressive disclosure pattern
- 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>
2026-03-12 15:05:03 +00:00

7.4 KiB

name, description, disable-model-invocation
name description disable-model-invocation
sprint Sprints flexíveis que lêem tasks do Desk CRM, agrupam em sprints com checkpoints e reviews. 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

---
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