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:
@@ -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`
|
||||
|
||||
309
gestao/skills/knowledge/references/routing-guide.md
Normal file
309
gestao/skills/knowledge/references/routing-guide.md
Normal 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`
|
||||
Reference in New Issue
Block a user