MÓDULO 2.3

🧬 Os bastidores (conceitos)

Hora de abrir a caixa-preta. Você vai entender as 3 fases por dentro, os dois arquivos que tornam tudo retomável e econômico (state.json e research_cache.json), como se recuperar de falhas e a estrutura exata da pasta output/.

7
Tópicos
40
Minutos
🧬
Conceitos
Intermediário
1️⃣ Pesquisa · Perplexity 9-18 buscas 2️⃣ Síntese · Gemini 15 docs em ordem · pausa ~5s 3️⃣ Geração · local PPTX + DOCX + PNG · grátis 💾 research_cache.json 🧭 state.json — acompanha fase, entregáveis prontos, custo e erros (viabiliza o resume)

Diagrama ilustrativo — as 3 fases em sequência, com o cache da pesquisa e o checkpoint de estado.

Conteúdo detalhado

1

1️⃣ Fase 1 — Pesquisa

Tudo começa com a coleta de inteligência. Na primeira fase, a Perplexity faz de 9 a 18 buscas (conforme o modo) sobre a empresa e o setor. Essa é a matéria-prima de todos os documentos que vêm depois.

🔍 O que a pesquisa cobre

🏢 Visão geral
o que a empresa faz
🧱 Stack
tecnologias usadas
⚔️ Concorrentes
o cenário
😣 Dores
problemas e gaps
⚖️ Regulação
restrições do setor
💾 Salva tudo
no cache

💡 Dica — lixo entra, lixo sai

A qualidade da pesquisa define o teto de qualidade dos documentos. Por isso o --context e a escolha do modo (2.1 e 2.2) importam tanto: eles melhoram esta fase.

2

2️⃣ Fase 2 — Síntese

Com a pesquisa em mãos, o Gemini escreve os 15 documentos. O detalhe importante: eles são gerados em ordem de dependência — alguns só nascem depois que outros ficam prontos, porque usam o anterior como insumo.

🔗 Por que a ordem importa

# Exemplo simplificado da cadeia de dependência:

inventário técnico ─┐
dores            ───┼─→ avaliação de maturidade ─→ roadmap ─→ quick wins
                    │
                    └─→ diagramas, ROI, governança, ...

# Um documento "downstream" lê os documentos "upstream"
# já prontos. Por isso não dá para gerar tudo em paralelo.

⏱️ A pausa entre chamadas

Entre uma chamada e outra ao Gemini, há uma pausa de cerca de 5 segundos. Não é lentidão — é proteção: respeita os limites de requisições da API e evita o erro 429.

  • 15 documentos gerados em sequência
  • ~5s de pausa entre cada um
  • Resultado: a Síntese é a fase que mais leva tempo de espera

💡 Dica — paciência é por design

Se a síntese parecer "parada", provavelmente é a pausa de respeito ao limite. Deixe terminar — interromper aqui só faz você ter que usar o resume depois.

3

3️⃣ Fase 3 — Geração

A última fase roda inteiramente no seu computador, sem custo. Ela transforma os textos em arquivos Office e renderiza os diagramas em imagem.

📊 PPTX

Monta os 2 PowerPoint com a biblioteca python-pptx.

📝 DOCX

Gera os 2 relatórios em Word a partir dos documentos.

📐 PNG

Renderiza os diagramas Mermaid usando Chrome/Puppeteer.

🛠️ O que roda por baixo

  • python-pptx — biblioteca Python que escreve arquivos .pptx
  • Conversão para .docx — os relatórios em Word
  • Chrome/Puppeteer — abre o Mermaid e "tira foto" de cada diagrama em PNG
  • Custo: zero — nada disso chama uma API paga

💡 Dica — diagrama falhou? É o Chrome

Se os PNG não saírem, geralmente é o Chrome/Puppeteer que não está disponível. Os documentos em texto ainda ficam prontos — só a renderização das imagens depende dele.

4

💾 O arquivo state.json

Dentro da pasta de cada empresa existe um checkpoint: o state.json. Ele é o cérebro da retomada — guarda tudo o que a ferramenta precisa saber para continuar de onde parou.

📄 O que ele guarda (exemplo)

{
  "company": "Stripe",
  "current_phase": "synthesis",
  "deliverables_done": ["01_tech_inventory", "02_pain_points"],
  "cost_spent_usd": 0.31,
  "errors": []
}

Estrutura ilustrativa — os campos reais podem variar, mas a ideia é esta: fase, prontos, custo e erros.

