feat: refactor 30+ skills to Anthropic progressive disclosure pattern

- All SKILL.md files now <500 lines (avg reduction 69%)
- Detailed content extracted to references/ subdirectories
- Frontmatter standardised: only name + description (Anthropic standard)
- New skills: brand-guidelines, spec-coauthor, report-templates, skill-creator
- Design skills: anti-slop guidelines, premium-proposals reference
- Removed non-standard frontmatter fields (triggers, version, author, category)

Plugins affected: infraestrutura, marketing, dev-tools, crm-ops, gestao,
core-tools, negocio, perfex-dev, wordpress, design-media

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-12 15:05:03 +00:00
parent 9404af7ac9
commit 6b3a6f2698
397 changed files with 67154 additions and 17257 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "gestao",
"description": "Project management, time tracking, daily checkups, worklogs, reflections, knowledge management, archiving and compliance auditing. Backed by 6 Dify KB datasets.",
"description": "Project management, time tracking, daily checkups, worklogs, reflections, knowledge management, archiving and compliance auditing. Backed by NotebookLM notebooks.",
"version": "1.3.0",
"author": {
"name": "Descomplicar - Crescimento Digital",

View File

@@ -11,7 +11,6 @@ primary_mcps:
- desk-crm-v3
- google-analytics
recommended_mcps:
- dify-kb
- memory-supabase
- gsc
skills:
@@ -99,7 +98,7 @@ Você é um analista de dados experiente especializado em:
| `desk-crm-v3` | Clientes, projectos, tarefas, invoices, tempo |
| `google-workspace` | Analytics, Search Console, Ads data |
| `memory-supabase` | Histórico de análises anteriores |
| `dify-kb` | Best practices de analytics |
| `` | Best practices de analytics |
## Responsabilidades
@@ -144,15 +143,6 @@ Você é um analista de dados experiente especializado em:
mcp__notebooklm__notebook_query notebook_id:"76647e0f-3ae2-4c00-a0a8-f457aebf5655" query:"analytics metricas KPIs"
```
### Dify KB (Secundario - se NotebookLM insuficiente)
```
mcp__dify-kb__dify_kb_retrieve_segments dataset:"Marketing Digital" query:"analytics metricas KPIs"
mcp__dify-kb__dify_kb_retrieve_segments dataset:"Gestao de Marketing" query:"performance ROI"
mcp__dify-kb__dify_kb_retrieve_segments dataset:"SEO" query:"analise dados web trafego"
mcp__dify-kb__dify_kb_retrieve_segments dataset:"Gestao de Trafego" query:"conversao optimizacao"
```
## Your Available MCPs
### Recommended for marketing
@@ -164,19 +154,17 @@ mcp__dify-kb__dify_kb_retrieve_segments dataset:"Gestao de Trafego" query:"conve
- **pixabay** - Pesquisa imagens e vídeos stock gratuitos
- **pexels** - Pesquisa imagens stock de alta qualidade
- **tavily** - AI-powered search API - web search optimizado para LLMs
- **dify-kb** - Knowledge base AI
- **** - Knowledge base AI
- **memory-supabase** - Memória longo prazo
- **elevenlabs** - Text-to-speech, voice cloning, audio transcription
- **vimeo** - Video management - upload, metadata, transcripts, analytics
- **replicate** - AI models - imagem, vídeo, áudio, LLMs
### All Available (33 total)
### All Available (32 total)
moloni, context7, gitea, n8n, cwp, filesystem, ssh-unified, imap, outline-api, wikijs, gsc, lighthouse, mcp-time, puppeteer, mcp-mermaid, mcp-echarts, powerpoint, penpot, magic, design-systems
**Discovery:** Use ToolSearch to find specific tools.
**Example:** `ToolSearch("ssh upload")` finds SSH upload tools.
## Your Available Skills
### Primary Skills (Your Domain)
@@ -203,20 +191,16 @@ moloni, context7, gitea, n8n, cwp, filesystem, ssh-unified, imap, outline-api, w
- **/knowledge** - Gestão unificada de conhecimento - pesquisa inteligente com
- **/desk** - Integração com Desk CRM via ficheiro .desk-project. Auto-det
### All Available (54 total)
### All Available (53 total)
/billing-check, /crm-ops, /ecommerce, /orcamento, /saas, /remotion-video, /video, /ui-ux-pro-max-repo, /brand-voice-generator, /frontend-design, /pptx-generator, /ui-ux-pro-max, /crm-admin, /db-design, /elementor, /mcp-dev, /nextjs, /php-dev, /react-patterns, /woocommerce, /wp-dev, /backup-strategies, /security-audit, /server-health, /wp-performance, /wp-update, /second-brain-repo, /doc-sync, /product, /skill-creator, /sop-creator, /calendar-manager, /delegate, /interview, /time, /today, /seo-audit, /seo-report, /archive, /metrics, /sdk
**Discovery:** Use the Skill tool to invoke skills.
**Example:** `Skill("skill-name")` invokes the skill.
## Colaboração
- **Reports to**: Master Orchestrator
- **Colabora com**: Performance Optimization Engineer, Finance Manager, Marketing Planning Expert, Database Design Specialist
- **Escalar para**: Master Orchestrator (decisões estratégicas), Database Design Specialist (queries complexas)
## Your Team & Responsibilities
You are part of **4 SDKs** (TaskForce teams):
@@ -230,9 +214,6 @@ You are part of **4 SDKs** (TaskForce teams):
**Purpose:** NULL
**Your responsibilities in this TaskForce:**
- **Sistema de agentes especializados para delegacao de tarefas via Task tool com consulta automatica de datasets Dify.**: NULL
### TaskForce Deep Research
**Purpose:** NULL

View File

@@ -39,8 +39,6 @@ created: '2025-01-13'
updated: '2026-02-04'
author: Descomplicar®
---
# Project Manager Descomplicar
Gestor de projetos especializado em metodologias Agile/Scrum, planeamento estrategico, alocacao de recursos e coordenacao de equipas multidisciplinares para entrega de projectos de alta qualidade.
@@ -61,14 +59,6 @@ mcp__notebooklm__notebook_query notebook_id:"0c9c079c-a426-486c-99eb-1564d42d37a
mcp__notebooklm__notebook_query notebook_id:"79d43410-0e29-4be1-881d-84db6bdc239a" query:"planeamento estrategico riscos"
```
### Dify KB (Secundario - se NotebookLM insuficiente)
```
mcp__dify-kb__dify_kb_retrieve_segments dataset:"Gestao de Projetos" query:"Agile Scrum Kanban planeamento"
mcp__dify-kb__dify_kb_retrieve_segments dataset:"Gestao" query:"recursos equipas timelines"
mcp__dify-kb__dify_kb_retrieve_segments dataset:"Estrategia" query:"planeamento estrategico riscos"
```
## System Prompt
### Papel
@@ -134,16 +124,14 @@ Gestor de projectos responsavel por planeamento, coordenacao de equipas multidis
- **moloni** - Facturação
- **imap** - Email IMAP
- **memory-supabase** - Memória longo prazo
- **dify-kb** - Knowledge base AI
- **** - Knowledge base AI
- **outline-api** - Outline documentation
### All Available (33 total)
### All Available (32 total)
context7, gitea, n8n, cwp, filesystem, ssh-unified, google-analytics, youtube-research, youtube-uploader, wikijs, gsc, lighthouse, mcp-time, puppeteer, mcp-mermaid, mcp-echarts, powerpoint, penpot, pixabay, pexels, tavily, elevenlabs, magic, vimeo, design-systems, replicate
**Discovery:** Use ToolSearch to find specific tools.
**Example:** `ToolSearch("ssh upload")` finds SSH upload tools.
## Your Available Skills
### Primary Skills (Your Domain)
@@ -172,13 +160,11 @@ context7, gitea, n8n, cwp, filesystem, ssh-unified, google-analytics, youtube-re
- **/knowledge** - Gestão unificada de conhecimento - pesquisa inteligente com
- **/desk** - Integração com Desk CRM via ficheiro .desk-project. Auto-det
### All Available (54 total)
### All Available (53 total)
/content-marketing-pt, /remotion-video, /seo-content-optimization, /social-media, /video, /ui-ux-pro-max-repo, /brand-voice-generator, /frontend-design, /pptx-generator, /ui-ux-pro-max, /crm-admin, /db-design, /elementor, /mcp-dev, /nextjs, /php-dev, /react-patterns, /woocommerce, /wp-dev, /backup-strategies, /security-audit, /server-health, /wp-performance, /wp-update, /second-brain-repo, /ads, /doc-sync, /marketing-strategy, /skill-creator, /sop-creator, /calendar-manager, /delegate, /interview, /today, /research, /youtube, /seo-audit, /seo-report, /archive, /metrics, /sdk
**Discovery:** Use the Skill tool to invoke skills.
**Example:** `Skill("skill-name")` invokes the skill.
## Your Team & Responsibilities
You are part of **2 SDKs** (TaskForce teams):
@@ -188,9 +174,6 @@ You are part of **2 SDKs** (TaskForce teams):
**Purpose:** NULL
**Your responsibilities in this TaskForce:**
- **Sistema de agentes especializados para delegacao de tarefas via Task tool com consulta automatica de datasets Dify.**: NULL
### TaskForce Product Manager
**Purpose:** NULL

View File

@@ -37,8 +37,6 @@ created: '2025-01-13'
updated: '2026-02-04'
author: Descomplicar®
---
# Reflect Agent Descomplicar
Agente background para auto-reflexao e melhoria continua. Analisa sessoes de trabalho, identifica padroes de sucesso/falha e sugere optimizacoes sistemicas.
@@ -108,19 +106,17 @@ Corre silenciosamente sem interromper fluxo principal.
### Recommended for knowledge
- **notebooklm** - KB primaria (Gemini 2.5 RAG) - `mcp__notebooklm__notebook_query`
- **dify-kb** - Knowledge base AI (fallback)
- **** - Knowledge base AI (fallback)
- **wikijs** - Wiki documentation
- **design-systems** - Knowledge base W3C standards, WCAG, design system best pract
- **outline-api** - Outline documentation
- **context7** - Context documentation
### All Available (33 total)
### All Available (32 total)
moloni, gitea, n8n, cwp, filesystem, ssh-unified, google-analytics, google-workspace, imap, youtube-research, youtube-uploader, gsc, lighthouse, mcp-time, puppeteer, mcp-mermaid, mcp-echarts, powerpoint, penpot, pixabay, pexels, tavily, elevenlabs, magic, vimeo, replicate
**Discovery:** Use ToolSearch to find specific tools.
**Example:** `ToolSearch("ssh upload")` finds SSH upload tools.
## Your Available Skills
### Primary Skills (Your Domain)
@@ -143,7 +139,7 @@ moloni, gitea, n8n, cwp, filesystem, ssh-unified, google-analytics, google-works
- **/knowledge** - Gestão unificada de conhecimento - pesquisa inteligente com
- **/desk** - Integração com Desk CRM via ficheiro .desk-project. Auto-det
### All Available (54 total)
### All Available (53 total)
/billing-check, /crm-ops, /ecommerce, /lead-approach, /orcamento, /saas, /content-marketing-pt, /remotion-video, /seo-content-optimization, /social-media, /video, /ui-ux-pro-max-repo, /brand-voice-generator, /frontend-design, /pptx-generator, /ui-ux-pro-max, /crm-admin, /db-design, /elementor, /mcp-dev, /nextjs, /php-dev, /react-patterns, /woocommerce, /wp-dev, /backup-strategies, /security-audit, /server-health, /wp-performance, /wp-update, /second-brain-repo, /ads, /doc-sync, /marketing-strategy, /product, /skill-creator, /calendar-manager, /delegate, /interview, /time, /today, /youtube, /seo-audit, /seo-report, /archive
**Discovery:** Use the Skill tool to invoke skills.

View File

@@ -13,7 +13,6 @@ primary_mcps:
- desk-crm-v3
- google-workspace
recommended_mcps:
- dify-kb
- memory-supabase
- gitea
skills:
@@ -38,8 +37,6 @@ created: '2025-01-13'
updated: '2026-02-04'
author: Descomplicar®
---
# Software Project Planner Descomplicar
Especialista em planeamento de projectos de software, metodologias ageis e coordenacao de equipas de desenvolvimento para entrega de valor e sucesso de projectos tecnicos.
@@ -61,14 +58,6 @@ mcp__notebooklm__notebook_query notebook_id:"24947ffa-0019-448a-a340-2f4a275d2eb
mcp__notebooklm__notebook_query notebook_id:"79d43410-0e29-4be1-881d-84db6bdc239a" query:"roadmap prioridades valor"
```
### Dify KB (Secundario - se NotebookLM insuficiente)
```
mcp__dify-kb__dify_kb_retrieve_segments dataset:"Gestao de Projetos" query:"planeamento software agile sprints"
mcp__dify-kb__dify_kb_retrieve_segments dataset:"Desenvolvimento de Software" query:"arquitectura delivery ciclo vida"
mcp__dify-kb__dify_kb_retrieve_segments dataset:"Estrategia" query:"roadmap prioridades valor"
```
## System Prompt
### Papel
@@ -148,18 +137,16 @@ Planeador de projectos de software responsavel por transformar requisitos em roa
- **n8n** - Workflows automation
- **filesystem** - Ficheiros locais
- **magic** - AI-powered UI component generation (tipo v0.dev)
- **dify-kb** - Knowledge base AI
- **** - Knowledge base AI
- **memory-supabase** - Memória longo prazo
- **cwp** - CentOS Web Panel
- **puppeteer** - Browser automation
### All Available (33 total)
### All Available (32 total)
moloni, google-analytics, google-workspace, imap, outline-api, youtube-research, youtube-uploader, wikijs, gsc, lighthouse, mcp-time, mcp-mermaid, mcp-echarts, powerpoint, penpot, pixabay, pexels, tavily, elevenlabs, vimeo, design-systems, replicate
**Discovery:** Use ToolSearch to find specific tools.
**Example:** `ToolSearch("ssh upload")` finds SSH upload tools.
## Your Available Skills
### Primary Skills (Your Domain)
@@ -193,13 +180,11 @@ moloni, google-analytics, google-workspace, imap, outline-api, youtube-research,
- **/knowledge** - Gestão unificada de conhecimento - pesquisa inteligente com
- **/desk** - Integração com Desk CRM via ficheiro .desk-project. Auto-det
### All Available (54 total)
### All Available (53 total)
/billing-check, /crm-ops, /ecommerce, /lead-approach, /orcamento, /saas, /content-marketing-pt, /remotion-video, /seo-content-optimization, /social-media, /ui-ux-pro-max-repo, /brand-voice-generator, /frontend-design, /pptx-generator, /ui-ux-pro-max, /backup-strategies, /security-audit, /server-health, /wp-performance, /wp-update, /second-brain-repo, /ads, /marketing-strategy, /product, /skill-creator, /sop-creator, /calendar-manager, /interview, /today, /research, /youtube, /seo-audit, /seo-report, /archive, /metrics, /sdk
**Discovery:** Use the Skill tool to invoke skills.
**Example:** `Skill("skill-name")` invokes the skill.
## Your Team & Responsibilities
You are part of **1 TaskForce** (TaskForce teams):

View File

@@ -12,13 +12,11 @@ primary_mcps:
- desk-crm-v3
recommended_mcps:
- notebooklm
- dify-kb
- memory-supabase
- outline-api
mcps:
- wikijs
- desk-crm-v3
- dify-kb
skills:
- _core
- knowledge
@@ -100,7 +98,6 @@ Você é um gestor de conhecimento especializado em:
- Pesquisa conhecimento curado (Gemini 2.5 RAG)
- Enriquecimento com contexto profundo
2. **Wiki.js ↔ Dify KB** (fallback)
- Sincronização de artigos técnicos
- Enriquecimento com AI
- Validação de consistência
@@ -129,12 +126,6 @@ Você é um gestor de conhecimento especializado em:
- Gemini 2.5 RAG com conhecimento curado
- Pesquisa semântica profunda
- Usage: `mcp__notebooklm__notebook_query notebook_id:"<id>" query:"<tema>"`
### dify-kb (TERTIARY - Fallback)
- Enriquecimento AI de artigos
- Pesquisa semântica
- Sugestões de conteúdo
### desk-crm-v3 (TERTIARY)
- Documentação de projectos
- SOPs e procedimentos
@@ -154,7 +145,6 @@ Você é um gestor de conhecimento especializado em:
1. Receber query do utilizador
2. Normalizar termos de pesquisa
3. Pesquisar em Wiki.js (primary)
4. Se não encontrar → Dify KB (secondary)
5. Agregar e ranquear resultados
6. Apresentar top 5 mais relevantes
```
@@ -312,7 +302,6 @@ Agent:
- Depende de conectividade Wiki.js
- Versionamento limitado ao sistema
- Pesquisa semântica requer Dify KB
- Sync manual quando automação falha
---

View File

@@ -1,5 +1,5 @@
{
"description": "Knowledge sources (NotebookLM + Dify KB) for Gestao domain",
"description": "Knowledge sources for Gestao domain",
"sources": {
"notebooklm": {
"description": "NotebookLM - conhecimento curado profundo via Gemini 2.5 RAG (PRIMARIO)",
@@ -10,8 +10,7 @@
"title": "Gestao de Projectos e Agile",
"topics": [
"gestao"
],
"maps_from_dify": "Gestao"
]
},
{
"id": "f9dc59c2-718b-4b12-bd06-095d4bfa3e34",
@@ -19,74 +18,23 @@
"topics": [
"gestao",
"processos"
],
"maps_from_dify": "Gestao de Processos"
]
},
{
"id": "79d43410-0e29-4be1-881d-84db6bdc239a",
"title": "Estrategia e Empreendedorismo",
"topics": [
"estrategia"
],
"maps_from_dify": "Estrategia"
]
},
{
"id": "ebee9fe1-78fd-4f85-8938-f19f3ea32131",
"title": "Obsidian + Claude",
"topics": [
"produtividade"
],
"maps_from_dify": "Produtividade"
}
]
},
"dify_kb": {
"description": "Dify KB - datasets tematicos (FALLBACK)",
"query_tool": "mcp__dify-kb__dify_kb_retrieve_segments",
"datasets": [
{
"id": "22799925-8dc5-4a1f-92b9-233468a5048b",
"name": "Gestao",
"priority": 1,
"document_count": 86,
"word_count": 9137325
},
{
"id": "e2b1cd92-aa72-4404-8bf3-9f5bf16b044a",
"name": "Gestao de Projetos",
"priority": 1,
"document_count": 41,
"word_count": 14018064
},
{
"id": "cae2a27e-f5bc-4d75-8a7a-9f83064f2512",
"name": "Gestao de Processos",
"priority": 1,
"document_count": 3,
"word_count": 732099
},
{
"id": "73ec984b-3da2-4cfd-9f83-5f6b02b877b4",
"name": "Estrategia",
"priority": 2,
"document_count": 50,
"word_count": 8348608
},
{
"id": "8ce4429f-8cf6-43b5-869d-75c8e1b461e8",
"name": "Produtividade",
"priority": 2,
"document_count": 5,
"word_count": 612301
},
{
"id": "8eb4682b-eff2-4366-a577-18b698d900da",
"name": "Escrever PT-PT",
"priority": 2,
"document_count": 2,
"word_count": 79968
]
}
]
}
}
}
}

View File

@@ -1,17 +1,7 @@
---
name: aiktop-tasks
description: >
Executa tarefas agendadas para AikTop no Desk CRM. Detecta tarefas vencidas com tag "aiktop" atribuídas ao staff 25, executa a instrução da descrição, fecha a tarefa e comenta o resultado. Invocado automaticamente por cron no dev server a cada 15 min. Use when "aiktop tasks", "executar tarefas aiktop", "task queue ai".
author: Descomplicar® Crescimento Digital
version: 1.0.0
quality_score: 85
user_invocable: true
category: management
tags: [aiktop, automacao, task-queue, desk-crm]
desk_task: 1755
desk_project: 65
allowed-tools: Read, mcp__desk-crm-v3, mcp__mcp-time, mcp__ssh-unified, mcp__imap, mcp__memory-supabase
mcps: [desk-crm-v3, mcp-time]
description: Executa tarefas agendadas para AikTop no Desk CRM. Detecta tarefas vencidas com tag "aiktop" atribuídas ao staff 25, executa a instrução da descrição, fecha a tarefa e comenta o resultado. Usar quando "aiktop tasks", "executar tarefas aiktop", "task queue ai".
disable-model-invocation: true
---
# /aiktop-tasks v1.0

View File

@@ -1,14 +1,7 @@
---
name: archive
description: Intelligent archiving of completed projects and notes. Moves finished
items to archive with proper organization. Use when user mentions "archive", "arquivar",
"mover para arquivo", "cleanup", "organizar concluídos".
author: Descomplicar® Crescimento Digital
version: 1.0.0
quality_score: 75
user_invocable: true
desk_task: 1462
allowed-tools: Bash, Glob, Read
description: Arquivamento inteligente de projectos e notas concluídos. Move itens finalizados para arquivo com organização adequada. Usar quando "archive", "arquivar", "mover para arquivo", "cleanup", "organizar concluídos".
disable-model-invocation: true
---
# /archive - Arquivamento Automatico

View File

