CommunityEscrita e Ediçãogithub.com

rainearccher/quiver

Plugins do Claude Code para pesquisa profunda de GTM, análise competitiva e muito mais — por Raine Soriano

O que é quiver?

Este skill capacita agentes de IA a realizar pesquisas profundas e estruturadas usando a API Perplexity Agent, com foco em Go-to-Market (GTM) e análise competitiva. Ele implementa um fluxo de trabalho obrigatório que começa com uma coleta de contexto em cinco dimensões (objetivo, produto, restrições, fontes e limites de escopo), seguida pela elaboração e aprovação de um plano de pesquisa antes de qualquer chamada à API, evitando desperdício de recursos. O skill impõe limites de orçamento de saída (cerca de 16k tokens por chamada) e, para planos maiores, sugere a divisão em múltiplas chamadas sequenciais, garantindo que relatórios com muitas seções, tabelas ou entregáveis não sejam truncados silenciosamente. Ele suporta o uso de fontes primárias, citações inline e formatos de relatório escaneáveis (como tabelas de comparação e resumos no estilo Pirâmide), sendo ideal para pesquisas que exigem informações recentes, síntese de múltiplas fontes e relatórios com citações claras.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add rainearcher/quiver

Installed? Explore more Escrita e Edição skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Pesquisa Profunda com Perplexity

Chame a API do Perplexity Agent (POST /v1/agent) para realizar pesquisas de navegação em várias etapas com citações. Antes de chamar a API, este skill exige um loop estruturado de coleta + aprovação do plano, para que o agente use as fontes certas, tenha o contexto adequado e retorne um relatório em formato escaneável.

Metodologia

Este skill é uma aplicação programática do playbook de pesquisa profunda do Growth Unhinged para GTM: https://www.growthunhinged.com/p/deep-research-for-gtm. As cinco recomendações do artigo mapeiam 1:1 para as etapas abaixo:

Recomendação do artigoImplementado por
Fornecer contexto abrangente (objetivo, GTM/produto, restrições, fontes preferidas)Etapa 1 — coleta de cinco dimensões
Solicitar um plano de pesquisa primeiro, aprovar antes de executarEtapa 2 — portão de aprovação do plano (sem gasto de API sem aprovação)
Apontar para fontes de alta qualidade; preferir primárias a secundárias; citar tudoBloco de formato — Tabela de fontes, prioridade de fontes primárias, citações inline obrigatórias
Especificar formato do relatório; resumos e tabelas em vez de prosa (Princípio da Pirâmide)Bloco de formato — TL;DR primeiro, tabelas de comparação, conclusões antes do contexto
Estruturar o prompt (<objetivo>, <contexto>, <fontes>, <instruções>)Layout do bloco --instructions

A verificação do orçamento de saída por chamada (Etapa 2.5) e o sequenciamento de múltiplas chamadas (Etapa 2.6) são adições em relação ao artigo, para evitar o modo de falha de truncamento silencioso que grandes planos de GTM (bibliotecas de hooks, calendários de 30 dias, matrizes de fornecedores) sofrem rotineiramente.

Pré-requisitos

Execute a verificação prévia uma vez no primeiro uso para confirmar que tudo está configurado:

bash ./scripts/check-setup.sh

Ele imprime ✓/✗ para cada requisito e uma correção copiável para o que estiver faltando. Sai com 0 quando estiver pronto. Se alguma verificação falhar, mostre a saída ao usuário e pare — não tente executar o script da API até que a verificação prévia seja aprovada.

Quando Usar

  • O usuário pede explicitamente por "pesquisa profunda", "pesquisa avançada" ou "pesquisa perplexity"
  • O usuário precisa de um resumo com fontes (empresa, pessoa, evento, tecnologia, regulamentação)
  • Perguntas que exigem navegação em várias etapas e síntese de muitas fontes
  • Perguntas que exigem informações muito recentes com citações inline

