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,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`