---
name: discover
description: Pesquisa e discovery de viabilidade, abordagens e estado da arte. Pesquisa NotebookLM, web, codebase e Context7.
---

# /discover v1.2 - Pesquisa e Discovery

> **NOTA 07-04-2026:** referências a "Dify KB" no corpo desta skill são obsoletas (Dify removido em 06-03-2026). Substituir por NotebookLM ou /knowledge nas próximas iterações. Workflow geral mantém-se válido.

Investiga antes de opinar. Recolhe factos, abordagens e estado da arte para alimentar o brainstorm.
Usa NotebookLM (Gemini 2.5 com RAG sobre conhecimento curado) como fonte primaria de pesquisa interna.

**Flow:** ideia -> **discover** -> brainstorm -> spec -> sprint -> codigo

---

## Comandos

| Comando | Funcao |
|---------|--------|
| `/discover` | Pesquisa interactiva sobre tema |
| `/discover <tema>` | Pesquisa focada |
| `/discover tech <tema>` | Foco em abordagens tecnicas e libraries |
| `/discover market <tema>` | Foco em mercado, concorrentes, tendencias |
| `/discover internal <tema>` | Foco no que ja temos (codebase, KB, projectos) |
| `/discover save` | Guardar findings para brainstorm |

---

## Protocolo Principal

```
1. mcp__mcp-time__current_time
2. RECEBER tema:
   - Se argumento dado: usar como query base
   - Se nao: "O que queres investigar?"

3. CLARIFICAR objectivo:
   "Queres saber:"
   a) Se e viavel tecnicamente?
   b) Que abordagens/ferramentas existem?
   c) O que a concorrencia faz?
   d) O que ja temos que pode ajudar?
   e) Tudo acima?

4. FASE 1 - Pesquisa Interna (o que ja sabemos)

   a. NotebookLM - Conhecimento curado profundo (Gemini 2.5 + RAG):
      PRIMEIRO, encontrar notebooks relevantes:
      mcp__notebooklm__search_notebooks({
        query: "[tema palavras-chave]"
      })

      DEPOIS, perguntar aos notebooks encontrados:
      mcp__notebooklm__ask_question({
        question: "[pergunta especifica sobre o tema]",
        notebook_id: "[id do notebook relevante]"
      })

      Notebooks disponiveis e quando usar:
      | Notebook | Temas |
      |----------|-------|
      | perfex-crm-knowledge-base | Perfex CRM, modulos, extensoes |
      | claude-code-advanced-knowledge | Claude Code, MCP, skills, plugins |
      | stack-tecnol-gica-ia-descompli | Stack IA/SaaS, n8n, CrewAI, SIFIDE |
      | centos-web-panel-cwp-complete | CWP, servidores, hosting, seguranca |
      | obsidian-knowledge-system | Obsidian, vault, PKM, bases |
      | whatsms-zender-platform | WhatSMS, Zender, WhatsApp |
      | e-commerce-portugal-estrat-gia | E-commerce PT, PMEs, mercado |

      REGRA: Consultar 1-3 notebooks relevantes. Se tema nao encaixa em nenhum, saltar.

   b. Dify KB - Pesquisar em datasets relevantes:
      mcp__dify-kb__dify_kb_retrieve_segments({
        dataset: "[relevante]",
        query: "[tema]"
      })
      Repetir para 2-4 datasets que possam ter info.

   c. Codebase local - Procurar implementacoes existentes:
      Grep/Glob por termos relacionados em:
      - /media/ealmeida/Dados/Dev/
      - ~/.claude/plugins/

   d. Memory Supabase - Experiencias anteriores:
      mcp__memory-supabase__search_memories({
        query: "[tema]"
      })

   e. Projectos Desk - Trabalho anterior relacionado:
      Se tema se relaciona com projecto existente,
      verificar tasks e discussoes relevantes.

5. FASE 2 - Pesquisa Externa (o que o mundo sabe)

   a. Web Search - Estado da arte:
      WebSearch("[tema] best practices 2026")
      WebSearch("[tema] alternatives comparison")

   b. Context7 - Documentacao de libraries:
      SE tema e tecnico:
      mcp__plugin_context7_context7__resolve-library-id({
        libraryName: "[library relevante]"
      })
      Depois: query-docs para detalhes

   c. WebFetch - Artigos especificos:
      Se WebSearch encontra artigos relevantes,
      buscar detalhes com WebFetch.

6. FASE 3 - Compilar Findings

   ---
   ## Discovery: [tema]
   _Data: YYYY-MM-DD_

   ### O Que Ja Temos
   - [Codigo/skills/MCPs existentes relevantes]
   - [Experiencias anteriores (memoria)]
   - [Knowledge base interna]

   ### Estado da Arte
   - [O que o mercado/industria faz]
   - [Ferramentas e abordagens populares]
   - [Tendencias 2026]

   ### Abordagens Possiveis

   | Abordagem | Descricao | Complexidade | Exemplo |
   |-----------|-----------|-------------|---------|
   | A | [desc] | Baixa/Media/Alta | [ref] |
   | B | [desc] | Baixa/Media/Alta | [ref] |

   ### Documentacao Relevante
   - [Links e refs encontrados]

   ### Lacunas
   - [O que NAO encontrei e precisamos investigar mais]

   ### Recomendacao Inicial
   [Baseada nos factos recolhidos, nao em opiniao]
   ---

7. PERGUNTAR:
   "Queres aprofundar algum ponto? Ou avancar para /brainstorm?"
```