NÃO usar para:

  • Consultas factuais simples ("qual é o preço atual de X") — use WebSearch / WebFetch (mais barato, mais rápido)
  • Comparações binárias simples ("a ferramenta A ou B é melhor") — uma única rodada de WebSearch geralmente resolve
  • Conteúdo autenticado ou atrás de paywall (Perplexity não pode fazer login)
  • Edições rápidas de código ou perguntas respondíveis a partir do código-fonte — inline é mais rápido
  • Verificar um fato específico sobre o qual você já tem contexto — WebFetch é preciso o suficiente

Fluxo de Trabalho (OBRIGATÓRIO — não pule etapas)

Pesquisas profundas custam dinheiro real e levam de 2 a 5 minutos. Uma execução ruim desperdiça ambos. Sempre siga este loop:

Etapa 0 — Verificar configuração (apenas na primeira execução)

Se esta for a primeira invocação no projeto, execute bash ./scripts/check-setup.sh e só continue se ele sair com 0. Se relatar uma ferramenta faltando ou chave não definida, mostre a correção e pare. Pule esta etapa em execuções subsequentes na mesma sessão.

Etapa 1 — Auditar a consulta inicial, depois perguntar APENAS o que estiver faltando

Primeiro, leia a consulta inicial do usuário e determine quais das cinco dimensões de contexto abaixo já foram respondidas, quais foram respondidas parcialmente e quais estão totalmente ausentes. Não pergunte novamente coisas que o usuário já informou.

As cinco dimensões:

  1. Objetivo e motivação — o que estão tentando alcançar, como o resultado será usado (decisão, documento, pitch, estratégia), trabalho prévio já realizado.
  2. Contexto do produto/situação — a empresa/produto/função, como opera, detalhes relevantes de configuração (tamanho, estágio, GTM, público).
  3. Restrições — orçamento, prazos, equipe, conformidade legal, opções descartadas, itens não negociáveis.
  4. Fontes preferidas — especialistas/criadores nomeados, tipos de publicação (acadêmica, dados primários/governamentais, fóruns, analistas, arquivos da SEC, GitHub, etc.), domínios permitidos vs. bloqueados, janela de atualidade.
  5. Limites de escopo — o que está explicitamente fora do escopo, suposições que o agente NÃO deve fazer.

Decida se deve perguntar:

  • Se todas as cinco dimensões estiverem suficientemente respondidas → pule a clarificação e vá direto para a Etapa 2 (elaborar o plano). Não faça perguntas apenas para confirmar o que você já sabe.
  • Se uma ou mais dimensões estiverem faltando ou ambíguas → use AskUserQuestion para perguntar apenas sobre as lacunas, em um único bloco consolidado. Liste explicitamente o que você já entendeu (para que o usuário possa corrigir) e o que ainda precisa.
  • Se o usuário disser "apenas vá" / "use seu julgamento" → pule para a Etapa 2 e liste suas suposições para cada dimensão faltante no plano, para que o usuário ainda possa corrigi-las lá.

Tenda a fazer menos perguntas. Uma consulta bem especificada de um parágrafo muitas vezes não precisa de clarificação — vá direto ao plano.

Etapa 2 — Elaborar um plano de pesquisa e obter aprovação

Antes de chamar a API, elabore um plano de pesquisa em sua resposta e peça ao usuário para aprová-lo ou editá-lo. O plano deve incluir:

  • Perguntas de pesquisa — as subperguntas específicas que o agente responderá
  • Metodologia — como avaliará/comparará opções, qual framework usará
  • Estratégia de fontes — quais tipos de fontes priorizará, quais evitará, quaisquer filtros de domínio ou janela de atualidade
  • Estrutura do relatório — títulos de seções que o relatório final usará
  • Entregáveis — além de prosa, haverá tabelas, matrizes de comparação, modelos, listas de verificação, trechos de código?
  • Suposições abertas — qualquer coisa que você esteja supondo e que o usuário deva corrigir

Aguarde aprovação explícita ("parece bom", "vá", "execute", edições no plano, etc.) antes de prosseguir. Se o usuário editar o plano, re-confirme antes de executar.

