diff --git a/gestao/.claude-plugin/plugin.json b/gestao/.claude-plugin/plugin.json index 460e5d1..1a53de4 100644 --- a/gestao/.claude-plugin/plugin.json +++ b/gestao/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "gestao", "description": "Project management, time tracking, daily checkups, worklogs, reflections, knowledge management, archiving and compliance auditing. Backed by NotebookLM notebooks.", - "version": "1.4.0", + "version": "1.6.1", "author": { "name": "Descomplicar - Crescimento Digital", "url": "https://descomplicar.pt" @@ -13,6 +13,9 @@ "projectos", "tempo", "worklog", + "qw", + "recapitulacao", + "memoria", "produtividade", "conhecimento", "compliance", diff --git a/gestao/skills/qw/README.md b/gestao/skills/qw/README.md new file mode 100644 index 0000000..ca6d851 --- /dev/null +++ b/gestao/skills/qw/README.md @@ -0,0 +1,88 @@ +# /qw — Quick Wrap-up + +Recapitulação rápida de sessão. Resumo + actualização de docs + memória mem0. + +## Uso Rápido + +```bash +/qw # Recapitulação completa +/qw --docs # Apenas actualizar docs +/qw --mem # Apenas guardar memória mem0 +``` + +## O Que Faz + +| Função | Tempo | Output | +|--------|-------|--------| +| **Resumo** | <30s | 3 bullets do trabalho realizado | +| **Docs** | <30s | Actualiza README/CHANGELOG | +| **Memória** | <30s | Cria entrada mem0 com protocolo Wayland v2 | + +## Exemplo Prático + +**Situação:** Acabaste de criar a skill `/qw` em 45 minutos. + +``` +/qw +``` + +**Output Automático:** +``` +✅ Quick Wrap-up — 2026-07-02 16:45 + +📝 RESUMO +• SKILL.md criada — skill /qw para recapitulação rápida de sesões +• Docs actualizados — plugin.json v1.5.0, CHANGELOG com entrada +• Memória guardada — mem0 Wayland v2 com tags skill,gestao + +📦 FICHEIROS ALTERADOS + + ~/.claude/plugins/.../gestao/skills/qw/SKILL.md + + ~/.claude/plugins/.../gestao/skills/qw/README.md + ~ ~/.claude/plugins/.../gestao/CHANGELOG.md + +💾 MEM0 + ID: mem0_xyz1234567890 + Entrada: "Skill /qw criada | propósito | recapitulação rápida sesões" + Tags: skill, gestao + Tier: global + +⏱️ Duração: 42s | Estado: OK ✓ +``` + +## Diferenças: /qw vs /worklog + +| Aspecto | `/qw` | `/worklog` | +|---------|-------|-----------| +| **Tempo** | <2 min | ~5-10 min | +| **Resumo** | 3 bullets max | Análise profunda | +| **Docs** | Básico (README) | Completo + higienização OKF | +| **Memória** | mem0 simple | Supabase + insights profundos | +| **Uso** | Sesões curtas, tarefas isoladas | Fim de trabalho, reflexão | +| **Git commit** | Omitido | Automático se hub/.desk-project | + +## Configuração + +- **Execução:** Inline (nunca fork) +- **Staff ID:** 25 (Claude — ou o do utilizador) +- **MCP:** mem0 (gateway.descomplicar.pt) +- **Plugin:** gestao +- **Skill:** qw + +## Protocolo Mem0 + +Wayland v2 (Semantic P3): + +```json +{ + "subject": "Skill /qw criada", + "predicate": "propósito", + "object": "recapitulação rápida sesões", + "tags": ["skill", "gestao"], + "tier": "global", + "maxLength": 80 +} +``` + +--- + +**Versão:** 1.0 | **Data:** 2026-07-02 | **Autor:** Claude (staff_id 25) diff --git a/gestao/skills/qw/SKILL.md b/gestao/skills/qw/SKILL.md new file mode 100644 index 0000000..08f0e7f --- /dev/null +++ b/gestao/skills/qw/SKILL.md @@ -0,0 +1,134 @@ +--- +name: qw +description: "Recapitulação rápida de sessão — resumo conciso do trabalho feito, actualização de docs e memória mem0. Uso: /qw ao finalizar tarefa ou sessão curta. Complemento leve ao /worklog." +--- + +# /qw v1.0 — Quick Wrap-up (Recapitulação Rápida) + +**⚠️ EXECUÇÃO INLINE OBRIGATÓRIA — NUNCA FORK** + +Protocolo simples e rápido (máx 2 min) para fechar sesões curtas ou tarefas isoladas. Complemento ao `/worklog` (pesado). + +--- + +## Comandos + +| Comando | Função | +|---------|--------| +| `/qw` | Recapitulação rápida + mem0 | +| `/qw --docs` | Actualizar docs (README, CHANGELOG) | +| `/qw --mem` | Guardar memória mem0 apenas | + +--- + +## Protocolo Principal (/qw) + +``` +1. Obter hora actual (mcp__mcp-time__current_time) +2. RESUMIR sessão em máx 3 bullets: + - Ficheiro(s) modificado(s) + linha brevíssima do quê + - Problema resolvido / Tarefa finalizada + - Padrão/insight (se relevante) +3. ACTUALIZAR docs (escolher 1): + a. Se ficheiro novo: adicionar linha ao README (secção "Estrutura" ou similar) + b. Se ficheiro existente alterado: actualizar CHANGELOG (formato: - YYYY-MM-DD Descrição) + c. Se nenhum doc relevante: omitir +4. GUARDAR memória mem0: + - Tipo: semantic (P3) — facto conciso e reutilizável + - Tags: mínimo 2 (ex: "task", "bugfix" ou "feature", "integracao") + - Conteúdo: "O que foi feito + resultado" (máx 80 chars) + - tier: global se cross-projecto, project se específico +5. OUTPUT: + - Resumo legível + - Ficheiros afectados + - Link memória (se criada) +``` + +--- + +## Exemplo de Uso + +**Input:** +``` +/qw +``` + +**Output (gerado automático):** +``` +✅ Quick Wrap-up — 2026-07-02 16:45 + +📝 RESUMO +• qw/SKILL.md criada — skill recapitulação rápida +• docs atualizados — README.md com link nova skill +• memória guardada (mem0) — meta skill gestao/qw + +📦 FICHEIROS + - ~/.claude/plugins/.../gestao/skills/qw/SKILL.md (novo) + - ~/.claude/plugins/.../gestao/README.md (actualizado) + +💾 MEM0 + ID: mem0_xyz... + "Criada skill /qw para recapitulação sessões curtas" + Tags: skill, gestao + +--- +⏱️ Duração: 45s | Estado: OK +``` + +--- + +## Storage + +Memória mem0 (gateway.descomplicar.pt/v1/mem0/mcp): +- **Protocolos:** Wayland v2 (P5/P4/P3, tags, tier) +- **Limite:** máx 80 chars por entrada +- **Dedup:** verificar `ijfw_memory_recall` antes de guardar +- **Tier:** `global` para skill/padrão cross-projecto, `project` para específico + +--- + +## Variantes + +### `/qw --docs` (Actualizar Docs) +Apenas actualiza README/CHANGELOG sem resumo: +``` +- Procura README ou CHANGELOG na pasta actual (até 2 níveis acima) +- Insere/actualiza entrada +- Omite memória e resumo +``` + +### `/qw --mem` (Memória Apenas) +Apenas guarda mem0, sem resumo: +``` +- Pede prompt: "Qual o insight para guardar?" +- Formata e guarda via mem0 MCP +- Output: ID memória apenas +``` + +--- + +## Integração com Plugin gestao + +Local: `~/.claude/plugins/marketplaces/descomplicar-plugins/gestao/skills/qw/` + +Ficheiros: +- `SKILL.md` — este ficheiro +- `prompts/` — templates de prompts (se necessário) + +Regra CLAUDE.md: Skills gestao executam INLINE (nunca fork). Sem subagentes. + +--- + +## Checklist Implementação + +- [x] SKILL.md criada +- [ ] Skill registada em plugin.json (gestao) +- [ ] Prompts adicionados (se necessário) +- [ ] Teste manual: `/qw` +- [ ] Teste com --docs flag +- [ ] Teste com --mem flag +- [ ] Validação mem0 (verificar entrada criada) + +--- + +**Versão:** 1.0 | **Data:** 2026-07-02 | **Plugin:** gestao | **Staff:** 25 (Claude) diff --git a/gestao/skills/qw/prompts/base.md b/gestao/skills/qw/prompts/base.md new file mode 100644 index 0000000..4cc13fd --- /dev/null +++ b/gestao/skills/qw/prompts/base.md @@ -0,0 +1,82 @@ +# Prompt Base — /qw Quick Wrap-up + +## Sistema + +Tu és a instância Claude Code, execução INLINE. Tarefa: gerar recapitulação rápida de sessão. + +**Restrições:** +- Máx 3 bullets resumo +- Máx 80 chars por memória +- Sem subagentes (execução síncrona) + +## Entrada (Contexto) + +Contexto da sessão actual: +- Timestamp: [HORA ACTUAL] +- Ficheiros modificados: [Lista Edit/Write calls] +- MCPs usados: [Lista MCP calls] +- Erros resolvidos: [Se aplicável] +- Tarefas: [Desk CRM task se linkada] + +## Processamento + +### 1. Resumir (Máx 60s) +```markdown +## ✅ Resumo Sessão — YYYY-MM-DD HH:MM + +• [Ficheiro] — [O que mudou, 1 linha] +• [Tarefa] — [Resultado/status] +• [Padrão] — [Insight reutilizável, se houver] +``` + +### 2. Actualizar Docs (Máx 30s) +``` +Se ficheiro NOVO: + README.md secção "Estrutura" → adicionar linha + +Se ficheiro ALTERADO: + CHANGELOG.md → linha em ## [Unreleased]: + - YYYY-MM-DD Descrição concisa +``` + +### 3. Memória mem0 (Máx 30s) +``` +- Protocolо Wayland v2 (P3 — fact) +- Sujeito | predicado | objecto +- Tags: mínimo 2 (task, feature, bugfix, integration, etc) +- Tier: global / project +- Exemplo: + "Skill /qw criada | propósito | recapitulação sessões curtas" +``` + +## Output Final + +``` +✅ Quick Wrap-up — [TIMESTAMP] + +📝 RESUMO +[3 bullets aqui] + +📦 FICHEIROS ALTERADOS +[Lista] + +💾 MEM0 +ID: [mem0_id] +Conteúdo: [entrada] + +⏱️ Duração: [segundos]s | Estado: OK +``` + +--- + +## Flags + +### `--docs` +Apenas actualizar docs (README, CHANGELOG). Omitir resumo. + +### `--mem` +Apenas guardar memória. Pedir prompt input: "Insight para guardar?" + +--- + +Versão: 1.0 | 2026-07-02 diff --git a/gestao/skills/qw/prompts/examples.md b/gestao/skills/qw/prompts/examples.md new file mode 100644 index 0000000..c26d5da --- /dev/null +++ b/gestao/skills/qw/prompts/examples.md @@ -0,0 +1,202 @@ +# Exemplos de Uso — /qw + +## Exemplo 1: Criar Ficheiro Novo + +**Contexto:** Acabaste de criar `novo-modulo.js` com 150 linhas. + +```bash +/qw +``` + +**Processamento automático:** +1. Detecta novo ficheiro: `novo-modulo.js` +2. Actualiza `README.md` secção "Estrutura" com: `- novo-modulo.js — módulo XYZ` +3. Cria memória mem0: + - Subject: "novo-modulo.js" + - Predicate: "criado para" + - Object: "funcionalidade XYZ" + - Tags: "feature", "javascript" + - Tier: "project" + +**Output:** +``` +✅ Quick Wrap-up — 2026-07-02 14:23 + +📝 RESUMO +• novo-modulo.js criado — 150 linhas, export default class XYZ +• README actualizado — secção Estrutura +• Memória guardada — mem0 (feature/javascript) + +📦 FICHEIROS + + novo-modulo.js + ~ README.md + +💾 MEM0 ID: mem0_abc123... + +⏱️ 38s | OK +``` + +--- + +## Exemplo 2: Bugfix + Docs + +**Contexto:** Corrigiste bug em `auth.js` linha 45 (return typo). + +```bash +/qw +``` + +**Processamento:** +1. Detecta ficheiro alterado: `auth.js` +2. Actualiza `CHANGELOG.md` em `## [Unreleased]`: + ``` + - 2026-07-02 [auth] Corrigido typo return em validação token + ``` +3. Memória mem0: + - Subject: "auth.js" + - Predicate: "bugfix" + - Object: "return typo validação token (linha 45)" + - Tags: "bugfix", "javascript" + +**Output:** +``` +✅ Quick Wrap-up — 2026-07-02 14:25 + +📝 RESUMO +• auth.js corrigido — typo return em validação token (linha 45) +• CHANGELOG actualizado — entrada [Unreleased] +• Memória guardada — mem0 (bugfix/javascript) + +📦 FICHEIROS + ~ auth.js + +💾 MEM0 ID: mem0_def456... + +⏱️ 22s | OK +``` + +--- + +## Exemplo 3: Usar Flag --docs + +**Contexto:** Já refiste 3 ficheiros mas esqueceste de actualizar README. + +```bash +/qw --docs +``` + +**Processamento:** +1. Detecta ficheiros alterados +2. Apenas actualiza README/CHANGELOG +3. Omite resumo e memória +4. Output minimalista + +**Output:** +``` +✅ Docs Updated — 2026-07-02 14:27 + +📦 FICHEIROS + ~ README.md + ~ CHANGELOG.md + +⏱️ 8s | OK +``` + +--- + +## Exemplo 4: Usar Flag --mem + +**Contexto:** Descobriste um padrão interessante durante a sessão. + +```bash +/qw --mem +``` + +**Processamento:** +1. Pede input: "Qual o insight para guardar?" +2. Utilizador responde: "Usar useCallback para memoização em loops React" +3. Formata e guarda em mem0 +4. Output: apenas ID memória + +**Output:** +``` +💾 MEM0 Saved + +ID: mem0_ghi789... +Entrada: "useCallback | memoização | loops React evita re-renders" +Tags: react, performance, padrão +Tier: global + +⏱️ 15s | OK +``` + +--- + +## Exemplo 5: Integração com Desk CRM + +**Contexto:** Estás a trabalhar na tarefa #2401 do Desk. + +```bash +/qw +``` + +**Processamento automático (se `.desk-project` detectado):** +1. Lê `.desk-project` → tarefa_id = 2401 +2. Gera resumo com link à tarefa +3. Memória mem0 inclui ref task_id + +**Output:** +``` +✅ Quick Wrap-up — 2026-07-02 14:30 + +📝 RESUMO +• Tarefa #2401 — implementação API endpoint /users +• Documentação atualizada — docs/api.md com endpoint spec +• Memória guardada — mem0 com ref task #2401 + +📦 FICHEIROS + + src/api/endpoints/users.js + ~ docs/api.md + +💾 MEM0 ID: mem0_jkl012... [task_id: 2401] + +⏱️ 35s | OK +``` + +--- + +## Exemplo 6: Nenhum Ficheiro Alterado + +**Contexto:** Tiveste uma sessão de investigação/leitura apenas (sem edições). + +```bash +/qw +``` + +**Processamento:** +1. Detecta: sem Edit/Write calls +2. Omite output (nada para registar) +3. Log silencioso: `[QW] Nada para registar — sessão leitura` + +**Output:** +``` +ℹ️ Quick Wrap-up + +Nenhum ficheiro alterado nesta sessão. Omitido. +``` + +--- + +## Checklist Implementação (Para Testar) + +- [ ] Criar novo ficheiro, rodar `/qw`, verificar README/CHANGELOG +- [ ] Editar ficheiro existente, rodar `/qw`, verificar CHANGELOG +- [ ] Testar `/qw --docs` (só docs) +- [ ] Testar `/qw --mem` (só memória, com input) +- [ ] Verificar mem0 entries criadas em gateway.descomplicar.pt +- [ ] Testar em projecto com `.desk-project` (task link) +- [ ] Testar sem alterações (nada para registar) + +--- + +**Versão:** 1.0 | 2026-07-02 diff --git a/gestao/skills/report-5w2h/README.md b/gestao/skills/report-5w2h/README.md new file mode 100644 index 0000000..2c8e447 --- /dev/null +++ b/gestao/skills/report-5w2h/README.md @@ -0,0 +1,136 @@ +# /report — 5W2H + PDCA Report + +Estrutura formal de conclusão de tarefas/etapas com análise 5W2H + PDCA. + +## Uso Rápido + +```bash +/report # Report completo (interactivo) +/report --quick # Versão resumida (3 campos) +/report --auto # Auto-detectado de contexto +``` + +## O Que Faz + +| Função | Tempo | Output | +|--------|-------|--------| +| **5W2H** | <2 min | Tabela QUÊ/QUEM/QUANDO/ONDE/POR QUÊ/COMO/CUSTO | +| **PDCA** | <2 min | Ciclo Plan/Do/Check/Act | +| **Docs** | <1 min | README, CHANGELOG, PROC se relevante | +| **Memória** | <1 min | Entry mem0 Wayland v2 | +| **Desk** | <1 min | Comment em discussão #33 se .desk-project | + +## Exemplo + +```bash +/report +``` + +**Output:** +``` +# 5W2H Report — Criar skill /qw + +| Campo | Resposta | +|-------|----------| +| QUÊ | Skill /qw para recapitulação rápida sesões | +| QUEM | claude (staff_id 25) | +| QUANDO | 2026-07-02 16:00–16:45 (45 min) | +| ONDE | ~/.claude/plugins/.../gestao/skills/qw/ | +| POR QUÊ | Complemento /worklog para sesões curtas | +| COMO | Criação skill (SKILL.md + README + prompts) | +| CUSTO | Est: 30 min → Real: 45 min (+50% desvio) | + +## PDCA + +### PLAN +Objectivo: Skill recapitulação rápida de sesões curtas +Criteria: <2 min execução, mem0 integrado, docs actualizados +Scope: SKILL.md, README, 2 prompts + +### DO +• Criado SKILL.md com protocolo (v1.0) +• Criado README.md com guia + exemplos +• Criado prompts/base.md e examples.md (6 exemplos) +• Plugin gestao actualizado (v1.5.0) +• Desvio: Tempo +50% (escopo expandiu) + +### CHECK +✅ SKILL.md conforme template +✅ README com 3 flags +✅ Prompts documentados +✅ Plugin integrado +⚠️ Teste /qw ainda pendente + +### ACT +Próximo: Teste manual /qw +Validar mem0 entries criadas +Considerar symlink OpenCode +Documentar tempo real em CHANGELOG + +--- + +## MEM0 +ID: mem0_xyz123 +Entry: "Skill /qw criada | propósito | recapitulação rápida sesões" +Tags: skill, gestao, mem0, recapitulacao +Tier: global + +--- + +## DOCS UPDATED +✅ plugin.json (v1.4.0 → 1.5.0) +✅ CHANGELOG.md (entrada [1.5.0]) + +--- + +⏱️ Report: 2 min 15s | COMPLETO +``` + +## Integração CARL + +**Domínio:** TASK-COMPLETION-REPORT +**Triggers:** "concluído", "finalizado", "pronto", "terminado", "etapa completa" +**Auto-disparo:** Sim (sem confirmação necessária) + +## Estrutura 5W2H + +| Campo | Descrição | Exemplo | +|-------|-----------|---------| +| **QUÊ** | Deliverable/resultado | "Skill /qw criada" | +| **QUEM** | Executor (staff_id) | "claude (25)" | +| **QUANDO** | Timestamp início-fim | "16:00–16:45 (45 min)" | +| **ONDE** | Ficheiro/pasta/sistema | "~/.claude/plugins/.../gestao/" | +| **POR QUÊ** | Objectivo/motivação | "Complemento /worklog para sesões curtas" | +| **COMO** | Método/processo | "Criação skill com SKILL.md + README + prompts" | +| **CUSTO** | Tempo estimado vs real | "Est: 30 min → Real: 45 min (+50%)" | + +## Ciclo PDCA + +1. **PLAN** — Spec original, criteria de sucesso, scope +2. **DO** — Passos executados, decisões, desvios documentados +3. **CHECK** — Resultado vs criteria, gaps, testes +4. **ACT** — Ajustes necessários, próximas acções, melhorias + +## Flags + +### `--quick` +Report resumido — apenas 3 campos (QUÊ, COMO, RESULTADO). + +### `--auto` +Auto-detecta contexto: +- Git: commits e ficheiros alterados +- Desk: task_id e tempo loggado +- .desk-project: extrai dados de projecto +- Timer activo: usa duração real + +## Output + +- **Resumo visual:** Tabela 5W2H +- **Análise:** PDCA em markdown +- **Docs:** README/CHANGELOG/PROC actualizados +- **Memória:** Entry mem0 Wayland v2 criada +- **Desk:** Comment em #33 (se .desk-project) + +--- + +**Versão:** 1.0 | **Data:** 2026-07-02 | **Autor:** Claude (staff_id 25) diff --git a/gestao/skills/report-5w2h/SKILL.md b/gestao/skills/report-5w2h/SKILL.md new file mode 100644 index 0000000..9fed6e9 --- /dev/null +++ b/gestao/skills/report-5w2h/SKILL.md @@ -0,0 +1,236 @@ +--- +name: report +description: Report 5W2H+PDCA ao terminar tarefa/etapa — estrutura formal de conclusão com análise de resultados, documentação e memória. Integrado no domínio TASK-COMPLETION-REPORT do CARL. +--- + +# /report v1.0 — 5W2H + PDCA Report + +**⚠️ EXECUÇÃO INLINE OBRIGATÓRIA — NUNCA FORK** + +Protocolo formal ao terminar tarefa/etapa. Estrutura: 5W2H (QUÊ/QUEM/QUANDO/ONDE/POR QUÊ/COMO/CUSTO) + PDCA (Plan/Do/Check/Act). + +--- + +## Comandos + +| Comando | Função | +|---------|--------| +| `/report` | Report completo 5W2H+PDCA (interactivo) | +| `/report --quick` | Versão resumida (3 campos) | +| `/report --auto` | Auto-detectado de contexto (git, ficheiros, etc) | + +--- + +## Protocolo Principal (/report) + +``` +1. RECOLHER 5W2H (interactivo ou auto-detectado): + QUÊ → O que foi entregue/resultado (deliverable) + QUEM → Executor (staff_id 25 ou outro) + QUANDO → Timestamp início/fim + ONDE → Ficheiro/pasta/sistema/Desk task + POR QUÊ → Objectivo/motivação original + COMO → Método/processo aplicado + CUSTO → Tempo estimado vs. real (em minutos) + +2. RECOLHER PDCA (estruturado): + PLAN → Spec original, success criteria, scope + DO → Passos executados, decisões, desvios documentados + CHECK → Resultado vs. criteria, gaps detectados, testes + ACT → Ajustes necessários, próximas acções, melhorias + +3. DOCUMENTAR: + a. Se novo ficheiro/sistema → README secção "Estrutura" + b. Se processo → criar PROC-*.md em Hub/06-Operacoes/Procedimentos/ + c. CHANGELOG.md → linha em ## [Unreleased] com resumo + d. Se SEM docs relevantes → omitir + +4. GUARDAR MEM0 (Wayland v2): + - subject | predicate | object (máx 80 chars) + - tags: mínimo 2 (task, feature, bugfix, etc) + - tier: project ou global + - Dedup: pesquisar com mcp__mem_search_memories antes (IJFW descontinuado — Mem0 é o store canónico) + +5. GUARDAR EM DESK (se .desk-project detectado): + - Discussão #33 (Acções de Melhoria) + - Format:
...
+ - HTML estruturado com tabela 5W2H + PDCA + - staff_id: 25 + +6. OUTPUT: + - Resumo visual com tabela 5W2H + - PDCA análise em markdown + - Link memória/Desk se criado + - Timestamp execução +``` + +--- + +## Exemplo: Report Completo + +**Input:** +``` +/report +``` + +**Processamento (interactivo):** +``` +5W2H REPORT — Qual a tarefa/etapa? +> Criar skill /qw + +QUÊ (Deliverable)? +> Skill /qw com recapitulação rápida + mem0 + +QUEM (executor)? +> claude (staff_id 25) + +QUANDO (inicio/fim)? +> Auto-detectado: 16:00 - 16:45 (45 min) + +ONDE (ficheiro/sistema)? +> ~/.claude/plugins/.../gestao/skills/qw/ + +POR QUÊ (objectivo)? +> Complemento leve ao /worklog para sesões curtas + +COMO (método)? +> Criação skill (SKILL.md + README + prompts) + +CUSTO (estimado vs real)? +> Estimado: 30 min, Real: 45 min +``` + +**Output:** + +```markdown +# 5W2H Report — Criar skill /qw + +| Campo | Resposta | +|-------|----------| +| QUÊ | Skill /qw para recapitulação rápida | +| QUEM | claude (staff_id 25) | +| QUANDO | 2026-07-02 16:00–16:45 (45 min) | +| ONDE | ~/.claude/plugins/.../gestao/skills/qw/ | +| POR QUÊ | Complemento /worklog para sesões curtas | +| COMO | Criação skill (SKILL.md + README + prompts) | +| CUSTO | Est: 30 min → Real: 45 min (+50% desvio) | + +## PDCA + +### PLAN +- Objectivo: Skill recapitulação rápida +- Criteria: <2 min execução, mem0 integrado, docs actualizados +- Scope: SKILL.md, README, 2 prompts + +### DO +- Criado SKILL.md com protocolo (v1.0) +- Criado README.md com guia + exemplos +- Criado prompts/base.md e examples.md (6 exemplos) +- Plugin gestao actualizado (v1.5.0) +- Desvio: Tempo +50% (escopo expandiu com docs extras) + +### CHECK +- ✅ SKILL.md conforme template +- ✅ README com 3 flags +- ✅ Prompts documentados +- ✅ Plugin integrado +- ⚠️ Teste /qw ainda pendente (não validado) + +### ACT +- Próximo: Teste manual /qw +- Validar mem0 entries +- Considerar symlink OpenCode +- Documentar tempo real em CHANGELOG + +--- + +## MEM0 + +ID: mem0_xyz123 +Entry: "Skill /qw criada | propósito | recapitulação rápida sesões" +Tags: skill, gestao, mem0, recapitulacao +Tier: global + +--- + +## DOCS UPDATED + +✅ plugin.json (v1.4.0 → 1.5.0) +✅ CHANGELOG.md (entrada [1.5.0]) +✅ SKILL.md criado +✅ README.md criado + +--- + +⏱️ Report duração: 2 min 15s | Estado: COMPLETO +``` + +--- + +## Flags + +### `--quick` +Apenas 3 campos obrigatórios: +``` +QUÊ (deliverable)? +COMO (método)? +RESULTADO (sucesso)? +``` + +### `--auto` +Auto-detecta contexto: +- Git: commits, ficheiros alterados +- Desk: task_id, tempo loggado +- .desk-project: extrai dados +- Timestamp: agora vs. timer activo + +--- + +## Integração CARL + +Domínio: **TASK-COMPLETION-REPORT** +Triggers: "concluído", "finalizado", "pronto", "terminado", "etapa completa" +Auto-disparo: Sem confirmação (injecção automática) +Output: Desk #33 ou mem0 conforme contexto + +--- + +## Estrutura 5W2H Obrigatória + +| Sigla | Campo | Obrigatório | Max | +|-------|-------|-------------|-----| +| W | QUÊ (What) | Sim | 120 chars | +| W | QUEM (Who) | Sim | 50 chars | +| W | QUANDO (When) | Sim | timestamp | +| W | ONDE (Where) | Sim | path/sistema | +| W | POR QUÊ (Why) | Sim | 100 chars | +| H | COMO (How) | Sim | 150 chars | +| H | CUSTO (How much) | Sim | tempo (min) | + +--- + +## PDCA Obrigatória + +| Fase | Campo | Detalhe | +|------|-------|---------| +| **P** | PLAN | Spec original, criteria, scope | +| **D** | DO | Passos, decisões, desvios | +| **C** | CHECK | Resultado vs criteria, gaps | +| **A** | ACT | Ajustes, próximas acções | + +--- + +## Checklist Implementação + +- [x] SKILL.md criada +- [ ] Skill registada em plugin.json +- [ ] CARL domínio TASK-COMPLETION-REPORT activado +- [ ] Teste manual: `/report` +- [ ] Teste flag: `--quick` +- [ ] Teste flag: `--auto` +- [ ] Validar Desk #33 entry +- [ ] Validar mem0 entry + +--- + +**Versão:** 1.0 | **Data:** 2026-07-02 | **Plugin:** gestao | **Staff:** 25 (Claude) diff --git a/gestao/skills/worklog/SKILL.md b/gestao/skills/worklog/SKILL.md index 6528a6d..4d06fe6 100644 --- a/gestao/skills/worklog/SKILL.md +++ b/gestao/skills/worklog/SKILL.md @@ -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