@@ -1,56 +1,46 @@
---
name: calendar-manager
description: Google Calendar management and scheduling automation. Creates events,
manages availability, and syncs schedules. Use when user mentions "calendar", "agenda",
"schedule meeting", "google calendar", "event creation".
author: Descomplicar® Crescimento Digital
version: 1.0.0
quality_score: 75
user_invocable: true
desk_task: 1465
description: Gestao do Google Calendar e automacao de agendamento. Cria eventos, gere disponibilidade e sincroniza calendarios.
---
# Calendar Manager
Gestão centralizada de múltiplos calendários Google com classificação automática de eventos.
Gestao centralizada de multiplos calendarios Google com classificacao automatica de eventos.
## Calendários Disponíveis
## Calendarios Disponiveis
| Calendário | ID | Tipo | Uso |
| Calendario | ID | Tipo | Uso |
|------------|----|----|-----|
| **Emanuel Almeida - Pessoal** | `emanuelalmeidaa@gmail.com` | Pessoal | Compromissos pessoais, família, saúde, lazer |
| **Emanuel Almeida - Descomplicar** | `emanuel@descomplicar.pt` | Profissional | Trabalho, reuniões internas, planeamento |
| **Info Descomplicar** | `info@descomplicar.pt` | Profissional | Reuniões com clientes, calls externos |
| **Feriados em Portugal** | `pt-pt.portuguese#holiday@group.v.calendar.google.com` | Referência | Feriados nacionais |
| **Emanuel Almeida - Pessoal** | `emanuelalmeidaa@gmail.com` | Pessoal | Compromissos pessoais, familia, saude, lazer |
| **Emanuel Almeida - Descomplicar** | `emanuel@descomplicar.pt` | Profissional | Trabalho, reunioes internas, planeamento |
| **Info Descomplicar** | `info@descomplicar.pt` | Profissional | Reunioes com clientes, calls externos |
| **Feriados em Portugal** | `pt-pt.portuguese#holiday@group.v.calendar.google.com` | Referencia | Feriados nacionais |
**Conta Google**: `emanuelalmeidaa@gmail.com` (usada para autenticação em todos os calendários)
**Conta Google**: `emanuelalmeidaa@gmail.com` (usada para autenticacao em todos os calendarios)
## Classificação Automática de Eventos
## Classificacao Automatica de Eventos
### Eventos PESSOAIS `emanuelalmeidaa@gmail.com`
Palavras-chave que indicam compromisso pessoal:
- Nomes próprios sem contexto empresarial (Tomás, Susana, Maria, Dra., Dr.)
- Médico, consulta, saúde, dentista, fisioterapia, psicólogo
- Família, filhos, escola, CNG, colégio
- Ginásio, treino, corrida, desporto
- Almoço/jantar pessoal, aniversário, festa
- Casa, obras, condomínio
- Banco, finanças pessoais, seguro
### Eventos PESSOAIS -> `emanuelalmeidaa@gmail.com`
- Nomes proprios sem contexto empresarial (Tomas, Susana, Maria, Dra., Dr.)
- Medico, consulta, saude, dentista, fisioterapia, psicologo
- Familia, filhos, escola, CNG, colegio
- Ginasio, treino, corrida, desporto
- Almoco/jantar pessoal, aniversario, festa
- Casa, obras, condominio
- Banco, financas pessoais, seguro
### Eventos PROFISSIONAIS `emanuel@descomplicar.pt`
Palavras-chave que indicam trabalho interno:
### Eventos PROFISSIONAIS -> `emanuel@descomplicar.pt`
- Planeamento, sprint, retrospectiva, standup
- Desenvolvimento, deploy, release
- Interno, equipa, staff
- Nomes de projectos (Stack Workflow, WiP, etc.)
- Review, code review, merge
- Formação, workshop interno
- Formacao, workshop interno
### Eventos com CLIENTES `info@descomplicar.pt`
Palavras-chave que indicam reunião externa:
- Cliente, call, reunião externa
- Nomes de empresas/clientes conhecidos (ver lista abaixo)
- Proposta, orçamento, apresentação
### Eventos com CLIENTES -> `info@descomplicar.pt`
- Cliente, call, reuniao externa
- Nomes de empresas/clientes conhecidos
- Proposta, orcamento, apresentacao
- Kickoff, entrega, demo
## Clientes Conhecidos
@@ -58,470 +48,130 @@ Palavras-chave que indicam reunião externa:
| Cliente | Keywords |
|---------|----------|
| Carstuff | carstuff, cars |
| FamilyClinic | familyclinic, clinic, clínica |
| FamilyClinic | familyclinic, clinic, clinica |
| KCG | kcg, karate, gaia |
| Espiral Senior | esp, espiral, senior |
| Solar FV | solar, fotovoltaico |
| Water Control | water, água |
| Water Control | water, agua |
| Ignition Vortex | ignition, vortex |
## Comandos e Interpretação
## Comandos e Interpretacao
### Criar Eventos
```
Input: "Agenda Dra Susana 14:30"
Calendário: Pessoal (Dra = médico)
Evento: Dra Susana, 14:30-15:30
-> Calendario: Pessoal (Dra = medico)
-> Evento: Dra Susana, 14:30-15:30
Input: "Reunião Carstuff 16h até 19h"
Calendário: Clientes (Carstuff = cliente conhecido)
Evento: Carstuff, 16:00-19:00
Input: "Reuniao Carstuff 16h ate 19h"
-> Calendario: Clientes (Carstuff = cliente conhecido)
-> Evento: Carstuff, 16:00-19:00
Input: "Planeamento segunda 9h 4 horas"
Calendário: Profissional (planeamento = interno)
Evento: Planeamento, 09:00-13:00
-> Calendario: Profissional (planeamento = interno)
-> Evento: Planeamento, 09:00-13:00
```
### Listar Eventos
```
"Agenda de hoje" todos os calendários, hoje
"O que tenho amanhã?" todos os calendários, amanhã
"Agenda de trabalho" só profissional + clientes
"Compromissos pessoais" só pessoal
"Agenda de hoje" -> todos os calendarios, hoje
"O que tenho amanha?" -> todos os calendarios, amanha
"Agenda de trabalho" -> so profissional + clientes
"Compromissos pessoais" -> so pessoal
```
### Verificar Disponibilidade
```
"Estou livre às 15h?" verificar todos os calendários
"Próximo slot livre de 2h" encontrar disponibilidade
"Estou livre as 15h?" -> verificar todos os calendarios
"Proximo slot livre de 2h" -> encontrar disponibilidade
```
## Execução
## Workflow
### Workflow CRIAR Eventos
O workflow completo de criacao e listagem de eventos esta detalhado em `references/workflows-detalhados.md`.
#### Passo 1: Analisar Pedido
### Resumo do fluxo CRIAR
```javascript
// Input: "Agenda Dra Susana amanhã 14:30"
1. **Analisar pedido** - extrair titulo, data, hora, duracao
2. **Classificar tipo** - pessoal/profissional/clientes (baseado em keywords)
3. **Extrair data/hora** - obter data actual via `mcp__mcp_time__current_time`, interpretar mencoes relativas
4. **Verificar conflitos** - consultar todos os calendarios no horario pretendido
5. **Criar evento** - via `mcp__google_workspace__create_event`
6. **Confirmar** - mostrar resumo ao utilizador
const analise = {
texto: "Agenda Dra Susana amanhã 14:30",
palavras_chave: ["dra", "susana"],
data_mencionada: "amanhã",
hora_mencionada: "14:30",
duracao_mencionada: null // default 1h
};
```
### Resumo do fluxo LISTAR
#### Passo 2: Classificar Tipo
```javascript
// Detectar palavras-chave e determinar calendário
function classificarEvento(texto) {
const keywords_pessoal = /dra?|dentista|médico|família|ginásio|consulta/i;
const keywords_cliente = /carstuff|familyclinic|kcg|espiral|solar|reunião|call/i;
const keywords_profissional = /planeamento|sprint|deploy|interno|equipa/i;
if (keywords_pessoal.test(texto)) {
return {
tipo: 'pessoal',
calendar_id: 'emanuelalmeidaa@gmail.com',
emoji: '🔵'
};
}
if (keywords_cliente.test(texto)) {
return {
tipo: 'clientes',
calendar_id: 'info@descomplicar.pt',
emoji: '🟢'
};
}
if (keywords_profissional.test(texto)) {
return {
tipo: 'profissional',
calendar_id: 'emanuel@descomplicar.pt',
emoji: '🟠'
};
}
// Se ambíguo, perguntar
return { tipo: 'ambiguo' };
}
```
#### Passo 3: Extrair Data e Hora
```javascript
// Obter data actual via mcp-time
const now = await mcp__mcp-time__current_time();
// Interpretar data mencionada
function interpretarData(mencao, hoje) {
const mapa = {
'hoje': hoje,
'amanhã': addDays(hoje, 1),
'segunda': nextWeekday(hoje, 1), // 1 = segunda
'terça': nextWeekday(hoje, 2),
// etc.
};
return mapa[mencao.toLowerCase()] || parseDate(mencao);
}
// Criar timestamps ISO 8601
const data = interpretarData('amanhã', now);
const start_time = `${data}T14:30:00`;
const end_time = `${data}T15:30:00`; // +1h default
```
#### Passo 4: Verificar Conflitos
```javascript
// Buscar eventos existentes no horário
const eventos_conflito = await mcp__google-workspace__get_events({
user_google_email: 'emanuelalmeidaa@gmail.com',
calendar_id: 'ALL', // Verificar todos os calendários
time_min: start_time,
time_max: end_time
});
if (eventos_conflito.length > 0) {
// Avisar utilizador
await AskUserQuestion({
question: `⚠️ Conflito detectado: ${eventos_conflito[0].summary} às ${start_time}. Criar mesmo assim?`,
options: ['Sim', 'Não', 'Ajustar hora']
});
}
```
#### Passo 5: Criar Evento
```javascript
const evento = await mcp__google-workspace__create_event({
user_google_email: 'emanuelalmeidaa@gmail.com',
calendar_id: classificacao.calendar_id,
summary: 'Dra Susana',
start_time: start_time,
end_time: end_time,
timezone: 'Europe/Lisbon',
description: 'Criado via Claude Code /calendar-manager'
});
```
#### Passo 6: Confirmar
```
✅ Dra Susana
📅 Amanhã (2026-02-04) · 14:30 - 15:30
📍 PESSOAL 🔵
🔗 [Ver no calendário](link_do_evento)
```
---
### Workflow LISTAR Eventos
#### Passo 1: Interpretar Pedido
```javascript
// Input: "Agenda de amanhã"
const pedido = {
periodo: 'amanhã', // hoje, amanhã, semana, mes, data específica
ambito: 'todos', // todos, pessoal, profissional, clientes
};
```
#### Passo 2: Determinar Intervalo
```javascript
const now = await mcp__mcp-time__current_time();
function calcularIntervalo(periodo, hoje) {
const intervalos = {
'hoje': {
time_min: `${hoje}T00:00:00`,
time_max: `${hoje}T23:59:59`
},
'amanhã': {
time_min: `${addDays(hoje, 1)}T00:00:00`,
time_max: `${addDays(hoje, 1)}T23:59:59`
},
'semana': {
time_min: `${startOfWeek(hoje)}T00:00:00`,
time_max: `${endOfWeek(hoje)}T23:59:59`
}
};
return intervalos[periodo];
}
```
#### Passo 3: Consultar Calendários
```javascript
// Determinar calendários a consultar baseado no âmbito
const calendarios = pedido.ambito === 'todos'
? ['emanuelalmeidaa@gmail.com', 'emanuel@descomplicar.pt', 'info@descomplicar.pt']
: [mapearAmbito(pedido.ambito)];
// Buscar eventos em paralelo
const resultados = await Promise.all(
calendarios.map(cal_id =>
mcp__google-workspace__get_events({
user_google_email: 'emanuelalmeidaa@gmail.com',
calendar_id: cal_id,
time_min: intervalo.time_min,
time_max: intervalo.time_max
})
)
);
```
#### Passo 4: Agrupar e Formatar
```javascript
// Agrupar por tipo e ordenar por hora
const eventos_agrupados = {
pessoal: resultados[0].sort(byTime),
profissional: resultados[1].sort(byTime),
clientes: resultados[2].sort(byTime)
};
// Formatar resposta
const output = `
📅 Agenda Amanhã (2026-02-04)
🔵 PESSOAL
· 14:30 Dra Susana (1h)
🟠 PROFISSIONAL
· 09:00 Planeamento Semanal (4h)
🟢 CLIENTES
· 16:00 Carstuff (3h)
⏱️ Total: 8h ocupadas | 8h livres
`;
```
#### Passo 5: Sugestões Inteligentes
```javascript
// Se há muitas reuniões seguidas
if (detectarSobrecarga(eventos)) {
output += '\n⚠ Dia muito preenchido. Considerar bloquear tempo para deep work.';
}
// Se não há breaks
if (detectarSemPausas(eventos)) {
output += '\n💡 Sugestão: Agendar 15min de pausa entre reuniões.';
}
```
1. **Interpretar pedido** - periodo (hoje/amanha/semana) + ambito (todos/pessoal/profissional/clientes)
2. **Determinar intervalo** - calcular time_min e time_max
3. **Consultar calendarios** - buscar eventos em paralelo
4. **Agrupar e formatar** - ordenar por hora, agrupar por tipo
5. **Sugestoes** - avisar sobrecarga ou falta de pausas
## Formato de Resposta
### Criar:
```
✅ [TÍTULO]
📅 [DATA] · [HORA INÍCIO] - [HORA FIM]
📍 [TIPO: Pessoal/Profissional/Clientes]
[titulo]
[data] -- [hora inicio] - [hora fim]
[tipo: Pessoal/Profissional/Clientes]
```
### Listar:
```
📅 Agenda [DATA]
Agenda [data]
🔵 PESSOAL
· 14:30 Dra Susana (1h)
PESSOAL
-- 14:30 Dra Susana (1h)
🟠 PROFISSIONAL
· 09:00 Planeamento Semanal (4h)
PROFISSIONAL
-- 09:00 Planeamento Semanal (4h)
🟢 CLIENTES
· 16:00 Carstuff (3h)
CLIENTES
-- 16:00 Carstuff (3h)
```
## Regras
1. **Timezone**: Sempre `Europe/Lisbon`
2. **Duração default**: 1 hora
3. **Ambiguidade**: Se não for claro, perguntar ao utilizador
4. **Conflitos**: Avisar se houver sobreposição
2. **Duracao default**: 1 hora
3. **Ambiguidade**: Se nao for claro, perguntar ao utilizador
4. **Conflitos**: Avisar se houver sobreposicao
5. **Feriados**: Avisar se o evento calhar num feriado
## MCP Tools
## MCP Tools - Referencia Rapida
### Referência Rápida
Referencia completa com constantes e exemplos em `references/mcp-tools-referencia.md`.
```javascript
// Listar calendários disponíveis
mcp__google-workspace__list_calendars({
user_google_email: 'emanuelalmeidaa@gmail.com'
});
// Listar calendarios
mcp__google_workspace__list_calendars({ user_google_email: 'emanuelalmeidaa@gmail.com' });
// Obter eventos
mcp__google-workspace__get_events({
mcp__google_workspace__get_events({
user_google_email: 'emanuelalmeidaa@gmail.com',
calendar_id: 'emanuelalmeidaa@gmail.com', // ou 'ALL' para todos
time_min: '2026-02-04T00:00:00', // ISO 8601
calendar_id: 'ALL',
time_min: '2026-02-04T00:00:00',
time_max: '2026-02-04T23:59:59'
});
// Criar evento
mcp__google-workspace__create_event({
mcp__google_workspace__create_event({
user_google_email: 'emanuelalmeidaa@gmail.com',
calendar_id: 'emanuelalmeidaa@gmail.com',
summary: 'Título do evento',
summary: 'Titulo',
start_time: '2026-02-04T14:30:00',
end_time: '2026-02-04T15:30:00',
timezone: 'Europe/Lisbon',
description: 'Descrição opcional',
location: 'Local opcional'
});
// Modificar evento
mcp__google-workspace__modify_event({
user_google_email: 'emanuelalmeidaa@gmail.com',
calendar_id: 'emanuelalmeidaa@gmail.com',
event_id: 'id_do_evento',
summary: 'Novo título', // campos a actualizar
start_time: 'nova_data'
});
// Eliminar evento
mcp__google-workspace__delete_event({
user_google_email: 'emanuelalmeidaa@gmail.com',
calendar_id: 'emanuelalmeidaa@gmail.com',
event_id: 'id_do_evento'
timezone: 'Europe/Lisbon'
});
```
### Constantes Úteis
## Quando NAO Usar
```javascript
const CALENDARIOS = {
PESSOAL: 'emanuelalmeidaa@gmail.com',
PROFISSIONAL: 'emanuel@descomplicar.pt',
CLIENTES: 'info@descomplicar.pt',
FERIADOS: 'pt-pt.portuguese#holiday@group.v.calendar.google.com'
};
- Para tarefas fora do dominio de calendario/agendamento
- Quando outra skill mais especifica esta disponivel
- Para operacoes que requerem aprovacao manual obrigatoria
const TIMEZONE = 'Europe/Lisbon';
const USER_EMAIL = 'emanuelalmeidaa@gmail.com';
const DURACAO_DEFAULT = 60; // minutos
```
## References
---
## Checklist de Criação
Antes de criar evento, verificar:
- [ ] Calendário correcto identificado (pessoal/profissional/clientes)
- [ ] Data válida (não no passado, salvo excepções)
- [ ] Hora válida (formato HH:MM ou HH:MM-HH:MM)
- [ ] Duração razoável (<12h, excepto dias completos)
- [ ] Sem conflitos (ou utilizador confirmou)
- [ ] Timezone correcto (Europe/Lisbon)
- [ ] Título descritivo
---
## Datasets Dify (Consulta Obrigatória)
Em caso de dúvidas ou para aprofundar conhecimento, consultar os seguintes datasets via MCP:
| Dataset | ID | Prioridade |
|---------|----|-----------:|
| **Produtividade** | `8ce4429f-8cf6-43b5-869d-75c8e1b461e8` | 1 |
| **Gestão de Projetos** | `e2b1cd92-aa72-4404-8bf3-9f5bf16b044a` | 2 |
### Como Consultar
```javascript
// Pesquisar técnicas de gestão de tempo
mcp__notebooklm__notebook_query, mcp__dify-kb__dify_kb_retrieve_segments({
dataset_id: "8ce4429f-8cf6-43b5-869d-75c8e1b461e8",
query: "blocos de foco time blocking"
})
// Pesquisar planeamento de reuniões
mcp__dify-kb__dify_kb_retrieve_segments({
dataset_id: "e2b1cd92-aa72-4404-8bf3-9f5bf16b044a",
query: "reunioes eficazes agenda"
})
```
### Quando Consultar
- Para sugestões de organização de agenda
- Técnicas de time blocking ou deep work
- Boas práticas de agendamento de reuniões
- Gestão de conflitos de horários
---
## Changelog
### v1.1.0 (2026-02-03)
- **Workflows detalhados** - CRIAR e LISTAR com passos concretos
- **Detecção de conflitos** - Verifica sobreposições antes de criar
- **Sugestões inteligentes** - Avisos de sobrecarga e falta de pausas
- **Código pronto a usar** - Exemplos JavaScript completos
- **Checklist** - Validações antes de criar eventos
- **Constantes** - Variáveis reutilizáveis (calendários, timezone)
### v1.0.0 (2026-01-27)
- Versão inicial
- Classificação automática pessoal/profissional/clientes
- Integração Google Workspace MCP
- Datasets Dify para consulta
---
**Versão**: 1.1.0 | **Autor**: Descomplicar®
---
## Quando NÃO Usar
- Para tarefas fora do domínio de especialização desta skill
- Quando outra skill mais específica está disponível
- Para operações que requerem aprovação manual obrigatória
- Quando os requisitos não estão claramente definidos
## Exemplos de Uso
### Exemplo 1: Caso Básico
```
User: [requisição simples relacionada com calendar-manager]
Skill: [execução directa com validação]
Output: [resultado conciso e accionável]
```
### Exemplo 2: Caso Complexo
```
User: [requisição multi-passo ou complexa]
Skill:
1. Análise dos requisitos
2. Planeamento da abordagem
3. Execução faseada
4. Validação contínua
Output: [resultado detalhado com próximos passos]
```
### Exemplo 3: Caso com Dependências
```
User: [requisição que depende de outros sistemas]
Skill:
1. Verificar dependências disponíveis
2. Coordenar com skills/MCPs necessários
3. Executar workflow integrado
Output: [resultado completo com referências]
```
- **Workflows detalhados:** `references/workflows-detalhados.md`
- **MCP tools e constantes:** `references/mcp-tools-referencia.md`

View File

@@ -0,0 +1,81 @@
# Calendar Manager - Referencia MCP Tools
## Constantes
```javascript
const CALENDARIOS = {
PESSOAL: 'emanuelalmeidaa@gmail.com',
PROFISSIONAL: 'emanuel@descomplicar.pt',
CLIENTES: 'info@descomplicar.pt',
FERIADOS: 'pt-pt.portuguese#holiday@group.v.calendar.google.com'
};
const TIMEZONE = 'Europe/Lisbon';
const USER_EMAIL = 'emanuelalmeidaa@gmail.com';
const DURACAO_DEFAULT = 60; // minutos
```
## Google Workspace MCP - Referencia Completa
### Listar calendarios disponiveis
```javascript
mcp__google_workspace__list_calendars({
user_google_email: 'emanuelalmeidaa@gmail.com'
});
```
### Obter eventos
```javascript
mcp__google_workspace__get_events({
user_google_email: 'emanuelalmeidaa@gmail.com',
calendar_id: 'emanuelalmeidaa@gmail.com', // ou 'ALL' para todos
time_min: '2026-02-04T00:00:00', // ISO 8601
time_max: '2026-02-04T23:59:59'
});
```
### Criar evento
```javascript
mcp__google_workspace__create_event({
user_google_email: 'emanuelalmeidaa@gmail.com',
calendar_id: 'emanuelalmeidaa@gmail.com',
summary: 'Titulo do evento',
start_time: '2026-02-04T14:30:00',
end_time: '2026-02-04T15:30:00',
timezone: 'Europe/Lisbon',
description: 'Descricao opcional',
location: 'Local opcional'
});
```
### Modificar evento
```javascript
mcp__google_workspace__modify_event({
user_google_email: 'emanuelalmeidaa@gmail.com',
calendar_id: 'emanuelalmeidaa@gmail.com',
event_id: 'id_do_evento',
summary: 'Novo titulo',
start_time: 'nova_data'
});
```
### Eliminar evento
```javascript
mcp__google_workspace__delete_event({
user_google_email: 'emanuelalmeidaa@gmail.com',
calendar_id: 'emanuelalmeidaa@gmail.com',
event_id: 'id_do_evento'
});
```
## Checklist de Criacao
Antes de criar evento, verificar:
- Calendario correcto identificado (pessoal/profissional/clientes)
- Data valida (nao no passado, salvo excepcoes)
- Hora valida (formato HH:MM ou HH:MM-HH:MM)
- Duracao razoavel (<12h, excepto dias completos)
- Sem conflitos (ou utilizador confirmou)
- Timezone correcto (Europe/Lisbon)
- Titulo descritivo

View File

@@ -0,0 +1,181 @@
# Calendar Manager - Workflows Detalhados
## Workflow CRIAR Eventos
### Passo 1: Analisar Pedido
```javascript
// Input: "Agenda Dra Susana amanha 14:30"
const analise = {
texto: "Agenda Dra Susana amanha 14:30",
palavras_chave: ["dra", "susana"],
data_mencionada: "amanha",
hora_mencionada: "14:30",
duracao_mencionada: null // default 1h
};
```
### Passo 2: Classificar Tipo
```javascript
// Detectar palavras-chave e determinar calendario
function classificarEvento(texto) {
const keywords_pessoal = /dra?|dentista|medico|familia|ginasio|consulta/i;
const keywords_cliente = /carstuff|familyclinic|kcg|espiral|solar|reuniao|call/i;
const keywords_profissional = /planeamento|sprint|deploy|interno|equipa/i;
if (keywords_pessoal.test(texto)) {
return {
tipo: 'pessoal',
calendar_id: 'emanuelalmeidaa@gmail.com'
};
}
if (keywords_cliente.test(texto)) {
return {
tipo: 'clientes',
calendar_id: 'info@descomplicar.pt'
};
}
if (keywords_profissional.test(texto)) {
return {
tipo: 'profissional',
calendar_id: 'emanuel@descomplicar.pt'
};
}
// Se ambiguo, perguntar
return { tipo: 'ambiguo' };
}
```
### Passo 3: Extrair Data e Hora
```javascript
// Obter data actual via mcp-time
const now = await mcp__mcp_time__current_time();
// Interpretar data mencionada
function interpretarData(mencao, hoje) {
const mapa = {
'hoje': hoje,
'amanha': addDays(hoje, 1),
'segunda': nextWeekday(hoje, 1),
'terca': nextWeekday(hoje, 2),
// etc.
};
return mapa[mencao.toLowerCase()] || parseDate(mencao);
}
// Criar timestamps ISO 8601
const data = interpretarData('amanha', now);
const start_time = `${data}T14:30:00`;
const end_time = `${data}T15:30:00`; // +1h default
```
### Passo 4: Verificar Conflitos
```javascript
// Buscar eventos existentes no horario
const eventos_conflito = await mcp__google_workspace__get_events({
user_google_email: 'emanuelalmeidaa@gmail.com',
calendar_id: 'ALL',
time_min: start_time,
time_max: end_time
});
if (eventos_conflito.length > 0) {
// Avisar utilizador sobre conflito
}
```
### Passo 5: Criar Evento
```javascript
const evento = await mcp__google_workspace__create_event({
user_google_email: 'emanuelalmeidaa@gmail.com',
calendar_id: classificacao.calendar_id,
summary: 'Dra Susana',
start_time: start_time,
end_time: end_time,
timezone: 'Europe/Lisbon',
description: 'Criado via Claude Code /calendar-manager'
});
```
## Workflow LISTAR Eventos
### Passo 1: Interpretar Pedido
```javascript
// Input: "Agenda de amanha"
const pedido = {
periodo: 'amanha', // hoje, amanha, semana, mes, data especifica
ambito: 'todos', // todos, pessoal, profissional, clientes
};
```
### Passo 2: Determinar Intervalo
```javascript
const now = await mcp__mcp_time__current_time();
function calcularIntervalo(periodo, hoje) {
const intervalos = {
'hoje': {
time_min: `${hoje}T00:00:00`,
time_max: `${hoje}T23:59:59`
},
'amanha': {
time_min: `${addDays(hoje, 1)}T00:00:00`,
time_max: `${addDays(hoje, 1)}T23:59:59`
},
'semana': {
time_min: `${startOfWeek(hoje)}T00:00:00`,
time_max: `${endOfWeek(hoje)}T23:59:59`
}
};
return intervalos[periodo];
}
```
### Passo 3: Consultar Calendarios
```javascript
// Determinar calendarios a consultar baseado no ambito
const calendarios = pedido.ambito === 'todos'
? ['emanuelalmeidaa@gmail.com', 'emanuel@descomplicar.pt', 'info@descomplicar.pt']
: [mapearAmbito(pedido.ambito)];
// Buscar eventos em paralelo
const resultados = await Promise.all(
calendarios.map(cal_id =>
mcp__google_workspace__get_events({
user_google_email: 'emanuelalmeidaa@gmail.com',
calendar_id: cal_id,
time_min: intervalo.time_min,
time_max: intervalo.time_max
})
)
);
```
### Passo 4: Agrupar e Formatar
```javascript
// Agrupar por tipo e ordenar por hora
const eventos_agrupados = {
pessoal: resultados[0].sort(byTime),
profissional: resultados[1].sort(byTime),
clientes: resultados[2].sort(byTime)
};
```
### Passo 5: Sugestoes Inteligentes
- Se ha muitas reunioes seguidas: avisar sobrecarga
- Se nao ha breaks: sugerir pausas de 15min entre reunioes

View File

@@ -1,6 +1,7 @@
---
name: cleanup-downloads
description: Limpeza e triagem da pasta Transferências (Downloads). Verifica cada ficheiro individualmente, apaga descartáveis, classifica o restante por categoria. Use when "transferências", "downloads", "limpar downloads", "cleanup", "limpeza pasta", or as part of daily/weekly routines via /today.
description: Limpeza e triagem da pasta Transferências (Downloads). Verifica cada ficheiro individualmente, apaga descartáveis, classifica o restante por categoria. Usar quando "transferências", "downloads", "limpar downloads", "cleanup", "limpeza pasta".
disable-model-invocation: true
---
# Cleanup Downloads

View File

@@ -1,23 +1,7 @@
---
name: daily-digest
description: >
Resumo diario do estado operacional - timer activo, tickets abertos, facturas vencidas, leads novos, propostas pendentes e agenda do dia. Use when "resumo", "digest", "estado do dia", "dashboard", "metricas dia".
author: Descomplicar® Crescimento Digital
version: 1.0.0
quality_score: 85
user_invocable: true
category: management
tags: [digest, dashboard, daily, tickets, invoices, leads, calendar]
desk_task: 1710
desk_project: 65
allowed-tools: Read, Write, mcp__desk-crm-v3, mcp__google-workspace, mcp__mcp-time
mcps: desk-crm-v3, google-workspace, mcp-time
dependencies:
mcps: [desk-crm-v3, google-workspace, mcp-time]
triggers:
- "User asks for daily summary"
- "User mentions 'resumo', 'digest', 'estado do dia'"
- "Invoked by /today orchestrator"
description: Resumo diário do estado operacional - timer activo, tickets abertos, facturas vencidas, leads novos, propostas pendentes e agenda do dia. Usar quando "resumo", "digest", "estado do dia", "dashboard", "métricas dia".
context: fork
---
# /daily-digest v1.0

View File

@@ -1,14 +1,6 @@
---
name: delegate
description: Intelligent task delegation to specialized sub-agents. Analyzes task
requirements and routes to appropriate agent with context. Use when user mentions
"delegate", "subagent", "specialized help", "expert needed", or requests multi-domain
complex analysis.
author: Descomplicar® Crescimento Digital
version: 3.0.0
quality_score: 75
user_invocable: true
desk_task: 1470
description: Delegação inteligente de tarefas para sub-agentes especializados. Analisa requisitos e encaminha para o agente adequado com contexto. Usar quando "delegate", "delegar", "subagent", "ajuda especializada", ou análises multi-domínio complexas.
---
# /delegate - Delegação com Testes e KB Integrados

View File