Etapa 2.5 — Verificação do orçamento de saída (OBRIGATÓRIA — evita truncamento)

O preset advanced-deep-research tem um teto prático de saída em torno de ~16k tokens / ~10k palavras por resposta. Planos que excedem isso são truncados silenciosamente — seções listadas no sumário simplesmente não aparecem, e grandes entregáveis (bibliotecas de hooks, calendários de N dias, catálogos de antipadrões) são cortados no meio de uma tabela. Você deve fazer um orçamento contra esse teto ANTES de executar.

Orçamento de saída por chamada (limites rígidos):

ItemMáx. por chamada
Seções principais (H2)8
Tabelas grandes (6+ linhas, 4+ colunas)4
Bibliotecas/catálogos detalhados (hooks, templates, exemplos, ideias)10 itens no total em todas as bibliotecas
Entregáveis de formato longo (calendários de N dias, scripts cena por cena, playbooks completos)1
Prosa total (excluindo tabelas)~4.000 palavras

Sinais de alerta de que seu plano é grande demais para uma chamada:

  • Sumário tem >8 seções
  • Plano promete "25+ hooks" / "calendário de 30 dias" / "20 templates" junto com múltiplas matrizes
  • Plano pede vários grandes entregáveis na mesma chamada (ex.: biblioteca de hooks E calendário de conteúdo E template cena por cena E catálogo de antipadrões)
  • Plano cobre >1 segmento de público distinto ou >1 objetivo distinto em profundidade

Se o plano se encaixa no orçamento → prossiga para a Etapa 3.

Se o plano excede o orçamento → divida-o em um plano sequencial de múltiplas chamadas (veja "Sequenciamento de múltiplas chamadas" abaixo) e apresente-o ao usuário para aprovação.

Etapa 2.6 — Sequenciamento de múltiplas chamadas (para escopos grandes OU pesquisa dependente)

Existem duas razões separadas para dividir em múltiplas chamadas sequenciais, e ambas usam a mesma mecânica:

(A) Divisão por orçamento — o plano excede o teto de saída por chamada da Etapa 2.5. Divida em chamadas focadas, cada uma com UM entregável principal.

(B) Divisão por dependência — o escopo da chamada N depende das descobertas da chamada N-1. Exemplo: um levantamento de mercado de fornecedores (chamada 1) informa quais 3 fornecedores receberão análises aprofundadas (chamadas 2–4). Isso não é sobre tamanho — é sobre permitir que chamadas posteriores reajam ao que chamadas anteriores descobrirem. Não tente pré-planejar tudo antecipadamente quando você realmente não sabe a resposta até executar a chamada 1.

Regras para qualquer divisão em múltiplas chamadas:

  1. Execute chamadas sequencialmente, não em paralelo — cada chamada deve poder citar ou construir sobre resultados anteriores.
  2. Cada chamada deve ter UM foco de entregável principal.
  3. Cada chamada deve permanecer dentro do orçamento por chamada da Etapa 2.5.
  4. Cada chamada deve ser individualmente valiosa — não crie chamadas que só façam sentido em combinação.
  5. Em cada chamada subsequente, no --instructions, cole as principais descobertas das chamadas anteriores (não o relatório completo — apenas as conclusões importantes, ~200–400 palavras) sob um cabeçalho PRIOR FINDINGS (não pesquisar novamente) para que o agente não perca etapas recobrindo terreno.
  6. Após cada chamada ser concluída, Read a saída, verifique se nada foi truncado (confira se cada seção no sumário da chamada está presente e se nenhuma tabela termina no meio de uma linha) e resuma brevemente ao usuário antes de iniciar a próxima chamada.

Apresente a divisão como:

Este plano precisa de N chamadas sequenciais porque <motivo de orçamento/dependência>:
  Chamada 1 — <foco>  (~$X, ~3 min)
  Chamada 2 — <foco>  (~$X, ~3 min)
  ...
Custo total estimado: $X. Aprove a divisão, ou diga o que cortar.

Aguarde aprovação explícita da divisão antes de executar qualquer chamada. Se o usuário editar a divisão, re-confirme.

