diff --git a/gestao/skills/deep-research/SKILL.md b/gestao/skills/deep-research/SKILL.md index 1d0e598..d2a558c 100644 --- a/gestao/skills/deep-research/SKILL.md +++ b/gestao/skills/deep-research/SKILL.md @@ -2,8 +2,7 @@ name: deep-research description: > Pesquisa profunda em 3 layers: Hub Obsidian (Layer 1) + NotebookLM análise (Layer 2) + - Web/LightRAG externo (Layer 3). Para questões complexas que requerem síntese de múltiplas fontes. - Upgrade do /research com NotebookLM integrado e RAG trinity completo. + Web externo (Layer 3). Para questões complexas que requerem síntese de múltiplas fontes. Usar quando: análise competitiva profunda, pesquisa mercado, due diligence, relatório estratégico. --- @@ -34,12 +33,6 @@ obsidian search query="" format=json limit=10 # 1b. Se Obsidian não responde (offline), fallback via Grep grep -r "" /media/ealmeida/Dados/Hub/ --include="*.md" -l | head -20 - -# 1c. Verificar LightRAG para contexto interno -mcp__lightrag__lightrag_query({ - query: "", - mode: "hybrid" -}) ``` **Critério de suficiência Layer 1:** Encontrou 3+ documentos relevantes com contexto concreto. @@ -68,16 +61,10 @@ mcp__notebooklm__notebook_query({ - SE suficiente → sintetizar com Layer 1 + responder - SE requer dados externos → continuar para Layer 3 -### Layer 3 — Web + LightRAG (conhecimento externo) +### Layer 3 — Web (conhecimento externo) ```javascript -// 3a. LightRAG para KB externa (PDFs, transcripts) -mcp__lightrag__lightrag_query({ - query: "", - mode: "global" // para análise de padrões amplos -}) - -// 3b. Web search para dados actuais +// Web search para dados actuais mcp__web-search__search({ query: " site:scholar.google.com OR filetype:pdf", num_results: 10 @@ -93,7 +80,7 @@ Após recolher de 2+ layers, sintetizar: ```markdown ## Síntese — [Tópico] -**Fontes consultadas:** Layer 1 (Hub), Layer 2 (NotebookLM [Notebook X]), Layer 3 (Web/LightRAG) +**Fontes consultadas:** Layer 1 (Hub), Layer 2 (NotebookLM [Notebook X]), Layer 3 (Web) ### O que sabemos (interno) [Resumo Layer 1 — conhecimento já documentado] @@ -134,4 +121,4 @@ echo "$(date '+%Y-%m-%d') — deep-research — [TÓPICO] — [O QUE FUNCIONOU/N --- -*Skill /deep-research v1.0 | 06-04-2026 | Eixo 7B — RAG Trinity + NotebookLM integrado* +*Skill /deep-research v1.1.0 | 13-04-2026 | LightRAG removido — Layer 3 passa a Web apenas* diff --git a/gestao/skills/hub-search/SKILL.md b/gestao/skills/hub-search/SKILL.md index fde8f15..777415f 100644 --- a/gestao/skills/hub-search/SKILL.md +++ b/gestao/skills/hub-search/SKILL.md @@ -2,7 +2,7 @@ name: hub-search description: > Pesquisa no vault Hub Obsidian com relevance scoring e backlinks. - Layer 1 da arquitectura RAG trinity (CLI → NotebookLM → LightRAG). + Layer 1 da arquitectura de pesquisa (CLI → NotebookLM). Usar quando: (1) pesquisar conteúdo no Hub por termo ou conceito, (2) encontrar notas relacionadas via backlinks, (3) localizar PROCs/QR/docs antes de executar tarefas, (4) verificar se existe documentação antes de criar. @@ -88,17 +88,16 @@ Adicionar contexto ao utilizador: "Obsidian não está a correr — usando busca --- -## Integração com RAG Trinity +## Integração com outras skills ``` /hub-search "termo" → Layer 1: Obsidian CLI (este skill) -/knowledge "termo" → Layer 2: NotebookLM (58 notebooks) -mcp__lightrag__lightrag_query → Layer 3: LightRAG (conteúdo externo) +/knowledge "termo" → Layer 2: NotebookLM (65 notebooks) ``` -**Quando escalar para Layer 2 ou 3:** +**Quando escalar para Layer 2:** - Resultado CLI score < 50% ou 0 resultados → sugerir `/knowledge` -- Conteúdo externo (PDFs, transcripts) → sugerir LightRAG diretamente +- Conteúdo conceptual/externo → sugerir `/knowledge` directamente --- diff --git a/gestao/skills/knowledge/SKILL.md b/gestao/skills/knowledge/SKILL.md index 4a308b5..9e81352 100644 --- a/gestao/skills/knowledge/SKILL.md +++ b/gestao/skills/knowledge/SKILL.md @@ -1,11 +1,12 @@ --- name: knowledge -description: Router de conhecimento Família A/B. Família A (operacional interna) consultada em paralelo para qualquer pergunta sobre processos, projectos, decisões, histórico. Família B (NotebookLM externa) só para conhecimento conceptual/teórico. v2.1.1 +description: Router de conhecimento Família A/B. Família A (operacional interna) consultada em paralelo para qualquer pergunta sobre processos, projectos, decisões, histórico. Família B (NotebookLM externa) só para conhecimento conceptual/teórico. v2.2.0 --- -# /knowledge — Router Família A/B v2.1.1 +# /knowledge — Router Família A/B v2.2.0 > **Correcção arquitectural 08-04-2026:** a v2.0.0 tratava NotebookLM como fonte primária. Isso estava errado — NotebookLM não vê operações, não vê estado real, só tem ebooks e transcripts. Em `~/.claude/projects/-media-ealmeida-Dados-Hub/memory/feedback_knowledge-router-arquitectura.md` está o racional completo. +> **v2.2.0 (13-04-2026):** LightRAG removido da Família A — serviço com 0 documentos desactivado. Família A passa a 4 fontes: Supabase, CC memory, Hub, Desk CRM. ## Princípio de routing @@ -19,9 +20,8 @@ description: Router de conhecimento Família A/B. Família A (operacional intern | Fonte | Tool | Conteúdo | |-------|------|----------| -| **LightRAG** | `mcp__lightrag__query_document` (modo `hybrid`) | Knowledge graph interno. **LightRAG-HKU 1.4.13** completo — REST API + WebUI em `rag.descomplicar.pt` + PG storage (workspace `default`) + AGE graph extension. **17 tools MCP disponíveis** (ver lista abaixo). 331 docs no Postgres (135 processed + 194 pending + 2 processing + 6 failed). | | **memory-supabase** | `mcp__memory-supabase__search_memories(query, threshold=0.7, limit=10)` | Memórias persistentes cross-sessão com embeddings. Decisões, contexto, lacunas anteriores. | -| **Memória CC cross-projecto** | `Grep` recursivo em `~/.claude/projects/*/memory/*.md` | **101 ficheiros em 34 projectos (~261kB).** Harness só carrega automaticamente a memória do `cwd` — este grep é **obrigatório** para não perder contexto de outros projectos. | +| **Memória CC cross-projecto** | `Grep` recursivo em `~/.claude/projects/*/memory/*.md` | **110 ficheiros em 34 projectos.** Harness só carrega automaticamente a memória do `cwd` — este grep é **obrigatório** para não perder contexto de outros projectos. | | **Obsidian / Hub** | `Grep` em `/media/ealmeida/Dados/Hub/**/*.md` | PROCs, QRs, INDEX, frontmatter, procedimentos, histórico. | | **Desk CRM** | `mcp__desk-crm-v3__*` (tasks, projects, tickets, customers) | Fonte de verdade operacional: tarefas, projectos, clientes, tickets, horas. | @@ -30,7 +30,6 @@ description: Router de conhecimento Família A/B. Família A (operacional intern ``` 1. Classificar pergunta como operacional (default para queries internas) 2. Disparar em PARALELO (mesma mensagem, vários tool calls): - - mcp__lightrag__query_document(query, mode="hybrid") - mcp__memory-supabase__search_memories(query, threshold=0.65, limit=8) [graceful se MCP indisponível] - Grep ~/.claude/projects/*/memory/*.md - Grep Hub/**/*.md (limitar a pastas relevantes quando possível) @@ -39,29 +38,6 @@ description: Router de conhecimento Família A/B. Família A (operacional intern 4. Se Família A insuficiente → perguntar ao utilizador ou escalar para Família B ``` -### 17 tools MCP LightRAG-HKU disponíveis - -**Consulta / leitura:** -- `query_document(query, mode)` — RAG query. **Principal para router.** Modos: `naive`, `local`, `global`, `hybrid`, `mix` (default: `hybrid`). -- `get_documents()` — lista docs com status (processed/pending/processing/failed) e metadata. -- `get_pipeline_status()` — estado do pipeline de ingestão (busy, job, batchs). -- `get_graph_labels()` — entity types no knowledge graph. -- `check_lightrag_health()` — health check do server. - -**Ingestão:** -- `insert_document(text)` — insere texto único, extrai entidades + relações. -- `insert_batch(texts[])` — batch de textos. -- `insert_file(path)` — insere ficheiro local. -- `upload_document(file)` — upload binário. -- `scan_for_new_documents()` — trigger scan do `INPUT_DIR` (`/root/mcp-lightrag/inbox/`). - -**Edição de grafo:** -- `create_entities`, `edit_entities`, `delete_by_entities`, `merge_entities` -- `create_relations`, `edit_relations` -- `delete_by_doc_ids` — remove doc + entidades órfãs. - -**UI web:** `https://rag.descomplicar.pt/webui/` com autenticação (`AUTH_ACCOUNTS` no `.env` do gateway). - **Nota sobre graceful fallback:** as tools `mcp__*` podem estar indisponíveis em sessões específicas por razões de auto-discovery do harness. Se a chamada falhar com "No such tool available", continuar o paralelismo com as outras fontes e reportar a lacuna no output final. ### Formato de resposta Família A @@ -69,7 +45,6 @@ description: Router de conhecimento Família A/B. Família A (operacional intern ```markdown ## [pergunta] -**LightRAG:** [excerto] _(entidade X, score Y)_ **memory-supabase:** [excerto] _(id N, tags)_ **memory/:** [excerto] _(ficheiro)_ **Hub:** [excerto] _(caminho:linha)_ @@ -217,7 +192,7 @@ Usar estes sinais para decidir Família A vs B: |---------|-----| | `/knowledge [pergunta]` | Router automático A/B com paralelismo | | `/kb [pergunta]` | Alias curto | -| `/kb-save [conteúdo]` | Guardar na fonte adequada (LightRAG se operacional, Supabase se decisão, NotebookLM source_add se externo) | +| `/kb-save [conteúdo]` | Guardar na fonte adequada (Supabase se decisão/solução, Hub se processual, NotebookLM source_add se externo) | | `/kb-gaps` | Listar lacunas detectadas em `memory-supabase` | --- @@ -228,8 +203,7 @@ Router inverso por tipo: | Tipo | Destino | Tool | |---|---|---| -| Decisão / contexto / lacuna | memory-supabase | `mcp__memory-supabase__save_memory` com tags | -| Entidade / relação / doc interno | LightRAG | `mcp__lightrag__insert_document(text)` ou `insert_batch(texts)` | +| Decisão / contexto / solução técnica | memory-supabase | `mcp__memory-supabase__save_memory` com tags | | Procedimento operacional | Hub/06-Operacoes/Procedimentos/ | `Write` PROC-*.md | | Conhecimento externo | NotebookLM notebook adequado | `mcp__notebooklm-mcp__source_add` | @@ -247,7 +221,7 @@ mcp__memory-supabase__save_memory({ }); ``` -Depois sugerir acção: criar PROC, adicionar ao LightRAG, adicionar fonte ao notebook adequado. +Depois sugerir acção: criar PROC, guardar no Supabase, adicionar fonte ao notebook NotebookLM adequado. --- @@ -259,7 +233,7 @@ Depois sugerir acção: criar PROC, adicionar ao LightRAG, adicionar fonte ao no 4. **Nunca responder sem citar fonte.** Se 0 hits, dizer explicitamente. 5. **Max 3 notebooks** por query Família B. 6. **PT-PT sempre** na consolidação. -7. **Se a pergunta é sobre estado presente** (tarefas abertas, tickets, horas, facturas), ir **directo ao Desk CRM**, não a LightRAG/NotebookLM. +7. **Se a pergunta é sobre estado presente** (tarefas abertas, tickets, horas, facturas), ir **directo ao Desk CRM**, não a NotebookLM. --- @@ -279,7 +253,6 @@ Depois sugerir acção: criar PROC, adicionar ao LightRAG, adicionar fonte ao no - `references/routing-guide.md` — mapeamento detalhado de routing (pendente v2.1 — actualizar) - `~/.claude/projects/-media-ealmeida-Dados-Hub/memory/feedback_knowledge-router-arquitectura.md` — decisão arquitectural - `~/.claude/projects/-media-ealmeida-Dados-Hub/memory/notebooklm-inventory.md` — inventário completo 65 notebooks -- `04-Stack/CHANGELOG.md` sessão 3 de 08-04-2026 — recuperação LightRAG e clarificação tools reais --- @@ -288,10 +261,11 @@ Depois sugerir acção: criar PROC, adicionar ao LightRAG, adicionar fonte ao no ```jsonl {"date":"2026-04-08","issue":"v2.0.0 tratava NotebookLM como fonte primaria para tudo","fix":"v2.1.0 router Familia A/B — NotebookLM so para externo","source":"user"} {"date":"2026-04-08","issue":"v2.1.0 assumia FastMCP file-based (11 tools lightrag_*) apos migracao temporaria da outra sessao","fix":"v2.1.1 restaurado para LightRAG-HKU completo com 17 tools originais (query_document, insert_document, get_pipeline_status, etc), UI em rag.descomplicar.pt, PG storage 331 docs","source":"user"} +{"date":"2026-04-13","issue":"LightRAG com 0 documentos — servico sem utilidade a consumir recursos","fix":"v2.2.0 removido LightRAG da Familia A — 4 fontes restantes: Supabase, CC memory, Hub, Desk CRM","source":"user"} {"date":"2026-04-08","issue":"memoria Claude Code fragmentada em ~/.claude/projects/*/memory/ (101 ficheiros, 34 projectos)","fix":"grep cross-projecto obrigatorio no router Familia A","source":"user"} {"date":"2026-04-08","issue":"mcp__memory-supabase__search_memories pode estar indisponivel no harness","fix":"graceful fallback no router — continuar paralelismo com outras fontes e reportar lacuna","source":"auto"} ``` --- -**v2.1.1** | 08-04-2026 | LightRAG-HKU restaurado com 17 tools reais, UI rag.descomplicar.pt, PG storage 331 docs, graceful fallback para MCPs indisponíveis +**v2.2.0** | 13-04-2026 | LightRAG removido (0 docs, serviço desactivado). Família A: 4 fontes — Supabase, CC memory, Hub, Desk CRM diff --git a/gestao/skills/research-pipeline/SKILL.md b/gestao/skills/research-pipeline/SKILL.md index ff08670..e48d415 100644 --- a/gestao/skills/research-pipeline/SKILL.md +++ b/gestao/skills/research-pipeline/SKILL.md @@ -1,21 +1,19 @@ --- name: research-pipeline description: > - Pipeline de pesquisa RAG trinity: Layer 1 (Obsidian CLI Hub), Layer 2 (NotebookLM), - Layer 3 (LightRAG externo). Orquestra as 3 camadas em sequência para pesquisas - profundas. Usar quando /hub-search ou /knowledge isolados não são suficientes, - quando o tema cruza conteúdo interno+externo, ou para research antes de executar - tarefas complexas (Eixo 7B, Stack Q2 2026). + Pipeline de pesquisa em 2 camadas: Layer 1 (Obsidian CLI Hub), Layer 2 (NotebookLM). + Orquestra as camadas em sequência para pesquisas profundas. Usar quando /hub-search + ou /knowledge isolados não são suficientes, quando o tema cruza conteúdo + interno+externo, ou para research antes de executar tarefas complexas. --- -# /research-pipeline — Pipeline Trinity de Pesquisa +# /research-pipeline — Pipeline de Pesquisa em 2 Camadas -Orquestra as 3 camadas RAG em sequência para obter contexto completo antes de executar tarefas. +Orquestra as camadas RAG em sequência para obter contexto completo antes de executar tarefas. ``` Layer 1: Obsidian CLI → conteúdo Hub (notas, PROCs, docs internas) -Layer 2: NotebookLM → análise profunda (58 notebooks temáticos) -Layer 3: LightRAG → conteúdo externo (1612 docs, PDFs, transcripts) +Layer 2: NotebookLM → análise profunda (65 notebooks temáticos) ``` --- @@ -24,9 +22,8 @@ Layer 3: LightRAG → conteúdo externo (1612 docs, PDFs, transcripts) ``` /research-pipeline "tema ou pergunta" -/research-pipeline "LightRAG configuração" --layers 1,2 /research-pipeline "PROC-MCP" --quick (só Layer 1) -/research-pipeline "n8n webhook setup" --deep (todas as layers) +/research-pipeline "n8n webhook setup" --deep (L1 + L2) ``` --- @@ -63,25 +60,16 @@ mcp__notebooklm__notebook_query({ notebook_id, query }) Registar: `L2_results`, `L2_confidence`. -### Passo 4 — Avaliar se Layer 3 é necessária +### Passo 4 — Avaliar se Layer 2 é suficiente ``` -SE query menciona PDFs, vídeos, transcripts, conteúdo externo: - → Avançar para Layer 3 SE L2_confidence >= 70: → PARAR — retornar L1+L2 combinados +SE L2_confidence < 70: + → Reportar lacuna e sugerir pesquisa Web manual ``` -### Passo 5 — Layer 3: LightRAG (conteúdo externo) - -```javascript -mcp__lightrag__lightrag_query({ - query: "TERMO", - mode: "hybrid" // combina vector + graph -}) -``` - -### Passo 6 — Síntese e output +### Passo 5 — Síntese e output ```markdown ## Research: "[termo]" @@ -92,16 +80,12 @@ mcp__lightrag__lightrag_query({ ### NotebookLM (Layer 2) — [notebook usado] [Insights e contexto analítico] -### Externo (Layer 3) — [N docs] -[Conteúdo complementar de fontes externas] - ### Síntese -[Resposta integrada das 3 camadas] +[Resposta integrada das 2 camadas] ### Qualidade - L1: [N resultados] - L2: [confidence%] via [notebook] -- L3: [N docs] - Tempo: ~[X]s ``` @@ -113,7 +97,7 @@ mcp__lightrag__lightrag_query({ |------|---------------|-----| | `--quick` | L1 apenas | PROCs, paths, comandos | | (default) | L1 + L2 | Maioria das queries | -| `--deep` | L1 + L2 + L3 | Investigação completa | +| `--deep` | L1 + L2 (exaustivo) | Investigação completa | --- @@ -132,13 +116,11 @@ Para /deep-research → /research-pipeline --deep (base de contexto) 1. **Layer 1 sempre primeiro** — mais rápido e frequentemente suficiente 2. **Max 2 notebooks NotebookLM** por query (performance) -3. **L3 só para conteúdo externo** — não duplicar com L1 -4. **Timeout L3:** 30s — se exceder, retornar L1+L2 -5. **Citar fonte** de cada resultado no output +3. **Citar fonte** de cada resultado no output --- -*Skill v1.0.0 | 06-04-2026 | Descomplicar®* +*Skill v1.1.0 | 13-04-2026 | Descomplicar® — LightRAG removido (0 docs, serviço desactivado)* ---