@@ -0,0 +1,442 @@
---
name: doc-coauthoring
description: Workflow estruturado para co-autoria de documentos. Usar quando o utilizador quer escrever propostas comerciais, specs de projecto, relatórios cliente, SOPs, decisões técnicas ou conteúdo estruturado. Guia 3 fases - recolha de contexto, refinamento iterativo e teste de leitura. Trigger quando "escrever doc", "redigir proposta", "criar spec", "documentar", "relatório", "SOP".
---
# /doc-coauthoring - Co-Autoria de Documentos
Workflow estruturado para criação colaborativa de documentos profissionais. Guia o utilizador por três fases: recolha de contexto, refinamento e teste de leitura.
## Arquitectura
```
Pedido → Fase 1 (Contexto) → Fase 2 (Refinamento) → Fase 3 (Teste Leitura) → Documento Final
↓ ↓ ↓
/knowledge Templates Hub Sub-agente leitor
/crm (dados cliente) Iteração secção a secção Detecta pontos cegos
```
---
## Quando Activar
**Condições de trigger:**
- Utilizador menciona escrita de documentação: "escrever doc", "redigir proposta", "criar spec", "documentar"
- Utilizador menciona tipos específicos: "proposta comercial", "spec de projecto", "relatório cliente", "SOP", "decisão técnica", "RFC"
- Utilizador inicia uma tarefa de escrita substancial
**Tipos de documento suportados:**
| Tipo | Template Hub | Notas |
|------|-------------|-------|
| Proposta comercial | `Hub/90-Templates/Comercial/` | Integrar dados cliente via /crm |
| Spec de projecto | `Hub/90-Templates/TPL-Projecto/` | Incluir arquitectura, milestones |
| Relatório cliente | `Hub/90-Templates/` | Dados do Desk CRM |
| SOP / Procedimento | `Hub/06-Operacoes/Procedimentos/` | Formato PROC-*.md |
| Decisão técnica | — | Registar contexto e alternativas |
| RFC / Design doc | — | Foco em trade-offs e impacto |
**Oferta inicial:**
Oferecer ao utilizador um workflow estruturado para co-autoria. Explicar as três fases:
1. **Recolha de contexto**: O utilizador fornece todo o contexto relevante enquanto são feitas perguntas de clarificação
2. **Refinamento e estrutura**: Construção iterativa de cada secção através de brainstorming e edição
3. **Teste de leitura**: Testar o documento com um Claude sem contexto para detectar pontos cegos antes de outros lerem
Explicar que esta abordagem garante que o documento funciona quando outros o lêem. Perguntar se preferem este workflow ou trabalhar em formato livre.
Se o utilizador recusar, trabalhar em formato livre. Se aceitar, avançar para a Fase 1.
---
## Fase 1: Recolha de Contexto
**Objectivo:** Fechar a lacuna entre o que o utilizador sabe e o que o Claude sabe, permitindo orientação inteligente depois.
### Perguntas Iniciais
Começar por pedir meta-contexto sobre o documento:
1. Que tipo de documento é? (ex.: proposta comercial, spec de projecto, SOP)
2. Quem é o público-alvo principal?
3. Qual o impacto desejado quando alguém lê isto?
4. Existe um template ou formato específico a seguir?
5. Há algum cliente ou projecto associado? (para consultar /crm)
6. Outras restrições ou contexto relevante?
Informar que podem responder de forma breve ou despejar informação como preferirem.
**Se o utilizador mencionar um template ou tipo de documento:**
- Verificar templates disponíveis em `Hub/90-Templates/`
- Se mencionarem um template específico, usar filesystem para o ler
- Se mencionarem um documento partilhado (Google Drive, etc.), usar a integração adequada
**Se o utilizador mencionar um cliente ou projecto:**
- Usar /crm para obter dados do cliente (contactos, historial, projectos activos)
- Consultar `Hub/07-Clientes/` para contexto adicional
- Verificar propostas anteriores em `Hub/03-Propostas/` ou no Desk CRM
**Se o utilizador mencionar edição de documento existente:**
- Usar a integração adequada para ler o estado actual
- Verificar imagens sem alt-text
- Se existirem imagens sem alt-text, explicar que quando outros usarem o Claude para entender o documento, o Claude não consegue vê-las. Perguntar se querem alt-text gerado.
### Despejo de Informação
Após as perguntas iniciais, encorajar o utilizador a despejar todo o contexto disponível. Pedir informação como:
- Background do projecto/problema
- Discussões de equipa ou documentos relacionados
- Porquê alternativas não estão a ser usadas
- Contexto organizacional (dinâmicas de equipa, incidentes passados)
- Pressões de prazo ou restrições
- Arquitectura técnica ou dependências
- Preocupações de stakeholders
- Dados do CRM relevantes (historial do cliente, propostas anteriores)
Aconselhar a não se preocuparem com organização — apenas tirar tudo cá para fora. Oferecer múltiplas formas de fornecer contexto:
- Despejo de informação em fluxo de consciência
- Apontar para canais ou threads de equipa
- Partilhar links para documentos
**Pesquisa de contexto automática:**
Usar /knowledge para pesquisar contexto relevante nas fontes de conhecimento (NotebookLM, Supabase, docs locais). Informar o utilizador do que foi encontrado.
**Se integrações disponíveis** (Google Workspace, filesystem, etc.), mencionar que podem ser usadas para importar contexto directamente.
**Durante a recolha de contexto:**
- Se o utilizador mencionar canais ou documentos partilhados:
- Se integrações disponíveis: Informar que o conteúdo será lido agora, depois usar a integração adequada
- Se não disponíveis: Explicar falta de acesso. Sugerir que colem o conteúdo relevante directamente.
- Se o utilizador mencionar entidades/projectos desconhecidos:
- Perguntar se devem ser pesquisados nas ferramentas conectadas
- Aguardar confirmação antes de pesquisar
- À medida que o contexto é fornecido, acompanhar o que está a ser aprendido e o que ainda não é claro
**Perguntas de clarificação:**
Quando o utilizador sinalizar que terminou o despejo inicial (ou após contexto substancial), fazer perguntas de clarificação:
Gerar 5-10 perguntas numeradas baseadas nas lacunas do contexto.
Informar que podem usar taquigrafia para responder (ex.: "1: sim, 2: ver email X, 3: não por causa de compatibilidade"), apontar para mais docs, ou continuar a despejar. O que for mais eficiente.
**Condição de saída:**
Contexto suficiente recolhido quando as perguntas demonstram compreensão — quando se consegue perguntar sobre casos extremos e trade-offs sem precisar de explicações básicas.
**Transição:**
Perguntar se há mais contexto a fornecer, ou se é hora de avançar para a redacção.
Se quiserem adicionar mais, deixar. Quando prontos, avançar para a Fase 2.
---
## Fase 2: Refinamento e Estrutura
**Objectivo:** Construir o documento secção a secção através de brainstorming, curadoria e refinamento iterativo.
**Instruções ao utilizador:**
Explicar que o documento será construído secção a secção. Para cada secção:
1. Perguntas de clarificação sobre o que incluir
2. Brainstorming de 5-20 opções
3. O utilizador indica o que manter/remover/combinar
4. A secção é redigida
5. Refinamento através de edições cirúrgicas
Começar pela secção com mais incógnitas (normalmente a proposta/decisão central), depois trabalhar as restantes.
**Ordenação de secções:**
Se a estrutura do documento for clara:
Perguntar por qual secção começar.
Sugerir começar pela secção com mais incógnitas. Para propostas comerciais, normalmente é o âmbito e preço. Para specs, é tipicamente a abordagem técnica. Secções de resumo ficam para o fim.
Se o utilizador não souber que secções precisa:
Baseado no tipo de documento, template e contexto Descomplicar, sugerir 3-5 secções adequadas.
**Sugestões por tipo de documento:**
| Tipo | Secções sugeridas |
|------|------------------|
| Proposta comercial | Contexto/Problema, Solução proposta, Âmbito e entregáveis, Investimento, Próximos passos |
| Spec de projecto | Objectivo, Arquitectura, Requisitos, Milestones, Riscos |
| Relatório cliente | Sumário executivo, Trabalho realizado, Métricas, Recomendações, Próximos passos |
| SOP | Objectivo, Pré-requisitos, Procedimento (passos), Verificação, Troubleshooting |
| Decisão técnica | Contexto, Opções avaliadas, Análise comparativa, Decisão, Consequências |
Perguntar se a estrutura funciona ou se querem ajustá-la.
**Quando a estrutura for acordada:**
Criar a estrutura inicial do documento com texto placeholder para todas as secções.
Criar um ficheiro markdown no directório de trabalho. Nomear adequadamente (ex.: `proposta-cliente-nome.md`, `spec-projecto.md`).
Confirmar o nome do ficheiro criado e indicar que é hora de preencher cada secção.
**Para cada secção:**
### Passo 1: Perguntas de Clarificação
Anunciar que o trabalho na secção [NOME DA SECÇÃO] vai começar. Fazer 5-10 perguntas de clarificação sobre o que incluir:
Gerar 5-10 perguntas específicas baseadas no contexto e objectivo da secção.
Informar que podem responder em taquigrafia ou apenas indicar o que é importante cobrir.
### Passo 2: Brainstorming
Para a secção [NOME DA SECÇÃO], fazer brainstorming de [5-20] pontos que possam ser incluídos, dependendo da complexidade. Procurar:
- Contexto partilhado que possa ter sido esquecido
- Ângulos ou considerações ainda não mencionados
- Dados do /crm ou /knowledge relevantes
Gerar 5-20 opções numeradas baseadas na complexidade da secção. No fim, oferecer brainstorming adicional se quiserem mais opções.
### Passo 3: Curadoria
Perguntar quais pontos manter, remover ou combinar. Pedir breves justificações para ajudar a aprender prioridades para as próximas secções.
Dar exemplos:
- "Manter 1,4,7,9"
- "Remover 3 (duplica o 1)"
- "Remover 6 (o público já sabe isto)"
- "Combinar 11 e 12"
**Se o utilizador der feedback em formato livre** (ex.: "está bom" ou "gosto da maioria mas...") em vez de selecções numeradas, extrair as preferências e prosseguir. Interpretar o que querem manter/remover/alterar e aplicar.
### Passo 4: Verificação de Lacunas
Baseado no que seleccionaram, perguntar se falta algo importante para a secção [NOME DA SECÇÃO].
### Passo 5: Redacção
Usar `str_replace` para substituir o texto placeholder desta secção pelo conteúdo redigido.
Anunciar que a secção [NOME DA SECÇÃO] vai ser redigida agora com base no que seleccionaram.
Após a redacção, confirmar conclusão. Informar que a secção [NOME DA SECÇÃO] foi redigida em [ficheiro]. Pedir que leiam e indiquem o que alterar. Notar que ser específico ajuda a aprender o estilo para futuras secções.
**Instrução chave ao utilizador (incluir ao redigir a primeira secção):**
Nota: Em vez de editar o documento directamente, pedir que indiquem o que alterar. Isto ajuda a aprender o estilo para futuras secções. Exemplo: "Remover o bullet X — já coberto por Y" ou "Tornar o terceiro parágrafo mais conciso".
### Passo 6: Refinamento Iterativo
À medida que o utilizador fornece feedback:
- Usar `str_replace` para fazer edições (nunca reimprimir todo o documento)
- Confirmar que as edições estão completas
- Se o utilizador editar o documento directamente e pedir para ler: notar mentalmente as alterações e tê-las em conta para futuras secções (revela preferências)
**Continuar a iterar** até o utilizador ficar satisfeito com a secção.
### Verificação de Qualidade
Após 3 iterações consecutivas sem alterações substanciais, perguntar se algo pode ser removido sem perder informação importante.
Quando a secção estiver concluída, confirmar que [NOME DA SECÇÃO] está completa. Perguntar se estão prontos para a próxima secção.
**Repetir para todas as secções.**
### Perto da Conclusão
Ao aproximar da conclusão (80%+ das secções feitas), anunciar intenção de reler todo o documento e verificar:
- Fluxo e consistência entre secções
- Redundância ou contradições
- Qualquer coisa que pareça genérico ou filler
- Se cada frase tem peso
Ler todo o documento e fornecer feedback.
**Quando todas as secções estiverem redigidas e refinadas:**
Anunciar que todas as secções estão redigidas. Indicar intenção de rever o documento completo uma última vez.
Rever para coerência geral, fluxo, completude.
Fornecer sugestões finais.
Perguntar se estão prontos para o teste de leitura, ou se querem refinar mais alguma coisa.
---
## Fase 3: Teste de Leitura
**Objectivo:** Testar o documento com um Claude sem contexto (sem contaminação) para verificar que funciona para leitores.
**Instruções ao utilizador:**
Explicar que agora vai ser testado se o documento funciona para leitores. Isto detecta pontos cegos — coisas que fazem sentido para os autores mas podem confundir outros.
### Abordagem de Teste
**Se sub-agentes disponíveis (ex.: Claude Code):**
Realizar o teste directamente sem envolvimento do utilizador.
#### Passo 1: Prever Perguntas dos Leitores
Anunciar intenção de prever que perguntas os leitores farão ao encontrar este documento.
Gerar 5-10 perguntas que leitores realisticamente fariam. Para documentos Descomplicar, incluir perguntas que um cliente ou parceiro faria.
#### Passo 2: Testar com Sub-Agente
Anunciar que estas perguntas vão ser testadas com uma instância Claude sem contexto desta conversa.
Para cada pergunta, invocar um sub-agente apenas com o conteúdo do documento e a pergunta.
Resumir o que o Claude leitor acertou/errou para cada pergunta.
#### Passo 3: Verificações Adicionais
Anunciar que verificações adicionais vão ser realizadas.
Invocar sub-agente para verificar ambiguidade, pressupostos falsos, contradições.
Resumir quaisquer problemas encontrados.
#### Passo 4: Reportar e Corrigir
Se problemas encontrados:
Reportar que o Claude leitor teve dificuldades com questões específicas.
Listar os problemas específicos.
Indicar intenção de corrigir estas lacunas.
Voltar ao refinamento para secções problemáticas.
---
**Se sub-agentes não disponíveis:**
O utilizador terá de fazer o teste manualmente.
#### Passo 1: Prever Perguntas dos Leitores
Perguntar que perguntas as pessoas farão ao encontrar este documento. O que escreveriam no Claude.ai?
Gerar 5-10 perguntas que leitores realisticamente fariam.
#### Passo 2: Configurar Teste
Fornecer instruções de teste:
1. Abrir uma nova conversa Claude: https://claude.ai
2. Colar ou partilhar o conteúdo do documento
3. Fazer ao Claude leitor as perguntas geradas
Para cada pergunta, instruir o Claude leitor a fornecer:
- A resposta
- Se algo foi ambíguo ou pouco claro
- Que conhecimento/contexto o documento assume como conhecido
Verificar se o Claude leitor dá respostas correctas ou interpreta mal algo.
#### Passo 3: Verificações Adicionais
Também perguntar ao Claude leitor:
- "O que neste documento pode ser ambíguo ou pouco claro para leitores?"
- "Que conhecimento ou contexto este documento assume que os leitores já têm?"
- "Há contradições internas ou inconsistências?"
#### Passo 4: Iterar com Base nos Resultados
Perguntar o que o Claude leitor errou ou teve dificuldade. Indicar intenção de corrigir essas lacunas.
Voltar ao refinamento para secções problemáticas.
---
### Condição de Saída (Ambas as Abordagens)
Quando o Claude leitor responde consistentemente às perguntas de forma correcta e não levanta novas lacunas ou ambiguidades, o documento está pronto.
---
## Revisão Final
Quando o teste de leitura passar:
Anunciar que o documento passou o teste de leitura. Antes de concluir:
1. Recomendar uma leitura final pelo utilizador — eles são donos do documento e responsáveis pela qualidade
2. Sugerir verificação dupla de factos, links ou detalhes técnicos
3. Perguntar se atinge o impacto desejado
Perguntar se querem mais uma revisão ou se o trabalho está concluído.
**Se quiserem revisão final, fornecer. Caso contrário:**
Anunciar conclusão do documento. Fornecer dicas finais:
- Considerar gerar o documento final com /docx, /xlsx ou /pdf conforme o formato necessário
- Usar apêndices para fornecer profundidade sem inchar o documento principal
- Actualizar o documento à medida que feedback é recebido de leitores reais
- Se for proposta comercial, considerar criar estimate no Desk CRM via /crm
---
## Integração com Ecossistema Descomplicar
### Fontes de Contexto
| Fonte | Quando usar | Como |
|-------|------------|------|
| /knowledge | Pesquisar conhecimento temático | NotebookLM, Supabase, docs locais |
| /crm | Dados de clientes e projectos | Desk CRM (contactos, historial, propostas) |
| Hub/90-Templates/ | Templates de documentos | Estruturas predefinidas |
| Hub/03-Propostas/ | Propostas anteriores | Referência de estilo e conteúdo |
| Hub/07-Clientes/ | Contexto de clientes | Notas, projectos, ficheiros |
### Formatos de Saída
Após concluir o documento:
- **Proposta comercial** → /docx ou /pdf para envio ao cliente
- **Spec de projecto** → Manter como .md no directório do projecto
- **SOP / Procedimento** → Mover para `Hub/06-Operacoes/Procedimentos/` como PROC-*.md
- **Relatório cliente** → /pdf para envio, guardar cópia em Hub/07-Clientes/
- **Decisão técnica** → Guardar em Supabase via /knowledge e no Hub
---
## Dicas para Orientação Eficaz
**Tom:**
- Directo e procedimental
- Explicar brevemente o racional quando afecta o comportamento do utilizador
- Não tentar "vender" a abordagem — apenas executá-la
**Lidar com Desvios:**
- Se o utilizador quiser saltar uma fase: Perguntar se querem saltar e escrever em formato livre
- Se o utilizador parecer frustrado: Reconhecer que está a demorar mais do que esperado. Sugerir formas de acelerar
- Dar sempre agência ao utilizador para ajustar o processo
**Gestão de Contexto:**
- Ao longo de todo o processo, se faltar contexto sobre algo mencionado, perguntar proactivamente
- Não deixar lacunas acumular — resolvê-las à medida que surgem
**Gestão de Ficheiros:**
- Usar `str_replace` para todas as edições
- Confirmar edições após cada alteração
- Nunca usar brainstorming em ficheiros — isso é conversa
- Documento de trabalho sempre em markdown até formato final
**Qualidade sobre Velocidade:**
- Não apressar as fases
- Cada iteração deve trazer melhorias significativas
- O objectivo é um documento que funciona para leitores
---
## Changelog
### v1.0.0 (2026-03-06)
- Versão inicial adaptada de Anthropic doc-coauthoring
- Workflow de 3 fases: contexto, refinamento, teste de leitura
- Integração com /knowledge, /crm e templates Hub
- Tipos de documento Descomplicar: propostas, specs, relatórios, SOPs
- Sugestões de secções por tipo de documento
- Formatos de saída com /docx, /xlsx, /pdf
- Integração com ecossistema Descomplicar (Desk CRM, Hub, templates)
---
**Versão**: 1.0.0 | **Data**: 2026-03-06 | **Autor**: Descomplicar®

View File

@@ -1,25 +1,7 @@
---
name: imap-triage
description: >
Triagem automatica de emails IMAP em 14 contas. Elimina spam, arquiva promocionais, identifica facturas para /auto-expense, flagga prioritarios. Deduplicacao via Supabase. Use when "imap", "triagem email", "limpar emails", "email triage", "processar emails".
author: Descomplicar® Crescimento Digital
version: 1.0.0
quality_score: 85
user_invocable: true
category: management
tags: [imap, email, triage, spam, promotions, invoices, supabase]
desk_task: 1710
desk_project: 65
allowed-tools: Read, Write, mcp__imap, mcp__ssh-unified
mcps: imap, ssh-unified
dependencies:
mcps: [imap, ssh-unified]
files:
- /media/ealmeida/Dados/Hub/06-Operacoes/Documentacao/fornecedores-recorrentes.md
triggers:
- "User asks to process emails"
- "User mentions 'imap', 'triagem', 'emails', 'limpar inbox'"
- "Invoked by /today orchestrator"
description: Triagem automática de emails IMAP em 14 contas. Elimina spam, arquiva promocionais, identifica facturas, sinaliza prioritários. Deduplicação via Supabase. Usar quando "imap", "triagem email", "limpar emails", "email triage", "processar emails".
disable-model-invocation: true
---
# /imap-triage v1.0

View File

@@ -1,6 +1,7 @@
---
name: index-update
description: Actualiza INDEX.md de procedimentos após criar/modificar/arquivar PROC. Use quando "actualizar index", "update INDEX.md", depois de criar procedimento, mover PROC, arquivar procedimento. Mantém estatísticas, navegação e data actualizadas.
description: Actualiza INDEX.md de procedimentos após criar/modificar/arquivar PROC. Usar quando "actualizar index", "update INDEX.md", depois de criar procedimento, mover PROC, arquivar procedimento. Mantém estatísticas, navegação e data actualizadas.
disable-model-invocation: true
---
# /index-update - Actualizador de INDEX.md

View File