Etapa 3 — Executar a pesquisa

Uma vez aprovado, invoque o script. Passe o plano + contexto + requisitos de formato aprovados via --instructions. Use as flags --domains e --recency quando o usuário as especificar.

Sempre passe --topic <slug> para que a saída caia em um subdiretório de tópico em ./docs/research/. Antes de invocar, inspecione os subdiretórios existentes (ls docs/research/) e reutilize um slug existente que corresponda à área de pesquisa ou crie um novo slug curto em kebab-case. Se estiver criando um novo tópico, escolha algo durável — um slug que você ainda usaria para os próximos 3–5 relatórios na mesma área, não uma frase única da pergunta atual. Exemplos de slugs bons: comparacao-fornecedores, analise-competitiva, atualizacao-regulatoria, <area-produto>. Exemplos de slugs ruins: doppler-vs-vault-2026 (muito específico e vinculado à data).

O script está em ./scripts/research.sh (relativo a este SKILL.md). Quando invocado por um agente, use esse caminho relativo ao skill — ele resolve corretamente tanto em instalações npx skills quanto em instalações /plugin do Claude Code.

bash ./scripts/research.sh \
  --preset advanced-deep-research \
  --output ./docs/research \
  --topic <slug-do-topico> \
  --instructions "$(cat <<'EOF'
<cole o plano aprovado + contexto + requisitos de formato aqui>
EOF
)" \
  "<a pergunta de pesquisa, refinada a partir do plano aprovado>"

Etapa 4 — Ler o relatório e resumir

O script imprime o caminho do markdown. Sempre Read esse arquivo antes de relatar de volta.

Verificação de truncamento (obrigatória):

  1. Confirme se cada seção listada no sumário do relatório está realmente presente no corpo.
  2. Confirme se nenhuma tabela termina no meio de uma linha e se nenhuma lista detalhada termina no meio de um item.
  3. Confirme se as seções "Fontes", "Onde as fontes discordam" e "Confiança e lacunas" no final estão presentes.

Fluxo de recuperação de truncamento. Se algum desses estiver faltando → a saída foi truncada. Faça o seguinte:

  1. Identifique exatamente o que está faltando. Compare o sumário do relatório com seu corpo. Liste as seções faltantes, tabelas incompletas (anote a última linha completa) e itens de lista cortados (anote o último item completo).
  2. Quantifique o trabalho restante. "X seções, Y itens, Z linhas ainda necessárias."
  3. Proponha uma chamada de acompanhamento focada com um escopo que se encaixe no orçamento por chamada. NÃO tente o mesmo escopo novamente — ele truncará de novo.
  4. Inclua PRIOR FINDINGS no --instructions da chamada de acompanhamento — cole um resumo de ~200–400 palavras das seções concluídas para que o agente não as pesquise novamente. Diga explicitamente "não recubra X, Y, Z; foque apenas em A, B, C."
  5. Informe o usuário sobre o que foi truncado e mostre o plano de acompanhamento antes de executar.

Mostre: principais insights, o custo em USD do relatório, quaisquer discordâncias notáveis entre fontes e uma flag de truncamento, se aplicável.

Padrões Avançados

Esses padrões melhoram consistentemente a qualidade da saída. Use-os na Etapa 2 ao elaborar o plano.

Cite especialistas ou frameworks específicos em sua consulta

Nomear 3–6 especialistas, autores, criadores ou frameworks nomeados relevantes na consulta dá ao agente fontes concretas para pesquisar e comparar. O relatório se torna uma comparação de pontos de vista conhecidos, em vez de uma síntese anônima.

Fragmentos de consulta de exemplo:

  • "Compare os frameworks usados por , e para..."
  • "De acordo com a metodologia do , avalie..."
  • "Reconcilie as abordagens recomendadas por (em <livro/blog>) vs ..."

Funciona melhor quando os especialistas publicam regularmente (artigos, vídeos, posts, palestras) — o agente pode buscar o material primário deles.

Especifique entregáveis quantificados