---

## Variantes

### `/discover tech <tema>`

Foco tecnico - ignora mercado, concentra-se em:
```
1. Libraries e frameworks (Context7)
2. Padroes de implementacao (WebSearch)
3. Codigo existente no projecto (Grep/Glob)
4. Benchmarks e comparacoes
5. Documentacao oficial
```

### `/discover market <tema>`

Foco mercado - ignora tecnico, concentra-se em:
```
1. Concorrentes e alternativas (WebSearch)
2. Pricing e modelos de negocio
3. Tendencias e previsoes
4. Datasets de Marketing e Estrategia (Dify KB)
5. Opiniao de mercado
```

### `/discover internal <tema>`

So fontes internas - nao pesquisa web:
```
1. NotebookLM (conhecimento curado - search_notebooks + ask_question)
2. Dify KB (todos os datasets)
3. Memory Supabase (experiencias)
4. Codebase (implementacoes)
5. Projectos Desk (historico)
6. Hub Obsidian (documentacao)
```

---

## `/discover save`

```
1. Compilar todos os findings da sessao
2. Guardar em memory-supabase:
   save_memory({
     content: "[findings compilados]",
     tags: ["discover", tema, "research"],
     metadata: {
       type: "discovery",
       sources_count: N,
       approaches_found: M,
       outcome: "brainstorm_ready|needs_more|dead_end"
     }
   })
3. "Discovery guardado. Usar /brainstorm para debater as opcoes."
```

---

## Fontes de Pesquisa (por prioridade)

| # | Fonte | Tool | Quando |
|---|-------|------|--------|
| 1 | **NotebookLM** | mcp__notebooklm | **Sempre** (conhecimento curado + Gemini 2.5 RAG) |
| 2 | Dify KB | mcp__dify-kb | Sempre (boas praticas e datasets tematicos) |
| 3 | Memory Supabase | mcp__memory-supabase | Sempre (experiencia passada) |
| 4 | Codebase local | Grep, Glob | Quando tema e tecnico |
| 5 | Web Search | WebSearch | Quando precisa estado da arte |
| 6 | Context7 | mcp__plugin_context7_context7 | Quando envolve libraries especificas |
| 7 | WebFetch | WebFetch | Para artigos especificos encontrados |
| 8 | Desk CRM | mcp__desk-crm-v3 | Quando tema se relaciona com projecto |

**Regra:** Pesquisa interna PRIMEIRO, externa DEPOIS. O que ja sabemos e mais fiavel.
**NotebookLM vs Dify KB:** NotebookLM tem conhecimento curado com contexto profundo (cursos, manuais, docs extensos). Dify KB tem segmentos curtos e boas praticas gerais. Usar ambos - complementam-se.

---

## Integracao

| Skill | Como integra |
|-------|-------------|
| `/brainstorm` | Findings alimentam perspectivas e argumentos |
| `/spec create` | Decisoes tecnicas informadas pela pesquisa |
| `/knowledge` | Pode ser invocado para pesquisa KB mais profunda |
| `/research` (marketing) | Complementar para analise competitiva formal |
| NotebookLM | Conhecimento curado via search_notebooks + ask_question |

---

## Regras

1. **FACTOS antes de opinioes** - reportar o que encontrou, nao o que acha
2. **SEMPRE** pesquisar internamente antes de ir a web
3. **NUNCA** inventar fontes ou resultados
4. Se nao encontrar nada: dizer "nao encontrei info sobre X"
5. **Lacunas sao valiosas** - saber o que NAO sabemos e importante
6. Manter fontes rastreavies - incluir links quando disponivel
7. Para PHDA: resumos curtos primeiro, detalhes a pedido
8. **NUNCA** fazer pesquisa infinita - max 3-4 queries por fonte, depois compilar

---

## Healing Log

Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.

```jsonl
{"date":"","issue":"","fix":"","source":"user|auto"}
```

*Adicionar nova linha após cada erro corrigido.*