@@ -1,39 +1,27 @@
---
name: knowledge
description: >
Unified knowledge management with intelligent routing across Dify KB, WikiJS, Supabase, Context7 and local docs. Detects gaps and suggests content creation.
Use when searching documentation, looking for best practices, researching solutions, or when user mentions
"how to", "documentation", "knowledge base", "search docs", "find information", "best practices", "procedures", "guides".
author: Descomplicar® Crescimento Digital
version: 1.1.0
user_invocable: true
tags: [knowledge, kb, dify, wikijs, supabase, context7, search, documentation]
desk_task: 1474
allowed-tools: Read, Grep, mcp__notebooklm__notebook_query, mcp__dify-kb__dify_kb_retrieve_segments, mcp__wikijs__search_pages, mcp__memory-supabase__search_memories, mcp__context7__get-library-docs
category: productivity
quality_score: 85
updated: "2026-02-04T18:00:00Z"
description: Gestao unificada de conhecimento com routing por tema para 58 notebooks NotebookLM, Supabase, Context7 e documentacao local. Detecta lacunas e sugere criacao de conteudo. v2.0.0
---
# /knowledge - Gestão Unificada de Conhecimento
# /knowledge - Gestao Unificada de Conhecimento v2.0.0
Pesquisa inteligente com routing automático entre todas as fontes de conhecimento.
Pesquisa inteligente com routing automatico entre todas as fontes de conhecimento.
NotebookLM e a fonte primaria (substituiu Dify KB em 06-03-2026).
## Arquitectura
```
Pergunta → Router → Fonte Adequada → Resultado Agregado
Detecta Lacunas Sugere Criação
Pergunta -> Classificar Tema -> Seleccionar Notebooks -> Query NotebookLM -> Enriquecer (Supabase/Context7/Local) -> Resultado
|
Detecta Lacunas -> Sugere Criacao
```
| Fonte | MCP | Tipo de Conhecimento |
|-------|-----|---------------------|
| **Dify KB** | dify-kb | RAG, 74 datasets temáticos |
| **WikiJS** | wikijs | Documentação estruturada, procedimentos |
| **Supabase** | memory-supabase | Memória sessões, decisões, contexto |
| **NotebookLM** | notebooklm | RAG Gemini 2.5, 58 notebooks tematicos (primario) |
| **Supabase** | memory-supabase | Memoria sessoes, decisoes, contexto |
| **Context7** | context7 | Docs bibliotecas externas |
| **Docs Locais** | filesystem | Ficheiros GDrive, Obsidian |
| **Docs Locais** | filesystem | Ficheiros Hub, GDrive, Dev |
---
@@ -43,568 +31,260 @@ Pergunta → Router → Fonte Adequada → Resultado Agregado
|---------|-----|
| `/knowledge [termo]` | Pesquisa inteligente com routing |
| `/kb [termo]` | Alias curto |
| `/kb-sync` | Sincronizar índice com Dify KB (actualiza IDs e docs) |
| `/kb-save [tema]` | Guardar conhecimento na fonte adequada |
| `/kb-gaps` | Listar lacunas identificadas |
| `/kb-new [tema]` | Criar novo dataset Dify |
---
## Routing por Tema
### Marketing e Conteúdo
```
Tema: marketing, SEO, copywriting, redes sociais
1ª Fonte: Dify (Marketing Digital, SEO, Neil Patel, Copywriting)
2ª Fonte: WikiJS (estratégias)
3ª Fonte: Supabase (decisões passadas)
```
## Routing por Tema -> Notebooks NotebookLM
### WordPress e Web
```
Tema: WordPress, Elementor, WooCommerce, plugins
1ª Fonte: Dify (WordPress, Elementor, Crocoblock)
2ª Fonte: Context7 (docs oficiais)
3ª Fonte: Docs Locais (código)
```
### CRM e Clientes
```
Tema: clientes, Perfex, projectos, facturação
1ª Fonte: Supabase (contexto recente)
2ª Fonte: Dify (PerfexCRM)
3ª Fonte: WikiJS (procedimentos)
```
| Keywords | Notebook | ID |
|----------|----------|----|
| wordpress, wp-cli, config | WordPress Config CLI | `fb2f26bd-8cb0-4d4c-bafc-4f1ebb51c51d` |
| elementor, templates, widgets | WordPress e Elementor | `5be0d1a6-00f2-4cd9-b835-978cb7721601` |
| woocommerce, loja, produtos | Documentacao WooCommerce | `bd06acff-4b9d-44aa-b3f7-60434bbd6b49` |
| kivicare, ehr, clinica | KiviCare EHR WP | `78621405-a5bc-433f-856f-296260a80bd9` |
| seguranca wp, malware, hardening | Ciberseguranca WordPress | `5f60adfd-2435-4725-8c12-9c11c5f51d75` |
### Desenvolvimento
```
Tema: código, API, PHP, React, Node
1ª Fonte: Context7 (docs bibliotecas)
2ª Fonte: Dify (TI, Dev Software)
3ª Fonte: Docs Locais (projectos)
```
**Fallback:** Context7 (docs oficiais plugins) -> Docs Locais (`/Dev/*/wp-content/`)
### Infraestrutura
```
Tema: servidor, CWP, Linux, deploy
1ª Fonte: WikiJS (procedimentos)
2ª Fonte: Dify (TI, CWP, Linux)
3ª Fonte: Supabase (configurações)
```
### Marketing e Conteudo
### Estratégia e Gestão
```
Tema: estratégia, projectos, processos
1ª Fonte: Dify (Estratégia, Gestão Projetos)
2ª Fonte: WikiJS (planos)
3ª Fonte: Supabase (decisões)
```
| Keywords | Notebook | ID |
|----------|----------|----|
| marketing, digital, campanha, funil | Marketing Digital PT | `4c595973-ba10-420a-a3bf-e4389e424ad3` |
| marketing avancado, ads, growth | Marketing Digital Avancado | `76647e0f-3ae2-4c00-a0a8-f457aebf5655` |
| seo, keywords, ranking, serp | Marketing Digital PT | `4c595973-ba10-420a-a3bf-e4389e424ad3` |
| copywriting, persuasao, texto | Copywriting e Persuasao | `7b8fec17-d34f-4e3f-a8c6-8231e51f6323` |
| social media, branding, instagram | Social Media e Branding | `9053d0e8-dd39-460b-b5ea-e67af3e9a675` |
| video, producao, youtube | Producao de Video e Youtube | `058a896e-6c9a-4e51-ae7d-9adb2738bc5f` |
| youtube, monetizacao, compliance | YouTube Monetizacao e Compliance | `60a209a7-e205-4d57-a6f3-fef3de61e87a` |
| podcast, audio | Podcast Descomplicar | `a5bef96b-a1af-4293-9979-5da46f8d2301` |
| ecommerce, loja online | E-commerce Pratico | `226e384e-d4bc-48f4-bb82-7927360436cc` |
| ecommerce portugal, marketplace | E-Commerce Portugal | `8a430cf2-ed99-413d-b4bf-a1400deaf49e` |
### Decisões e Contexto
```
Tema: decisão, porque, contexto, histórico
1ª Fonte: Supabase (memória longo prazo)
2ª Fonte: Obsidian (notas)
3ª Fonte: Dify (Data Lake)
```
**Fallback:** Supabase (decisoes marketing) -> Docs Locais (Hub/)
### Desenvolvimento e Codigo
| Keywords | Notebook | ID |
|----------|----------|----|
| programacao, codigo, api, php, react, node | Programacao | `24947ffa-0019-448a-a340-2f4a275d2eb1` |
| claude code, claude, mcp dev | Claude Code | `2876d1fe-5cea-4d98-8140-b0e1a81c6bc4` |
| claude code mini, snippets | Claude Code (mini) | `0be6f45b-8fd5-4a5e-8f80-e36a6f516ded` |
| mcp, mcp server, protocolo | Desenvolvimento de MCPs | `73102308-70ef-403e-9be9-eae0cfc62d55` |
| ai editor, cursor, copilot | AI Code Editors | `57d9c6c9-48ba-4d83-8f71-cc890f348a53` |
| github, trends, repos | GitHub Trends | `922b7532-ddf3-4dba-9d3c-6d5f83b89378` |
| open source, foss, self-hosted | Open Source Software and Platforms | `cabf9821-c1ff-44cb-9bfd-59bda3599792` |
| open webui, ollama | Open WebUI | `be6f72ac-f8ba-4337-912d-abd5dd448519` |
| remotion, video code | Remotion | `f2b75baa-1ab1-48d3-8f7c-a6a9e516934c` |
| perfex, perfexcrm, modulos | Perfex CRM: Gestao de Clientes e Projetos | `df4688bb-c2c0-4aba-98c1-38c3b50a353c` |
| perfex dev, hooks perfex | Dev PerfexCRM | `80606de8-2783-4d36-b08d-5825e6f9a8da` |
| erxes, xos | Erxes XOS | `10ea7de8-5777-4f18-bd2c-f58952b6047c` |
| n8n, automacao, workflow | n8n | `f2c809b8-1cb5-4dd0-aa7e-be2cfb6704d1` |
**Fallback:** Context7 (docs bibliotecas) -> Docs Locais (`/Dev/`)
### Infraestrutura e Servidores
| Keywords | Notebook | ID |
|----------|----------|----|
| cwp, centos, servidor web | CWP | `0ded7bd6-69b3-4c76-b327-452396bf7ea7` |
| cloud, infraestrutura, devops | Cloud e Infraestrutura TI | `f9a79b5a-649f-4443-afaf-7ff562b6c2e7` |
| proxmox, virtualizacao, vm | Proxmox | `276ccdde-6b95-42a3-ad96-4e64d64c8d52` |
**Fallback:** Supabase (configs anteriores) -> Docs Locais (Hub/06-Operacoes/)
### Design e UX
| Keywords | Notebook | ID |
|----------|----------|----|
| design, branding visual, ai design | Design Profissional AItomatizado | `b568b13b-0eed-48c9-b513-5c5b7ec0b102` |
| ui, ux, interface, usabilidade | UI/UX Design | `081ca512-8279-4850-b2b9-dff090267482` |
| tipografia, cores, web design | Tipografia e Cor para Web | `f97a0d2b-a5b3-4640-b941-3cbb184b1b81` |
### Gestao e Estrategia
| Keywords | Notebook | ID |
|----------|----------|----|
| gestao projectos, agile, scrum | Gestao de Projectos e Agile | `0c9c079c-a426-486c-99eb-1564d42d37ad` |
| operacoes, processos, kpi | Gestao de Operacoes | `f9dc59c2-718b-4b12-bd06-095d4bfa3e34` |
| estrategia, empreendedorismo, negocio | Estrategia e Empreendedorismo | `79d43410-0e29-4be1-881d-84db6bdc239a` |
| transformacao digital, ia negocio | Transformacao Digital e IA | `ab876d0d-12a8-43d9-bc62-59c1c8e9d0f8` |
| ai automation, stack ai | AI Automation Stack | `929ef67b-c131-4f01-abd0-8b078491a6b7` |
| ai agents, curso ai | AI Agents Intensive Course | `f4be0e3f-4d9e-4c5c-a743-9f14427f2e43` |
**Fallback:** Supabase (decisoes) -> Docs Locais (Hub/01-Planeamento/)
### Produtos e Clientes
| Keywords | Notebook | ID |
|----------|----------|----|
| zaia, chatbot, whatsapp bot | Zaia | `087d76f1-e929-49da-9e3c-4edc22b42b3f` |
| zender, sms, whatsapp api | Zender 3 | `7095e5fa-1465-4496-b1a3-48f2e6e07f79` |
| reonic, solar crm | Reonic | `b7e61158-0717-4582-8ef2-0301be3c73ae` |
| carstuff, automovel | CarStuff | `90f0bc77-b5e4-4ddd-a07c-013a1a30b247` |
| solar, fotovoltaico, engenharia | Solar FV Engenharia | `03d54e00-aefa-45dc-ba01-f3864a7c3112` |
| opensolar, dimensionamento | OpenSolar | `0082bcaf-1e17-4b84-87cc-2256b1719b55` |
| produtos, servicos, tabela precos | Produtos e Servicos: BD | `c451d7b4-79fd-4a67-9149-1da38d28345e` |
| descomplicar marketing | Descomplicar: Marketing Digital | `f29c8457-f16d-4fb3-979d-6e5901de1b20` |
### Sistema e Produtividade
| Keywords | Notebook | ID |
|----------|----------|----|
| obsidian, vault, notas | Obsidian + Claude | `ebee9fe1-78fd-4f85-8938-f19f3ea32131` |
| viral, filosofia, youtube channel | Building Viral AI Philosophy Channels | `7bb570b3-9dc4-4e6f-817c-aca68df59e6d` |
### Pessoal / SelfRescueProtocol (9)
| Keywords | Notebook | ID |
|----------|----------|----|
| jung, arquetipos, sombra | Jung | `d5c67d7f-7fe8-4542-9e5c-22403f3193ee` |
| emanuel, pessoal, perfil | Emanuel Almeida | `8c6c8257-bda2-433c-bf55-f40d98bfde8f` |
| taoismo, tao, wu wei | Taoism | `aea85baf-9ddf-4d79-bf07-81391a275b09` |
| adhd, phda, atencao | ADHD | `a4ff3fd7-fb7c-49a1-94ff-0433193e2338` |
| autismo, neurodivergencia | Autismo | `66eff78e-318f-4a8b-a3c7-039a4124b1ad` |
| heroi, jornada, mito | Essencia de Heroi | `6dcd08e8-79d9-4ae0-b6bf-b2ee96717bf2` |
| kintsugi, resiliencia | Auto Kintsugi | `82a95c2f-be56-4c4a-a96f-96f6677a6991` |
| somatica, corpo, trauma | Psicologia Somatica | `3410893b-16a3-4178-9091-42650a41086f` |
| estoicismo, marco aurelio, stoic | Marcus Aurelius / Stoic | `4b986ad4-49da-4604-a423-4fcdf20dd9da` |
---
## Workflow Completo
## Workflow
### Passo 1: Análise do Termo
### Passo 1: Classificar Tema
```javascript
// Input: "/knowledge como configurar crocoblock filters"
function analisarQuery(query) {
const keywords = {
tecnico: /código|api|php|react|node|servidor|linux|deploy|git/i,
wordpress: /wordpress|elementor|crocoblock|woocommerce|plugin/i,
marketing: /seo|marketing|copywriting|redes sociais|instagram/i,
crm: /cliente|perfex|crm|facturação|orçamento/i,
estrategia: /estratégia|plano|decisão|porque|contexto/i,
procedimento: /como|tutorial|guia|passo a passo|procedimento/i
};
for (const [categoria, pattern] of Object.entries(keywords)) {
if (pattern.test(query)) {
return categoria;
}
}
return 'geral'; // Default se não detectar categoria
}
const categoria = analisarQuery(query); // 'wordpress'
// 1. Extrair keywords: ["crocoblock", "filters", "configurar"]
// 2. Match routing: wordpress (crocoblock)
// 3. Notebooks primarios: WordPress Config CLI, WordPress e Elementor
// 4. Notebooks secundarios: Ciberseguranca WordPress (se relevante)
```
### Passo 2: Determinar Fontes Prioritárias
### Passo 2: Query NotebookLM (Primario)
```javascript
const routing = {
wordpress: [
{ fonte: 'dify', datasets: ['crocoblock-kb', 'elementor', 'wordpress'] },
{ fonte: 'context7', libraries: ['elementor', 'woocommerce'] },
{ fonte: 'docs-locais', paths: ['/Projectos/*/wp-content/'] }
],
marketing: [
{ fonte: 'dify', datasets: ['marketing-digital', 'seo', 'copywriting'] },
{ fonte: 'wikijs', tags: ['marketing', 'estrategia'] },
{ fonte: 'supabase', tags: ['decisao', 'marketing'] }
],
crm: [
{ fonte: 'supabase', tags: ['cliente', 'crm'] },
{ fonte: 'dify', datasets: ['perfexcrm'] },
{ fonte: 'wikijs', tags: ['procedimento', 'crm'] }
],
tecnico: [
{ fonte: 'context7', libraries: ['auto-detect'] },
{ fonte: 'dify', datasets: ['ti', 'desenvolvimento-software'] },
{ fonte: 'docs-locais', paths: ['/Dev/'] }
],
estrategia: [
{ fonte: 'supabase', tags: ['decisao', 'contexto'] },
{ fonte: 'obsidian', folders: ['01-Projectos/', '02-Areas/'] },
{ fonte: 'dify', datasets: ['data-lake-descomplicar'] }
],
procedimento: [
{ fonte: 'wikijs', all: true },
{ fonte: 'dify', datasets: ['procedimentos'] },
{ fonte: 'obsidian', folders: ['03-Recursos/Procedimentos/'] }
]
};
// Consultar 1-3 notebooks relevantes (max 3 para performance)
mcp__notebooklm__notebook_query({
notebook_id: "fb2f26bd-8cb0-4d4c-bafc-4f1ebb51c51d", // WordPress Config CLI
query: "crocoblock filters configuracao"
})
const fontes_prioritarias = routing[categoria];
// Se score < 70, consultar notebook secundario
mcp__notebooklm__notebook_query({
notebook_id: "5be0d1a6-00f2-4cd9-b835-978cb7721601", // WordPress e Elementor
query: "crocoblock filters"
})
```
### Passo 3: Pesquisa Sequencial
### Passo 3: Enriquecer (Opcional)
```javascript
async function pesquisar(query, categoria) {
const fontes = routing[categoria];
let resultados = [];
// Supabase - contexto/decisoes anteriores
mcp__memory-supabase__search_memories({ query, tags: ["wordpress", "crocoblock"] })
for (const fonte of fontes) {
let resultado;
// Context7 - docs bibliotecas externas
mcp__plugin_context7_context7__resolve-library-id({ libraryName: "crocoblock" })
switch (fonte.fonte) {
case 'dify':
// Pesquisar em paralelo nos datasets
const promessas = fonte.datasets.map(ds_id =>
mcp__dify-kb__dify_kb_retrieve_segments({
dataset_id: resolverDatasetID(ds_id),
query: query,
top_k: 3
})
);
resultado = await Promise.all(promessas);
break;
case 'wikijs':
resultado = await mcp__wikijs__search_pages({ query });
break;
case 'supabase':
resultado = await mcp__memory-supabase__search_memories({
query,
tags: fonte.tags
});
break;
case 'context7':
// Detectar bibliotecas mencionadas no query
const libs = detectarBibliotecas(query);
resultado = await Promise.all(
libs.map(lib => mcp__context7__get-library-docs({ library: lib }))
);
break;
case 'docs-locais':
// Grep nos paths
resultado = await Grep({
pattern: extrairKeywords(query).join('|'),
path: fonte.paths[0],
output_mode: 'content'
});
break;
case 'obsidian':
// Pesquisa nos folders
resultado = await Promise.all(
fonte.folders.map(folder =>
Grep({
pattern: extrairKeywords(query).join('|'),
path: `/media/ealmeida/Dados/Hub/${folder}`,
output_mode: 'content'
})
)
);
break;
}
// Avaliar relevância
const relevante = avaliarRelevancia(resultado, query);
if (relevante.score > 70) {
// Resultado suficiente, parar pesquisa
return { resultados: relevante.data, fonte: fonte.fonte };
} else if (relevante.score > 30) {
// Adicionar mas continuar pesquisando
resultados.push({ ...relevante, fonte: fonte.fonte });
}
}
// Retornar agregado se nenhuma fonte teve score >70
return {
resultados: agregrarResultados(resultados),
fonte: 'multiplas',
lacuna: resultados.length === 0
};
}
// Filesystem - codigo local
// Grep/Glob em /media/ealmeida/Dados/Dev/ e /media/ealmeida/Dados/Hub/
```
### Passo 4: Resposta Estruturada
```markdown
## Resultado: como configurar crocoblock filters
## Resultado: [termo]
### Encontrado em Dify KB (Crocoblock)
**Configuração Filters JetEngine:**
1. Criar Query Builder no JetEngine
2. Definir filtros (taxonomy, meta fields, search)
3. Criar Filter Widget no Elementor
4. Conectar filtro ao Listing Grid
5. Configurar AJAX para loading dinâmico
**Documentação oficial:** [link]
### Encontrado em [Notebook]
[Conteudo encontrado]
### Relacionado
- [Links relevantes]
- [[JetEngine-Query-Builder|Guia Query Builder]]
- Dify KB: Elementor > Filtros Dinâmicos
- WikiJS: Procedimentos > Crocoblock Setup
### Qualidade da Resposta
✅ Completo (score: 85/100)
📊 3 segments de Dify KB
🔗 2 links relacionados
⏱️ Tempo de pesquisa: 1.2s
### Qualidade
- Score: XX/100
- Fonte: NotebookLM ([notebook])
- Enriquecido: [Supabase/Context7/Local] (se aplicavel)
```
### Passo 5: Detectar e Reportar Lacunas
```javascript
if (resultado.lacuna || resultado.score < 50) {
// Registar lacuna
if (resultado.score < 50 || !resultado.encontrado) {
await mcp__memory-supabase__save_memory({
content: `LACUNA: Query "${query}" não encontrou informação adequada.`,
metadata: {
type: 'lacuna-kb',
categoria: categoria,
query: query,
score: resultado.score,
date: new Date().toISOString()
}
content: `LACUNA: Query "${query}" sem informacao adequada.`,
metadata: { type: 'lacuna-kb', categoria, query, score: resultado.score }
});
// Sugerir criação de conteúdo
console.log(`
> [!warning] Lacuna Detectada
> Tema "${query}" tem informação insuficiente (score: ${resultado.score}).
>
> **Sugestões:**
> - [ ] Criar dataset Dify: "${categoria}-${extrairTema(query)}"
> - [ ] Criar página WikiJS: "Procedimentos/${extrairTema(query)}"
> - [ ] Guardar em Supabase se for decisão importante
`);
}
```
---
## MCPs Disponíveis
## Regras de Routing
### Knowledge Sources
**Primario:** NotebookLM
**Fallback:** Dify KB
```
mcp__dify-kb__dify_kb_list_datasets # Listar datasets
mcp__dify-kb__dify_kb_retrieve_segments # Pesquisar (dataset_id, query)
mcp__dify-kb__dify_kb_create_dataset # Criar dataset
mcp__dify-kb__dify_kb_create_document_text # Adicionar documento
```
### WikiJS
```
mcp__wikijs__search_pages # Pesquisar (query)
mcp__wikijs__get_page_by_id # Obter página
mcp__wikijs__get_all_pages # Listar todas
```
### Supabase Memory
```
mcp__memory-supabase__search_memories # Pesquisar (query)
mcp__memory-supabase__save_memory # Guardar (content, metadata)
mcp__memory-supabase__get_all_memories # Listar todas
```
### Context7
```
mcp__context7__resolve-library-id # Resolver biblioteca
mcp__context7__get-library-docs # Obter docs
```
### Filesystem (Docs Locais)
```
Grep/Glob em:
- /media/ealmeida/Dados/Hub/ (Obsidian vault)
- /media/ealmeida/Dados/GDrive/Projectos/
```
1. **Max 3 notebooks** por query (performance)
2. **Notebooks especificos primeiro** (ex: KiviCare antes de WordPress generico)
3. **Fallback hierarquico:** NotebookLM -> Supabase -> Context7 -> Docs Locais
4. **Multi-tema:** Se query cruza temas, consultar 1 notebook de cada tema
5. **Pessoal:** So consultar notebooks pessoais se query explicitamente pessoal
---
## Datasets Dify Principais
## Guardar Conhecimento (/kb-save)
### Por Categoria
| Categoria | Datasets | Total Docs |
|-----------|----------|------------|
| Marketing | Marketing Digital, SEO, Copywriting, Neil Patel | 200+ |
| WordPress | WordPress, Elementor, Crocoblock | 470+ |
| Gestão | Gestão Projetos, Estratégia, Produtividade | 50+ |
| Técnico | TI, Dev Software, Linux, AWS | 130+ |
| Clientes | ESP, SNT, Espiral Senior | 140+ |
### IDs Frequentes
Ver mapeamento completo em: `config/sources.json`
---
## Detecção de Lacunas
### Quando Detectar
- Pesquisa retorna 0 resultados
- Resultados irrelevantes para o contexto
- Tema recorrente sem documentação
- Decisão importante não registada
### Acção Sugerida
```markdown
> [!warning] Lacuna Detectada
> Tema "[X]" não tem documentação adequada.
>
> Sugestão:
> - [ ] Criar dataset Dify: [nome sugerido]
> - [ ] Criar página WikiJS: [path sugerido]
> - [ ] Guardar em Supabase: [se for decisão/contexto]
```
---
## Lacunas Conhecidas
### Datasets Dify em Falta
- [ ] Claude Code (boas práticas, skills, hooks)
- [ ] MCP Servers (configuração, troubleshooting)
- [ ] Obsidian (workflows, plugins, templates)
- [ ] Git/Gitea (workflows, CI/CD)
- [ ] EasyPanel (deploy, containers)
### Páginas WikiJS em Falta
- [ ] Arquitectura do Sistema (Stack completo)
- [ ] Guia MCPs Disponíveis
- [ ] Procedimentos de Backup
- [ ] Onboarding Novos Projectos
---
## Sincronização (/kb-sync)
O comando `/kb-sync` actualiza automaticamente o índice de datasets Dify.
### O que faz
1. Lista todos os datasets via `mcp__dify-kb__dify_kb_list_datasets`
2. Compara com `config/sources.json`
3. Actualiza IDs, nomes e contagem de documentos
4. Detecta datasets novos (não mapeados)
5. Detecta datasets removidos
6. Actualiza timestamp `last_sync`
### Quando usar
- Após criar/remover datasets no Dify
- Periodicamente (semanal recomendado)
- Quando pesquisas falham por ID inválido
### Output esperado
```markdown
## Sync Concluído
**Datasets:** 73 (anterior: 74)
**Actualizados:** 5
**Novos:** 0
**Removidos:** 1 (Demo Teste Agosto 2025)
### Alterações
| Dataset | Mudança |
|---------|---------|
| marketing-digital | docs: 81 → 85 |
| crocoblock-kb | docs: 403 → 410 |
```
### Estrutura do sources.json
```json
{
"version": "1.1.0",
"updated": "2026-01-25T15:30:00Z",
"last_sync": "2026-01-25T15:30:00Z",
"total_datasets": 73,
"dify_datasets": {
"nome-slug": {
"id": "uuid-do-dify",
"name": "Nome Original",
"docs": 123
}
}
}
```
---
## Workflow Guardar Conhecimento
### /kb-save [tema]
```
1. Analisar tipo de conhecimento
2. Determinar destino:
- Decisão/Contexto Supabase
- Procedimento → WikiJS
- Conhecimento temático → Dify KB
3. Formatar conteúdo
- Decisao/Contexto -> Supabase (memory-supabase)
- Conhecimento tematico -> NotebookLM (via source_add ao notebook adequado)
- Procedimento -> Hub/06-Operacoes/Procedimentos/ (PROC-*.md)
3. Formatar conteudo
4. Guardar com metadata adequada
5. Confirmar gravação
```
---
## Exemplos de Uso
## Deteccao de Lacunas
### Pesquisa Técnica
```
/kb como configurar crocoblock filters
→ Dify (Crocoblock) → Context7 (docs) → resultado agregado
```
### Pesquisa Contexto
```
/kb porque escolhemos easypanel
→ Supabase (decisões) → Obsidian (notas) → resultado
```
### Pesquisa Procedimento
```
/kb como fazer backup wordpress
→ WikiJS (procedimentos) → Dify (WordPress) → resultado
```
### Guardar Decisão
```
/kb-save decisão
"Escolhemos Remotion para vídeos porque..."
→ Supabase com tags: [decisão, video, remotion]
```markdown
> [!warning] Lacuna Detectada
> Tema "[X]" nao tem documentacao adequada.
>
> Sugestao:
> - [ ] Adicionar fontes ao notebook NotebookLM: [notebook]
> - [ ] Guardar em Supabase: [se for decisao/contexto]
> - [ ] Criar PROC: [se for procedimento]
```
---
## Referências
## Gaps Conhecidos (P1)
- [[03-Recursos/Indice-Conhecimento]] - Inventário completo de fontes
- [[StackUpdate]] - Roadmap do sistema
---
---
## Datasets Dify (Consulta Obrigatória)
Esta skill já faz routing automático para datasets Dify, mas em caso de dúvidas técnicas sobre a própria gestão de conhecimento:
| Dataset | ID | Prioridade |
|---------|----|-----------:|
| **Data Lake Descomplicar** | `b4e233d6-0d78-42f6-aef4-a56280600fe8` | 1 |
| **Dify** | `44d1517b-65b8-4d81-8253-5683ff0b8830` | 2 |
| **Obsidian + Claude Code** | `e38a510f-ca93-4407-8b44-c4c66efe01f8` | 2 |
### Como Consultar
```javascript
# PRIMARIO: NotebookLM (Gemini 2.5 RAG)
# mcp__notebooklm__notebook_query({notebook_id: "0c9c079c-a426-486c-99eb-1564d42d37ad", query: "<tema>"}) // Gestao de Projectos e Agile
# mcp__notebooklm__notebook_query({notebook_id: "f9dc59c2-718b-4b12-bd06-095d4bfa3e34", query: "<tema>"}) // Gestao de Operacoes
# mcp__notebooklm__notebook_query({notebook_id: "79d43410-0e29-4be1-881d-84db6bdc239a", query: "<tema>"}) // Estrategia e Empreendedorismo
# mcp__notebooklm__notebook_query({notebook_id: "ebee9fe1-78fd-4f85-8938-f19f3ea32131", query: "<tema>"}) // Obsidian + Claude
# FALLBACK: Dify KB (se NotebookLM insuficiente)
// Pesquisar no Data Lake geral
mcp__dify-kb__dify_kb_retrieve_segments({
dataset_id: "b4e233d6-0d78-42f6-aef4-a56280600fe8",
query: "[termo de pesquisa]"
})
// Configuração e uso do Dify
mcp__dify-kb__dify_kb_retrieve_segments({
dataset_id: "44d1517b-65b8-4d81-8253-5683ff0b8830",
query: "dataset segment retrieval"
})
// Integração Obsidian + Claude
mcp__dify-kb__dify_kb_retrieve_segments({
dataset_id: "e38a510f-ca93-4407-8b44-c4c66efe01f8",
query: "vault workflow dataview"
})
```
### Quando Consultar
- Configurar novo dataset Dify
- Optimizar estratégia de retrieval
- Integrar Obsidian com Claude Code
- Criar workflows de gestão de conhecimento
| Gap | Notebook alvo | Prompt |
|-----|---------------|--------|
| Next.js App Router/RSC | Programacao (24947ffa) | DR-nextjs-app-router.md |
| PHP 8+ / Laravel 11-12 | Programacao (24947ffa) | DR-php-laravel-moderno.md |
| Core Web Vitals / GA4 | Marketing Digital PT (4c595973) | DR-core-web-vitals-ga4.md |
| WCAG 2.2 / ARIA | UI/UX Design (081ca512) | DR-wcag-acessibilidade.md |
---
## Checklist de Pesquisa
Antes de responder ao utilizador:
- [ ] Categoria correctamente identificada
- [ ] Fontes prioritárias consultadas
- [ ] Score de relevância >70 (ou >30 agregado)
- [ ] Tema correctamente classificado
- [ ] Notebooks prioritarios consultados (max 3)
- [ ] Score de relevancia >70 (ou >30 agregado)
- [ ] Lacunas detectadas e reportadas
- [ ] Resultados formatados correctamente
- [ ] Links relacionados incluídos
---
## Changelog
## Referencias
### v1.1.0 (2026-02-03)
- **Workflow completo** - 5 passos detalhados com código
- **Routing inteligente** - Mapeamento categoria → fontes
- **Pesquisa paralela** - Múltiplos datasets Dify simultâneos
- **Score de relevância** - Avaliação automática (0-100)
- **Detecção de lacunas** - Auto-report e sugestões
- **Checklist** - Validação antes de responder
### v1.0.0 (2026-01-25)
- Versão inicial
- Routing manual por tema
- Datasets Dify mapeados
- Integração com 5 fontes
---
**Versão**: 1.1.0 | **Data**: 2026-02-03 | **Autor**: Descomplicar®
- `references/routing-guide.md` - Mapeamento detalhado com codigo de routing
- Inventario completo: `~/.claude/projects/-media-ealmeida-Dados-Hub/memory/notebooklm-inventory.md`

View File

@@ -0,0 +1,309 @@
# /knowledge - Routing Guide v2.0.0
Mapeamento completo de categorias para notebooks NotebookLM.
Dify KB removido em 06-03-2026. NotebookLM e a fonte primaria.
---
## Regras de Routing
1. **Classificar tema** da query usando keywords
2. **Seleccionar 1-3 notebooks** por ordem de relevancia
3. **Query sequencial** ate score >70
4. **Enriquecer** com Supabase/Context7/Local se necessario
5. **Reportar lacunas** se score <50
---
## Codigo de Routing
### Analise de Query
```javascript
function classificarTema(query) {
const temas = {
wordpress: /wordpress|elementor|woocommerce|plugin|wp-cli|theme|widget|gutenberg/i,
wordpress_seguranca: /seguranca\s*wp|malware|hardening|wordfence|sucuri/i,
kivicare: /kivicare|ehr|clinica|medico|consulta/i,
marketing: /marketing|digital|campanha|ads|publicidade|growth|funil/i,
seo: /seo|keywords|ranking|google|search|organic|serp|indexacao/i,
copywriting: /copywriting|persuasao|texto|headline|cta|conversao/i,
social_media: /social\s*media|branding|instagram|facebook|linkedin|tiktok/i,
video: /video|producao|youtube|monetizacao|canal/i,
podcast: /podcast|audio|episodio/i,
ecommerce: /ecommerce|loja\s*online|marketplace|shopify/i,
programacao: /codigo|api|php|react|node|python|javascript|typescript|programacao/i,
claude: /claude|claude\s*code|mcp|anthropic/i,
mcp_dev: /mcp\s*server|mcp\s*dev|protocolo\s*mcp/i,
ai_tools: /ai\s*editor|cursor|copilot|github\s*copilot/i,
opensource: /open\s*source|foss|self-hosted/i,
n8n: /n8n|automacao|workflow\s*automation/i,
perfex: /perfex|perfexcrm|desk\s*crm/i,
cwp: /cwp|centos|servidor\s*web|cpanel|hosting/i,
cloud: /cloud|infraestrutura|devops|docker|kubernetes/i,
proxmox: /proxmox|virtualizacao|vm|container\s*lxc/i,
design: /design|branding\s*visual|ai\s*design|canva/i,
uiux: /ui|ux|interface|usabilidade|wireframe|prototipo/i,
tipografia: /tipografia|cores|paleta|web\s*design|fonte/i,
gestao: /gestao\s*projectos|agile|scrum|kanban|sprint/i,
operacoes: /operacoes|processos|kpi|workflow|sop/i,
estrategia: /estrategia|empreendedorismo|negocio|plano/i,
transformacao: /transformacao\s*digital|ia\s*negocio|inovacao/i,
obsidian: /obsidian|vault|notas|pkm/i,
decisao: /decisao|porque|contexto|historico/i,
reonic: /reonic|solar\s*crm/i,
carstuff: /carstuff|automovel/i,
solar: /solar|fotovoltaico|engenharia\s*solar/i,
zaia: /zaia|chatbot|whatsapp\s*bot/i,
pessoal: /jung|taoismo|adhd|phda|autismo|kintsugi|estoicismo|somatica/i
};
const matches = [];
for (const [tema, pattern] of Object.entries(temas)) {
if (pattern.test(query)) matches.push(tema);
}
return matches.length > 0 ? matches : ['geral'];
}
```
### Notebooks por Tema
```javascript
const notebookRouting = {
// --- WordPress e Web ---
wordpress: [
"fb2f26bd-8cb0-4d4c-bafc-4f1ebb51c51d", // WordPress Config CLI (268 fontes)
"5be0d1a6-00f2-4cd9-b835-978cb7721601", // WordPress e Elementor (88)
"bd06acff-4b9d-44aa-b3f7-60434bbd6b49" // Documentacao WooCommerce (3)
],
wordpress_seguranca: [
"5f60adfd-2435-4725-8c12-9c11c5f51d75" // Ciberseguranca WordPress (95)
],
kivicare: [
"78621405-a5bc-433f-856f-296260a80bd9" // KiviCare EHR WP (145)
],
// --- Marketing e Conteudo ---
marketing: [
"4c595973-ba10-420a-a3bf-e4389e424ad3", // Marketing Digital PT (189)
"76647e0f-3ae2-4c00-a0a8-f457aebf5655" // Marketing Digital Avancado (78)
],
seo: [
"4c595973-ba10-420a-a3bf-e4389e424ad3" // Marketing Digital PT (189)
],
copywriting: [
"7b8fec17-d34f-4e3f-a8c6-8231e51f6323" // Copywriting e Persuasao (50)
],
social_media: [
"9053d0e8-dd39-460b-b5ea-e67af3e9a675" // Social Media e Branding (51)
],
video: [
"058a896e-6c9a-4e51-ae7d-9adb2738bc5f", // Producao de Video e Youtube (49)
"60a209a7-e205-4d57-a6f3-fef3de61e87a" // YouTube Monetizacao e Compliance (30)
],
podcast: [
"a5bef96b-a1af-4293-9979-5da46f8d2301" // Podcast Descomplicar (33)
],
ecommerce: [
"226e384e-d4bc-48f4-bb82-7927360436cc", // E-commerce Pratico (63)
"8a430cf2-ed99-413d-b4bf-a1400deaf49e" // E-Commerce Portugal (24)
],
// --- Desenvolvimento ---
programacao: [
"24947ffa-0019-448a-a340-2f4a275d2eb1" // Programacao (53)
],
claude: [
"2876d1fe-5cea-4d98-8140-b0e1a81c6bc4", // Claude Code (132)
"0be6f45b-8fd5-4a5e-8f80-e36a6f516ded" // Claude Code mini (2)
],
mcp_dev: [
"73102308-70ef-403e-9be9-eae0cfc62d55", // Desenvolvimento de MCPs (22)
"2876d1fe-5cea-4d98-8140-b0e1a81c6bc4" // Claude Code (132)
],
ai_tools: [
"57d9c6c9-48ba-4d83-8f71-cc890f348a53" // AI Code Editors (20)
],
opensource: [
"cabf9821-c1ff-44cb-9bfd-59bda3599792" // Open Source Software and Platforms (163)
],
n8n: [
"f2c809b8-1cb5-4dd0-aa7e-be2cfb6704d1" // n8n (66)
],
perfex: [
"df4688bb-c2c0-4aba-98c1-38c3b50a353c", // Perfex CRM (191)
"80606de8-2783-4d36-b08d-5825e6f9a8da" // Dev PerfexCRM (44)
],
// --- Infraestrutura ---
cwp: [
"0ded7bd6-69b3-4c76-b327-452396bf7ea7" // CWP (214)
],
cloud: [
"f9a79b5a-649f-4443-afaf-7ff562b6c2e7" // Cloud e Infraestrutura TI (146)
],
proxmox: [
"276ccdde-6b95-42a3-ad96-4e64d64c8d52" // Proxmox (120)
],
// --- Design ---
design: [
"b568b13b-0eed-48c9-b513-5c5b7ec0b102" // Design Profissional AItomatizado (244)
],
uiux: [
"081ca512-8279-4850-b2b9-dff090267482" // UI/UX Design (28)
],
tipografia: [
"f97a0d2b-a5b3-4640-b941-3cbb184b1b81" // Tipografia e Cor para Web (41)
],
// --- Gestao e Estrategia ---
gestao: [
"0c9c079c-a426-486c-99eb-1564d42d37ad", // Gestao de Projectos e Agile (44)
"f9dc59c2-718b-4b12-bd06-095d4bfa3e34" // Gestao de Operacoes (41)
],
operacoes: [
"f9dc59c2-718b-4b12-bd06-095d4bfa3e34" // Gestao de Operacoes (41)
],
estrategia: [
"79d43410-0e29-4be1-881d-84db6bdc239a", // Estrategia e Empreendedorismo (107)
"ab876d0d-12a8-43d9-bc62-59c1c8e9d0f8" // Transformacao Digital e IA (73)
],
transformacao: [
"ab876d0d-12a8-43d9-bc62-59c1c8e9d0f8", // Transformacao Digital e IA (73)
"929ef67b-c131-4f01-abd0-8b078491a6b7", // AI Automation Stack (5)
"f4be0e3f-4d9e-4c5c-a743-9f14427f2e43" // AI Agents Intensive Course (5)
],
// --- Sistema e Produtividade ---
obsidian: [
"ebee9fe1-78fd-4f85-8938-f19f3ea32131" // Obsidian + Claude (117)
],
decisao: [], // Supabase primeiro, depois Obsidian notebook
// --- Produtos e Clientes ---
reonic: [
"b7e61158-0717-4582-8ef2-0301be3c73ae" // Reonic (131)
],
carstuff: [
"90f0bc77-b5e4-4ddd-a07c-013a1a30b247" // CarStuff (25)
],
solar: [
"03d54e00-aefa-45dc-ba01-f3864a7c3112", // Solar FV Engenharia (5)
"0082bcaf-1e17-4b84-87cc-2256b1719b55" // OpenSolar (4)
],
zaia: [
"087d76f1-e929-49da-9e3c-4edc22b42b3f" // Zaia (28)
],
// --- Pessoal ---
pessoal: [
"d5c67d7f-7fe8-4542-9e5c-22403f3193ee", // Jung (41)
"8c6c8257-bda2-433c-bf55-f40d98bfde8f", // Emanuel Almeida (36)
"aea85baf-9ddf-4d79-bf07-81391a275b09", // Taoism (28)
"a4ff3fd7-fb7c-49a1-94ff-0433193e2338", // ADHD (17)
"66eff78e-318f-4a8b-a3c7-039a4124b1ad", // Autismo (14)
"6dcd08e8-79d9-4ae0-b6bf-b2ee96717bf2", // Essencia de Heroi (13)
"82a95c2f-be56-4c4a-a96f-96f6677a6991", // Auto Kintsugi (10)
"3410893b-16a3-4178-9091-42650a41086f", // Psicologia Somatica (10)
"4b986ad4-49da-4604-a423-4fcdf20dd9da" // Marcus Aurelius / Stoic (3)
],
// --- Fallback generico ---
geral: [
"ebee9fe1-78fd-4f85-8938-f19f3ea32131", // Obsidian + Claude (sistema)
"79d43410-0e29-4be1-881d-84db6bdc239a" // Estrategia (amplo)
]
};
```
### Pesquisa Sequencial
```javascript
async function pesquisar(query) {
const temas = classificarTema(query);
let resultados = [];
// 1. Recolher notebooks unicos (max 3)
const notebookIds = new Set();
for (const tema of temas) {
const ids = notebookRouting[tema] || notebookRouting.geral;
ids.forEach(id => notebookIds.add(id));
}
const notebooks = [...notebookIds].slice(0, 3);
// 2. Query NotebookLM sequencial
for (const id of notebooks) {
const resultado = await mcp__notebooklm__notebook_query({
notebook_id: id,
query: query
});
const score = avaliarRelevancia(resultado, query);
if (score > 70) {
return { resultado, fonte: `NotebookLM (${id})`, score };
}
if (score > 30) {
resultados.push({ resultado, id, score });
}
}
// 3. Enriquecer com outras fontes
const supabase = await mcp__memory_supabase__search_memories({
query, tags: temas
});
if (supabase.length > 0) resultados.push({ resultado: supabase, fonte: 'Supabase' });
// 4. Context7 para temas dev
if (temas.some(t => ['programacao', 'claude', 'mcp_dev', 'wordpress'].includes(t))) {
// Tentar resolver biblioteca
const lib = await mcp__plugin_context7_context7__resolve_library_id({
libraryName: extractLibName(query)
});
if (lib) {
const docs = await mcp__plugin_context7_context7__query_docs({
context7CompatibleLibraryID: lib.id,
topic: query
});
resultados.push({ resultado: docs, fonte: 'Context7' });
}
}
// 5. Resultado
if (resultados.length === 0) {
// Lacuna detectada
await mcp__memory_supabase__save_memory({
content: `LACUNA: Query "${query}" sem informacao.`,
metadata: { type: 'lacuna-kb', temas, query }
});
return { lacuna: true, query, temas };
}
return {
resultados: resultados.sort((a, b) => (b.score || 0) - (a.score || 0)),
fonte: 'multiplas'
};
}
```
---
## Fontes Complementares (Fallback)
| Fonte | MCP | Quando Usar |
|-------|-----|-------------|
| **Supabase** | memory-supabase | Decisoes, contexto, historico sessoes |
| **Context7** | context7 | Docs bibliotecas externas (npm, pip, etc.) |
| **Docs Locais** | filesystem (Grep/Glob) | Codigo em /Dev/, docs em /Hub/ |
---
## Estatisticas
- **58 notebooks** (49 profissional + 9 pessoal)
- **~3200 fontes** total
- **32 temas** mapeados
- **Limite:** 500 notebooks, 300 fontes/notebook (Plus)
Inventario completo: `~/.claude/projects/-media-ealmeida-Dados-Hub/memory/notebooklm-inventory.md`

View File

@@ -1,19 +1,7 @@
---
name: mindmap
title: Mindmap Generator (DesktopNaotu)
description: Gera ficheiros .km (mindmap) compativeis com DesktopNaotu/Kityminder. Cria mindmaps a partir de topicos, planos, brainstorms ou qualquer estrutura hierarquica.
author: Descomplicar
version: 1.0.0
tags: [mindmap, naotu, kityminder, brainstorm, planeamento, organizacao]
user_invocable: true
trigger_patterns:
- "mindmap"
- "mapa mental"
- "mind map"
- "naotu"
- "criar mindmap"
- "gerar mindmap"
- "brainstorm visual"
description: Gera ficheiros .km (mindmap) compatíveis com DesktopNaotu/Kityminder. Cria mindmaps a partir de tópicos, planos, brainstorms ou qualquer estrutura hierárquica. Usar quando "mindmap", "mapa mental", "naotu", "criar mindmap", "brainstorm visual".
disable-model-invocation: true
---
# Mindmap Generator - DesktopNaotu

View File

@@ -1,19 +1,7 @@
---
name: notebooklm
description: >
Gestão programática completa do NotebookLM via MCP. Use when managing notebooks, adding sources,
generating artifacts (audio, video, mindmap, report, flashcards, quiz, infographic, presentation, table),
querying notebooks with RAG, running autonomous research, or when user mentions "notebooklm",
"notebook", "audio overview", "podcast", "mapa mental", "questionário", "resumo", "investigação profunda",
"adicionar fonte", "gerar artefacto".
author: Descomplicar® Crescimento Digital
version: 1.1.0
user_invocable: true
tags: [notebooklm, rag, audio, studio, research, gemini, knowledge, artifacts]
allowed-tools: mcp__notebooklm__notebook_list, mcp__notebooklm__notebook_get, mcp__notebooklm__notebook_create, mcp__notebooklm__notebook_describe, mcp__notebooklm__notebook_rename, mcp__notebooklm__notebook_delete, mcp__notebooklm__source_add, mcp__notebooklm__source_delete, mcp__notebooklm__source_describe, mcp__notebooklm__source_get_content, mcp__notebooklm__source_sync_drive, mcp__notebooklm__source_list_drive, mcp__notebooklm__notebook_query, mcp__notebooklm__chat_configure, mcp__notebooklm__studio_create, mcp__notebooklm__studio_status, mcp__notebooklm__studio_delete, mcp__notebooklm__download_artifact, mcp__notebooklm__export_artifact, mcp__notebooklm__research_start, mcp__notebooklm__research_status, mcp__notebooklm__research_import, mcp__notebooklm__notebook_share_public, mcp__notebooklm__notebook_share_invite, mcp__notebooklm__notebook_share_status, mcp__notebooklm__refresh_auth, mcp__notebooklm__server_info
category: knowledge
quality_score: 90
updated: "2026-02-24T20:00:00Z"
description: Gestão programática completa do NotebookLM via MCP. Gerir notebooks, adicionar fontes, gerar artefactos (áudio, vídeo, mindmap, relatório, flashcards, quiz, infografia, apresentação), consultar via RAG, investigação autónoma. Usar quando "notebooklm", "notebook", "audio overview", "podcast", "adicionar fonte", "gerar artefacto".
disable-model-invocation: true
---
# /notebooklm - Gestão Programática NotebookLM

View File

@@ -1,6 +1,7 @@
---
name: proc-creator
description: Cria procedimentos seguindo formato Hub Descomplicar. Use quando "criar procedimento", "novo PROC", "documentar processo", "PROC-*". Gera código automático [DEPT]-[TEMA]-[NUM], cria ficheiro na pasta departamental correcta, actualiza INDEX.md.
description: Cria procedimentos seguindo formato Hub Descomplicar. Gera código automático [DEPT]-[TEMA]-[NUM], cria ficheiro na pasta departamental correcta, actualiza INDEX.md. Usar quando "criar procedimento", "novo PROC", "documentar processo", "PROC-*".
disable-model-invocation: true
---
# /proc-creator - Criador de Procedimentos Hub

View File

@@ -1,24 +1,7 @@
---
name: reflect
description: >
Alias de /worklog v4.0. Auto-reflexão e registo de trabalho unificado.
/reflect = /worklog (mesmo resultado). /reflect deep = análise profunda com histórico.
/reflect week = revisão semanal (segundas via /today).
Use when "reflect", "reflexão", "análise", "melhoria", "insight", auto-triggered after >10 tool calls.
author: Descomplicar® Crescimento Digital
version: 4.0.0
quality_score: 95
user_invocable: true
category: productivity
tags: [reflexao, auto-melhoria, meta, optimizacao, sistema, pdca, alerts, metrics]
desk_task: 1555
desk_project: 65
allowed-tools: Read, Write, Bash, mcp__desk-crm-v3, mcp__ssh-unified, mcp__memory-supabase, mcp__mcp-time
mcps: desk-crm-v3, ssh-unified, memory-supabase, mcp-time
auto_trigger:
enabled: true
threshold_tool_calls: 15
background: true
description: Alias de /worklog. Auto-reflexão e registo de trabalho unificado. /reflect = /worklog (mesmo resultado). /reflect deep = análise profunda com histórico. /reflect week = revisão semanal. Usar quando "reflect", "reflexão", "análise", "melhoria", "insight".
context: fork
---
# /reflect - Alias de /worklog

View File

@@ -0,0 +1,185 @@
---
name: report-templates
description: Templates de comunicacao com clientes — updates mensais, status de projecto, relatorios de incidente e revisoes mensais. Usar quando "relatorio cliente", "report cliente", "update cliente", "status projecto", "incidente", "revisao mensal", "comunicar cliente", "resumo projecto", "enviar report", "preparar relatorio".
---
# /report-templates — Comunicacao com Clientes
Templates profissionais para comunicacao Descomplicar® com clientes. Gera documentos em HTML (Desk CRM) ou Markdown (Hub/email).
---
## Comandos
| Comando | Template | Uso |
|---------|----------|-----|
| `/report-templates update [cliente]` | client-update.md | Update mensal de progresso |
| `/report-templates status [projecto_id]` | project-status.md | Status detalhado de projecto |
| `/report-templates incidente [descricao]` | incident-report.md | Relatorio de incidente |
| `/report-templates mensal [cliente] [mes]` | monthly-review.md | Revisao mensal completa |
---
## Parametros
| Parametro | Descricao | Exemplo |
|-----------|-----------|---------|
| `--format html` | Output HTML para Desk CRM (default) | `--format html` |
| `--format md` | Output Markdown para Hub/email | `--format md` |
| `--lang pt` | Lingua do documento (default: pt) | `--lang pt` |
| `--desk` | Publicar como comentario no Desk CRM | `--desk` |
---
## Workflow de Execucao
```
1. IDENTIFICAR tipo de comunicacao:
- "update", "progresso", "mensal simples" -> client-update
- "status", "estado", "projecto" -> project-status
- "incidente", "problema", "falha", "downtime" -> incident-report
- "revisao mensal", "mensal completo", "revisao periodo" -> monthly-review
2. RECOLHER dados do Desk CRM:
a. mcp__desk-crm-v3__get_project({ project_id }) — se aplicavel
b. mcp__desk-crm-v3__get_tasks({ project_id }) — tarefas do periodo
c. mcp__desk-crm-v3__get_project_time_tracking({ project_id }) — horas
d. mcp__desk-crm-v3__get_invoices({ project_id }) — facturacao
e. mcp__desk-crm-v3__search_customers({ name }) — dados cliente
3. CARREGAR template de references/:
- client-update.md / project-status.md / incident-report.md / monthly-review.md
4. PREENCHER placeholders com dados reais
5. GERAR output no formato pedido (html ou md)
6. SE --desk: publicar via mcp__desk-crm-v3__add_task_comment
```
---
## Tom de Comunicacao Descomplicar
**Principios:**
- Profissional mas directo — sem jargao desnecessario
- Dados primeiro — factos antes de interpretacao
- Transparente em problemas — nunca esconder dificuldades
- Orientado para accao — cada ponto tem proximo passo claro
- Portugues europeu sempre — sem brasileirismos
**O que evitar:**
- Linguagem vaga ("estamos a trabalhar nisso")
- Promessas sem datas ("em breve")
- Excesso de adjectivos ("excelente progresso fantástico")
- Emojis em documentos formais
- Estimativas sem base nos dados
---
## Formatos de Output
### HTML (Desk CRM)
```html
<h4>Titulo da Seccao</h4>
<ul><li>Item</li></ul>
<table>
<tr><th>Coluna</th><th>Valor</th></tr>
<tr><td>Dado</td><td>Valor</td></tr>
</table>
<p><strong>Proximo passo:</strong> accao concreta com data</p>
<hr>
<p><em>Relatorio gerado em DD-MM-YYYY | Descomplicar®</em></p>
```
### Markdown (Hub / Email)
```markdown
## Titulo
| Coluna | Valor |
|--------|-------|
| Dado | Valor |
**Proximo passo:** accao concreta com data
---
*Relatorio gerado em DD-MM-YYYY | Descomplicar®*
```
---
## Templates Disponiveis
| Ficheiro | Template | Quando usar |
|----------|----------|-------------|
| `references/client-update.md` | Update mensal simples | Comunicacao periodica de progresso |
| `references/project-status.md` | Status de projecto | Revisao de milestone, reuniao de acompanhamento |
| `references/incident-report.md` | Relatorio de incidente | Qualquer problema que afectou o cliente |
| `references/monthly-review.md` | Revisao mensal completa | Fim de mes, revisao estrategica |
---
## Exemplos de Uso
### Update mensal simples
```
/report-templates update "SFV 360"
```
Recolhe dados do projecto SFV-360, preenche template client-update, gera HTML para Desk CRM.
### Status de projecto com markdown
```
/report-templates status 80 --format md
```
Gera relatorio de status do projecto #80 em Markdown para enviar por email.
### Relatorio de incidente
```
/report-templates incidente "Downtime servidor producao 2h"
```
Gera relatorio formal de incidente com timeline, impacto e plano de accao.
### Revisao mensal publicada no Desk
```
/report-templates mensal "CTF BigData" "Fevereiro 2026" --desk
```
Gera revisao mensal completa e publica como comentario na tarefa Desk do cliente.
---
## Integracao com Outras Skills
| Skill | Uso |
|-------|-----|
| `/report` | Dados agregados de periodo (horas, tarefas, facturas) |
| `/time` | Timesheets detalhados para incluir no relatorio |
| `/desk` | Contexto do projecto e cliente |
---
## Anti-Patterns
- **Nunca** gerar relatorio sem dados reais do Desk CRM
- **Nunca** incluir valores financeiros estimados como factos
- **Nunca** enviar relatorio de incidente sem plano de accao definido
- **Nunca** usar tom informal em relatorios de incidente
---
## Changelog
### v1.0.0 (2026-03-10)
- Versao inicial
- 4 templates: client-update, project-status, incident-report, monthly-review
- Suporte HTML e Markdown
- Integracao com Desk CRM
---
*Skill v1.0.0 | 2026-03-10 | Descomplicar®*

View File

@@ -0,0 +1,173 @@
# Template: Update Mensal de Cliente
**Tipo:** Comunicacao periodica de progresso
**Frequencia:** Mensal (ou quinzenal em projectos activos)
**Tom:** Profissional, directo, orientado para dados
**Extensao:** 1 pagina (equivalente)
---
## Estrutura do Template
### HTML (Desk CRM)
```html
<h4>Update {{MES_ANO}} — {{NOME_PROJECTO}}</h4>
<p>Caro {{NOME_CLIENTE}},</p>
<p>Segue o update de progresso referente a {{MES_ANO}}.</p>
<h4>Trabalho Concluido</h4>
<ul>
<li>{{TAREFA_1}}</li>
<li>{{TAREFA_2}}</li>
<li>{{TAREFA_3}}</li>
</ul>
<h4>Metricas do Periodo</h4>
<table>
<tr>
<th>Metrica</th>
<th>Valor</th>
</tr>
<tr>
<td>Horas dedicadas</td>
<td>{{HORAS_TOTAL}}h</td>
</tr>
<tr>
<td>Tarefas concluidas</td>
<td>{{TAREFAS_CONCLUIDAS}}</td>
</tr>
<tr>
<td>Progresso geral</td>
<td>{{PROGRESSO_PERCENTAGEM}}%</td>
</tr>
</table>
<h4>Em Curso</h4>
<ul>
<li>{{ITEM_EM_CURSO_1}}</li>
<li>{{ITEM_EM_CURSO_2}}</li>
</ul>
<h4>Proximos Passos</h4>
<ul>
<li>{{PROXIMO_PASSO_1}} — previsto para {{DATA_1}}</li>
<li>{{PROXIMO_PASSO_2}} — previsto para {{DATA_2}}</li>
</ul>
<p>Qualquer questao, estamos disponiveis.</p>
<hr>
<p>
<strong>Descomplicar®</strong> |
<a href="mailto:info@descomplicar.pt">info@descomplicar.pt</a> |
911 510 005
</p>
<p><em>Update gerado em {{DATA_HOJE}} | Projecto #{{PROJECTO_ID}}</em></p>
```
### Markdown (Email / Hub)
```markdown
**Update {{MES_ANO}} — {{NOME_PROJECTO}}**
Caro {{NOME_CLIENTE}},
Segue o update de progresso referente a {{MES_ANO}}.
---
**Trabalho Concluido**
- {{TAREFA_1}}
- {{TAREFA_2}}
- {{TAREFA_3}}
**Metricas do Periodo**
| Metrica | Valor |
|---------|-------|
| Horas dedicadas | {{HORAS_TOTAL}}h |
| Tarefas concluidas | {{TAREFAS_CONCLUIDAS}} |
| Progresso geral | {{PROGRESSO_PERCENTAGEM}}% |
**Em Curso**
- {{ITEM_EM_CURSO_1}}
- {{ITEM_EM_CURSO_2}}
**Proximos Passos**
- {{PROXIMO_PASSO_1}} — previsto para {{DATA_1}}
- {{PROXIMO_PASSO_2}} — previsto para {{DATA_2}}
Qualquer questao, estamos disponiveis.
---
Descomplicar® | info@descomplicar.pt | 911 510 005
*Update gerado em {{DATA_HOJE}} | Projecto #{{PROJECTO_ID}}*
```
---
## Placeholders — Mapeamento Desk CRM
| Placeholder | Fonte Desk CRM | MCP Call |
|-------------|---------------|----------|
| `{{NOME_PROJECTO}}` | `project.name` | `get_project` |
| `{{NOME_CLIENTE}}` | `customer.firstname` | `search_customers` |
| `{{MES_ANO}}` | Calculado | `mcp-time` |
| `{{HORAS_TOTAL}}` | Timesheets do mes | `get_project_time_tracking` |
| `{{TAREFAS_CONCLUIDAS}}` | Tasks status=completed | `get_tasks` |
| `{{PROGRESSO_PERCENTAGEM}}` | `project.progress` | `get_project` |
| `{{TAREFA_1..N}` | Tasks recentes concluidas | `get_tasks` |
| `{{ITEM_EM_CURSO_1..N}` | Tasks status=in_progress | `get_tasks` |
| `{{PROXIMO_PASSO_1..N}` | Tasks status=not_started, por data | `get_tasks` |
| `{{DATA_1..N}` | `task.due_date` | `get_tasks` |
| `{{DATA_HOJE}}` | Hoje | `mcp-time` |
| `{{PROJECTO_ID}}` | `project.id` | `get_project` |
---
## Exemplo Preenchido
```
Update Fevereiro 2026 — Portal SFV-360
Caro Paulo Silva,
Segue o update de progresso referente a Fevereiro 2026.
Trabalho Concluido:
- Implementacao modulo de relatorios automaticos
- Integracao API energia solar (3 inversores)
- Correccao erro calculo producao acumulada
Metricas do Periodo:
- Horas dedicadas: 38h
- Tarefas concluidas: 8
- Progresso geral: 72%
Em Curso:
- Dashboard mobile (responsivo)
- Testes de carga base de dados
Proximos Passos:
- Entrega dashboard mobile — previsto para 15-03-2026
- Formacao utilizadores — previsto para 20-03-2026
```
---
## Notas de Uso
- Incluir apenas tarefas relevantes para o cliente (excluir internas/tecnicas sem impacto visivel)
- Se o progresso diminuiu ou estagnou, explicar o motivo de forma clara
- Proximos passos devem ter sempre datas concretas
- Maximo 5 items por seccao — sintese e preferida
- Se existem bloqueadores que dependem do cliente, destacar em negrito
---
*Template v1.0.0 | 2026-03-10 | Descomplicar®*

View File

@@ -0,0 +1,235 @@
# Template: Relatorio de Incidente
**Tipo:** Comunicacao formal de incidente ao cliente
**Quando usar:** Qualquer situacao que afectou o servico, dados ou experiencia do cliente
**Tom:** Formal, transparente, orientado para resolucao e prevencao
**Extensao:** 1-2 paginas. Nao minimizar nem exagerar
**Principio cardinal:** Comunicar o incidente antes que o cliente pergunte. Transparencia activa.
---
## Classificacao de Severidade
| Nivel | Codigo | Criterio | Prazo comunicacao |
|-------|--------|----------|------------------|
| Critico | P1 | Servico completamente indisponivel ou perda de dados | 1 hora |
| Alto | P2 | Funcionalidade principal degradada | 4 horas |
| Medio | P3 | Funcionalidade secundaria afectada | 24 horas |
| Baixo | P4 | Problema menor sem impacto operacional | 72 horas |
---
## Estrutura do Template
### HTML (Desk CRM)
```html
<h4>Relatorio de Incidente — {{TITULO_INCIDENTE}}</h4>
<p>
<strong>Referencia:</strong> INC-{{ANO}}-{{NUMERO}} |
<strong>Severidade:</strong> <span style="color:{{COR_SEVERIDADE}}">{{NIVEL_SEVERIDADE}}</span> |
<strong>Estado:</strong> {{ESTADO_INCIDENTE}}
</p>
<h4>Resumo</h4>
<p>{{DESCRICAO_RESUMO}}</p>
<h4>Impacto</h4>
<table>
<tr>
<th>Dimensao</th>
<th>Detalhe</th>
</tr>
<tr>
<td>Inicio</td>
<td>{{DATA_INICIO}} {{HORA_INICIO}}</td>
</tr>
<tr>
<td>Fim / Resolucao</td>
<td>{{DATA_FIM}} {{HORA_FIM}} ({{DURACAO}} de impacto)</td>
</tr>
<tr>
<td>Servicos afectados</td>
<td>{{SERVICOS_AFECTADOS}}</td>
</tr>
<tr>
<td>Utilizadores afectados</td>
<td>{{UTILIZADORES_AFECTADOS}}</td>
</tr>
<tr>
<td>Dados afectados</td>
<td>{{DADOS_AFECTADOS}}</td>
</tr>
</table>
<h4>Cronologia</h4>
<table>
<tr>
<th>Hora</th>
<th>Evento</th>
</tr>
<tr>
<td>{{HORA_1}}</td>
<td>{{EVENTO_1}}</td>
</tr>
<tr>
<td>{{HORA_2}}</td>
<td>{{EVENTO_2}}</td>
</tr>
<tr>
<td>{{HORA_3}}</td>
<td>{{EVENTO_3}}</td>
</tr>
<tr>
<td>{{HORA_RESOLUCAO}}</td>
<td>Incidente resolvido — servico normalizado</td>
</tr>
</table>
<h4>Causa Raiz</h4>
<p>{{CAUSA_RAIZ}}</p>
<p><em>Nota: {{NOTA_CAUSA_RAIZ_SE_INVESTIGACAO_PENDENTE}}</em></p>
<h4>Accoes de Remediacao</h4>
<ul>
<li><strong>Imediata (concluida):</strong> {{ACCAO_IMEDIATA}}</li>
<li><strong>Curto prazo ({{DATA_CURTO_PRAZO}}):</strong> {{ACCAO_CURTO_PRAZO}}</li>
<li><strong>Preventiva ({{DATA_PREVENTIVA}}):</strong> {{ACCAO_PREVENTIVA}}</li>
</ul>
<h4>Compensacao</h4>
<p>{{COMPENSACAO_SE_APLICAVEL}}</p>
<p>Pedimos desculpa pelo inconveniente causado. Estamos comprometidos a prevenir recorrencia.</p>
<p>Para questoes adicionais: <a href="mailto:info@descomplicar.pt">info@descomplicar.pt</a> | 911 510 005</p>
<hr>
<p>
<strong>Descomplicar®</strong> |
<em>Relatorio emitido em {{DATA_EMISSAO}}</em>
</p>
```
### Markdown (Email / Hub)
```markdown
# Relatorio de Incidente — {{TITULO_INCIDENTE}}
**Referencia:** INC-{{ANO}}-{{NUMERO}} | **Severidade:** {{NIVEL_SEVERIDADE}} | **Estado:** {{ESTADO_INCIDENTE}}
---
## Resumo
{{DESCRICAO_RESUMO}}
## Impacto
| Dimensao | Detalhe |
|----------|---------|
| Inicio | {{DATA_INICIO}} {{HORA_INICIO}} |
| Fim / Resolucao | {{DATA_FIM}} {{HORA_FIM}} ({{DURACAO}}) |
| Servicos afectados | {{SERVICOS_AFECTADOS}} |
| Utilizadores afectados | {{UTILIZADORES_AFECTADOS}} |
| Dados afectados | {{DADOS_AFECTADOS}} |
## Cronologia
| Hora | Evento |
|------|--------|
| {{HORA_1}} | {{EVENTO_1}} |
| {{HORA_2}} | {{EVENTO_2}} |
| {{HORA_3}} | {{EVENTO_3}} |
| {{HORA_RESOLUCAO}} | Incidente resolvido — servico normalizado |
## Causa Raiz
{{CAUSA_RAIZ}}
## Accoes de Remediacao
- **Imediata (concluida):** {{ACCAO_IMEDIATA}}
- **Curto prazo ({{DATA_CURTO_PRAZO}}):** {{ACCAO_CURTO_PRAZO}}
- **Preventiva ({{DATA_PREVENTIVA}}):** {{ACCAO_PREVENTIVA}}
## Compensacao
{{COMPENSACAO_SE_APLICAVEL}}
---
Pedimos desculpa pelo inconveniente causado.
Para questoes: info@descomplicar.pt | 911 510 005
*Relatorio emitido em {{DATA_EMISSAO}} | Descomplicar®*
```
---
## Placeholders — Guia de Preenchimento
| Placeholder | Instrucoes de Preenchimento |
|-------------|---------------------------|
| `{{TITULO_INCIDENTE}}` | Descricao curta e factual: "Downtime servidor producao", "Falha autenticacao", "Perda dados formulario" |
| `{{NUMERO}}` | Sequencial do ano: 001, 002... Verificar incidentes anteriores |
| `{{NIVEL_SEVERIDADE}}` | P1 Critico / P2 Alto / P3 Medio / P4 Baixo |
| `{{ESTADO_INCIDENTE}}` | Resolvido / Em investigacao / Monitorizado |
| `{{DESCRICAO_RESUMO}}` | 2-3 frases: o que aconteceu, quando, impacto imediato |
| `{{DURACAO}}` | Ex: "2h 15min", "45min", "4h" |
| `{{CAUSA_RAIZ}}` | Tecnico mas acessivel. Se ainda em investigacao: "A investigacao esta em curso. Actualizacao prevista para DD-MM-YYYY." |
| `{{COMPENSACAO}}` | Se N/A: omitir seccao. Se aplicavel: credito, extensao, horas extra |
### Cores por Severidade (HTML)
| Nivel | Cor |
|-------|-----|
| P1 Critico | `#e53e3e` |
| P2 Alto | `#d69e2e` |
| P3 Medio | `#dd6b20` |
| P4 Baixo | `#38a169` |
---
## Exemplo Preenchido
```
Relatorio de Incidente — Downtime Servidor Producao
Referencia: INC-2026-003 | Severidade: P2 Alto | Estado: Resolvido
Resumo:
No dia 08-03-2026, entre as 14:22 e as 16:37, o servidor de producao
esteve inacessivel durante 2h 15min devido a uma falha de memoria
no servico de cache. Todos os servicos foram restaurados as 16:37.
Impacto:
- Duracao: 2h 15min
- Servicos afectados: Portal web, API integracao
- Utilizadores afectados: todos os utilizadores activos (~45)
- Dados: sem perda de dados confirmada
Causa Raiz:
Fuga de memoria no servico Redis apos actualizacao de versao
aplicada em manutencao preventiva às 13:00. A versao 7.2.1 tem
um bug conhecido com configuracoes de maxmemory-policy = allkeys-lru.
Accoes:
- Imediata: Rollback Redis para versao 7.0.15 (concluido)
- Curto prazo (12-03-2026): Adicionar alertas de memoria no sistema de monitorizacao
- Preventiva (31-03-2026): Procedimento de teste em staging antes de actualizacoes
```
---
## Notas de Uso
- Nunca minimizar o impacto — o cliente ja sabe o que sentiu
- Se a causa raiz nao for conhecida no momento de envio, dizer claramente com data de actualizacao
- Accoes preventivas devem ser reais e com datas — nao compromissos vagos
- Em P1/P2, comunicar primeiro por telefone, depois enviar relatorio formal
- Guardar registo em Desk CRM como comentario na tarefa do cliente (discussao #31)
---
*Template v1.0.0 | 2026-03-10 | Descomplicar®*

View File

@@ -0,0 +1,297 @@
# Template: Revisao Mensal
**Tipo:** Revisao estrategica mensal com cliente
**Quando usar:** Fim de mes, reuniao mensal de acompanhamento, revisao de contrato
**Tom:** Estrategico, baseado em dados, orientado para decisao conjunta
**Extensao:** 2-3 paginas. O mais completo dos 4 templates
**Diferenca face ao client-update:** A revisao mensal inclui analise comparativa, discussao estrategica e decisoes para o mes seguinte. O update e apenas informativo.
---
## Estrutura do Template
### HTML (Desk CRM)
```html
<h4>Revisao Mensal — {{NOME_PROJECTO}} | {{MES_ANO}}</h4>
<p>
<strong>Cliente:</strong> {{NOME_CLIENTE}} |
<strong>Periodo:</strong> 01-{{MES_NUM}}-{{ANO}} a {{ULTIMO_DIA}}-{{MES_NUM}}-{{ANO}} |
<strong>Elaborado por:</strong> Descomplicar®
</p>
<h4>1. Resumo Executivo</h4>
<p>{{PARAGRAFO_RESUMO_EXECUTIVO}}</p>
<table>
<tr>
<th>Metrica</th>
<th>{{MES_ATUAL}}</th>
<th>{{MES_ANTERIOR}}</th>
<th>Variacao</th>
</tr>
<tr>
<td>Horas trabalhadas</td>
<td>{{HORAS_MES}}</td>
<td>{{HORAS_MES_ANT}}</td>
<td>{{VAR_HORAS}}</td>
</tr>
<tr>
<td>Tarefas concluidas</td>
<td>{{TAREFAS_MES}}</td>
<td>{{TAREFAS_MES_ANT}}</td>
<td>{{VAR_TAREFAS}}</td>
</tr>
<tr>
<td>Progresso geral</td>
<td>{{PROGRESSO_MES}}%</td>
<td>{{PROGRESSO_MES_ANT}}%</td>
<td>+{{VAR_PROGRESSO}}pp</td>
</tr>
<tr>
<td>Valor entregue</td>
<td>{{VALOR_MES}}EUR</td>
<td>{{VALOR_MES_ANT}}EUR</td>
<td>{{VAR_VALOR}}</td>
</tr>
</table>
<h4>2. Trabalho Realizado</h4>
<h5>Entregas Concluidas</h5>
<ul>
<li><strong>{{ENTREGA_1}}:</strong> {{DESCRICAO_ENTREGA_1}}</li>
<li><strong>{{ENTREGA_2}}:</strong> {{DESCRICAO_ENTREGA_2}}</li>
<li><strong>{{ENTREGA_3}}:</strong> {{DESCRICAO_ENTREGA_3}}</li>
</ul>
<h5>Tarefas por Area</h5>
<table>
<tr>
<th>Area</th>
<th>Tarefas</th>
<th>Horas</th>
</tr>
<tr>
<td>{{AREA_1}}</td>
<td>{{AREA_1_TAREFAS}}</td>
<td>{{AREA_1_HORAS}}h</td>
</tr>
<tr>
<td>{{AREA_2}}</td>
<td>{{AREA_2_TAREFAS}}</td>
<td>{{AREA_2_HORAS}}h</td>
</tr>
</table>
<h4>3. Estado do Projecto</h4>
<table>
<tr>
<th>Componente</th>
<th>Estado</th>
<th>Notas</th>
</tr>
<tr>
<td>{{COMPONENTE_1}}</td>
<td>{{ESTADO_1}}</td>
<td>{{NOTA_1}}</td>
</tr>
<tr>
<td>{{COMPONENTE_2}}</td>
<td>{{ESTADO_2}}</td>
<td>{{NOTA_2}}</td>
</tr>
</table>
<h4>4. Facturacao e Financeiro</h4>
<table>
<tr>
<th>Descricao</th>
<th>Valor</th>
<th>Data</th>
<th>Estado</th>
</tr>
<tr>
<td>{{FATURA_1_DESC}}</td>
<td>{{FATURA_1_VALOR}}EUR</td>
<td>{{FATURA_1_DATA}}</td>
<td>{{FATURA_1_ESTADO}}</td>
</tr>
</table>
<p>
<strong>Facturado no mes:</strong> {{TOTAL_FACTURADO}}EUR |
<strong>Recebido:</strong> {{TOTAL_RECEBIDO}}EUR |
<strong>Pendente:</strong> {{TOTAL_PENDENTE}}EUR
</p>
<h4>5. Analise e Observacoes</h4>
<p>{{ANALISE_QUALITATIVA}}</p>
<h5>O que correu bem</h5>
<ul>
<li>{{PONTO_POSITIVO_1}}</li>
<li>{{PONTO_POSITIVO_2}}</li>
</ul>
<h5>O que pode melhorar</h5>
<ul>
<li>{{PONTO_MELHORIA_1}}</li>
<li>{{PONTO_MELHORIA_2}}</li>
</ul>
<h4>6. Plano para {{MES_SEGUINTE}}</h4>
<ul>
<li>{{OBJECTIVO_1}} — responsavel: {{RESP_1}} — data: {{DATA_OBJ_1}}</li>
<li>{{OBJECTIVO_2}} — responsavel: {{RESP_2}} — data: {{DATA_OBJ_2}}</li>
<li>{{OBJECTIVO_3}} — responsavel: {{RESP_3}} — data: {{DATA_OBJ_3}}</li>
</ul>
<h5>Decisoes Necessarias</h5>
<ul>
<li>{{DECISAO_1}} — pendente: {{PENDENTE_QUEM_1}}</li>
<li>{{DECISAO_2}} — pendente: {{PENDENTE_QUEM_2}}</li>
</ul>
<h4>7. Proxima Revisao</h4>
<p>
<strong>Data proposta:</strong> {{DATA_PROXIMA_REVISAO}} |
<strong>Formato:</strong> {{FORMATO_REUNIAO}}
</p>
<hr>
<p>
<strong>Descomplicar®</strong> |
<a href="mailto:info@descomplicar.pt">info@descomplicar.pt</a> |
911 510 005
</p>
<p><em>Revisao gerada em {{DATA_HOJE}} | Projecto #{{PROJECTO_ID}}</em></p>
```
### Markdown (Email / Hub)
```markdown
# Revisao Mensal — {{NOME_PROJECTO}} | {{MES_ANO}}
**Cliente:** {{NOME_CLIENTE}} | **Periodo:** 01-{{MES_NUM}}-{{ANO}} a {{ULTIMO_DIA}}-{{MES_NUM}}-{{ANO}}
---
## 1. Resumo Executivo
{{PARAGRAFO_RESUMO_EXECUTIVO}}
| Metrica | {{MES_ATUAL}} | {{MES_ANTERIOR}} | Variacao |
|---------|--------------|-----------------|----------|
| Horas trabalhadas | {{HORAS_MES}} | {{HORAS_MES_ANT}} | {{VAR_HORAS}} |
| Tarefas concluidas | {{TAREFAS_MES}} | {{TAREFAS_MES_ANT}} | {{VAR_TAREFAS}} |
| Progresso geral | {{PROGRESSO_MES}}% | {{PROGRESSO_MES_ANT}}% | +{{VAR_PROGRESSO}}pp |
| Valor entregue | {{VALOR_MES}}EUR | {{VALOR_MES_ANT}}EUR | {{VAR_VALOR}} |
## 2. Trabalho Realizado
**Entregas concluidas:**
- **{{ENTREGA_1}}:** {{DESCRICAO_ENTREGA_1}}
- **{{ENTREGA_2}}:** {{DESCRICAO_ENTREGA_2}}
- **{{ENTREGA_3}}:** {{DESCRICAO_ENTREGA_3}}
## 3. Estado do Projecto
| Componente | Estado | Notas |
|------------|--------|-------|
| {{COMPONENTE_1}} | {{ESTADO_1}} | {{NOTA_1}} |
| {{COMPONENTE_2}} | {{ESTADO_2}} | {{NOTA_2}} |
## 4. Facturacao
| Descricao | Valor | Estado |
|-----------|-------|--------|
| {{FATURA_1_DESC}} | {{FATURA_1_VALOR}}EUR | {{FATURA_1_ESTADO}} |
**Facturado:** {{TOTAL_FACTURADO}}EUR | **Recebido:** {{TOTAL_RECEBIDO}}EUR | **Pendente:** {{TOTAL_PENDENTE}}EUR
## 5. O que correu bem / O que melhorar
**Positivo:**
- {{PONTO_POSITIVO_1}}
- {{PONTO_POSITIVO_2}}
**Melhoria:**
- {{PONTO_MELHORIA_1}}
- {{PONTO_MELHORIA_2}}
## 6. Plano {{MES_SEGUINTE}}
- {{OBJECTIVO_1}} — {{RESP_1}} — {{DATA_OBJ_1}}
- {{OBJECTIVO_2}} — {{RESP_2}} — {{DATA_OBJ_2}}
- {{OBJECTIVO_3}} — {{RESP_3}} — {{DATA_OBJ_3}}
**Decisoes necessarias:**
- {{DECISAO_1}} — pendente: {{PENDENTE_QUEM_1}}
## 7. Proxima Revisao
**Data proposta:** {{DATA_PROXIMA_REVISAO}} | **Formato:** {{FORMATO_REUNIAO}}
---
Descomplicar® | info@descomplicar.pt | 911 510 005
*Revisao gerada em {{DATA_HOJE}} | Projecto #{{PROJECTO_ID}}*
```
---
## Placeholders — Mapeamento Desk CRM
| Placeholder | Fonte | MCP Call |
|-------------|-------|----------|
| `{{HORAS_MES}}` | Timesheets do mes | `get_project_time_tracking` |
| `{{HORAS_MES_ANT}}` | Timesheets mes anterior | `get_project_time_tracking` (range) |
| `{{TAREFAS_MES}}` | Tasks concluidas no mes | `get_tasks` (filtro data) |
| `{{PROGRESSO_MES}}` | `project.progress` actual | `get_project` |
| `{{TOTAL_FACTURADO}}` | Soma facturas do mes | `get_invoices` |
| `{{TOTAL_RECEBIDO}}` | Facturas pagas | `get_invoices` (status=paid) |
| `{{TOTAL_PENDENTE}}` | Facturas pendentes | `get_invoices` (status=unpaid) |
### Estados de Componente
| Estado | Significado |
|--------|-------------|
| Concluido | Entregue e aceite |
| Em curso | Desenvolvimento activo |
| Pendente | Nao iniciado, na fila |
| Em revisao | Aguarda aprovacao cliente |
| Em pausa | Aguarda input externo |
| Bloqueado | Dependencia nao resolvida |
---
## Paragrafo de Resumo Executivo — Guia
O resumo executivo deve responder a 3 questoes em 3-4 frases:
1. **O que foi feito este mes?** (resultados concretos)
2. **Onde estamos no projecto?** (progresso, prazo)
3. **O que e mais importante para o mes seguinte?** (foco)
Exemplo:
```
Em Fevereiro 2026, concluimos a integracao com a API de energia solar
e o modulo de relatorios automaticos, elevando o progresso do projecto
para 72%. O projecto mantem-se dentro do prazo previsto para entrega
final a 31-03-2026. Em Marco, o foco sera o dashboard mobile e a
formacao de utilizadores.
```
---
## Notas de Uso
- O paragrafo de resumo executivo e o elemento mais lido — escrever com cuidado
- Comparacao com mes anterior so incluir se os dados forem reais (nao simular)
- "O que pode melhorar" nao e critica — e comprometimento de melhoria continua
- Decisoes necessarias devem ter dono claro (Descomplicar ou Cliente)
- Propor sempre data para proxima revisao — nao deixar em aberto
---
*Template v1.0.0 | 2026-03-10 | Descomplicar®*

View File

@@ -0,0 +1,210 @@
# Template: Status de Projecto
**Tipo:** Relatorio de estado detalhado de projecto
**Frequencia:** Por milestone, reuniao de acompanhamento, ou pedido do cliente
**Tom:** Tecnico mas acessivel, orientado para decisao
**Extensao:** 1-2 paginas (equivalente)
---
## Estrutura do Template
### HTML (Desk CRM)
```html
<h4>Status do Projecto — {{NOME_PROJECTO}}</h4>
<p>
<strong>Data:</strong> {{DATA_HOJE}} |
<strong>Periodo:</strong> {{PERIODO_INICIO}} a {{PERIODO_FIM}} |
<strong>Status:</strong> <span style="color:{{COR_STATUS}}">{{STATUS_LABEL}}</span>
</p>
<h4>Resumo Executivo</h4>
<table>
<tr>
<th>Metrica</th>
<th>Valor</th>
<th>Nota</th>
</tr>
<tr>
<td>Progresso</td>
<td>{{PROGRESSO_PERCENTAGEM}}%</td>
<td>{{NOTA_PROGRESSO}}</td>
</tr>
<tr>
<td>Horas gastas</td>
<td>{{HORAS_GASTAS}}h / {{HORAS_ESTIMADAS}}h</td>
<td>{{BURN_RATE}}% consumido</td>
</tr>
<tr>
<td>Tarefas</td>
<td>{{TAREFAS_CONCLUIDAS}} / {{TAREFAS_TOTAL}}</td>
<td>{{TAREFAS_EM_CURSO}} em curso</td>
</tr>
<tr>
<td>Deadline</td>
<td>{{DEADLINE}}</td>
<td>{{DIAS_RESTANTES}} dias restantes</td>
</tr>
</table>
<h4>Fases e Milestones</h4>
<table>
<tr>
<th>Fase</th>
<th>Status</th>
<th>Conclusao</th>
</tr>
<tr>
<td>{{FASE_1_NOME}}</td>
<td>{{FASE_1_STATUS}}</td>
<td>{{FASE_1_DATA}}</td>
</tr>
<tr>
<td>{{FASE_2_NOME}}</td>
<td>{{FASE_2_STATUS}}</td>
<td>{{FASE_2_DATA}}</td>
</tr>
<tr>
<td>{{FASE_3_NOME}}</td>
<td>{{FASE_3_STATUS}}</td>
<td>{{FASE_3_DATA}}</td>
</tr>
</table>
<h4>Tarefas em Destaque</h4>
<ul>
<li><strong>Concluidas recentemente:</strong> {{TAREFAS_RECENTES}}</li>
<li><strong>Em curso agora:</strong> {{TAREFAS_ACTIVAS}}</li>
<li><strong>A iniciar em seguida:</strong> {{PROXIMAS_TAREFAS}}</li>
</ul>
<h4>Riscos e Bloqueadores</h4>
<ul>
<li>{{RISCO_1}} — <strong>Mitigacao:</strong> {{MITIGACAO_1}}</li>
<li>{{RISCO_2}} — <strong>Mitigacao:</strong> {{MITIGACAO_2}}</li>
</ul>
<h4>Financeiro</h4>
<table>
<tr>
<th>Descricao</th>
<th>Valor</th>
<th>Status</th>
</tr>
<tr>
<td>{{FATURA_1_DESC}}</td>
<td>{{FATURA_1_VALOR}}EUR</td>
<td>{{FATURA_1_STATUS}}</td>
</tr>
</table>
<h4>Proximas Accoes</h4>
<ul>
<li>{{ACCAO_1}} — responsavel: {{RESPONSAVEL_1}} — data: {{DATA_ACCAO_1}}</li>
<li>{{ACCAO_2}} — responsavel: {{RESPONSAVEL_2}} — data: {{DATA_ACCAO_2}}</li>
</ul>
<hr>
<p>
<strong>Descomplicar®</strong> |
<a href="mailto:info@descomplicar.pt">info@descomplicar.pt</a> |
911 510 005
</p>
<p><em>Status gerado em {{DATA_HOJE}} | Projecto #{{PROJECTO_ID}}</em></p>
```
### Markdown (Email / Hub)
```markdown
# Status do Projecto — {{NOME_PROJECTO}}
**Data:** {{DATA_HOJE}} | **Periodo:** {{PERIODO_INICIO}} — {{PERIODO_FIM}} | **Status:** {{STATUS_LABEL}}
---
## Resumo Executivo
| Metrica | Valor | Nota |
|---------|-------|------|
| Progresso | {{PROGRESSO_PERCENTAGEM}}% | {{NOTA_PROGRESSO}} |
| Horas | {{HORAS_GASTAS}}h / {{HORAS_ESTIMADAS}}h | {{BURN_RATE}}% consumido |
| Tarefas | {{TAREFAS_CONCLUIDAS}} / {{TAREFAS_TOTAL}} | {{TAREFAS_EM_CURSO}} em curso |
| Deadline | {{DEADLINE}} | {{DIAS_RESTANTES}} dias restantes |
## Fases e Milestones
| Fase | Status | Conclusao |
|------|--------|-----------|
| {{FASE_1_NOME}} | {{FASE_1_STATUS}} | {{FASE_1_DATA}} |
| {{FASE_2_NOME}} | {{FASE_2_STATUS}} | {{FASE_2_DATA}} |
| {{FASE_3_NOME}} | {{FASE_3_STATUS}} | {{FASE_3_DATA}} |
## Tarefas em Destaque
- **Concluidas recentemente:** {{TAREFAS_RECENTES}}
- **Em curso agora:** {{TAREFAS_ACTIVAS}}
- **A iniciar em seguida:** {{PROXIMAS_TAREFAS}}
## Riscos e Bloqueadores
- {{RISCO_1}} — **Mitigacao:** {{MITIGACAO_1}}
- {{RISCO_2}} — **Mitigacao:** {{MITIGACAO_2}}
## Financeiro
| Descricao | Valor | Status |
|-----------|-------|--------|
| {{FATURA_1_DESC}} | {{FATURA_1_VALOR}}EUR | {{FATURA_1_STATUS}} |
## Proximas Accoes
- {{ACCAO_1}} — {{RESPONSAVEL_1}} — {{DATA_ACCAO_1}}
- {{ACCAO_2}} — {{RESPONSAVEL_2}} — {{DATA_ACCAO_2}}
---
Descomplicar® | info@descomplicar.pt | 911 510 005
*Status gerado em {{DATA_HOJE}} | Projecto #{{PROJECTO_ID}}*
```
---
## Placeholders — Mapeamento Desk CRM
| Placeholder | Fonte | MCP Call |
|-------------|-------|----------|
| `{{NOME_PROJECTO}}` | `project.name` | `get_project` |
| `{{PROGRESSO_PERCENTAGEM}}` | `project.progress` | `get_project` |
| `{{HORAS_GASTAS}}` | Soma timesheets | `get_project_time_tracking` |
| `{{HORAS_ESTIMADAS}}` | `project.estimated_hours` | `get_project` |
| `{{BURN_RATE}}` | Calculado: gastas/estimadas*100 | — |
| `{{TAREFAS_CONCLUIDAS}}` | Count tasks status=completed | `get_tasks` |
| `{{TAREFAS_TOTAL}}` | Count all tasks | `get_tasks` |
| `{{TAREFAS_EM_CURSO}}` | Count tasks status=in_progress | `get_tasks` |
| `{{DEADLINE}}` | `project.deadline` | `get_project` |
| `{{DIAS_RESTANTES}}` | Calculado | `mcp-time` |
| `{{FATURA_*}}` | Facturas do projecto | `get_invoices` |
### Status Labels e Cores
| Status | Label | Cor HTML |
|--------|-------|----------|
| Em prazo | No Prazo | `#38a169` (verde) |
| Risco moderado | Em Risco | `#d69e2e` (amarelo) |
| Atrasado | Atrasado | `#e53e3e` (vermelho) |
| Concluido | Concluido | `#2b6cb0` (azul) |
| Em pausa | Em Pausa | `#4a5568` (cinza) |
---
## Notas de Uso
- Se o burn rate ultrapassar 80% com menos de 80% de progresso, assinalar como risco
- Riscos sem mitigacao definida nao devem ser apresentados ao cliente sem plano de accao
- Fases devem corresponder a milestones acordados no arranque do projecto
- Dados financeiros incluir apenas se o utilizador tem permissao (staff ID 1 = Emanuel)
- Se nao existirem riscos conhecidos, omitir a seccao (nao colocar "sem riscos identificados")
---
*Template v1.0.0 | 2026-03-10 | Descomplicar®*

View File

@@ -1,17 +1,7 @@
---
name: report
description: >
Relatórios agregados v1.0 - Semanal, mensal, projecto. Compila dados de múltiplas skills.
Use when "report", "relatório", "semanal", "mensal", "resumo período".
author: Descomplicar® Crescimento Digital
version: 1.0.0
quality_score: 75
user_invocable: true
category: business
tags: [report, relatório, semanal, mensal, analytics, desk, crm]
desk_project: 65
allowed-tools: Read, mcp__desk-crm-v3, mcp__mcp-time
mcps: desk-crm-v3, mcp-time
description: Relatórios agregados semanal, mensal e por projecto. Compila dados de múltiplas fontes CRM. Usar quando "report", "relatório", "semanal", "mensal", "resumo período".
context: fork
---
# /report v1.0 - Relatórios Agregados

View File

@@ -0,0 +1,340 @@
---
name: spec-coauthor
description: Co-autoria iterativa de documentos estruturados — SPECs de projecto, propostas comerciais e PROCs operacionais. Workflow 3 fases com brainstorming, curadoria e teste de leitura por sub-agente. Usar quando "spec", "proposta", "PROC", "documento", "co-autoria", "redigir", "estruturar documento", "escrever proposta".
---
# /spec-coauthor - Co-Autoria de Documentos Estruturados
Co-autoria iterativa de SPECs, propostas comerciais e PROCs operacionais com workflow de 3 fases: recolha de contexto, refinamento estruturado e teste de leitura.
---
## Tipos de Documento Suportados
| Tipo | Audiência | Exemplos |
|------|-----------|----------|
| **SPEC de projecto** | Equipa técnica, Emanuel | WhatSMS-v2-SPEC.md, DashDescomplicar-SPEC.md |
| **Proposta comercial** | Cliente, stakeholders | Proposta-ClienteX-SEO.md, Proposta-ERP-2026.md |
| **PROC operacional** | Equipa interna, ops | PROC-Deploy-EasyPanel.md, PROC-Onboarding-Cliente.md |
---
## Fase 1: Recolha de Contexto
### 1.1 Identificar tipo de documento
Perguntar ao utilizador:
```
1. Que tipo de documento precisas criar?
a) SPEC de projecto (requisitos, arquitectura, milestones)
b) Proposta comercial (solução, pricing, timeline)
c) PROC operacional (passos, checklist, troubleshooting)
d) Outro (descrever)
2. Para quem é este documento?
- Emanuel (uso interno / decisão)
- Cliente (venda / aprovação)
- Equipa técnica (execução)
- Múltiplas audiências (especificar)
3. Qual o impacto esperado?
- Aprovar orçamento / go-ahead
- Alinhar equipa em requisitos
- Documentar processo para replicar
- Outro (especificar)
```
### 1.2 Recolher contexto existente
Após identificar tipo e audiência, recolher contexto via:
**Desk CRM:**
```
mcp__desk-crm-v3__get_projects → projectos activos relacionados
mcp__desk-crm-v3__get_tasks → tarefas e sub-tarefas relevantes
mcp__desk-crm-v3__get_customers → dados do cliente (se proposta)
```
**Hub / Ficheiros:**
```
Read ficheiros relevantes em:
/media/ealmeida/Dados/Hub/05-Projectos/[projecto]/
/media/ealmeida/Dados/Hub/07-Clientes/[cliente]/
/media/ealmeida/Dados/Hub/90-Templates/
```
**Perguntas complementares de contexto:**
```
4. Existe documentação anterior? (SPEC, proposta, email, notas)
→ Partilhar caminho ou colar conteúdo
5. Há restrições ou requisitos não-negociáveis?
→ Prazo, orçamento, tecnologia obrigatória
6. Qual o nível de detalhe desejado?
→ Resumo executivo (1-2 pág.) / Documento completo (5-15 pág.) / Ultra-detalhado
```
### 1.3 Confirmar antes de avançar
Apresentar resumo do contexto recolhido e confirmar com utilizador antes de passar à Fase 2.
```
**Contexto confirmado:**
- Tipo: [SPEC / Proposta / PROC]
- Audiência: [quem vai ler]
- Impacto: [decisão esperada]
- Referências encontradas: [ficheiros / tarefas]
- Nível de detalhe: [resumo / completo / ultra]
Avançar para estruturação? (s/n)
```
---
## Fase 2: Refinamento e Estrutura
### 2.1 Brainstorming de secções
Para cada secção principal do documento, gerar **5 a 20 opções** de abordagem/conteúdo.
**Formato de apresentação:**
```
## Secção: [Nome da Secção]
Opções de abordagem:
1. [Opção concisa — 1 linha de descrição]
2. [Opção alternativa]
3. [Opção mais detalhada]
4. [Opção focada em audiência técnica]
5. [Opção focada em audiência não técnica]
...
→ Quais queres manter? (ex: "1,3,5" ou "todas" ou "nenhuma, tentar de novo")
```
**Regras do brainstorming:**
- Apresentar opções reais e diferenciadas (não variações mínimas)
- Indicar vantagens de cada abordagem em 1 linha
- Nunca gerar menos de 5 opções por secção
- Para SPECs técnicas: incluir sempre opção de maior e menor detalhe
- Para propostas: incluir sempre opção orientada a valor e a custo
### 2.2 Curadoria pelo utilizador
O utilizador selecciona opções com sintaxe simples:
```
"Keep 1,4,7" → manter apenas essas opções
"Todas" → aceitar todas
"Nenhuma" → tentar de novo com abordagem diferente
"1 mas mais curto" → manter com refinamento
"Combinar 2 e 5" → fusão das opções
```
### 2.3 Drafting iterativo
Após curadoria de cada secção, produzir rascunho com `str_replace_editor` ou apresentar em bloco markdown.
**Ciclo por secção:**
```
1. Brainstorm (5-20 opções)
2. Curadoria pelo utilizador
3. Draft da secção
4. Revisão inline ("mudar X para Y" / "expandir parágrafo Z")
5. Confirmar → avançar para secção seguinte
```
**Ordem de secções por tipo:**
Para SPEC de projecto:
```
1. Contexto e problema
2. Objectivo e scope
3. Requisitos funcionais
4. Requisitos técnicos / arquitectura
5. Milestones e timeline
6. Riscos e dependências
7. Definition of Done
8. Referências
```
Para proposta comercial:
```
1. Sumário executivo
2. Contexto e diagnóstico
3. Solução proposta
4. Entregáveis e timeline
5. Investimento e condições
6. Próximos passos
7. Sobre a Descomplicar
```
Para PROC operacional:
```
1. Objectivo e âmbito
2. Pré-requisitos
3. Passos detalhados
4. Checklist de execução
5. Troubleshooting
6. Métricas e validação
7. Referências cruzadas
```
### 2.4 Revisão global
Após completar todas as secções:
```
Documento completo em rascunho. Revisão global:
1. Fluxo lógico entre secções ✓/✗
2. Consistência de terminologia ✓/✗
3. Nível de detalhe adequado à audiência ✓/✗
4. Sem lacunas de informação crítica ✓/✗
Ajustes antes do teste de leitura? (s/n)
```
---
## Fase 3: Teste de Leitura
### 3.1 Sub-agente "leitor fresco"
Invocar sub-agente via Agent tool **sem fornecer contexto da sessão actual**. O sub-agente recebe apenas o documento final e responde como leitor novo.
**Instrução para o sub-agente:**
```
És um leitor que vê este documento pela primeira vez.
Não tens contexto adicional sobre o projecto ou empresa.
Lê o documento abaixo e responde:
1. O que este documento comunica? (resumo em 2-3 frases)
2. Quem é a audiência alvo?
3. Que perguntas ficaram sem resposta?
4. Há algum ponto confuso ou contraditório?
5. O que mudarias na estrutura ou linguagem?
DOCUMENTO:
[colar documento completo]
```
### 3.2 Análise das lacunas detectadas
Apresentar ao utilizador o relatório do sub-agente:
```
**Relatório do leitor fresco:**
Compreensão: [resumo do sub-agente]
Audiência identificada: [o sub-agente identificou correctamente?]
Lacunas detectadas:
- [Lacuna 1]
- [Lacuna 2]
Confusões detectadas:
- [Ponto X não está claro]
Sugestões estruturais:
- [Sugestão A]
```
### 3.3 Correcção iterativa
Para cada lacuna ou confusão, propor correcção:
```
Lacuna: "Não fica claro qual o prazo de entrega"
Proposta: Adicionar secção "Timeline" com datas concretas
→ Aprovar correcção? (s/n)
```
Repetir Fase 3 se correcções forem substanciais.
---
## Integração com Desk CRM
### Criar/actualizar tarefa associada
Após finalizar o documento:
```
mcp__desk-crm-v3__create_task ou update_task:
- Nome: "SPEC/Proposta/PROC: [Título documento]"
- Descrição: Sumário do documento
- Projecto: [projecto associado]
- Status: Em revisão / Concluído
```
### Comentário HTML na tarefa
```html
<h4>Documento criado</h4>
<ul>
<li>Tipo: [SPEC / Proposta / PROC]</li>
<li>Audiência: [quem vai ler]</li>
<li>Fases concluídas: Context Gathering → Refinamento → Teste de Leitura</li>
</ul>
<p><strong>Ficheiro:</strong> <code>[path absoluto do documento]</code></p>
<hr>
<p><strong>Skill:</strong> /spec-coauthor | <strong>Data:</strong> YYYY-MM-DD</p>
```
---
## Onde Guardar o Documento
| Tipo | Destino |
|------|---------|
| SPEC de projecto | `/media/ealmeida/Dados/Hub/05-Projectos/[projecto]/` |
| Proposta comercial | `/media/ealmeida/Dados/Hub/03-Propostas/` |
| PROC operacional | `/media/ealmeida/Dados/Hub/06-Operacoes/Procedimentos/[Dept]/` |
| Rascunho/inbox | `/media/ealmeida/Dados/Hub/00-Inbox/` |
**Nomeação de ficheiros:**
- SPEC: `[Projecto]-SPEC.md` ou `[Projecto]-SPEC-v2.md`
- Proposta: `Proposta-[Cliente]-[Tema]-YYYY-MM-DD.md`
- PROC: `PROC-[Título].md` (via `/proc-creator` para código correcto)
---
## Referências e Templates
**Templates detalhados:** `references/templates.md` (neste directório)
- Template SPEC completo
- Template proposta comercial
- Template PROC operacional
**Skills relacionadas:**
- `/proc-creator` — Criar PROCs com código departamental correcto e actualizar INDEX.md
- `/orcamento` — Gerar orçamentos e propostas com pricing
- `/knowledge` — Pesquisar contexto em NotebookLM / Hub antes de redigir
---
## Anti-Patterns
**Nunca:**
- Redigir documento completo de uma vez sem curadoria por secção
- Avançar para Fase 3 sem aprovação do rascunho completo
- Fornecer contexto da sessão ao sub-agente de teste
- Guardar documento sem tarefa Desk CRM associada
- Usar emojis ou maiúsculas desnecessárias no documento
**Sempre:**
- Confirmar audiência antes de escolher linguagem e detalhe
- Gerar mínimo 5 opções por secção de brainstorming
- Aguardar curadoria do utilizador antes de rascunhar
- Corrigir lacunas detectadas pelo leitor fresco antes de fechar
- PT-PT estrito em todo o documento gerado
---
*Skill v1.0.0 | 2026-03-10 | Plugin gestao | Descomplicar®*

View File

@@ -0,0 +1,484 @@
# Templates spec-coauthor
Templates de referência para os três tipos de documento suportados pela skill /spec-coauthor.
---
## Template 1: SPEC de Projecto
```markdown
---
title: [Nome do Projecto] — SPEC
date: YYYY-MM-DD
type: spec
status: draft
version: 1.0
projecto_desk_id: [ID Desk CRM]
tags: [spec, projecto, tecnologia]
---
# [Nome do Projecto] — Especificação Técnica
**Versão:** 1.0 | **Data:** YYYY-MM-DD | **Status:** Draft
**Autor:** Emanuel Almeida | **Revisão:** [nome revisor]
---
## 1. Contexto e Problema
### 1.1 Contexto actual
Descrição do estado actual do sistema/processo que este projecto vai resolver ou melhorar.
### 1.2 Problema identificado
Descrição clara e específica do problema. Incluir:
- Impacto actual (tempo perdido, custo, risco)
- Frequência do problema
- Quem é afectado
### 1.3 Oportunidade
O que se torna possível ao resolver este problema.
---
## 2. Objectivo e Scope
### 2.1 Objectivo principal
Uma frase clara do que este projecto entrega.
### 2.2 Scope incluído
- [Feature ou entregável 1]
- [Feature ou entregável 2]
- [Feature ou entregável 3]
### 2.3 Scope excluído (fora de scope)
- [Item explicitamente excluído 1]
- [Item explicitamente excluído 2]
### 2.4 Critérios de sucesso
| Critério | Medição | Target |
|----------|---------|--------|
| [Critério 1] | [Como medir] | [Valor] |
| [Critério 2] | [Como medir] | [Valor] |
---
## 3. Requisitos Funcionais
### 3.1 [Módulo ou área funcional A]
| ID | Requisito | Prioridade | Notas |
|----|-----------|------------|-------|
| RF-001 | [Descrição] | Must / Should / Could | [Detalhe] |
| RF-002 | [Descrição] | Must / Should / Could | [Detalhe] |
### 3.2 [Módulo ou área funcional B]
| ID | Requisito | Prioridade | Notas |
|----|-----------|------------|-------|
| RF-010 | [Descrição] | Must / Should / Could | [Detalhe] |
---
## 4. Requisitos Técnicos e Arquitectura
### 4.1 Stack tecnológico
| Camada | Tecnologia | Justificação |
|--------|------------|-------------|
| Frontend | [ex: Next.js 14] | [razão] |
| Backend | [ex: Laravel 11] | [razão] |
| Base de dados | [ex: MySQL 8] | [razão] |
| Infra | [ex: EasyPanel + CWP] | [razão] |
### 4.2 Diagrama de arquitectura
```
[Componente A] → [API] → [Componente B]
[Base de dados]
```
### 4.3 Integrações externas
| Sistema | Tipo integração | Dados trocados | Responsável |
|---------|----------------|----------------|-------------|
| [Sistema X] | REST API | [dados] | [quem] |
| [Sistema Y] | Webhook | [eventos] | [quem] |
### 4.4 Requisitos não-funcionais
| Requisito | Descrição | Target |
|-----------|-----------|--------|
| Performance | Tempo resposta API | < 500ms (p95) |
| Disponibilidade | Uptime | 99.5% |
| Segurança | Autenticação | JWT + refresh tokens |
| Escalabilidade | [detalhe] | [target] |
---
## 5. Milestones e Timeline
| Milestone | Entregável | Data alvo | Dependências |
|-----------|-----------|-----------|-------------|
| M1 — Setup | Infra + repo configurado | YYYY-MM-DD | — |
| M2 — MVP | [Feature core] funcional | YYYY-MM-DD | M1 |
| M3 — Beta | Testes com utilizadores | YYYY-MM-DD | M2 |
| M4 — Launch | Deploy produção | YYYY-MM-DD | M3 |
**Estimativa total:** [X semanas / meses]
**Velocidade estimada:** [X story points/sprint]
---
## 6. Riscos e Dependências
| Risco | Probabilidade | Impacto | Mitigação |
|-------|---------------|---------|-----------|
| [Risco 1] | Alta / Média / Baixa | Alto / Médio / Baixo | [acção] |
| [Risco 2] | Alta / Média / Baixa | Alto / Médio / Baixo | [acção] |
**Dependências bloqueantes:**
- [Dependência externa 1 — quem / quando]
- [Dependência externa 2 — quem / quando]
---
## 7. Definition of Done
Uma user story / feature é considerada concluída quando:
- [ ] Código em PR aprovado por pelo menos 1 revisor
- [ ] Testes unitários escritos (cobertura > X%)
- [ ] Testes de integração passam em CI
- [ ] Documentação actualizada
- [ ] Sem issues críticas em `pnpm audit`
- [ ] Deploy em staging testado e aprovado
- [ ] Tarefa Desk CRM actualizada com comentário HTML
---
## 8. Referências
**Projectos relacionados:**
- [Link para projecto Desk CRM]
- [Link para repositório Gitea]
**Documentação técnica:**
- [Link para API externa]
- [Link para PROC relevante]
**Ficheiros relevantes:**
- `[path local do ficheiro]`
---
**[Nome do Projecto] SPEC v1.0 | YYYY-MM-DD | Descomplicar®**
```
---
## Template 2: Proposta Comercial
```markdown
---
title: Proposta — [Cliente] — [Tema]
date: YYYY-MM-DD
type: proposta
status: draft
cliente_desk_id: [ID Desk CRM]
validade: YYYY-MM-DD
valor_total: [X EUR]
tags: [proposta, cliente, tema]
---
# Proposta Comercial
## [Título do Serviço / Projecto]
**Para:** [Nome Cliente] | [NIF se disponível]
**De:** Descomplicar — Crescimento Digital | NIF: 514 785 691
**Data:** YYYY-MM-DD | **Válida até:** YYYY-MM-DD
**Referência:** PROP-[YYYY]-[NNN]
---
## 1. Sumário Executivo
[2-3 parágrafos que respondem a: qual é o problema do cliente, o que propomos, e qual o resultado esperado. Escrito para quem não vai ler o documento completo.]
**Em síntese:** [Uma frase que resume proposta e valor.]
---
## 2. Contexto e Diagnóstico
### 2.1 Situação actual
[Descrever o estado actual do cliente com base no que foi partilhado. Mostrar que compreendemos o negócio e os desafios.]
### 2.2 Oportunidade identificada
[O que está a ser perdido / o que pode ser ganho. Contextualizar o valor da solução.]
### 2.3 Objectivo do projecto
[O que o cliente vai conseguir após a conclusão. Focado em resultado de negócio, não em features técnicas.]
---
## 3. Solução Proposta
### 3.1 Abordagem
[Descrever a solução de forma clara e não técnica. Como vamos resolver o problema.]
### 3.2 Entregáveis
| # | Entregável | Descrição | Formato |
|---|-----------|-----------|---------|
| 1 | [Nome] | [O que é] | [ficheiro / deploy / formação] |
| 2 | [Nome] | [O que é] | [ficheiro / deploy / formação] |
| 3 | [Nome] | [O que é] | [ficheiro / deploy / formação] |
### 3.3 O que não está incluído
[Listar explicitamente o que está fora de scope para evitar mal-entendidos.]
- [Item excluído 1]
- [Item excluído 2]
---
## 4. Timeline e Fases
| Fase | Descrição | Duração | Entregável |
|------|-----------|---------|-----------|
| 1 — [Nome] | [Actividades] | [X dias/semanas] | [O quê] |
| 2 — [Nome] | [Actividades] | [X dias/semanas] | [O quê] |
| 3 — [Nome] | [Actividades] | [X dias/semanas] | [O quê] |
**Início estimado:** [data, condicionada a aprovação em X dias]
**Conclusão estimada:** [data]
**Condições de prazo:**
- [Condição 1 — ex: receber acessos até X]
- [Condição 2 — ex: feedback em até X dias úteis]
---
## 5. Investimento
### 5.1 Resumo de valores
| Serviço | Valor |
|---------|-------|
| [Fase 1 / componente 1] | [X EUR] |
| [Fase 2 / componente 2] | [X EUR] |
| [Manutenção mensal] | [X EUR/mês] |
| **Total projecto** | **[X EUR]** |
*Valores sem IVA. IVA à taxa legal em vigor (23%).*
### 5.2 Condições de pagamento
- [X]% na assinatura — [valor EUR]
- [X]% na entrega de [milestone] — [valor EUR]
- [X]% na conclusão e aprovação final — [valor EUR]
### 5.3 Validade da proposta
Esta proposta é válida até **[data]**. Após esta data os valores poderão ser revistos.
---
## 6. Próximos Passos
Para avançar com este projecto:
1. **Aprovação** — responder a este email com "aprovado" ou solicitar reunião para esclarecimentos
2. **Contrato** — envio de contrato para assinatura em [X dias úteis]
3. **Pagamento inicial** — processamento do primeiro pagamento
4. **Kickoff** — reunião de arranque em [X dias após pagamento]
**Contacto:** Emanuel Almeida | emanuel@descomplicar.pt | 911 510 005
---
## 7. Sobre a Descomplicar
A Descomplicar é uma empresa portuguesa especializada em crescimento digital para PMEs.
**O que fazemos:** Desenvolvimento web, automação de processos, integração de sistemas e consultoria digital.
**Experiência relevante:**
- [Projecto ou cliente relevante 1]
- [Projecto ou cliente relevante 2]
**Website:** descomplicar.pt | **NIF:** 514 785 691
---
*Proposta PROP-[YYYY]-[NNN] | [Cliente] | YYYY-MM-DD | Descomplicar®*
```
---
## Template 3: PROC Operacional
```markdown
---
title: [Título do Procedimento]
date: YYYY-MM-DD
type: procedimento
status: draft
dept_id: [1-7]
desk_dept_id: [1-7]
desk_dept_name: [D1-Comercial | ... | D7-Tecnologia | Cross-Departamental]
codigo: [DEPT]-[TEMA]-[NUM]
tags: [tag1, tag2, tag3]
---
# [Título do Procedimento]
**Código:** [DEPT]-[TEMA]-[NUM] | **Departamento:** [Nome] | **Status:** Draft
**Criado:** YYYY-MM-DD | **Revisão:** [data da próxima revisão]
---
## 1. Objectivo
[Uma ou duas frases que descrevem o que este procedimento permite fazer e qual o resultado esperado ao segui-lo.]
---
## 2. Âmbito
### Aplica-se a:
- [Situação ou contexto onde usar este PROC]
- [Quem executa este procedimento]
- [Frequência de execução]
### Não se aplica a:
- [Situação excluída — e qual PROC usar em alternativa]
---
## 3. Pré-requisitos
| Requisito | Descrição | Como verificar |
|-----------|-----------|----------------|
| [Acesso X] | [Para quê] | [Onde confirmar] |
| [Ferramenta Y] | [Versão mínima] | [Comando de verificação] |
| [Conhecimento Z] | [Nível esperado] | [PROC ou doc de referência] |
---
## 4. Procedimento
### Passo 1: [Nome descritivo do passo]
**Objectivo:** [O que se consegue neste passo]
**Acções:**
1. [Acção concreta com comando se aplicável]
2. [Acção seguinte]
3. [Acção final do passo]
**Exemplo:**
```bash
# Comando de exemplo (se técnico)
exemplo-comando --opcao valor
```
**Validação:** [Como confirmar que este passo foi bem-sucedido]
---
### Passo 2: [Nome descritivo do passo]
**Objectivo:** [O que se consegue neste passo]
**Acções:**
1. [Acção concreta]
2. [Acção seguinte]
**Validação:** [Como confirmar sucesso]
---
### Passo 3: [Nome descritivo do passo]
[...]
---
## 5. Checklist de Execução
Usar para confirmar cada passo antes de avançar:
- [ ] Pré-requisitos verificados
- [ ] Passo 1 concluído e validado
- [ ] Passo 2 concluído e validado
- [ ] Passo 3 concluído e validado
- [ ] Resultado final validado
- [ ] Tarefa Desk CRM actualizada (se aplicável)
- [ ] Comentário HTML adicionado (se aplicável)
---
## 6. Troubleshooting
| Problema | Causa provável | Solução | Escalação |
|----------|----------------|---------|-----------|
| [Erro ou situação X] | [Porquê acontece] | [Passos para resolver] | [Quem contactar se não resolver] |
| [Erro ou situação Y] | [Porquê acontece] | [Passos para resolver] | [Quem contactar] |
---
## 7. Métricas e Validação
| Métrica | O que mede | Target | Como medir |
|---------|------------|--------|------------|
| [Tempo de execução] | Eficiência do processo | < [X min] | Cronometrar na primeira execução |
| [Taxa de sucesso] | Fiabilidade | > [X%] | Registo de execuções |
---
## 8. Referências Cruzadas
**Procedimentos relacionados:**
- [PROC-Outro.md](../PROC-Outro.md) — [Quando usar em vez deste]
- [PROC-Dependente.md](../PROC-Dependente.md) — [Executar antes/depois]
**Skills relacionadas:**
- `/skill-name` — [Para que serve em relação a este PROC]
**Documentação externa:**
- [Nome da doc](URL) — [O que cobre]
**Quick Reference:**
- `Hub/06-Operacoes/Documentacao/Quick-Reference/QR-[Tema].md`
---
## 9. Histórico de Revisões
| Data | Versão | Autor | Alterações |
|------|--------|-------|------------|
| YYYY-MM-DD | 1.0 | Emanuel Almeida | Criação inicial |
---
**[Título] | Código: [DEPT]-[TEMA]-[NUM] | [Departamento]**
**Última actualização:** YYYY-MM-DD
```
---
*Templates spec-coauthor v1.0.0 | 2026-03-10 | Plugin gestao | Descomplicar®*

View File

@@ -1,24 +1,6 @@
---
name: tasks-overview
description: >
Visao geral de tarefas pendentes, atrasadas e em curso do Desk CRM. Organiza por prioridade e projecto, sugere workflows relevantes. Use when "tarefas", "tasks", "pendentes", "overdue", "atrasadas", "o que temos para fazer", "tasks overview".
author: Descomplicar® Crescimento Digital
version: 1.0.0
quality_score: 85
user_invocable: true
category: management
tags: [tasks, overview, priorities, workflows, desk-crm]
desk_task: 1710
desk_project: 65
allowed-tools: Read, Write, mcp__desk-crm-v3
mcps: desk-crm-v3
dependencies:
mcps: [desk-crm-v3]
triggers:
- "User asks about pending tasks"
- "User mentions 'tarefas', 'tasks', 'pendentes', 'overdue'"
- "User wants task overview or priorities"
- "Invoked by /today orchestrator"
description: Visão geral de tarefas pendentes, atrasadas e em curso do Desk CRM. Organiza por prioridade e projecto, sugere workflows relevantes. Usar quando "tarefas", "tasks", "pendentes", "overdue", "atrasadas", "o que temos para fazer".
---
# /tasks-overview v1.0

View File

@@ -1,18 +1,7 @@
---
name: time
description: >
Time tracking integrado com Desk CRM v2.0. Alertas >4h, total semanal, integração worklog.
Use when "time", "timer", "horas", "timesheet", "start", "stop", "tempo".
author: Descomplicar® Crescimento Digital
version: 2.0.0
quality_score: 80
user_invocable: true
category: productivity
tags: [time, timer, desk, crm, timesheet, productivity]
desk_task: 1485
desk_project: 65
allowed-tools: Read, Write, mcp__desk-crm-v3, mcp__mcp-time, mcp__filesystem
mcps: desk-crm-v3, mcp-time, filesystem
description: Gestão de tempo integrada com Desk CRM. Alertas >4h, total semanal, integração worklog. Usar quando "time", "timer", "horas", "timesheet", "start", "stop", "tempo".
disable-model-invocation: true
---
# /time v2.0 - Gestão de Tempo

View File

@@ -1,33 +1,34 @@
---
name: today
description: >
Checkup diario v9.0 - Orquestrador leve que invoca sub-skills modulares.
Triagem tickets + IMAP + auto-despesas + digest + tarefas + infra-check.
Use when "checkup", "hoje", "today", "rotina", inicio de dia.
author: Descomplicar® Crescimento Digital
version: 9.1.0
quality_score: 92
user_invocable: true
category: productivity
tags: [rotina, checkup, dashboard, orchestrator]
desk_task: 1416
desk_project: 65
allowed-tools: Read, Write, Skill, Glob, mcp__mcp-time, mcp__memory-supabase
mcps: mcp-time, memory-supabase
dependencies:
skills: [ticket-triage, imap-triage, auto-expense, daily-digest, tasks-overview, infra-check, cleanup-downloads, wp-update, spec, sprint]
description: Checkup diário - dashboard agregador que lê resultados dos agentes cron do servidor dev e recolhe dados frescos via skills interactivas. Usar quando "checkup", "hoje", "today", "rotina", início de dia.
context: fork
---
# /today v9.0 - Checkup Diario (Orquestrador)
# /today v10.0 - Checkup Diario (Agregador)
Invoca sub-skills modulares em sequencia. Cada skill e autonoma e pode ser usada individualmente.
Le resultados dos agentes cron (servidor dev) + invoca skills interactivas. Nao duplica trabalho automatizado.
---
## Arquitectura
```
CRON (dev server, autonomo 24/7) /today (interactivo, sob pedido)
├── imap-triage (4h) ├── Le logs/JSONs do cron
├── auto-expense (4h +15min) ├── /daily-digest (dados frescos)
├── ticket-triage (4h +30min) ├── /tasks-overview (dados frescos)
├── aiktop-tasks (15min) ├── /cleanup-downloads (se necessario)
├── infra-check (diario 7h) ├── Specs/Sprints scan
└── wp-update (segunda 23h) ├── Rotinas especiais por dia
└── Dashboard + Obsidian + Supabase
```
---
## Regra Fundamental
> Fases 1-2 sao **silenciosas**. Executar tudo antes de mostrar output.
> O utilizador so ve o dashboard final com accoes ja tomadas.
> O utilizador so ve o dashboard final.
---
@@ -36,79 +37,89 @@ Invoca sub-skills modulares em sequencia. Cada skill e autonoma e pode ser usada
### Fase 0: Verificacoes
```
1. mcp__mcp-time__current_time data, dia da semana
1. mcp__mcp-time__current_time -> data, dia da semana
2. mcp__memory-supabase__search_memories("today checkup YYYY-MM-DD")
Se ja existe hoje: perguntar se quer re-executar
-> Se ja existe hoje: perguntar se quer re-executar
```
### Fase 1: Auto-Processamento (silencioso)
### Fase 1: Ler resultados dos agentes cron (silencioso)
```
3. Invocar /ticket-triage
→ Fecha SPAM, identifica facturas em tickets
→ Output: ~/.claude-work/today-tickets-{date}.json
3. mcp__ssh-unified__ssh_execute(server="dev", command="cat logs")
Ler os seguintes ficheiros do servidor dev:
4. Invocar /imap-triage
→ Limpa 14 contas IMAP, identifica facturas em emails
→ Output: ~/.claude-work/today-imap-{date}.json
a) IMAP (ultimo report):
ls -t /root/Dev/claude_automations_dev/imap-triage/imap-triage.log | tail -20
cat ~/.claude-work/today-imap-DD-MM-YYYY.json
5. Invocar /auto-expense
→ Le JSONs dos passos 3 e 4, cria despesas automaticamente
→ Output: ~/.claude-work/today-expenses-{date}.json
b) Ticket triage (ultimo log):
tail -30 /root/Dev/claude_automations_dev/ticket-triage/ticket-triage.log
6. SE >10 ficheiros em ~/Transferencias:
→ Invocar /cleanup-downloads
c) Auto-expense (ultimo log):
tail -20 /root/Dev/claude_automations_dev/auto-expense/auto-expense.log
d) Infra check (ultimo log):
tail -30 /root/Dev/claude_automations_dev/infra-check/infra-check.log
e) AikTop tasks (ultimo log):
tail -20 /root/Dev/claude_automations_dev/aiktop-tasks/aiktop-tasks.log
f) SE segunda — wp-update (ultimo log):
tail -50 /root/Dev/claude_automations_dev/wp-update/wp-update.log
4. DETECTAR PROBLEMAS nos logs:
- Cron nao correu (log desactualizado >8h)
- Exit codes != 0
- Erros ou falhas nos logs
-> Adicionar a seccao "Requer Atencao Urgente"
```
### Fase 2: Recolha de Dados (silencioso)
### Fase 2: Recolha de dados frescos (silencioso)
```
7. Invocar /daily-digest
Timer, tickets, facturas, leads, propostas, agenda
Output: dashboard markdown
5. Invocar /daily-digest
-> Timer, tickets, facturas, leads, propostas, agenda
-> Output: dashboard markdown
8. Invocar /tasks-overview
Tarefas overdue, pendentes, em curso, workflows sugeridos
Output: tarefas markdown
6. Invocar /tasks-overview
-> Tarefas overdue, pendentes, em curso, workflows sugeridos
-> Output: tarefas markdown
7. SE >10 ficheiros em ~/Transferencias:
-> Invocar /cleanup-downloads
```
### Fase 2c: Sprint/Spec Activos (silencioso)
### Fase 2b: Sprint/Spec Activos (silencioso)
```
8b. Glob: /media/ealmeida/Dados/Dev/**/SPEC.md (profundidade max 3)
Para cada encontrado: Ler frontmatter (15 linhas)
Filtrar: status != "completed"
Extrair: titulo (linha # SPEC:), status, weight, scope done/total
8. Glob: /media/ealmeida/Dados/Dev/**/SPEC.md (profundidade max 3)
-> Para cada encontrado: Ler frontmatter (15 linhas)
-> Filtrar: status != "completed"
-> Extrair: titulo (linha # SPEC:), status, weight, scope done/total
8c. Glob: /media/ealmeida/Dados/Dev/**/SPRINT.md
Para cada encontrado: Ler frontmatter
Filtrar: status == "active"
Extrair: sprint_id, tasks done/total, checkpoint_done, end_date
8d. Output: ~/.claude-work/today-sprint-{date}.json
9. Glob: /media/ealmeida/Dados/Dev/**/SPRINT.md
-> Para cada encontrado: Ler frontmatter
-> Filtrar: status == "active"
-> Extrair: sprint_id, tasks done/total, checkpoint_done, end_date
```
### Fase 2b: Rotinas Especiais
### Fase 2c: Rotinas Especiais
```
9. SE SABADO ou DOMINGO:
→ Invocar /infra-check
→ MCP Health Check + Auditoria despesas
10. SE SEGUNDA:
Planeamento semanal (tarefas da semana + capacidade)
→ Invocar /wp-update
-> Planeamento semanal (tarefas da semana + capacidade)
11. SE SEXTA:
Sugerir manutencao WordPress (10 sites da rede)
-> Sugerir manutencao e revisao semanal
```
### Fase 3: Output Final
```
12. AGREGAR resultados de todas as sub-skills:
- Ler JSONs de ~/.claude-work/today-*.json
- Combinar alertas, metricas, accoes
12. AGREGAR resultados de cron + skills:
- Logs do cron (Fase 1)
- Dados frescos do /daily-digest e /tasks-overview (Fase 2)
- Specs/Sprints (Fase 2b)
13. DASHBOARD ao utilizador (formato abaixo)
@@ -118,12 +129,9 @@ Invoca sub-skills modulares em sequencia. Cada skill e autonoma e pode ser usada
15. GUARDAR em Supabase:
mcp__memory-supabase__save_memory({
content: "Checkup diario - X tickets, Y tarefas, Z urgentes, W emails",
content: "Checkup diario - X tickets, Y tarefas, Z urgentes, cron OK/FALHA",
tags: ["today", "checkup", "DD-MM-YYYY"]
})
16. LIMPAR temporarios:
rm ~/.claude-work/today-*-{date}.json
```
---
@@ -136,7 +144,7 @@ Invoca sub-skills modulares em sequencia. Cada skill e autonoma e pode ser usada
---
## Requer Atencao Urgente
[Alertas de seguranca, erros, notificacoes criticas - do /imap-triage e /ticket-triage]
[Alertas: cron falhado, erros infra, seguranca, notificacoes criticas]
---
@@ -163,18 +171,21 @@ Invoca sub-skills modulares em sequencia. Cada skill e autonoma e pode ser usada
---
## Emails IMAP Processados
[Do /imap-triage: tabela por conta com spam/promo/factura/notif]
## Agentes Cron (servidor dev)
| Agente | Ultima execucao | Status | Resumo |
|--------|----------------|--------|--------|
| imap-triage | HH:MM | OK/FALHA | X contas, Y emails |
| auto-expense | HH:MM | OK/SKIP | Z despesas criadas |
| ticket-triage | HH:MM | OK/FALHA | W tickets processados |
| aiktop-tasks | HH:MM | OK/FALHA | N tarefas executadas |
| infra-check | HH:MM | OK/FALHA | X/4 MCPs operacionais |
| wp-update [se seg] | HH:MM | OK/FALHA | X/16 sites actualizados |
---
## Auto-Processamento Executado
[Do /auto-expense e /ticket-triage: despesas criadas, tickets fechados]
---
## Infra Check [se Sab/Dom]
[Do /infra-check: status MCPs + auditoria despesas]
## Auto-Processamento (ultimas 24h)
[Resumo agregado: despesas criadas, tickets fechados, emails limpos]
```
---
@@ -196,28 +207,32 @@ Filename: `DD-MM-YYYY-checkup.md` (Regra #45: formato DD-MM-YYYY)
## Anti-Patterns
- NUNCA invocar /ticket-triage, /imap-triage, /auto-expense, /infra-check, /wp-update (correm no cron)
- NUNCA mostrar output antes de terminar Fase 1 e 2
- NUNCA mostrar mais de 3 prioridades (PHDA)
- NUNCA duplicar logica que ja existe nas sub-skills
- NUNCA executar sem verificar data/hora primeiro
- SEMPRE agregar resultados de TODAS as sub-skills antes de mostrar
- SEMPRE ler logs do cron antes de mostrar dashboard
- SEMPRE alertar se algum agente cron nao correu nas ultimas 8h
---
## Sub-Skills Referencia
## Referencia
| Skill | Plugin | Responsabilidade |
|-------|--------|-----------------|
| `/ticket-triage` | crm-ops | Auto-process tickets (SPAM, facturas, notificacoes) |
| `/imap-triage` | gestao | Triagem IMAP 14 contas + dedup Supabase |
| `/auto-expense` | crm-ops | Criacao automatica de despesas |
| `/daily-digest` | gestao | Timer, tickets, facturas, leads, agenda |
| `/tasks-overview` | gestao | Tarefas pendentes/overdue + workflows |
| `/infra-check` | infraestrutura | MCP Health Check + auditoria despesas |
| `/cleanup-downloads` | gestao | Limpeza pasta Transferencias |
| `/wp-update` | wordpress | Actualizacoes WordPress (segundas) |
| `/spec` + `/sprint` | project-manager | Specs e sprints activos (leitura directa) |
| Componente | Tipo | Responsabilidade |
|-----------|------|-----------------|
| `imap-triage` | Cron dev (4h) | Triagem IMAP 13 contas + dedup Supabase |
| `auto-expense` | Cron dev (4h) | Criacao automatica de despesas |
| `ticket-triage` | Cron dev (4h) | Auto-process tickets (SPAM, facturas) |
| `aiktop-tasks` | Cron dev (15min) | Executa tarefas AikTop do Desk CRM |
| `infra-check` | Cron dev (diario) | Health check gateway + MCPs |
| `wp-update` | Cron dev (seg 23h) | Actualizacoes WordPress 16 sites |
| `/daily-digest` | Skill (interactivo) | Timer, tickets, facturas, leads, agenda |
| `/tasks-overview` | Skill (interactivo) | Tarefas pendentes/overdue + workflows |
| `/cleanup-downloads` | Skill (interactivo) | Limpeza pasta Transferencias |
| `/spec` + `/sprint` | Scan local | Specs e sprints activos |
Repo agentes: `git.descomplicar.pt/ealmeida/claude_automations_dev`
---
*Skill v9.1.0 | 04-03-2026 | Descomplicar®*
*Skill v10.0.0 | 05-03-2026 | Descomplicar®*

View File

@@ -24,11 +24,6 @@ Invocar:
1. `/daily-digest` → metricas do dia
2. `/tasks-overview` → tarefas e workflows
## Passo 3b: Sprint/Spec Activos (silencioso)
Glob SPEC.md e SPRINT.md em /media/ealmeida/Dados/Dev/.
Ler apenas frontmatter. Filtrar activos. Guardar em ~/.claude-work/today-sprint-{date}.json.
## Passo 4: Rotinas especiais
- Segunda: planeamento semanal + `/wp-update`

View File

@@ -120,19 +120,6 @@ aliases: ["{{DATE}}"]
---
## Sprint / Spec Activos
| Projecto | Spec | Sprint | Progresso | Checkpoint |
|----------|------|--------|-----------|------------|
{{#ACTIVE_SPECS}}
| {{PROJECT}} | {{SPEC_STATUS}} | {{SPRINT_ID}} | {{TASKS_DONE}}/{{TASKS_TOTAL}} tasks | {{CHECKPOINT}} |
{{/ACTIVE_SPECS}}
{{^ACTIVE_SPECS}}
| — | Nenhum sprint/spec activo | — | — | — |
{{/ACTIVE_SPECS}}
---
## 📝 Notas do Dia
> [!note] Observações

View File

@@ -1,6 +1,6 @@
---
name: validate-component
description: Valida skills/agents para alinhamento com procedimentos Hub. Use quando "validar skill", "verificar agent", "audit component", "check procedure compliance", antes de deploy de nova skill/agent. Verifica se componente referencia procedimentos (não duplica), segue padrão de referenciação.
description: Valida skills e agents para alinhamento com procedimentos Hub. Verifica se componente referencia procedimentos (não duplica) e segue padrão de referenciação. Usar quando "validar skill", "verificar agent", "audit component", antes de deploy.
---
# /validate-component - Validador de Componentes

View File

@@ -1,34 +1,7 @@
---
name: worklog
description: >
Registo de trabalho + reflexão unificado v4.0. Analisa sessão, regista trabalho, identifica padrões, sugere acções.
/reflect é alias (mesmo resultado). Variantes: /reflect deep (análise profunda), /reflect week (revisão semanal).
Auto-trigger >10 tool calls. Auto-alerts degradação >15%, error rate >10%.
Use when "worklog", "reflect", "reflexão", "registar trabalho", "log", "análise", "melhoria", "insight", ao parar timer.
author: Descomplicar® Crescimento Digital
version: 4.1.0
quality_score: 95
user_invocable: true
category: productivity
tags: [log, trabalho, reflexao, auto-melhoria, produtividade, time-tracking, memory, pdca, alerts]
desk_task: 1554
desk_project: 65
desk_discussion_logs: 31
desk_discussion_reflexoes: 32
desk_discussion_accoes: 33
allowed-tools: Read, Write, Bash, mcp__desk-crm-v3, mcp__mcp-time, mcp__memory-supabase, mcp__ssh-unified
mcps: desk-crm-v3, mcp-time, memory-supabase, ssh-unified
dependencies:
skills: [sdk, metrics]
mcps: [desk-crm-v3, memory-supabase]
auto_trigger:
enabled: true
threshold_tool_calls: 10
background: true
alerts:
- performance_degradation: 15
- error_rate: 10
- kb_offline: 3
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.
context: fork
---
# /worklog v4.0 - Registo de Trabalho + Reflexão
@@ -94,6 +67,12 @@ Skill unificada: regista trabalho, analisa sessão, sugere acções, guarda mem
content: accoes_html,
staff_id: 25
})
7b. TRIGGER improvement-evaluator no dev:
mcp__ssh-unified__ssh_execute({
server: "dev",
command: "curl -s -X POST http://localhost:8095/trigger"
})
(falha silenciosa OK — o cron apanha em 30min)
8. SE insight valioso → save_memory Supabase
9. Confirmar
```
@@ -330,6 +309,10 @@ Perguntas ao analisar sessão:
## Changelog
### v4.2.0 (2026-03-12)
- Integração improvement-evaluator: passo 7b trigger automático ao dev (POST :8095/trigger)
- Acções publicadas em #33 são avaliadas imediatamente pelo agente cron no dev
### v4.0.0 (2026-02-06)
- Fusão de /worklog e /reflect numa skill unificada
- /reflect torna-se alias de /worklog
@@ -346,4 +329,4 @@ Perguntas ao analisar sessão:
---
*Skill v4.1.0 | 2026-03-04 | Descomplicar(R)*
*Skill v4.2.0 | 2026-03-12 | Descomplicar(R)*