Em vez de pedir "um bom número de exemplos", declare a contagem e a forma exatas. Isso trava o escopo, evita desvios e revela quando você está acima do orçamento (cruze com a Etapa 2.5).

Boas especificações de entregáveis:

  • "Uma matriz de comparação: 8 linhas (uma por fornecedor), 5 colunas (preço, latência, autenticação, SDKs, conformidade)"
  • "Uma biblioteca de exatamente 10 templates, agrupados em 3 categorias"
  • "Uma sequência de 14 dias com um item por dia"

Evite: "uma biblioteca abrangente", "vários exemplos", "muitas opções" — estes são convites para truncar ou oscilar.

Pré-carregue contexto em --instructions, não na consulta

A consulta deve permanecer uma frase curta de 1–2 sentenças. Qualquer coisa sobre a situação do usuário, restrições, decisões anteriores ou preferências de fonte vai em --instructions. Isso mantém as consultas de busca do agente focadas enquanto a síntese permanece ancorada em seu contexto.

Instruções de formato obrigatórias (incluir sempre em --instructions)

Cada execução deve incorporar estes requisitos de formato na string --instructions para que o relatório seja escaneável e confiável:

RESTRIÇÃO DE ESCOPO E TAMANHO (leia primeiro — isso determina a estrutura do relatório):

- Máximo de 8 seções H2 (incluindo esta).
- Máximo de 4 tabelas grandes (6+ linhas, 4+ colunas).
- Máximo de 10 itens no total em quaisquer bibliotecas/catálogos combinados.
- Máximo de 1 entregável de formato longo.
- Prosa total (excluindo tabelas): ~4.000 palavras.
- Se qualquer seção, tabela ou biblioteca exceder esses limites, pare e informe ao usuário — não entregue saída truncada.

ESTRUTURA DO RELATÓRIO:

1. **TL;DR** (3–5 marcadores ou uma tabela de 1 linha: o que, por que, resultados principais, principais fontes, nível de confiança)
2. **Principais descobertas** (tabela de comparação ou lista priorizada com destaques)
3. **Contexto / background** (breve — apenas o necessário para entender as descobertas)
4. **Análise aprofundada** (subseções conforme necessário, cada uma com uma conclusão no início)
5. **Onde as fontes discordam** (sem esconder debates — mostre ambos os lados com citações)
6. **Confiança e lacunas** (o que é certo, o que é incerto, o que ainda precisa de pesquisa)
7. **Entregáveis** (tabelas, modelos, bibliotecas, listas de verificação que foram solicitados)
8. **Fontes** (lista com links numerados — prioridade: dados primários > relatórios > blogs > fóruns; citações inline usam [n])

DIRETRIZES DE CONTEÚDO:

- Cada afirmação importante deve ser citada com uma fonte primária. Se nenhuma fonte primária existir, cite uma fonte secundária forte e marque como "secundária".
- Sempre mostre a data da fonte entre parênteses ao lado de cada citação, ex.: [1] (2025-02-15).
- Ao comparar opções, use uma tabela, não prosa.
- Evite linguagem excessivamente promocional ou negativa — atenha-se a afirmações apoiadas por citações.
- Para qualquer coisa que você não tenha certeza, diga isso explicitamente na seção "Confiança e lacunas" — não invente.
- O relatório deve ser compreensível para alguém que lê apenas o TL;DR e as tabelas.

Detalhes de Configuração

Opções do Script

FlagObrigatórioDescrição
--presetSimModelo de pesquisa (advanced-deep-research para pesquisa profunda, research para pesquisa regular)
--outputSimDiretório de saída para resultados de pesquisa
--topicSimNome do tópico para organização do relatório (kebab-case, slug durável)
--instructionsNãoInstruções e contexto de pesquisa detalhados
--domainsNãoFiltros de domínio (separados por vírgula)
--recencyNãoJanela de atualidade (dias; padrão: sem restrição)
--modelNãoModelo (padrão: sonar-pro); sonar-deep-research também disponível

Variáveis de Ambiente

