fix(gestao): corrige YAML frontmatter invalido em qw/worklog, remove ijfw_memory_recall morto, recupera report-5w2h perdido, bump 1.6.1

This commit is contained in:
Claude Code AI
2026-07-04 14:21:39 +01:00
parent 2439e3b41c
commit 49502c59da
8 changed files with 958 additions and 136 deletions
+76 -135
View File
@@ -1,9 +1,9 @@
---
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.
description: "Registo de trabalho e reflexão unificado. Analisa sessão, regista trabalho, identifica padrões, sugere acções, higieniza documentação Hub. /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."
---
# /worklog v4.1 - Registo de Trabalho + Reflexão
# /worklog v4.8.0 - Registo de Trabalho + Reflexão + Higienização
**⚠️ EXECUÇÃO INLINE OBRIGATÓRIA — NUNCA FORK**
@@ -13,8 +13,6 @@ Quando `/worklog` ou `/reflect` é invocado, o agente principal executa o protoc
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).
---
@@ -48,34 +46,12 @@ Skill unificada: regista trabalho, analisa sessão, sugere acções, guarda mem
```
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".
3. ANALISAR sessão:
- Ficheiros modificados (Edit/Write calls)
- MCPs usados
- Erros e soluções
- Padrões detectados
- Eficiência (tool calls vs resultado)
3b. VERIFICAR alinhamento com spec (se aplicavel):
- Detectar ficheiros modificados na sessao
- Procurar SPEC.md no directorio pai (ate 3 niveis)
@@ -83,9 +59,7 @@ Skill unificada: regista trabalho, analisa sessão, sugere acções, guarda mem
- 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
- Se sessão vazia/sem dados → NÃO gerar
5. Gerar comentário HTML (ver formato abaixo)
6. mcp__desk-crm-v3__add_discussion_comment({
discussion_id: 31,
@@ -98,10 +72,15 @@ Skill unificada: regista trabalho, analisa sessão, sugere acções, guarda mem
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 → save_memory Supabase COM TAGS (ver criterios abaixo)
7b. SUGESTÕES DE MELHORIA — avaliação autónoma (NÃO chamar nada):
As sugestões ficam registadas no passo 7 (Discussão #33). O Improvement Evaluator v2 (cronjob Hermes
no desktop, job d398b5e2c3be) lê os registos do worklog/#33 autonomamente e leva-os para a sua BD;
corre diariamente e gera ticket "Sugestões de Melhoria — Semana X" às segundas.
O /worklog NÃO dispara nem chama o evaluator — apenas regista.
(v1 HTTP :8095 http-trigger.py descontinuada/arquivada em 99-Arquivo/improvement-evaluator-v1-legado/.
Servidor "dev"/CT 102 abatido em 20-04-2026 — Regra #48; qualquer chamada ssh_execute(server:"dev")
falha sempre, não usar.)
8. SE insight valioso → save_memory Supabase
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 git (`git rev-parse --git-dir`)
@@ -114,8 +93,24 @@ Skill unificada: regista trabalho, analisa sessão, sugere acções, guarda mem
- `git commit -m "worklog: [tarefa #ID] descrição da sessão"`
- `git push origin <branch>`
- Registar resultado no output final
e. Se sem alterações: omitir silenciosamente
9. Confirmar
e. Se sem alterações: omitir (não mencionar)
9. HIGIENIZAÇÃO (obrigatório SE algum .md dentro do Hub foi criado/editado nesta sessão — PROC-Higienizacao-Documental.md, XDP-HIG-001):
a. CRIAR OKF: para cada .md novo que representa sistema/aplicação/processo real (não nota solta,
não template) — verificar se já existe ficha de entidade. Se não existe: criar 5W2H-PDCA agora,
não adiar. `bash 04-Stack/scripts/okf-detect-new.sh --hub --json /tmp/wl-detect.json` para listar
candidatos; `bash 04-Stack/scripts/okf-suggest-entity.sh <path>` para gerar proposta por ficheiro.
b. ACTUALIZAR REFERÊNCIAS: se alguma métrica/nome/link mudou nesta sessão, grep pelo valor antigo
nos documentos "vivos" (mapas de ecossistema, STK-Estado-Actual, fichas OKF relacionadas) e
propagar a correcção. Documentos históricos datados (changelogs antigos, snapshots rotulados
"auditado em DD-MM") NÃO se reescrevem.
c. ELIMINAR FICHEIROS DESNECESSÁRIOS: procurar `.bak`/`.tmp`/rascunhos/relatórios
`VALIDACAO-FASE-F-*.md` avulsos criados nesta sessão e remover antes do fecho.
d. ORGANIZAR E INDEXAR: directório novo criado nesta sessão tem `index.md`? Está referenciado no
MOC/índice do directório pai? Se não, corrigir agora.
e. Se algum dos 4 tópicos foi genuinamente ignorado (ex: nenhum .md tocado), omitir silenciosamente
esta secção do output. Se foi aplicável e ficou por fazer, reportar como bloqueio explícito —
nunca como "nota para depois".
10. Confirmar
```
**Output:**
@@ -129,6 +124,7 @@ Discussão: #31 (Logs)
Acções: 2 sugeridas (#33)
Memória: Guardada / N/A
Git: commit abc1234 → push OK
Higienização: N/A (sem alterações no Hub) | OK (4/4 tópicos) | 2 pendências reportadas como bloqueio
```
---
@@ -234,6 +230,18 @@ Chamado automaticamente pelo `/today` às segundas-feiras. Publica em **#32**.
2. Agregar padrões e métricas
3. Gerar resumo semanal
4. Identificar melhorias prioritárias
5. FAXINA DE REPO (semanal — âmbito repo inteiro, complementa o Passo 9 diário que só vê a sessão):
a. LIXO → QUARENTENA (nunca rm directo — eliminação é T3):
- detectar por padrão mecânico: *.bak, *.tmp, *~, .xdp-*, VALIDACAO-FASE-F-*.md com >7 dias,
duplicados exactos por checksum (md5sum)
- mover para 99-Arquivo/quarentena/YYYY-WW/ preservando path relativo
- listar no relatório semanal (#32) para aprovação do Emanuel
- purga: só de quarentenas com >30 dias E semana aprovada — nunca na mesma semana
b. ÍNDICES vs REALIDADE: contagens/listas declaradas em index.md e MOCs vs `find` real
(check V-INDICE/N4 do APROFUNDAMENTO 01) — divergência → corrigir o índice, reportar no resumo
c. OKF SEMANAL: `bash 04-Stack/scripts/okf-detect-new.sh --hub` sobre a semana inteira
(apanha o que os Passos 9a diários deixaram escapar)
d. Output ganha secção "Faxina": N em quarentena / M índices corrigidos / K fichas OKF criadas
```
**Formato:**
@@ -279,48 +287,16 @@ Quando `/time stop` é executado:
---
## Auto-Save Memória (Passo 8)
## Auto-Save Memória
**Destino:** `mcp__memory-supabase__save_memory` — para conhecimento pesquisavel semanticamente.
**NAO usar para:** regras estaveis de sessao (→ CC memory ficheiro .md) ou factos rapidos (→ QR-*.md).
### Criterios: guardar ou nao
| Tipo | Exemplo | Guardar? | Tag tipo |
|------|---------|----------|----------|
| Solucao tecnica nova | Fix para erro MCP | Sim | `solucao-tecnica` |
| Configuracao sistema | Novo MCP configurado | Sim | `configuracao` |
| Workaround descoberto | Bypass para bug | Sim | `workaround` |
| Padrao novo | "X funciona melhor que Y" | Sim | `padrao` |
| Decisao arquitectural | Escolha de abordagem | Sim | `decisao` |
| Incidente resolvido | Crash + root cause | Sim | `incidente` |
| Pipeline criado/alterado | Novo workflow n8n | Sim | `pipeline` |
| Licao aprendida | Abordagem A falhou, B funcionou | Sim | `lesson-learned` |
| Trabalho rotineiro | Updates, limpeza | Nao | — |
| Feedback do user | "nao faz X" | Nao (→ CC memory) | — |
| ID/path/comando novo | Nova porta, novo ID | Nao (→ QR-*.md) | — |
### Taxonomia de tags obrigatoria
```
tags: [tipo, dominio, projecto?, data-yyyy-mm]
```
**tipo** (obrigatorio): `solucao-tecnica` | `decisao` | `padrao` | `incidente` | `configuracao` | `pipeline` | `lesson-learned` | `workaround`
**dominio** (obrigatorio): `infra` | `wordpress` | `crm` | `paperclip` | `inteligencia` | `seo` | `dev` | `hub` | `mcp` | `podcast` | `marketing`
**projecto** (opcional): `fluxo-seo` | `pleno` | `whatsms` | `inteligencia` | `rag-system` | etc
**data** (obrigatorio): formato `yyyy-mm` (ex: `2026-04`)
**Exemplo:**
```javascript
mcp__memory-supabase__save_memory({
content: "Fix MCP memory-supabase: stats retornava 100 em vez de 11.936. Causa: chamava getAllMemories (cap 100) em vez de getMemoryStatistics(). Solução: chamar RPC directamente.",
tags: ["solucao-tecnica", "mcp", "rag-system", "2026-04"]
})
```
| Tipo | Exemplo | Guardar? |
|------|---------|----------|
| Solução técnica nova | Fix para erro MCP | Sim |
| Configuração sistema | Novo MCP configurado | Sim |
| Workaround descoberto | Bypass para bug | Sim |
| Padrão novo | "X funciona melhor que Y" | Sim |
| Decisão arquitectural | Escolha de abordagem | Sim |
| Trabalho rotineiro | Updates, limpeza | Não |
---
@@ -374,41 +350,36 @@ Perguntas ao analisar sessão:
## Anti-Patterns
- **NUNCA** criar worklog sem dados de sessão NEM de contexto externo
- **NUNCA** declarar "sessão vazia" sem verificar git diff, logs e ficheiros recentes
- **NUNCA** criar worklog sem dados de sessão
- **NUNCA** usar Markdown em comentários (usar HTML)
- **NUNCA** guardar memória para trabalho rotineiro
- **NUNCA** duplicar reflexão e worklog (são o mesmo)
- **NUNCA** ignorar worklogs manuais em 00-Inbox — se existem, usá-los como fonte
- **NUNCA** fazer fork (Skill tool/Agent tool) para executar /worklog — perde o contexto conversacional que é a fonte primária. Anti-padrão verificado 2026-04-23.
- **NUNCA** omitir o Passo 9 (Higienização) quando a sessão tocou ficheiros do Hub — nem reportar "arrumado" sem correr os 4 tópicos.
- **NUNCA** chamar `ssh_execute(server: "dev")` ou qualquer referência ao servidor `dev`/CT 102 — abatido em 20-04-2026 (Regra #48), o alias já não existe em `~/.ssh/config`.
- **NUNCA** `rm` directo na faxina semanal — eliminação é T3 (irreversível): quarentena → aprovação → purga 30d. Um falso positivo com rm destrói trabalho; com quarentena custa um `mv`.
---
## Changelog
### v4.6.0 (2026-04-20)
- Fix critico cross-session: /worklog invocado como slash command abre sessão nova — agora escolhe o activity.log MAIOR das últimas 2h em vez de session_id actual
- Passo 3C expandido: find em Hub/mcp-servers/systemd/plugins/.claude-work (3h) + check comentários Desk do dia
- Anti-pattern reforçado: activity.log <5KB = sessão wrapper, não real — ignorar
### v4.8.0 (2026-07-03)
- `/reflect week` ganha passo 5 (Faxina de Repo): quarentena de lixo por padrão mecânico (*.bak, *.tmp, *~, .xdp-*, VALIDACAO-* >7d, duplicados por checksum) em `99-Arquivo/quarentena/YYYY-WW/` com aprovação humana e purga a 30d; revisão índices vs disco (check V-INDICE/N4); okf-detect-new semanal. Complementa o Passo 9 diário (âmbito sessão) com âmbito repo. Racional: eliminação é T3 na matriz de tiers (SPEC Pipeline QT); diário=delta, semanal=estado.
### v4.5.0 (2026-04-13)
- Passo 8 expandido: criterios claros para guardar em Supabase vs CC memory vs QR
- Taxonomia de tags obrigatoria: [tipo, dominio, projecto?, data-yyyy-mm]
- 8 tipos de tag, 11 dominios, exemplo concreto de save_memory
### v4.7.1 (2026-07-02)
- **Bug corrigido:** passo 7b chamava `mcp__ssh-unified__ssh_execute({ server: "dev", ... })` para disparar o improvement-evaluator — servidor `dev`/CT 102 foi abatido em 20-04-2026 (Regra #48), chamada falhava sempre (dead code). Substituído por texto informativo: o evaluator é 100% autónomo (cronjob Hermes no desktop), `/worklog` nunca dispara nada.
- Sincronizado conteúdo entre skill instalada (1.3.0), skill em cache (1.4.0) e fonte marketplace (que estava truncada a 107 linhas) — as três eram divergentes.
### v4.4.0 (2026-04-13)
- Git checkpoint integrado como passo 8b: detecta .desk-project + git, gera entrada CHANGELOG rica a partir do "Trabalho Realizado", commit + push automático no fim de cada worklog
### v4.7.0 (2026-07-02)
- Passo 9 (Higienização) novo: obrigatório sempre que a sessão tocou .md do Hub — 4 tópicos (criar OKF, actualizar referências, eliminar ficheiros desnecessários, organizar e indexar). Ver PROC-Higienizacao-Documental.md, XDP-HIG-001, regra CARL GLOBAL#19.
- Frontmatter corrigido: removido `context: fork` (bug — contradizia a regra "nunca fork" já documentada; causava perda de contexto conversacional em produção). Aviso inline reforçado no topo do ficheiro.
- Output final ganha linha "Higienização: ..."
### v4.3.0 (2026-04-12)
- Fix critico: sessão vazia não aborta sem verificar contexto externo
- Passo 3B: recolha obrigatoria de git diff, logs, ficheiros recentes e worklogs manuais
- Regra: se conversa vazia mas contexto externo tem dados, usar contexto externo
- Anti-pattern actualizado: nunca declarar "sessão vazia" sem verificar fontes externas
### v4.2.1 (2026-04-20)
- Trigger improvement-evaluator migrado de SSH dev→curl localhost (CT 102 abatido, serviço no desktop via systemd)
### v4.3.0 (2026-04-13)
- Git checkpoint integrado como passo 8b: detecta .desk-project + git, gera entrada CHANGELOG rica, commit + push automático no fim de cada worklog
### v4.2.0 (2026-03-12)
- Integração improvement-evaluator: passo 7b trigger automático ao dev (POST :8095/trigger)
- Integração improvement-evaluator: passo 7b trigger automático ao dev (POST :8095/trigger) — **descontinuado na v4.7.1** (ver acima)
- Acções publicadas em #33 são avaliadas imediatamente pelo agente cron no dev
### v4.0.0 (2026-02-06)
@@ -425,36 +396,6 @@ Perguntas ao analisar sessão:
- Auto-trigger ao parar timer
- Formato HTML alinhado com Regra #27
---
## Self-Healing
Antes de executar, ler `~/.claude-work/healing/worklog.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 v4.3.0 | 2026-04-12 | Descomplicar(R)*
---
## Healing Log
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
```jsonl
{"date":"2026-04-12","issue":"Sessão declarada vazia quando havia trabalho real (15 episódios podcast produzidos). Skill abortou sem verificar fontes externas.","fix":"Sempre executar passo 3B (git diff, logs, ficheiros recentes, worklogs manuais) antes de declarar sessão vazia. Se contexto externo tem dados, usar como fonte principal.","source":"user"}
```
*Adicionar nova linha após cada erro corrigido.*
---
*Skill v4.5.0 | 2026-04-13 | Descomplicar®*
*Skill v4.8.0 | 2026-07-03 | Descomplicar®*