---
name: status
description: Dashboard de projecto que agrega spec, sprint, desk, git e timer numa única vista.
---

# /status v1.0 - Dashboard de Projecto

Agrega todas as fontes num unico painel: SPEC.md + SPRINT.md + Desk CRM + git + timer.

---

## Comandos

| Comando | Funcao |
|---------|--------|
| `/status` | Status completo do projecto actual |
| `/status quick` | Resumo em 1-2 linhas |
| `/status all` | Status de todos os projectos activos |

---

## Protocolos

### `/status`

```
1. mcp__mcp-time__current_time
2. Detectar contexto:
   a. Ler .desk-project se existe -> project_id, project_name
   b. Se nao: usar directorio actual como contexto
3. RECOLHER em paralelo:
   a. SPEC: Ler SPEC.md (status, peso, scope items, aprovacao)
   b. SPRINT: Ler SPRINT.md (progresso, checkpoint, periodo)
   c. DESK: mcp__desk-crm-v3__get_tasks({ project_id, status: [1,2,4,5] })
   d. TIMER: Ler ~/.claude-work/active-timer.json
   e. GIT: git log --oneline -5 && git status --short (se git repo)
4. COMPOR dashboard:

---
## Projecto: [nome] (#id)

### Spec
[Se existe:]
- **Status:** [draft/approved/in_progress/amended]
- **Titulo:** [titulo]
- **Progresso:** X/Y scope items
- **Amendments:** N alteracoes pos-aprovacao
[Se nao existe:]
- **Sem spec.** Considere `/spec create`

### Sprint
[Se activo:]
- **Sprint:** [id] | [start] -> [end]
- **Tasks:** X/Y completadas (Z%)
- **Checkpoint:** [feito em DATA / pendente]
[Se nao activo:]
- **Sem sprint activo.** Use `/sprint plan`

### Desk CRM
- **Tasks abertas:** N (U urgentes, H alta prioridade)
- **Tasks bloqueadas:** N
- **Tempo esta semana:** Xh

### Timer
[Se activo:]
- **Timer:** #[task_id] - [nome] (Xh Xm)
[Se nao:]
- **Sem timer activo**

### Git
[Se repo:]
- **Ultimos commits:** N (7 dias)
- **Changes nao committed:** N ficheiros
[Se nao repo:]
- **Sem repositorio git**

### Bloqueios
- [bloqueio 1]
- [Nenhum detectado]
---
```

### `/status quick`

```
1. Mesma recolha mas output compacto:

   [nome] (#id) | Spec: [status] | Sprint: [X/Y tasks] | Desk: [N open] | Timer: [activo/off]

   Exemplo:
   "Stack (#65) | Spec: approved (3/5) | Sprint W06: 2/4 tasks | Desk: 8 open | Timer: off"
```

### `/status all`

```
1. Encontrar todos os .desk-project:
   Glob: /media/ealmeida/Dados/Dev/**/.desk-project
2. Para cada projecto encontrado:
   a. Ler .desk-project -> project_id, project_name
   b. Quick fetch Desk: mcp__desk-crm-v3__get_tasks({ project_id, status: [1,4] })
   c. Verificar existencia de SPEC.md e SPRINT.md
3. Compilar tabela:

---
## Projectos Activos

| Projecto | Spec | Sprint | Tasks Abertas | Bloqueios |
|----------|------|--------|--------------|-----------|
| Stack (#65) | approved | W06 (2/4) | 8 | 0 |
| SFV (#80) | draft | - | 12 | 2 |
| Hub (#90) | - | - | 3 | 0 |

**Total:** N projectos, M tasks abertas, K bloqueios
---

NOTA: /status all pode demorar ~30s por projecto.
Limitar a projectos com .desk-project (nao todos os do Desk CRM).
```

---

## Regras

1. **NUNCA** modificar dados - apenas leitura
2. Dados em falta = mostrar sugestao (nao esconder)
3. Bloqueios devem saltar a vista (primeiro destaque)
4. Se falhar alguma fonte (MCP offline): mostrar as restantes com nota
5. `/status quick` para uso em `/today`; `/status` para analise

---

## 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.*