VariávelObrigatórioDescrição
PERPLEXITY_API_KEYSimChave de API do Perplexity

Estrutura de Saída

Para cada chamada, um arquivo markdown é criado em:

./docs/research/<topic-slug>/<carimbo-data-hora>-<topic-slug>.md

O carimbo de data/hora está no formato ISO 8601, permitindo que múltiplos relatórios no mesmo tópico coexistam e sejam ordenados por data.

Custos Estimados

PresetCusto por chamadaDuração típica
research~$0.50~30–60 segundos
advanced-deep-research~$2.00~2–5 minutos

Os custos são aproximados. Custos reais podem variar com base na complexidade da consulta e no número de consultas de busca.

Exemplos

Exemplo 1: Pesquisa de concorrente (pequena, uma chamada)

bash ./scripts/research.sh \
  --preset advanced-deep-research \
  --output ./docs/research \
  --topic analise-concorrencia \
  --instructions "$(cat <<'EOF'
OBJETIVO: Comparar os recursos de produto, preços e avaliações de clientes do Competidor X e do Competidor Y no espaço de automação de marketing.
CONTEXTO: Nosso produto é uma ferramenta de automação de marketing para PMEs focada em simplicidade. Preço é um fator chave. Precisamos de dados dos últimos 6 meses.
FONTES PREFERIDAS: G2, Capterra, sites oficiais de documentação de produtos, artigos de analistas do setor (Gartner, Forrester).
ENTREGÁVEIS:
- Matriz de comparação de recursos (10 linhas, 4 colunas: recurso, X, Y, notas)
- Tabela de comparação de preços (3 linhas, 3 colunas: plano, X, Y)
- Trechos de avaliações de clientes (máx. 5 por concorrente, com classificação por estrelas e plataforma)
EOF
)" \
  "Quais são as principais diferenças entre o Competidor X e o Competidor Y em automação de marketing para PMEs?"

Exemplo 2: Pesquisa regulatória (grande, três chamadas)

Este plano precisa de 3 chamadas sequenciais porque o escopo excede o orçamento de saída por chamada:
  Chamada 1 — Linha do tempo regulatória e órgãos reguladores  (~$1, ~3 min)
  Chamada 2 — Requisitos de conformidade e penalidades        (~$1, ~3 min)
  Chamada 3 — Impacto no setor e estratégias de preparação    (~$1, ~3 min)
Custo total estimado: $3. Aprove a divisão, ou diga o que cortar.

Notas sobre a Implementação

  • O script usa a API POST /v1/agent do Perplexity com streaming para fornecer feedback em tempo real.
  • Os resultados são salvos como markdown com metadados (modelo, carimbo de data/hora, custo, duração).
  • O preset advanced-deep-research executa iterações de busca interna e síntese, resultando em pesquisas mais profundas com maior custo.
  • Todas as chamadas de API e tempos de resposta são registrados para depuração e rastreamento de custos.
  • Se uma chamada falhar (por exemplo, tempo limite, erro de API), nenhum resultado parcial é salvo — a falha é relatada ao usuário para nova tentativa.

Solução de Problemas

Erro: "PERPLEXITY_API_KEY not set"

Execute a verificação de configuração:

bash ./scripts/check-setup.sh

Ele mostrará como definir a chave. Geralmente:

export PERPLEXITY_API_KEY="sua-chave-aqui"

Erro: "curl: command not found"

Instale curl:

  • macOS: brew install curl
  • Ubuntu/Debian: sudo apt-get install curl
  • Windows (WSL): sudo apt-get install curl

Erro: "jq: command not found"

Instale jq:

  • macOS: brew install jq
  • Ubuntu/Debian: sudo apt-get install jq
  • Windows (WSL): sudo apt-get install jq

Relatório parece truncado

  1. Verifique o sumário no relatório em relação ao corpo real
  2. Se as seções estiverem faltando, veja a Etapa 4 acima para o fluxo de recuperação
  3. Para a próxima execução, considere reduzir o escopo ou usar múltiplas chamadas (Etapa 2.6)

Habilidades Relacionadas