---
name: desk
description: Contexto de projecto via .desk-project. Auto-detecção, integração com /time, status rápido, criação de tarefas e changelog. Sistema Triângulo Desk-GDrive-Local.
---

# /desk v3.0 - Contexto de Projecto

Integração automática com Desk CRM via `.desk-project`. Sistema Triângulo.

---

## Novidades v3.0

- **Integração /time:** Mostrar timer activo do projecto
- **Remover /desk-time:** Usar `/time` directamente
- **Novo /desk status:** Resumo rápido
- **Sync bidirecional:** Actualizar .desk-project se dados mudarem

---

## Comandos

| Comando | Função |
|---------|--------|
| `/desk` | Mostrar contexto completo |
| `/desk status` | Resumo rápido (timer + tarefas) |
| `/desk task <desc>` | Criar tarefa no projecto |
| `/desk log <msg>` | Adicionar changelog |
| `/desk init` | Inicializar .desk-project |

**Removido:** `/desk-time` → usar `/time` directamente

---

## Protocolo

### Auto-detecção

Ao entrar numa pasta:

```
1. Verificar se existe .desk-project
2. Se existe:
   a. Ler configuração
   b. Carregar contexto silenciosamente
   c. Mostrar linha breve: "📁 Projecto X (#ID) | Y tarefas"
```

---

### /desk (Contexto Completo)

```
1. Ler .desk-project
2. mcp__desk-crm-v3__get_project({ project_id })
3. mcp__desk-crm-v3__get_tasks({ project_id, status: [1,4] })
4. Verificar timer activo em ~/.claude-work/active-timer.json
5. mcp__desk-crm-v3__get_project_time_tracking({ project_id })
6. Mostrar resumo completo
```

**Output:**

```markdown
## 📁 Stack Workflow (#65)

### Contexto
- **Cliente:** Descomplicar (interno)
- **Status:** Em Curso
- **Progresso:** 65%

### ⏱️ Timer Activo
🟢 #1446 - Documentação Skills (2h 15m)

### 📋 Tarefas Pendentes (5)
| ID | Nome | Prioridade |
|----|------|------------|
| #1450 | Implementar /invoice | Alta |
| #1448 | Testar /time v2 | Normal |

### ⏰ Tempo Esta Semana
- Total: 12h 30m
- Billable: 10h (80%)
```

---

### /desk status (Resumo Rápido)

```
1. Ler .desk-project
2. Verificar timer activo
3. Contar tarefas pendentes
4. Mostrar 1-2 linhas
```

**Output:**

```
📁 Stack (#65) | 🟢 Timer: #1446 (2h) | 📋 5 tarefas | ⏰ 12h esta semana
```

---

### /desk task <descrição>

```
1. Ler .desk-project (project_id, default_milestone, default_tags)
2. mcp__desk-crm-v3__create_task({
     name: descrição,
     rel_type: "project",
     rel_id: project_id,
     milestone_id: default_milestone,
     assignees: [25],  // AikTop
     status: 1,
     priority: 2,
     description: "<p>Criado via /desk task</p>"
   })
3. Confirmar: "Tarefa #X criada. Iniciar timer? [Sim/Não]"
4. Se sim: Invocar /time start X
```

---

### /desk log <mensagem>

```
1. Ler .desk-project (changelog_discussion_id)
2. Se não existe discussão:
   a. Criar discussão "Changelog - [Projecto]"
   b. Actualizar .desk-project com ID
3. Formatar mensagem em HTML:
   <h4>[DATA] [tipo]: Mensagem</h4>
   <p>Detalhes...</p>
4. mcp__desk-crm-v3__add_discussion_comment({
     discussion_id: changelog_discussion_id,
     content: html,
     staff_id: 25
   })
5. Confirmar
```

**Prefixos reconhecidos:**
- `feat:` - Nova funcionalidade
- `fix:` - Correcção
- `docs:` - Documentação
- `refactor:` - Refactoring

---

### /desk init

```
1. Perguntar projecto (ID ou pesquisar por nome)
2. mcp__desk-crm-v3__get_project({ project_id })
3. Criar .desk-project:
   {
     "project_id": 80,
     "project_name": "Nome",
     "client_id": 18,
     "desk_url": "https://desk.descomplicar.pt/admin/projects/view/80",
     "gdrive_folder": null,
     "local_path": pwd,
     "default_milestone": null,
     "default_tags": ["development"],
     "changelog_discussion_id": null,
     "created_at": "2026-02-05"
   }
4. Perguntar: "Criar discussão de changelog? [Sim/Não]"
5. Confirmar setup
```

---

## Estrutura .desk-project

```json
{
  "project_id": 65,
  "project_name": "Stack Workflow",
  "client_id": null,
  "desk_url": "https://desk.descomplicar.pt/admin/projects/view/65",
  "gdrive_folder": null,
  "local_path": "/home/ealmeida/.claude",
  "default_milestone": null,
  "default_tags": ["development"],
  "changelog_discussion_id": 31,
  "created_at": "2026-02-05"
}
```

---

## Sistema Triângulo

> Desk↔GDrive↔Local - Qualquer ponto leva aos outros

**Implementação:**
- **Desk:** Campos Pasta GDrive + Pasta Local preenchidos
- **Local:** .desk-project com todos os links
- **GDrive:** README.md com links Desk + Local
- **Obsidian:** Frontmatter com desk_project

---

## Integração /time

- `/desk` mostra timer activo se no projecto actual
- `/desk task` oferece iniciar timer
- Remover comandos de tempo duplicados

---

## Anti-Patterns

- **NUNCA** criar .desk-project sem verificar se projecto existe
- **NUNCA** usar /desk-time (usar /time)
- **NUNCA** criar tarefas sem projecto associado

---

## Changelog

### v3.0.0 (2026-02-05)
- Integração completa com /time
- Remover /desk-time (usar /time)
- Novo /desk status para resumo rápido
- Mostrar timer activo no contexto
- Sync bidirecional .desk-project

### v2.0.0 (2026-01-27)
- Sistema Triângulo implementado
- Auto-detecção .desk-project

### v1.0.0
- Versão inicial



---

## Self-Healing

Antes de executar, ler `~/.claude-work/healing/desk.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 v3.0.0 | 2026-02-05 | Descomplicar®*


## Healing Log
<!-- Registo automático de erros e correcções nesta skill -->