🧭 Por que ele importa

  • Fase atual — em que ponto do pipeline a análise está
  • Entregáveis prontos — o que já foi gerado (não refazer)
  • Custo gasto — quanto a análise já consumiu
  • Erros — o que deu errado, para diagnóstico
  • É o que viabiliza o resume
5

♻️ O research_cache.json

Se o state.json é o cérebro, o research_cache.json é o cofre: ele guarda a pesquisa bruta da Perplexity. Como a pesquisa é a parte que custa, esse cache é o seu maior aliado de economia.

⌨️ Reaproveitando a pesquisa

# A primeira execução paga a pesquisa e a grava no cache
python -m strategy_factory.main run "Stripe"

# Mexeu num prompt e quer só regerar os documentos?
# Reusa o cache — não paga a pesquisa de novo:
python -m strategy_factory.main run "Stripe" --skip-research

✓ Com o cache você pode

  • Regerar documentos quase de graça
  • Ajustar prompts e ver o efeito rápido
  • Refazer só a geração de arquivos

✗ O cache NÃO ajuda quando

  • Você quer dados mais atuais (refaça a pesquisa)
  • Mudou o contexto e quer pesquisar de novo
  • Vai de Quick para Comprehensive de verdade

💡 Dica — a pesquisa é o que custa

Lembre da Fase 3: a geração já é grátis. O grande gasto está na pesquisa (Fase 1). Reusá-la com --skip-research é o que faz seus experimentos custarem quase nada.

6

🔌 Resume & recuperação

Falhas acontecem: você aperta Ctrl+C, cai a internet, ou estoura o limite da API. A boa notícia é que, graças ao state.json, você nunca perde o trabalho (nem o dinheiro) já feito.

⌨️ Continuar de onde parou

# Caiu no meio? Apenas retome:
python -m strategy_factory.main resume "Stripe"

# Em erro 429 (limite atingido):
#   1. Espere alguns minutos
#   2. Rode o resume novamente

⏱️ Tipos de falha e o que fazer

⌨️

Ctrl+C / fechou o terminal

O state.json guardou o ponto. Rode resume e continue.

📡

Caiu a internet

Reconecte e rode resume. A pesquisa já feita vem do cache.

429

Erro 429 — limite de requisições

Você bateu no teto da API. Espere alguns minutos para o limite renovar e rode resume.

💡 Dica — resume é seguro de repetir

Não tem problema rodar resume várias vezes: ele sempre olha o state.json e só faz o que ainda falta. Nunca refaz (nem cobra) o que já está pronto.

7

📁 A pasta output/

Tudo o que a ferramenta produz vai parar num lugar previsível: a pasta output/{slug}/, uma por empresa. Conhecer essa estrutura te deixa achar qualquer arquivo num instante.

🌳 A árvore completa

output/stripe/
├── markdown/             # 15 documentos .md
├── presentations/        # 2 apresentações .pptx
├── documents/            # 2 relatórios .docx
├── mermaid_images/       # 5 diagramas .png
├── state.json            # checkpoint (fase, custo, erros)
└── research_cache.json   # pesquisa bruta da Perplexity
📄 markdown/ — 15 .md

Todos os documentos de texto: do inventário técnico ao plano de gestão da mudança. A Trilha 3 abre cada um.

📊 presentations/ — 2 .pptx

Um resumo executivo e uma apresentação completa de achados.

📝 documents/ — 2 .docx

O relatório de estratégia final e a proposta de trabalho.

📐 mermaid_images/ — 5 .png

Estado atual, estado futuro, fluxo de dados, roadmap e integração.

🎯 Resumindo

Cada empresa = uma pasta autossuficiente. Os entregáveis ficam separados por tipo, e os dois arquivos JSON guardam o estado e o cache. É tudo o que você precisa para entender, retomar e reaproveitar uma análise.

🧬 Resumo do Módulo

Fase 1 — Pesquisa — a Perplexity faz 9-18 buscas (visão, stack, concorrentes, dores, regulação) e salva.
Fase 2 — Síntese — o Gemini gera os 15 documentos em ordem de dependência, com pausa de ~5s entre chamadas.
Fase 3 — Geração — local e grátis: PPTX (python-pptx), DOCX e PNG (Chrome/Puppeteer).
state.json — checkpoint com fase, entregáveis prontos, custo e erros; viabiliza o resume.
research_cache.json — guarda a pesquisa bruta; --skip-research regera documentos sem repesquisar.
Recuperação & output/ — resume continua de onde parou; output/{slug}/ organiza tudo por tipo.

Próxima Trilha:

Trilha 3 — Entregáveis — agora que você domina a ferramenta por dentro, abra cada um dos 15 documentos e aprenda a usá-los na prática.