feat(gestao): adiciona plugin gestao (agents, skills, knowledge e metadados do projeto)
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
---
|
||||
name: worklog
|
||||
description: Registo de trabalho e reflexão unificado. Analisa sessão, regista trabalho, identifica padrões, sugere acções. /reflect é alias (mesmo resultado). Variantes: deep (análise profunda), week (revisão semanal). Usar quando "worklog", "reflect", "reflexão", "registar trabalho", "log", ao parar timer.
|
||||
layer: wiki
|
||||
---
|
||||
|
||||
# /worklog v4.1 - Registo de Trabalho + Reflexão
|
||||
|
||||
**⚠️ EXECUÇÃO INLINE OBRIGATÓRIA — NUNCA FORK**
|
||||
|
||||
Quando `/worklog` ou `/reflect` é invocado, o agente principal executa o protocolo **directamente, in-situ, no thread principal**. Proibido:
|
||||
- Chamar `Skill tool` para `worklog`/`reflect` (fork perde contexto conversacional — histórico de mensagens, Edit/Write calls, MCP tool calls, decisões já tomadas)
|
||||
- Chamar `Agent tool` / Task subagente para executar o worklog (mesma razão)
|
||||
|
||||
O histórico da conversa actual é a **fonte primária** do worklog. Só o agente principal o tem. Qualquer fork devolve "nothing to log" e falha silenciosamente o registo — anti-padrão verificado empiricamente em 2026-04-23.
|
||||
|
||||
Skill unificada: regista trabalho, analisa sessão, sugere acções, guarda memória.
|
||||
|
||||
**`/reflect` = alias de `/worklog`** (mesmo resultado).
|
||||
|
||||
---
|
||||
|
||||
## Comandos
|
||||
|
||||
| Comando | Função |
|
||||
|---------|--------|
|
||||
| `/worklog` | Registo + reflexão da sessão |
|
||||
| `/reflect` | Alias de `/worklog` |
|
||||
| `/worklog view` | Ver últimos registos |
|
||||
| `/reflect deep` | Análise profunda com histórico |
|
||||
| `/reflect week` | Revisão semanal (segundas via /today) |
|
||||
|
||||
---
|
||||
|
||||
## Storage
|
||||
|
||||
| Tipo | Discussão | ID |
|
||||
|------|-----------|-----|
|
||||
| **Logs + Reflexões** | Logs | 31 |
|
||||
| **Reflexões Profundas** | Reflexões | 32 |
|
||||
| **Acções** | Acções de Melhoria | 33 |
|
||||
|
||||
**Projecto:** #65 (DES Stack Workflow) | **Staff:** 25 (AikTop)
|
||||
|
||||
---
|
||||
|
||||
## Protocolo Principal (/worklog e /reflect)
|
||||
|
||||
```
|
||||
1. Obter hora via mcp__mcp-time__current_time
|
||||
2. Verificar timer activo em ~/.claude-work/active-timer.json
|
||||
3. ANALISAR sessão — FONTE PRIMÁRIA é o histórico conversacional actual do agente:
|
||||
A) **Contexto conversa (OBRIGATÓRIO — FONTE PRIMÁRIA):**
|
||||
O agente que executa esta skill tem, no seu próprio histórico, toda a informação que precisa.
|
||||
Extrair directamente:
|
||||
- Ficheiros modificados (procurar Edit/Write/MultiEdit nos tool_use da sessão)
|
||||
- MCPs usados (procurar mcp__*__* tool calls)
|
||||
- Erros encontrados e soluções aplicadas
|
||||
- Padrões detectados, decisões arquitecturais
|
||||
- Pedidos sucessivos do utilizador (sequência de mensagens user)
|
||||
- Commits feitos (procurar `git commit` em tool_use)
|
||||
- Subagentes dispatched (Agent tool calls)
|
||||
|
||||
B) **Contexto externo (COMPLEMENTAR — SEMPRE recolher):**
|
||||
- git diff --stat (últimas 3h): ficheiros alterados
|
||||
- git log --oneline --since="3 hours ago": commits recentes
|
||||
- SQLite Observabilidade (se disponível): `~/.claude-work/sessions.db` tabela sessions com project_slug+started_at+tool_calls da sessão actual
|
||||
- find 00-Inbox/ -name "worklog-$(date +%Y-%m-%d)*" -newer
|
||||
- Ficheiros modificados nas últimas 3h no working directory
|
||||
- Tarefas Desk com comentários criados hoje (mcp__desk-crm-v3__get_task_comments filter staff_id=1 or 25)
|
||||
|
||||
C) **Activity log do hook (FALLBACK — cross-session apenas):**
|
||||
Usar só quando A) está genuinamente vazio (ex: /worklog invocado manualmente sem contexto activo).
|
||||
- ls -lat ~/.claude-work/sessions/*.activity.log | head -5
|
||||
- Escolher activity.log MAIOR modificado nas últimas 2h (>5KB)
|
||||
- Ler o .json correspondente para metadata
|
||||
|
||||
REGRA: A) preenche o corpo do worklog. B) adiciona detalhes. C) só se A) vazio.
|
||||
REGRA: Se A), B) e C) todos vazios após verificação rigorosa → NÃO gerar e reportar "nada novo para registar".
|
||||
3b. VERIFICAR alinhamento com spec (se aplicavel):
|
||||
- Detectar ficheiros modificados na sessao
|
||||
- Procurar SPEC.md no directorio pai (ate 3 niveis)
|
||||
- SE spec approved/in_progress: comparar ficheiros vs scope items
|
||||
- SE ficheiro nao mapeia para scope: incluir SCOPE ALERT no worklog
|
||||
- SE sem SPEC.md: ignorar silenciosamente
|
||||
4. VERIFICAR se há algo novo a documentar
|
||||
- Se conversa vazia → recolher contexto externo (passo 3B)
|
||||
- Se contexto externo tambem vazio → NÃO gerar
|
||||
- NUNCA desistir sem verificar fontes externas primeiro
|
||||
5. Gerar comentário HTML (ver formato abaixo)
|
||||
6. mcp__desk-crm-v3__add_discussion_comment({
|
||||
discussion_id: 31,
|
||||
content: html,
|
||||
staff_id: 25
|
||||
})
|
||||
7. SE acções sugeridas:
|
||||
mcp__desk-crm-v3__add_discussion_comment({
|
||||
discussion_id: 33,
|
||||
content: accoes_html,
|
||||
staff_id: 25
|
||||
})
|
||||
7b. TRIGGER improvement-evaluator no desktop (localhost):
|
||||
Bash: curl -s -X POST http://localhost:8095/trigger
|
||||
(falha silenciosa OK — o systemd timer apanha em 30min)
|
||||
8. SE insight valioso → mcp__mem_save_memory({ text: "[resumo do insight]" })
|
||||
8b. GIT CHECKPOINT (automático se em projecto git):
|
||||
a. Verificar se existe `.desk-project` no directório actual (ou até 3 níveis acima)
|
||||
b. Se sim: verificar se é repositório
|
||||
@@ -0,0 +1,41 @@
|
||||
# Worklog Background Agent Prompt
|
||||
|
||||
Prompt optimizado para contexto mínimo (funciona com sonnet em background).
|
||||
|
||||
---
|
||||
|
||||
## Prompt Padrão (CURTO)
|
||||
|
||||
```
|
||||
Gera worklog no Desk CRM (discussão Logs do projecto).
|
||||
|
||||
1. Identifica projecto via .desk-project ou usa #65 (Stack)
|
||||
2. Usa mcp__desk-crm-v3__add_discussion_comment
|
||||
3. Resume trabalho em 3-5 bullets
|
||||
|
||||
Formato: ## HH:MM - [Titulo] + bullets + ficheiros
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Invocação via Task Tool
|
||||
|
||||
```javascript
|
||||
Task({
|
||||
subagent_type: "general-purpose",
|
||||
model: "sonnet", // IMPORTANTE: não usar haiku (limite contexto)
|
||||
description: "Generate worklog entry",
|
||||
run_in_background: true,
|
||||
prompt: "Gera worklog no Desk CRM. Identifica projecto via .desk-project ou usa #65. Adiciona comentário na discussão Logs via mcp__desk-crm-v3__add_discussion_comment."
|
||||
})
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Notas de Optimização
|
||||
|
||||
- **Usar sonnet** (não haiku) - haiku falha com "prompt too long" em sessões longas
|
||||
- **Desk CRM** - adicionar comentário via mcp__desk-crm-v3__add_discussion_comment
|
||||
- **Projecto default:** #65 (Stack Descomplicar)
|
||||
- **Background** - sempre run_in_background=true
|
||||
```
|
||||
Reference in New Issue
Block a user